跳转到主要内容

简单的纯Python AVM元数据处理

项目描述

Build Status Coverage Status

关于

PyAVM是一个模块,用于表示、读取和写入遵循*天文学可视化元数据* (AVM)标准的元数据。

需求

PyAVM支持Python 2.7和3.5+。只需读取和嵌入AVM元数据,无需其他依赖项。

但是,以下可选依赖项对于更高级的功能是必需的

安装和报告问题

PyAVM可以使用pip安装

pip install pyavm

请通过GitHub上的问题跟踪器报告您遇到的问题。

使用PyAVM

导入

PyAVM提供了代表AVM元数据的AVM类,并按以下方式导入

>>> from pyavm import AVM

解析文件

要从现有图像解析AVM元数据,只需使用图像的文件名(或任何类似文件的对象)调用from_image类方法

>>> avm = AVM.from_image('myexample.jpg')

目前只支持JPEG和PNG文件,因为解析遵循JPEG和PNG规范。对于其他文件格式,PyAVM将简单地扫描文件内容,寻找XMP数据包。此方法不太可靠,但在大多数实际情况下应该有效。

访问和设置元数据

您可以使用以下方法查看AVM对象的内 容:

>>> print(avm)

可以使用属性符号访问AVM元数据

>>> avm.Spatial.Equinox
'J2000'
>>> avm.Publisher
'Chandra X-ray Observatory'

可以修改标签

>>> avm.Spatial.Equinox = "B1950"
>>> avm.Spatial.Notes = "The WCS information was updated on 04/02/2010"

从头创建AVM对象

要创建一个空的AVM元数据持有者,只需调用 AVM() 而不带任何参数即可

>>> avm = AVM()

请注意,这将创建一个遵循1.2规范的AVM对象。如有必要,您可以指定使用标准的哪个版本

>>> avm = AVM(version=1.1)

转换为WCS对象

可以从AVM元数据创建一个Astropy WCS对象

>>> wcs = avm.to_wcs()

默认情况下,如果可用,将使用 Spatial.FITSheader,否则将从其他 Spatial.* 标签中提取WCS信息。要强制PyAVM不尝试使用 Spatial.FITSheader,请使用

>>> wcs = avm.to_wcs(use_full_header=False)

从FITS头初始化

要从FITS头创建AVM元数据对象,只需将头(作为Astropy Header实例)传递给 from_header 类方法即可

>>> from astropy.io import fits
>>> header = fits.getheader('image.fits')
>>> avm = AVM.from_header(header)

默认情况下,将创建AVM标签 Spatial.FITSheader,其中包含完整头信息(除了其他 Spatial.* 标签)。这可以通过以下方式禁用

>>> avm = AVM.from_header(header, include_full_header=False)

从WCS对象初始化

同样,您还可以从Astropy WCS实例创建AVM元数据对象

>>> from astropy.wcs import WCS
>>> from pyavm import AVM
>>> wcs = WCS('image.fits')
>>> avm = AVM.from_wcs(wcs)

使用AVM元数据标记图像

可以将AVM元数据嵌入到图像文件中

>>> avm.embed('original_image.jpg', 'tagged_image.jpg')

目前,仅支持将AVM元数据嵌入到JPG和PNG文件中

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

PyAVM-0.9.6.tar.gz (223.1 kB 查看散列值)

上传时间

构建分布

PyAVM-0.9.6-py3-none-any.whl (378.9 kB 查看散列值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面