ism3d.arts package¶
Submodules¶
ism3d.arts.discretize module¶
-
ism3d.arts.discretize.
channel_split
(objs, w)[source]¶ Divivd the cloudlet model by channel in advance to avoid doing it during channel looping
- Note:
returned v has a flip sign from V_los vrange[0] first channel velocity and vrange[1] last channel velocity
The returned list should have a element number of N(objs)
for ccloudlet model: fluxscale is the flux per cloud for continuum model: fluxscale is the flux of the object within a plane
-
ism3d.arts.discretize.
clouds_perchan
(clouds_loc, clouds_wt, sv, return_v=False)[source]¶ split clouds_loc by its LOS velocity
clouds_loc 6D cloud location sv: LOS velocity sampling vector
- note: sv and clouds_loc.d_z are defined by flipped sign;
so we consider sv <-> -d_z
- Ref:
The implemented method is analogous to IDL histogram’s reverse_indices: https://stackoverflow.com/questions/26783719/efficiently-get-indices-of-histogram-bins-in-python https://stackoverflow.com/questions/2754905/vectorized-approach-to-binning-with-numpy-scipy-in-python https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_(CSR,_CRS_or_Yale_format)
- return:
list of cloudsset: each elements contain the clouds located within each channel plane
-
ism3d.arts.discretize.
lognsigma_lookup
(objs, dname)[source]¶ - update some model parameters related to likelihood calculation
In the model properties, we have some keywords related to configing the likelihood
- model and calculate log_propeorbaility:
lognsigma: used to scale noise level (in case it’s overunder estimated)
They are actually related to data (one value per dataset) But it’s setup per object due to the input file layout (repeated for different objects, like PSF) # we expected lognsigma is the same for one dname from all objs
ism3d.arts.dynamics module¶
-
ism3d.arts.dynamics.
calc_vcirc
(pot, rho, interp=True, logr=True)[source]¶ use interpolated vcirc to speed up vcirc calculation decide to not use potential/interpRZPotential.py to avoid some overheads see https://galpy.readthedocs.io/en/v1.5.0/reference/potentialinterprz.html#interprz logr will keep also see: galpy.poteential.vcirc()
-
ism3d.arts.dynamics.
model_vcirc
(pot_dct)[source]¶ take a dictionary describing the potential and calculaet rotation curve
-
ism3d.arts.dynamics.
model_vrot_plot
(mod_obj_disk3d, figname='vrot_plt.pdf')[source]¶ mod_obj_disk3d: just a single disk object (unitless)
-
ism3d.arts.dynamics.
potential_fromobj
(obj)[source]¶ create a abstract galpy.potential object (defined in the galactic plane frame) which can be used to calculate circular velocity once cloud position is defined.
obj: type=’poyential’ return a list of galpy.potential
-
ism3d.arts.dynamics.
pots_to_vcirc
(pots, rho, pscorr=None)[source]¶ calculate vcirc and vrot from galactocentric distance and galpy.potential post is a list of ponetials
optionally, a dispersion-based pressure correcton can be applied to provide partial support (tehrefore, decrease vrot) pscorr=(vSigma,ExpDisk_scale_length) note: this is only correct if the non-DM is in a exp-disk
vcirc: no pressure correction vrot: pressure correction
optionall
vcirc[0,:] = rotational velocity after the correction vcirc[1,:] = rotatipnal velocity before the correction vcirc{2:,:] = contribution from individial potentials
ism3d.arts.model module¶
Module contents¶
subpackage arts