Skip to content
On this page

OMDX FITS 数据格式标准

本文档定义了 Open Meteor Data Exchange (OMDX) 在 FITS (Flexible Image Transport System) 文件中的存储规范。

文件结构概览

OMDX FITS 文件由一个主扩展(Primary HDU)和若干后续扩展组成。这种结构可以在一个文件中同时存储mask和signal帧、原始视频序列、逐帧时间数据以及恒星表格数据等。

HDU 索引类型名称 (EXTNAME)内容描述
0PrimaryHDU(N/A)基础元数据头 + 压缩后的合成图像 (Mask/Signal)
1...NImageHDUM_FRAME_{ID}{ID} 帧的图像数据 + 该帧的时间与流星坐标
N+1BinTableHDUM_STAR恒星目录表 + 几何/测光模型参数

与Python class类似,contents中的标记决定了必须有的各个字段,而不需要的字段在FITS中不作保存。例如,没有测光结果(photometry)时,最后一个HDU的star_magstar_flux列均不存在。


Primary HDU: 主扩展

Header 关键字

主头文件存储全局元数据。以下关键字是必须或建议包含的:

关键字类型说明对应 Python 属性
M_VERString标准版本号version
M_STAString站点名称station_name
M_CAMString相机 IDcamera_name
M_NAMEString事件唯一标识名meteor_name
M_MEANTFloat基准时间 (Unix Timestamp, UTC)mean_time
M_TSRCString时间来源 (GPS/System)time_source
M_STALATFloat站点纬度 (WGS84, Degrees)station_location[0]
M_STALONFloat站点经度 (WGS84, Degrees)station_location[1]
M_STAALTFloat站点海拔 (Meters)station_location[2]
M_COLORString色彩空间 (A, RGB, RGGB等)color
M_CONTSString内容清单,逗号分隔contents
M_W, M_HInt图像宽、高image_width/height
M_FCNTInt总帧数frame_count
M_PROCTString处理时间processed_time
M_*_MTHString各阶段算法方法名* = T时间,C相机校准,P测光,O流星测量

Image Data:合成位图

为了节省空间,主 HDU 的 Data 部分不存储视频流,而是存储一张 uint8 格式的二维图像,用于指示遮罩和流星区域。数据通过位运算编码:

  • Bit 6 (Value 64): 遮罩层 (Mask)。如果该像素是遮罩区域,则置位。
  • Bit 7 (Value 128): 信号层 (Signal)。如果该像素属于流星区域,则置位。

解析示例:

  • 像素值 0: 背景。
  • 像素值 64: 被遮挡区域。
  • 像素值 128: 流星信号。
  • 像素值 192 (64+128): 遮罩区域内的信号(理论上不应发生,但格式支持)。

Image Sequence HDUs:视频序列

每一帧视频数据被存储为一个独立的 ImageHDU

  • 命名规则: EXTNAME = M_FRAME_{DDDDD} (例如 M_FRAME_00000, M_FRAME_00123)。
  • Data: 图像矩阵 (Height, Width)。如果是 RGB,则多一个维度color存储各通道亮度。

header:逐帧时间数据与流星坐标

OMDX 的一个设计特色是将流星的瞬时位置存储在对应帧的 Header 中,而非单独的表格。这使得播放器在读取某一帧图像时,能立即获取该帧上的所有流星位置。

时间关键字

关键字类型说明
M_FTIMEFloat相对 M_MEANT 的时间偏移 (秒),是曝光开始和结束时间的平均值
M_EXPOSFloat该帧曝光时间 (秒)

流星对象关键字

如果该帧检测到了流星(或卫星),使用十六进制索引 {ID} (如 00, 01, 0A) 来区分不同目标,最多支持256个目标:

  • M_O_PX{ID} / M_O_PY{ID}: 目标的像素坐标 (X, Y)。
  • M_O_EX{ID} / M_O_EY{ID} / M_O_EZ{ID}: 目标的 ECI J2000 空间坐标 (X, Y, Z)。
  • M_O_FX{ID}: 测光流量 (Flux)。
  • M_O_MG{ID}: 视星等 (Magnitude)。

示例 Header 片段

text
M_FTIME = 0.040        / Frame time offset
M_EXPOS = 0.033        / Exposure time
M_O_PX00 = 1234.5      / Object 00 Pixel X
M_O_PY00 = 567.8       / Object 00 Pixel Y
M_O_MG00 = -1.5        / Object 00 Magnitude

Image Data:图像原始信息

每个Image HDU的Data部分是视频的单帧画面。


BinTable HDU: 星表与模型

该扩展名为 M_STAR,是一个二进制表格(Binary Table)。

Header:模型参数

相机校准和测光模型的参数作为 Header 关键字存储。为了兼容 FITS 关键字长度限制,Python 中的字典 Key 会被截断为 4 个字符并大写。

  • M_C_{KEY}: 校准模型参数 (Calibration)。例如 Python 中的 r00 变为 M_C_R00
  • M_P_{KEY}: 测光模型参数 (Photometry)。
  • M_CRSLT: 校准结果描述字符串。
  • M_CRES / M_PRES: 校准残差 / 测光残差。

Table Data:参考恒星

表格包含用于定标的恒星列表,列定义如下:

列名 (TTYPE)单位说明
star_nameString恒星标识 ( HIP 编号)
star_pic_xPix图像 X 坐标
star_pic_yPix图像 Y 坐标
star_eci_xkmECI J2000 X 坐标
star_eci_ykmECI J2000 Y 坐标
star_eci_zkmECI J2000 Z 坐标
star_magmag恒星的星表星等
star_fluxADU实测流量