plotastrodata
Python package to make figures from radio astronomical data by astropy and matplotlib. The API, examples, and gallery are available in readthedocs. The PDF manual is available here.
Highlights
- Read, write, and process astronomical FITS images, spectral cubes, position-velocity diagrams, and NumPy arrays, including WCS coordinates, spectral axes, beam information, and brightness-temperature conversion.
- Create 2D maps, channel maps, position-velocity diagrams, RGB composites, line profiles, spatial slices, and interactive 3D isosurface visualizations.
- Overlay color, contour, polarization-vector, and RGB data from different spatial grids, with astronomical coordinates, beams, scale bars, regions, markers, and other annotations.
- Prepare data through trimming, interpolation, binning, masking, centering, rotation, deprojection, beam circularization, and profile extraction.
- Estimate image noise, including support for primary-beam-corrected data.
- Fit Gaussian models to line profiles and two-dimensional image components.
- Use supporting tools for coordinate and line-of-sight transformations, centered Fourier transforms and visibility sampling, and Bayesian or grid-based parameter estimation.
Installation
Install from conda-forge:
conda install conda-forge::plotastrodata
or from PyPI:
pip install plotastrodata
To install the latest source from GitHub:
git clone https://github.com/yusukeaso-astron/plotastrodata
cd plotastrodata
python -m pip install .
To update a source installation, run the following commands in the cloned repository:
git pull
python -m pip install --upgrade .
Demo and Usage
The repository includes example.py, which demonstrates the main plotting and analysis features. After cloning the repository and installing the package, run:
python example.py
More examples and the complete API reference are available in the online documentation.
Requirement
- Python >= 3.11
- astropy >= 7.2
- corner (only for fitting)
- dynesty (only for fitting)
- emcee >= 3.1.5 (only for fitting)
- ffmpeg (only for movie)
- matplotlib
- numpy >= 2.0
- pillow (only for RGB figures)
- plotly (only for html cube)
- ptemcee (only for fitting)
- pydantic >= 2
- scikit-image (only for html cube)
- scipy
- tqdm (only for fitting)
Conventions and Limitations
- Array axes are ordered as
(y, x)for a 2D image,(v, y, x)for a spectral cube, and(v, x)for a position-velocity diagram. With NumPy-array input, supply matching one-dimensional coordinate arrays; a spectral cube requiresvto construct channel maps. FITS input obtains these coordinates from its header. - Spatial coordinates are offsets from
center. They are expressed in arcseconds whendist=1. Whendistis set to the source distance in parsecs, spatial offsets and beam sizes are expressed in au. - By default, the R.A. axis increases toward the left (
xflip=True), following the usual astronomical image convention. Usexflip=Falseto reverse this behavior. - Velocity coordinates and
vsysare in km/s, whilerestfreqis in Hz. A frequency axis read from FITS is converted to velocity relative tovsys. - Sky positions may be given as coordinate strings, such as
'ICRS 01h23m45.6s 01d23m45.6s'. Numeric positions supplied throughposlist, such as[0.2, 0.3], are relative plotting positions: 0 is the left or bottom edge and 1 is the right or top edge. They are not spatial offsets. - Angles are in degrees unless an API explicitly states otherwise. Sky position angles are measured from north toward east. The polar-coordinate arrays
thetaandphiused by the line-of-sight utilities are in radians. - A beam is represented by
[bmaj, bmin, bpa], where the first two values use the current spatial unit andbpais in degrees.Tb=Trueconverts data from Jy/beam to brightness temperature and requires a valid rest frequency and spatial-resolution metadata. sigmamay be a numeric RMS value, a string selecting a noise-estimation method, orNoneto disable noise-dependent behavior. See the API documentation for the available estimation methods.- Annotation methods accept a single value or a list of values.
include_chanselects displayed channels by zero-based index;Noneapplies the annotation to all channels. - Position-velocity mode (
pv=True) does not support regions, lines, arrows, or segment maps because its spatial and velocity axes use different units. Markers and text may still be placed using relative plotting positions. - Constants in
const_utilsare plain numerical values in SI units, notastropy.units.Quantityobjects.
Author
- Name: Yusuke Aso
- Affiliation: Korea Astronomy and Space Science Institute
- E-mail: yaso@kasi.re.kr
License
"plotastrodata" is under GNU General Public License Version 3.
Metadata
Release files for plotastrodata 1.10.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plotastrodata-1.10.2.tar.gz | 74.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plotastrodata-1.10.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 152.0 kB
Release files / plotastrodata-1.10.2.tar.gz
| Download URL | plotastrodata-1.10.2.tar.gz |
|---|---|
| Size | 74.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c04147b56f7463e41eeadd9e3b04e0b34a76e4d68bad2c825c6c9a576227ef0
|
|
BLAKE2b-256 checksum How to use checksums |
9d884a19d876b0128b21e2d040a9cf5289c988bae0db9659d8e9543429ff7e6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Release files / plotastrodata-1.10.2-py3-none-any.whl
| Download URL | plotastrodata-1.10.2-py3-none-any.whl |
|---|---|
| Size | 77.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ed57bdeae7e17176756561fa0bba5e32946fe85d6639987eaec0eb2c57ba3ee
|
|
BLAKE2b-256 checksum How to use checksums |
7bedc5c3e09fdd3264db395e8726c4d1dc0aadcf7a5415b2fcf14c514da4e5ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|