PyAVM
Simple pure-python AVM meta-data handling
What it is and what it does
PyAVM is a pure-Python library for working with Astronomy Visualization Metadata (AVM), a standard for embedding astronomical image information. It lets you parse AVM metadata from existing JPEG and PNG files, create new metadata objects from scratch, modify metadata attributes, and embed the result back into images. The core library has no external dependencies, making it lightweight and easy to install.
When you need deeper integration with astronomical data, PyAVM can optionally convert between AVM and Astropy WCS objects or FITS headers, but those conversions require Astropy and Numpy as optional dependencies. The library supports Python 3.10 and later, follows the AVM 1.2 specification by default (with fallback to 1.1 if needed), and handles both attribute-style access and direct printing of metadata contents.
Use it for:
- Extract and inspect AVM metadata from astronomical survey images to understand their spatial calibration and provenance.
- Embed standardized AVM metadata into processed astronomical images before publication or archival.
- Convert between AVM and FITS/WCS representations when integrating with Astropy-based pipelines.
- Batch-tag a collection of JPEG or PNG astronomical visualizations with consistent metadata.
- Parse XMP packets from non-standard image formats when JPEG/PNG support is insufficient.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyAVM reads, writes, and embeds Astronomy Visualization Metadata (AVM) in image files, with optional support for converting between AVM and Astropy WCS/FITS objects.
Yes. PyAVM is actively maintained, has zero known vulnerabilities, imposes no dependency burden for basic use, and directly implements a well-defined standard for astronomical metadata. Install it if you work with astronomical images and need to read, write, or embed AVM metadata; skip it only if you have no use for the AVM standard itself.
Install
pyavm on PyPI
pip
pip install pyavmuv
uv add pyavmpoetry
poetry add pyavmInstalling PyAVM
Before you install
Low install friction: pure Python with no required runtime dependencies. Active maintenance with recent release (155 days ago) and current Python version support (3.10–3.14).
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install pyavm
from pyavm import AVM
avm = AVM.from_image('myexample.jpg')
print(avm.Spatial.Equinox)
avm.embed('original_image.jpg', 'tagged_image.jpg')
Requires Python 3.10 or later. Optional dependencies (Numpy, Astropy) needed only for WCS conversion and FITS header handling.
Verify before relying
- How well does the XMP packet scanning method work for non-JPEG/PNG formats in practice?
- Performance characteristics when processing large image files or batch operations.
- Compatibility with modern AVM specification versions beyond 1.2.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 155 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 120,622/month — #12,016 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyavm-0.9.9-py3-none-any.whl
Keywords: Scientific/Engineering
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pyvoPyVO provides Python access to Virtual…
permissive · top 15,000 on PyPI
regionsRegions provides tools for defining,…
permissive · top 15,000 on PyPI
gwcsGWCS provides tools for managing World…
unclear · top 15,000 on PyPI
fitsiofitsio reads and writes FITS (Flexible Image…
copyleft · top 15,000 on PyPI
astropy-healpixProvides HEALPix spherical pixelization for…
permissive · top 15,000 on PyPI
pyds9pyds9 provides a Python interface to…
unclear · top 15,000 on PyPI
ImageIOImageIO reads and writes images and video in…
permissive · top 1,000 on PyPI
asdf-astropyProvides ASDF serialization plugins for astropy…
unclear · top 15,000 on PyPI
python-xmp-toolkitRead and write XMP metadata in image and…
permissive · top 15,000 on PyPI
astroqueryAstroquery provides a Python interface to query…
permissive · top 15,000 on PyPI