Welcome to ISM3D’s documentation!¶
ISM3D: Interferometric Source Modeling up to 3D¶
A Python package for simulating and modeling astronomical sources from radio interferometric observations
Free software: BSD license
Documentation: https://www.magclouds.org/ism3d
Features¶
Efficient forward-modeling of Galaxy Emission in Astronomical Data
Construct high-precision spatially/spectroscopically-resolved galaxy emission models, from analytical or physical prescriptions of galaxy geometry, emissivity, kinematics, and dynamics.
Implement various model elements (e.g., line, continuum, sky background) to provide a realistic presentation of expected galaxy sky emission. multi-frequency synthetic visibility or
The galaxy model can incorporate with multiple line/continuum components.
Perform simulated observations of galaxy emission model and render them within a wide range of astronomical data forms (e.g. radio interferometer visibility, radio single-dish or optical IFU spectral cube, multiple-band photometric images, 1D spectra, etc.)
Flexible Model Fitting/Optimization Interface
We offer several model fitting/optimization algorithms under the same interface for a flexible user-friendly modeling experience through either a command-line approach or a serial of Python API functions).
All modeling details are summarized in a single parameter file with a very flexible/readable syntax, which is easy to re-use for progressive modeling iterations.
The package is specially optimized for efficiently performing joint model fitting on large heterogeneous multiple-wavelength datasets and performance Bayesian-based model sampling for robust statistical error estimation with proper prior assumption. This is done by taking the advantages of multi-threading computation, with careful memory footprint management.
ISM3D is originally designed to be a special tool to extract galaxy morphology and kinematics property from large modern interferometer datasets (specifically VLA and ALMA). We integrate some convenient utility-type functions (based on CASA 6’s Python modules) for helping process, image, and visualize calibrated viability data from the interferometer data archive, as we realize the importance of properly preparing visibility data, which may require additional effort due to large dataset size and “complex” nature of interferometer visibility data forms.
On the other hand, although we have demonstrated that visibility-domain modeling can eliminate the non-linear imaging process for interferometer data and offers a unique advantage on the marginally-resolved moderate SNR data (e.g., notably for high-z observations), we note that ISM3D is still equivalently equipped to analyze imaging or data products under the same modeling and fitting framework.
Currently, ism3d is organized into several sub-packages
arts: generate artificial sources up to 3d (position-position-frequency/wavelength/velocity) in the sparse array (a.k.a. cloudlet) or regular grid (e.g. spectral cube) (see examples in the yt documents)
simuv: a simulator for radio interferometric observations
simxy: a simulator for spectroscopic imaging observations, as well as photometric imaging and 1D spectroscopy (not fully implemented)
modelling: a model fitting/optimizer framework
uvhelper: help prepare and analyze “uv” data for modeling (using CASA6): A small Python library that provides a collection of utility functions helping process, analyze, and visualize interferometric visibility data.
xyhelper: help prepare and analyze “xy” data for modeling
utils: utility functions to support other modules
maths: pseudo-random generator / other math-related functions
plots: general plotting modules
While the current effort is still a work in progress: inconsistent documentation, many non-working function placeholders, etc., fast-paced changes are expected soon. Any comments and suggestions are appreciated and code/documentation contributions are very welcome.
User Guide
Technical Specification/Notes
Development
Tutorials: Direct API Usage
- ism3d.uvhelper: visibility imaging
- ism3d.arts: model artificial sources in different shapes
- ism3d.arts.lens: model artificial sources with gravitational lensing effects
- ism3d.xyhelper.maskmoment: derive moment0/moment1 maps from spectral cubes
- Setup
- Example 0: Dilated mask with no smoothing. Expand from 4\(\sigma\) to 2\(\sigma\) contour. Mask regions must span at least 2 beam areas and 2 channels at any pixel.
- Example 1: Dilated mask with 2 pixel padding in spatial dimensions. Start at 5\(\sigma\) contour to isolate main galaxy. We speed up execution by using the rms cube generated by Example 0.
- Example 2: Smooth and mask method. Generate a mask using the 3\(\sigma\) contour of a smoothed (to 10”) cube. Mask regions must span at least 2 beam areas.
- Example 3: Dilated smooth-and-mask. Expand from the 4\(\sigma\) to 2\(\sigma\) contour of the smoothed cube.
- Example 4: Apply an existing mask. Here we apply the 2D version of the mask derived in Example 3. Since this includes a lot of noise the results are not as good.
- Compare integrated spectra from the 5 masks.
Tutorials: Modeling
- Example BX610: perform model fitting using method=‘amoeba’ for the Band 4 Cycle 2 DataSet
- Example BX610: perform model fitting using method=‘amoeba’ for the Band 4 Cycle 5 DataSet
- Example BX610: perform model fitting using method=‘amoeba’ for the Band 6 Cycle 3 DataSet
- Invert Visibility + Plot 1D spectra (may take a while)
- Example BX610: perform model fitting using method=‘emcee’
- Example HXMM01: test the MS-simulation modules
Tutorials: misc
Tutorials: Data Preparation
- Example: GN20 (z~4 SMF) : Data Prep
- Example: BX610 (High-z SFG) : Data Prep
- Example: HXMM01 (High-z Merger)
- Example GN20: perform imaging of CO 2-1 dataset
- Example: BX610 (High-z SFG) : Data Imaging
- Tutorials & Examples
Note
GMaKE is an evolving package. Although we make an effort to maintain backwards compatibility for the parameter file syntax, the Python API can rapidly change at the current alpha development stage.
Top-level package for ism3d. |