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.3
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.3.tar.gz | 75.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plotastrodata-1.10.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 152.3 kB
Release files / plotastrodata-1.10.3.tar.gz
| Download URL | plotastrodata-1.10.3.tar.gz |
|---|---|
| Size | 75.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40e23c024e82c50d520a5585841cff6d92750e132b78abd408d1ce14f62e75e6
|
|
BLAKE2b-256 checksum How to use checksums |
0015de9aeee23a72ad5e0a29933ffa417a832b1724e7914611ae019898242a79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / plotastrodata-1.10.3-py3-none-any.whl
| Download URL | plotastrodata-1.10.3-py3-none-any.whl |
|---|---|
| Size | 77.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2522a9884db5a5deb3d694e9fdf5be1cdc102ca0609f88350daa25e0275995a7
|
|
BLAKE2b-256 checksum How to use checksums |
bc85fa20473b6053fb6be2e76d676b1f378a4add238915388d01eddb4e67394d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|