iGMAS Innovation Application Center
@School of Geodesy and Geomatics, Wuhan University
Menu
Home
Products
Visualization
Group
Software
Feedback
Sign In
Group
学术动态
团队风采
研究方向与代表成果
GNSS轨道钟差
实时精密定位
低轨增强GNSS
多源融合导航
GREATers
Tools and PPT
Group
学术动态
团队风采
研究方向与代表成果
GNSS轨道钟差
实时精密定位
低轨增强GNSS
多源融合导航
GREATers
Tools and PPT
GREATers
Return
SINEX文件格式简介
Create on
2020-11-26T06:39:10Z
written by Huang Jiande
# 背景 > 转载自:http://gnss.help/2019/07/28/sinex-introduction/index.html [SINEX (Solution INdependent EXchange Format)](https://www.iers.org/IERS/EN/Organization/AnalysisCoordinator/SinexFormat/sinex.html) 是大地测量学界标准的数据处理成果文件格式。该文件格式最早由 IGS 提出,之后陆续被 ILRS 和 IVS 等组织采用并丰富。现用于发布 [国际地球自转与参考系统服务(IERS)](https://www.iers.org/IERS/EN/Home/home_node.html)、[国家激光测距服务(ILRS)](https://ilrs.cddis.eosdis.nasa.gov/)、[国际 GNSS 服务(IGS)](http://www.igs.org/)、[国际 DORIS 服务(IDS)](https://ids-doris.org/) 和 [国际 VLBI 服务(IVS)](https://ivscc.gsfc.nasa.gov/) 等生产的各种数据处理产品,如 ITRF 地球坐标参考框架,各基站坐标、速度与震后形变参数,地心和地球自转参数等等。 本文将从历史、格式和含义等方面着手,介绍 SINEX 文件的内容。 ## 命名 SINEX 的含义为 “与解算无关的文件交换格式”,这里的 “解算” 既包括数据处理软件,也包括观测技术。因此 GNSS、SLR、VLBI 和 DORIS 等现代大地测量方法的手段,不管使用何种数据处理软件和方法,其结果都可以保存为 SINEX 格式。SINEX 格式既可以保存数据处理结果,也包含数据处理时关键的中间结果,方便用户在其基础上做进一步的数据处理。 SINEX 是一种纯文本的数据格式,但并非纯 ASCII 字符,其文件的扩展名一般为 .snx。目前 SINEX 的最新版本为 2.02,广泛采用的版本还有 2.00 和 2.01。 IGS 各分析中心的 SINEX 文件产品以 `<agy><gpswd>.snx` 的形式命名,这里的 `<agy>` 指发布机构,而 `<gpswd>`为 GPS 周,例如 “gfz20502.snx” 表明该文件是有 GFZ 发布的第 2050 个 GPS 周周二的产品。各分析中心除了有单天解之外,有的还会提供三天解,单天解和三天解以前缀的机构名作为区分。 IGS 的产品则以 `igs<yr>P<gpswd>.snx` 的方式命名,这里的 `<yr>` 为两位的年。对于跨年的周,以周三所在的年为准。IGS 除提供单天解外还提供周解,周解的命名方式为 `igs<yr>P<gpsw>.snx`。 而 MGEX 项目自第 2038 GPS 周开始,所有分析中心的产品都使用长文件名。一个 MGEX 提供的典型 SINEX 文件为 “GRG0MGXFIN_20190300000_01D_000_SOL.SNX”,其文件名表示:这是由 MGX 项目的 GRG 中心产生的最终(FIN)产品,其开始时间为 2019 年第 30 日,时长为一天。 ## 格式 在 SINEX 文件中,数据以行为单位,其格式为首尾行夹数据块的三明治结构。每行不超过 80 列,并且第一列必须是限定的字符,规则如下: - `%`,首尾行,标识文件的开始和结束; - `*`,注释行,其中的内容不会被解析; - `+`,一个数据块开始标记; - `-`,一个数据块结束标记; - 空格,数据行,位于数据块内部。 ### 首尾行 除了以 `%` 开头,SINEX 文件首尾行的位置和内容还都是固定的:首行(Header Line)必须在文件的第一行,包含文件格式、版本号、机构、创建时间、数据的开始与结束时间、观测技术、未知数个数、约束和未知数的类型等信息;尾行(Trailer Line)必须在最后一行,标识文件结束。 ### 注释行 你可以在首尾行之间的任何位置插入注释行,注释行以 `*` 开头。需注意的是,即便注释行,建议其长度也不要超过 80 列。恰当地使用换行可以让阅读体验清晰愉快。 ### 数据块 数据块由开始结束符号(`+/-`)和标题(Title)包裹,中间内嵌数据行。数据块在 SINEX 文件中出现的顺序是任意的。SINEX 2.02 标准定义了 25 种数据块,其标题和含义为: - `FILE/REFERENCE`,文件引用,包含本文件的输入输出、发布机构、数据处理软硬件、联系人等描述性信息。 - `FILE/COMMENT`,文件注释,区别于 `*` 号开始的注释行,该数据块用于保存不应被忽略的说明性信息。 - `INPUT/HISTORY`,输入历史,包含本产品处理中输入的其他 SINEX 文件的发布机构、文件名、时段、约束和未知数等信息。 - `INPUT/FILES`,输入文件,包含本产品处理中输入的其他文件的文件名、开始时间和机构信息。 - `INPUT/ACKNOWLEDGEMENTS`,致谢,各输入文件发布机构的描述性信息。 - `NUTATION/DATA`,章动数据,本产品数据处理时使用的章动模型。 - `PRECESSION/DATA`,岁差数据,本产品数据处理时使用的岁差模型。 - `SOURCE/ID`,射电源信息,VLBI 观测的射电源 ID 等。 - `SITE/ID`,测站信息,GNSS、SLR、DORIS 等观测站 ID,测站号,概略位置等。 - `SITE/DATA`,测站数据信息,包括测站墩标号、观测技术、观测机构和观测时段等。 - `SITE/RECEIVER`,测站接收机,GNSS 观测时各测站使用的接收机类型、S/N 码和固件。 - `SITE/ANTENNA`,测站天线,GNSS 观测时各测站使用的天线、天线罩类型和天线 S/N 码。 - `SITE/GPS_PHASE_CENTER`,天线相位中心,各天线对 GPS 观测时的天线相位中心。 - `SITE/GAL_PHASE_CENTER`,天线相位中心,各天线对 Galileo 观测时的天线相位中心。 - `SITE/ECCENTRICITY`,天线偏移量,各测站上天线参考点相对于标石的偏移量。 - `SATELLITE/ID`,卫星 ID,GNSS 观测到的各卫星的信息。 - `SATELLITE/PHASE_CENTER`,卫星相位中心,卫星天线相位中心相对其质心的偏移量。 - `BIAS/EPOCHS`,解算的偏差参数信息,如测距偏差、时钟偏差、尺度偏差或对流层参数等。 - `SOLUTION/EPOCHS`,解算结果历元,各测站数据的开始、结束和平均历元。 - `SOLUTION/STATISTICS`,解算结果统计,解算结果的参数个数、自由度、单位权方差、残差平方和等统计信息。 - `SOLUTION/APRIORI`,参数初值,包含各待估参数的类型、参考历元、约束类型、单位、近似值和先验精度信息。 - `SOLUTION/ESTIMATE`,参数估值,各待估参数的类型、参考历元、约束类型、单位、估计值和中误差信息。 - `SOLUTION/NORMAL_EQUATION_VECTOR`,法方程向量,包含无约束平差时的法方程向量。 - `SOLUTION/NORMAL_EQUATION_MATRIX <p>`,法方程矩阵,包含无约束平差时的法方程矩阵。 - `SOLUTION/MATRIX_APRIORI <p> <type>`,约束矩阵,如果解算结果为约束平差,包含施加的约束矩阵。 - `SOLUTION/MATRIX_ESTIMATE <p> <type>`,估计矩阵,最终解算结果的方差-协方差阵、协因素阵或法方程矩阵。 由于以上包含矩阵的数据块,其中保存的矩阵都是相对主对角线对称的,因此在 SINEX 文件中只需保存一部分。上文中的 `<p>` 可选的值为 `L` 或 `U`,标识保存的是下半块(Lower)还是上半块(Upper)。对于约束矩阵和估计矩阵,还有一个标识 `<type>`,标记其内容为方差-协方差阵(`COVA`)、协因素阵(`CORR`)还是法方程矩阵(`INFO`)。 当然,以上的数据块并不全是必要的。比如,`SOURCE/ID` 数据块仅对 VLBI 是必要的。另外,解算结果的法方程也有保存法方程(NEQ 方式)和保存约束/估计矩阵(COV 方式)两种方法。 ## 内容 SINEX 格式的最大优点在于,其完整保存了未加约束的法方程,因此其使用者可在此基础上做进一步的处理。从 SINEX 文件恢复法方程很容易,在此以伪代码的形式做简要介绍。 首先可以从 SINEX 文件的 `SOLUTION/APRIORI` 和 `SOLUTION/ESTIMATE` 数据块读取参数初值 `x0` 和估值 `x`。记法方程矩阵为 `N`,法方程向量为 `b`,参数改正数为 `dx`,矩阵转置符号为 `'`,矩阵乘法为 `@`, 求逆记函数为 `inv()`。改正数的计算方法为: ``` dx = x - x0 ``` 法方程表示为: ``` N @ dx = b ``` ### NEQ 方式 在 SINEX 文件中,可以通过数据块 `SOLUTION/NORMAL_EQUATION_MATRIX` 和 `SOLUTION/NORMAL_EQUATION_VECTOR` 直接保存法方程。某些 IGS 分析中心(比如 CODE)就提供这种类型的 SINEX 文件产品,你可以从中直接读取 `N` 和 `b`。但此时 `SOLUTION/STATISTICS` 块中一般不给出单位权方差,而是给出自由度 `dof` 和 二次型 `l'Pl`。你可以用如下方式计算单位权方差 `sigma0`: ``` v'Pv = l'Pl - b' @ dx sigma0 = v'Pv / dof ``` ### COV 方式 这种类型的 SINEX 文件会在 `SOLUTION/STATISTICS` 块中给出自由度 `dof`、单位权中误差 `sigma0` 以及残差平方和 `v'Pv`,并给出最终的方差-协方差阵 `Dx` 和约束值的先验方差-协方差阵 `Dc`。原始的法方程可通过如下方式恢复: ``` Qx = Dx / sigma0 Nx = inv(Qx) Qc = Dc / sigma0 Nc = inv(Qc) N = Nx - Nc b = Nx @ dx ``` ## 补充 根据 SINEX 格式的标准,致谢部分的标题应为:`INPUT/ACKNOWLEDGEMENTS`。但绝大多数 IGS 分析中心的产品中,该数据块的标题为 `INPUT/ACKNOWLEDGMENTS`。这一点在使用时需要注意。还有一点是:按照标准 [ISO6709](https://zh.wikipedia.org/wiki/ISO_6709) 以及习惯用法,西经应使用负数表示。但在 SINEX 的 `SITE/ID` 块中,受限于字符个数限制,其中的西经以大于 180 的数字表示。