--- id: pyavm version: "0.9.9" license: MIT license_treatment: permissive maintenance: active --- # PyAVM — Simple pure-python AVM meta-data handling License: permissive · Maintenance: active · Downloads: 120.6K/mo ## 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 above — 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 pip install pyavm uv add pyavm poetry add pyavm ## Installing 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_current - Install friction: low - Maintenance: active - Downloads: 120.6K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags astronomy metadata AVM, FITS header WCS conversion, image metadata embedding, astronomical image tagging, AVM standard implementation, astronomy visualization metadata, JPEG PNG metadata, WCS object handling, astronomy, metadata, image-processing [View on SkillFed](https://skillfed.io/packages/pyavm) · [View on PyPI](https://pypi.org/project/pyavm/)