Million Points of Light (MPoL)#
MPoL is a PyTorch library built for Regularized Maximum Likelihood (RML) imaging and Bayesian Inference with datasets from interferometers like the Atacama Large Millimeter/Submillimeter Array (ALMA) and the Karl G. Jansky Very Large Array (VLA).
As a PyTorch library, MPoL expects that the user will write Python code to link MPoL primitives as building blocks to solve their interferometric imaging workflow, much the same way the artificial intelligence community uses PyTorch layers to build new neural network architectures (for example). You will find MPoL easiest to use if you emulate PyTorch customs and idioms, e.g., feed-forward neural networks, data storage, GPU acceleration, and train/test optimization loops. Therefore, a basic familiarity with PyTorch is considered a prerequisite for MPoL.
MPoL is not an imaging application nor a pipeline, though MPoL components could be used to build specialized workflows. We are focused on providing a numerically correct and expressive set of core primitives so the user can leverage the full power of the PyTorch (and Python) ecosystem to solve their research-grade imaging tasks. This is already a significant development and maintenance burden for the limited resources of our small research team, so our immediate scope must necessarily be limited.
To get a sense of what background material MPoL assumes, please look at the Background and prerequisites. If the package is right for your needs, follow the installation instructions.
This documentation covers the API and a short set of tutorials demonstrating key components of the MPoL library. Longer examples demonstrating how one might use MPoL components to build an imaging workflow are packaged together in the MPoL-dev/examples repository.
If you’d like to help build the MPoL package, please check out the Developer Documentation to get started. For more information about the constellation of packages supporting RML imaging and modeling, check out the MPoL-dev organization website and github repository hosting the source code. If you have any questions, please ask us on our Github discussions page.
If you use MPoL in your research, please cite us! See MPoL-dev/MPoL for the citation.
- Coordinates
- Datasets
- Fourier
- Gridding
- Images
- Losses
- Geometry
- Utilities
torch2npy()
ground_cube_to_packed_cube()
packed_cube_to_ground_cube()
sky_cube_to_packed_cube()
packed_cube_to_sky_cube()
get_Jy_arcsec2()
loglinspace()
fftspace()
check_baselines()
get_max_spatial_freq()
get_maximum_cell_size()
get_optimal_image_properties()
sky_gaussian_radians()
sky_gaussian_arcsec()
fourier_gaussian_lambda_radians()
fourier_gaussian_lambda_arcsec()
- Precomposed Modules
- Training and testing
- Plotting
- Cross-validation
- Analysis