DKIST数据验证器
项目描述
包含验证器和DKIST规范(特别是对应于SPEC122 RevE和SPEC214 RevA数据)的规范翻译器的接口
SPEC-0122:来自山顶的数据
SPEC-0214 l0:由数据中心摄取和解析的数据
SPEC-0214:数据中心发布的数据(不完整)
验证器引用DKIST头规范的可读机器版本,这些规范在此处定义,在dkist-fits-specifications中。除非另有说明,否则验证器将与dkist-fits-specifications包的最新版本一起安装。如果您收到验证错误,请参考dkist-fits-specifications包中标识的DKIST头规范版本,以确保您的头文件符合该版本。
功能
使用voluptuous模式来验证给定输入头文件与dkist规范
3个关键字验证:类型验证、必需性验证和值验证
失败异常包括验证失败原因的字典
SPEC-0122到SPEC-0214 l0的翻译
安装
pip install dkist-header-validator
用法
目前,此包可用于验证SPEC122数据或SPEC214数据。请导入相应的函数(spec122_validator和Spec122ValidationException,或spec214_validator和Spec214ValidationException,或spec214_l0_validator和Spec214ValidationException)。
此包可用于验证数据,或用于验证和翻译数据(仅限SPEC122输入)。
- 输入数据可以是以下之一
字符串文件路径
文件对象
HDUList对象
fits.header.Header对象
标题键值字典
验证数据
>>> from dkist_header_validator import spec122_validator, Spec122ValidationException
>>> spec122_validator.validate('dkist_rosa0181200000_observation.fits')
CLI也可以用来验证数据
>>> dkist-header-validator validate122 "path/to/file.fits"
>>> dkist-header-validator validate214 "path/to/file.fits"
验证并将数据翻译为spec214 l0
>>> from dkist_header_validator import spec122_validator, Spec122ValidationException
>>> spec122_validator.validate_and_translate_to_214_l0('dkist_rosa0181200000_observation.fits')
- 在validate和validate_and_translate方法中,可以设置一系列标志,否则它们将采用默认值
extra: 默认值为true(允许额外键)。此标志确定是否允许在要验证的模式中包含额外关键字。摄取验证应允许额外键。
return_type: 默认值为HDUList。此标志将确定返回类型。可以是dict、Path、BytesIO、fits.header.Header、HDUList之一。
示例
验证文件
>>> from dkist_header_validator import spec122_validator, Spec122ValidationException
>>> spec122_validator.validate('dkist_rosa0181200000_observation.fits', return_type=dict)
>>> from pathlib import Path
>>> spec122_validator.validate('dkist_rosa0181200000_observation.fits', return_type=Path)
验证并翻译文件
>>> from dkist_header_validator import spec122_validator, Spec122ValidationException
>>> spec122_validator.validate_and_translate_to_214_l0('dkist_rosa0181200000_observation.fits')
验证头信息
>>> from dkist_header_validator import spec122_validator, Spec122ValidationException
>>> from astropy.io import fits
>>> hdus = fits.open('dkist_rosa0181200000_observation.fits')
>>> spec122_validator.validate(hdus[0].header, return_type=dict)
本项目的版权为(c) AURA/NSO。