From e56320bca1156411e486b4542d5024ada3b568da Mon Sep 17 00:00:00 2001 From: Christopher Rooney Date: Thu, 27 Apr 2023 13:00:13 -0400 Subject: [PATCH 1/2] added a table and some logic to calculate G from IFIR --- .../constant_density/z=1/IFIR.fits | 50 +++++++++++++++++++ .../constant_density/z=1/models.tab | 1 + pdrtpy/tool/lineratiofit.py | 11 +++- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/IFIR.fits diff --git a/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/IFIR.fits b/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/IFIR.fits new file mode 100644 index 00000000..7d6f36e1 --- /dev/null +++ b/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/IFIR.fits @@ -0,0 +1,50 @@ +SIMPLE = T / conforms to FITS standard BITPIX = -32 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 49 NAXIS2 = 57 COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H COMMENT nemo::fitsio.c $Id$ DATASUM = '0000000000000000' CHECKSUM= '0000000000000000' TITLE = '[CII] 158 micron/CO (J=1-0)' BUNIT = 'erg / (cm2 s)' ORIGIN = 'UMD' AUTHOR = 'Wolfire' COMMENT Kaufman, et al. 2006, ApJ, 644, 283 COMMENT Wolfire, et al. 2010, ApJ, 716, 1191 COMMENT Neufeld & Wolfire 2016, ApJ, 826, 183 COMMENT Freeze out off DATAMIN = 4.34607756E-07 DATAMAX = 13798927.0 DATE = '2021-10-07T14:45:53 ' HISTORY HISTORY PhotoDissociation Region Toolbox HISTORY http://dustem.astro.umd.edu HISTORY http://pdrtpy.readthedocs.io COMMENT COMMENT Model Parameters: VERSION = 2.00000000 DVDOP = 1.50000000 / Turbulent Doppler Velocity (km/s) ABUNDC = 1.59999996E-04 / Carbon Abundance (C/H) ABUNDO = 3.19999992E-04 / Oxygen Abundance (O/H) ABUNDSI = 1.69999998E-06 / Silicon Abundance (Si/H) ABUNDS = 2.80000004E-05 / Sulfur Abundance (S/H) ABUNDFE = 1.70000007E-07 / Iron Abundance (Fe/H) ABUNDMG = 1.09999996E-06 / Magnesium Abundance (Mg/H) ABUNDPAH= 2.00000002E-07 / PAH Abundance (PAH/H) ABUNDDST= 1.00000000 / Dust Abundance wrt local ISM ABUNDZ = 1.00000000 / Dust and Metals wrt local ISM (Z=1) ABUND13C= 3.19999981E-06 / Carbon 13 Abundance (13C/H) ABUNDF = 1.79999997E-08 / Fluorine Abundance (F/H) ABUNDN = 0.00000000 / Nitrogen Abundance (N/H) ABUNDHE = 0.100000001 / Helium Abundance (He/H) AV = 7.00000000 / Visual Optical Depth (mag) MASS = 0.00000000 / Clump Mass (solar mass) TAUUV = 1.79999995 / Ratio of tau_UV/tau_V TAUFUVV = 2.50000000 / Ratio of tau_FUV/tau_V HEAT = 'BTF' / Bakes & Tielens - Flt PAHs BMAJ = BMIN = BPA = WCSAXES = 2 / Number of coordinate axes CRPIX1 = 1.0 / Pixel coordinate of reference point CRPIX2 = 1.0 / Pixel coordinate of reference point CDELT1 = 0.125 / [cm-3] Coordinate increment at reference point CDELT2 = 0.125 / [erg s-1cm-2] Coordinate increment at referenceCUNIT1 = 'cm-3' / Units of coordinate increment and value CUNIT2 = 'erg s-1cm-2' / Units of coordinate increment and value CTYPE1 = 'log(n)' / Coordinate type code CTYPE2 = 'log(FUV)' / Coordinate type code CRVAL1 = 1.0 / [cm-3] Coordinate value at reference point CRVAL2 = -3.295880079 / [erg s-1cm-2] Coordinate value at reference poiLATPOLE = 90.0 / [deg] Native latitude of celestial pole MJDREF = 0.0 / [d] MJD of fiducial time END ::::::::::::::::::::::::::::::::::::::::::::::::::P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:::::::::::::::::::::::::::::::::::::::::::::::::;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;Q;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;wQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<%^<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#<]#5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5=>5> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v> +.v>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>8D>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u>u> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{>{?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?8?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN?BCN???????????????????????????????????????????????????????????????????????????????????????????????????U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U?U@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@L@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@v@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!AWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*B*BcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBcBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBĕBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbC_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3CoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCoSCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]C]DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(DC(D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D=D|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pD|pDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EZ%EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)E#)F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F&F& \ No newline at end of file diff --git a/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/models.tab b/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/models.tab index c0473741..d8e8b086 100644 --- a/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/models.tab +++ b/pdrtpy/models/wolfirekaufman/version2020/constant_density/z=1/models.tab @@ -98,3 +98,4 @@ FEII_26 1 FEII_26 FEII25p99 1 [Fe II] 25.99 $\mu$m ARIII_21.83 ARIII_8.99 ARIII_21.83/ARIII_8.99 ARIII21p83_ARIII8p99 1 [Ar III] 21.83 $\mu$m/[Ar III] 8.99 $\mu$m ARV_13.07 ARV_7.91 ARV_13.07/ARV_7.91 ARV13p07_ARV7p91 1 [Ar V] 13.07 $\mu$m/[Ar V] 7.91 $\mu$m + FIR Area FIR/Area IFIR 1 $I_{FIR}$ [$L_{FIR}/A_{src}$] diff --git a/pdrtpy/tool/lineratiofit.py b/pdrtpy/tool/lineratiofit.py index 289d9397..8de318c9 100755 --- a/pdrtpy/tool/lineratiofit.py +++ b/pdrtpy/tool/lineratiofit.py @@ -477,7 +477,16 @@ def _compute_valid_ratios(self): # deepcopy workaround for bug: https://github.com/astropy/astropy/issues/9006 num = utils.convert_if_necessary(self._measurements[p["numerator"]]) denom = utils.convert_if_necessary(self._measurements[p["denominator"]]) - self._observedratios[label] = deepcopy(num/denom) + + if (num/denom).unit != '': + try: + self._observedratios[label] = deepcopy(num/denom).convert_unit_to("erg/cm^2 s") + except: + print("Ratios should be unitless...") + else: + self._observedratios[label] = deepcopy(num/denom) + + #@TODO create a meaningful header for the ratio map self._ratioHeader(p["numerator"],p["denominator"],label) self._observedshape = self._observedratios[label].data.shape From ce2bc22e88e4464f40d14bed3a32b546a81ddcdd Mon Sep 17 00:00:00 2001 From: Christopher Rooney Date: Thu, 27 Apr 2023 15:35:01 -0400 Subject: [PATCH 2/2] clarify error handling a little --- pdrtpy/tool/lineratiofit.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pdrtpy/tool/lineratiofit.py b/pdrtpy/tool/lineratiofit.py index 8de318c9..9054af01 100755 --- a/pdrtpy/tool/lineratiofit.py +++ b/pdrtpy/tool/lineratiofit.py @@ -477,16 +477,15 @@ def _compute_valid_ratios(self): # deepcopy workaround for bug: https://github.com/astropy/astropy/issues/9006 num = utils.convert_if_necessary(self._measurements[p["numerator"]]) denom = utils.convert_if_necessary(self._measurements[p["denominator"]]) - + if (num/denom).unit != '': try: self._observedratios[label] = deepcopy(num/denom).convert_unit_to("erg/cm^2 s") - except: - print("Ratios should be unitless...") + except u.UnitConversionError: + print(f"Ratios should be unitless, (except IFIR/Area), instead got {(num/denom).unit}") else: self._observedratios[label] = deepcopy(num/denom) - #@TODO create a meaningful header for the ratio map self._ratioHeader(p["numerator"],p["denominator"],label) self._observedshape = self._observedratios[label].data.shape