GB/T 48177-2026 GNSS掩星探测数据格式

基础资料浏览 19更新 2026-09-23

中华 人民 共和 国国 家标 准 GB/T 48177—2026 GNSS 掩星探测数据格式 2026⁃08⁃28 发布 2026⁃12 ⁃01 实施 国家市场监督管理总局 国家标准化管理委员会 前言 本文件按照 GB/T 1.1—2020《标准化工作导则第 1 部分:标准化文件的结构和起草规则》的规定起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。 本文件由中国气象局提出。 本文件由全国卫星气象与空间天气标准化技术委员会(SAC/TC 347)归口。 本文 件起 草单 位:国家 卫星 气象 中心、中国 人民 解放 军 61540 部队、中国 气象 局气 象探 测中 心、天津云遥宇航科技有限公司、天津大学、中国科学院国家空间科学中心、极诺星空(北京)科技有限公司、航天天目(重庆)卫星科技有限公司。 本文件主要起草人:郭徵、姜明波、陈曦、李峰辉、张晨阳、王鹏宇、程艳、付乃锋、闫明明、蔡秋卓、孙越强、杜晓勇、白伟华、李伟、郭晓宇、白文路。 1 范围 本文件规定了全球卫星导航系统(GNSS)掩星探测数据的格式,确...

资料预览

GB/T 48177-2026 GNSS掩星探测数据格式 预览 1

中华 人民 共和 国国 家标 准

GB/T 48177—2026

GNSS 掩星探测数据格式

2026⁃08⁃28 发布 2026⁃12 ⁃01 实施

国家市场监督管理总局 国家标准化管理委员会

前言

本文件按照 GB/T 1.1—2020《标准化工作导则第 1 部分:标准化文件的结构和起草规则》的规定起草。

请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。

本文件由中国气象局提出。

本文件由全国卫星气象与空间天气标准化技术委员会(SAC/TC 347)归口。

本文 件起 草单 位:国家 卫星 气象 中心、中国 人民 解放 军 61540 部队、中国 气象 局气 象探 测中 心、天津云遥宇航科技有限公司、天津大学、中国科学院国家空间科学中心、极诺星空(北京)科技有限公司、航天天目(重庆)卫星科技有限公司。

本文件主要起草人:郭徵、姜明波、陈曦、李峰辉、张晨阳、王鹏宇、程艳、付乃锋、闫明明、蔡秋卓、孙越强、杜晓勇、白伟华、李伟、郭晓宇、白文路。

1 范围

本文件规定了全球卫星导航系统(GNSS)掩星探测数据的格式,确立了数据文件命名规则。

本文件适用于天基 GNSS 掩星探测数据的处理、交换和使用。

2 规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

QX/T 387—2017 气象卫星数据文件名命名规范

3 术语和定义

下列术语和定义适用于本文件。

全球卫星导航系统 Global Navigation Satellite System;GNSS

在全球范围内提供定位、导航和授时服务的卫星系统的统称。

注:包括北斗卫星导航系统(BDS)、全球定位系统(GPS)、伽利略卫星导航系统(Galileo)和格洛纳斯卫星导航系统(GLONASS)等。

掩星导航卫星 navigation satellite for radio occultation

形成大气或电离层掩星事件的导航信号发射卫星。

参考导航卫星 reference navigation satellite

辅助大气掩星事件反演的导航信号发射卫星。

掩星探测卫星 satellite equipped with radio occultation sounding payload

装载全球卫星导航系统(GNSS)掩星探测设备的卫星。

注:本文件中的掩星探测卫星为低轨道地球卫星。

掩星事件切点 radio occultation event tangent point

掩星探测卫星与掩星导航卫星之间导航信号射线路径相切于地球大气层的点。

大气掩星事件 atmospheric radio occultation event

全球卫星导航系统(GNSS)导航信号经地球周边中性大气折射后被全球卫星导航系统(GNSS)掩星探测载荷接收的一次完整过程。

注:简称“大气掩星”。

电离层掩星事件 ionospheric radio occultation event

全球卫星导航系统(GNSS)导航信号经地球电离层折射后被全球卫星导航系统(GNSS)掩星探测载荷接收的一次完整过程。

注:简称“ 电离层掩星”。

精密钟差 precise clock offset

掩星探测卫星经实时或后处理精确估计或外推得到的高精度时钟的偏差。

[来源:GB/T 39267—2020,2.3.14,有修改]

4 缩略语

下列缩略语适用于本文件。

atmPrf:干大气廓线(dry atmosphere profile)

BDS:北斗卫星导航系统(BeiDou navigation satellite system)

DCB:差分码偏差(differential code bias)

ECI:地心惯性坐标系(earth Centered Inertial coordination system)

ECMWF:欧洲中期天气预报中心(European Centre for Medium-Range Weather Forecasts)

ERA5:第五代欧洲中期天气预报中心再分析资料(fifth generation of ECMWF atmospheric reanalyses)

Galileo:伽利略卫星导航系统(Galileo navigation satellite system)

GFS:全球预报系统(global forecast system)

GLONASS:格洛纳斯卫星导航系统(global navigation satellite system)

GPS:全球定位系统(global positioning system)

HDF:层次数据格式(hierarchical data format)

NetCDF:网络通用数据格式(network common data form)

Rinex:接收机独立交换格式(the receiver independent exchange format)

SP3:扩展标准产品 3 轨道文件格式(the extended standard product 3 orbit format)

TEC:总电子含量(total electronic content)

UTC:协调世界时(coordinated universal time)

wetPrf:湿大气廓线(wet atmosphere profile)

5 0 级数据格式

0 级数据格式可根据数据条目自定义。

6 1 级数据格式

6.1 掩星探测卫星精密轨道

掩星探测卫星精密轨道数据(包括星号、时间、卫星位置等信息)使用 SP3 标准格式。

6.2 掩星探测卫星精密钟差

掩星探测卫星精密钟差数据(包括钟差等观测信息)使用独立交换格式 3.04 版本 clock rinex 3.04标准格式。

6.3 电离层附加相位

6.3.1 文件格式

电离层附加相位文件格式可使用 NetCDF 或 HDF 文件格式。 电离层附加相位文件的 NetCDF格式样例见附录 A 的 A .1。

6.3.2 数据集

电离层附加相位数据集格式应符合表 1。

表 1 电离层附加相位数据集格式

表 1 电离层附加相位数据集格式( 续 )

6.3.3 全局属性

电离层附加相位全局属性格式应符合表 2。

表 2 电离层附加相位全局属性格式

表 2 电离层附加相位全局属性格式( 续 )

6.4 大气附加相位

6.4.1 文件格式

大气附加相位文件格式可使用 NetCDF 或 HDF 文件格式。大气附加相位文件的 NetCDF 格式样例见 A .2。

6.4.2 数据集

大气附加相位数据集格式应符合表 3。

表 3 大气附加相位数据集格式

表 3 大气附加相位数据集格式( 续 )

6.4.3 全局属性

大气附加相位全局属性格式应符合表 4。

表 4 大气附加相位全局属性格式

表 4 大气附加相位全局属性格式( 续 )

6.5 绝对总电子含量

6.5.1 文件格式

绝对总电子含量文件格式可使用 NetCDF 或 HDF 文件格式。绝对总电子含量文件的 NetCDF格式样例见 A .3。

6.5.2 数据集

绝对总电子含量数据集格式应符合表 5。

表 5 绝对总电子含量数据集格式

6.5.3 全局属性

绝对总电子含量全局属性格式应符合表 6。

表 6 绝对总电子含量全局属性格式

7 2 级数据格式

7.1 电离层廓线

7.1.1 文件格式

电离层廓线文件格式可使用 NetCDF 或 HDF 文件格式。 电离层廓线文件的 NetCDF 格式样例

见 A .4。

7.1.2 数据集

电离层廓线数据集格式应符合表 7。

表 7 电离层廓线数据集格式

7.1.3 全局属性

电离层廓线全局属性格式应符合表 8。

表 8 电离层廓线全局属性格式

表 8 电离层廓线全局属性格式( 续 )

7.2 干大气廓线

7.2.1 文件格式

干大气廓线文件格式可使用 NetCDF 或 HDF 文件格式。干大气廓线文件的 NetCDF 格式样例见 A .5。

7.2.2 数据集

干大气廓线数据集格式应符合表 9。

表 9 干大气廓线数据集格式

表 9 干大气廓线数据集格式( 续 )

7.2.3 全局属性

干大气廓线全局属性格式应符合表 10。

表 10 干大气廓线全局属性格式

表 10 干大气廓线全局属性格式( 续 )

7.3 湿大气廓线

7.3.1 文件格式

湿大气廓线文件格式可使用 NetCDF 或 HDF 文件格式。湿大气廓线文件的 NetCDF 格式样例见 A .6。

7.3.2 数据集

湿大气廓线数据集格式应符合表 11。

表 11 湿大气廓线数据集格式

7.3.3 全局属性

湿大气廓线全局属性格式应符合表 12。

表 12 湿大气廓线全局属性格式

表 12 湿大气廓线全局属性格式( 续 )

8 数据文件命名规则

掩星数据文件命名规则应符合 QX/T 387—2017 的要求。

附录 A (资料性)

文件格式样例

A.1 电离层附加相位文件格式样例

电离层附加相位文件格式样例如下:

netcdf Y020-GNROI-ORBT-L1-20250101-0201-INC22-V0 {

dimensions:

time = 394 ;

variables:

float time(time) ;

time:units = "s" ;

time:valid-range = 0.f,1800.f ;

time:-FillValue = -99999999.f ;

time:long-name = "Time since start time of ionosphere occultation" ; float pL1Snr(time) ;

pL1Snr:units = "V/V" ;

pL1Snr:valid-range = 0.f,65535.f ;

pL1Snr:-FillValue = -99999999.f ;

pL1Snr:long-name = "L1P observation signal noise radio" ; float pL2Snr(time) ;

pL2Snr:units = "V/V" ;

pL2Snr:valid-range = 0.f,65535.f ;

pL2Snr:-FillValue = -99999999.f ;

pL2Snr:long-name = " L2P observation signal noise radio" ; double xLeo(time) ;

xLeo:units = "km" ;

xLeo:valid-range = -7378.,7378. ;

xLeo:-FillValue = -99999999. ;

xLeo:long-name = "LEO X position(ECI)" ; double yLeo(time) ;

yLeo:units = "km" ;

yLeo:valid-range = -7378.,7378. ;

yLeo:-FillValue = -99999999. ;

yLeo:long-name = "LEO Y position(ECI)" ; double zLeo(time) ;

zLeo:units = "km" ;

zLeo:valid-range = -7378.,7378. ;

zLeo:-FillValue = -99999999. ;

zLeo:long-name = "LEO Z position(ECI)" ; double xdLeo(time) ;

xdLeo:units = "km/s" ;

xdLeo:valid-range = -8.,8. ;

xdLeo:-FillValue = -99999999. ;

xdLeo:long-name = "LEO X velocity(ECI)" ; double ydLeo(time) ;

ydLeo:units = "km/s" ;

ydLeo:valid-range = -8.,8. ;

ydLeo:-FillValue = -99999999. ;

ydLeo:long-name = "LEO Y velocity(ECI)" ; double zdLeo(time) ;

zdLeo:units = "km/s" ;

zdLeo:valid-range = -8.,8. ;

zdLeo:-FillValue = -99999999. ;

zdLeo:long-name = "LEO Z velocity(ECI)" ; double xGnss(time) ;

xGnss:units = "km" ;

xGnss:valid-range = -36000.,36000. ;

xGnss:-FillValue = -99999999. ;

xGnss:long-name = "GNSS X position(ECI)" ; double yGnss(time) ;

yGnss:units = "km" ;

yGnss:valid-range = -36000.,36000. ;

yGnss:-FillValue = -99999999. ;

yGnss:long-name = "GNSS Y position(ECI)" ; double zGnss(time) ;

zGnss:units = "km" ;

zGnss:valid-range = -36000.,36000. ;

zGnss:-FillValue = -99999999. ;

zGnss:long-name = "GNSS Z position(ECI)" ; double xdGnss(time) ;

xdGnss:units = "km/s" ;

xdGnss:valid-range = -5.,5. ;

xdGnss:-FillValue = -99999999. ;

xdGnss:long-name = "GNSS X velocity(ECI)" ; double ydGnss(time) ;

ydGnss:units = "km/s" ;

ydGnss:valid-range = -5.,5. ;

ydGnss:-FillValue = -99999999. ;

ydGnss:long-name = "GNSS Y velocity(ECI)" ; double zdGnss(time) ;

zdGnss:units = "km/s" ;

zdGnss:valid-range = -5.,5. ;

zdGnss:-FillValue = -99999999. ;

zdGnss:long-name = "GNSS Z velocity(ECI)" ; double exL1(time) ;

exL1:units = "m" ;

exL1:valid-range = -50000000.,50000000. ;

exL1:-FillValue = -99999999. ;

exL1:long-name = "Excess Phase on L1 channel" ; double exL2(time) ;

exL2:units = "m" ;

exL2:valid-range = -50000000.,50000000. ;

exL2:-FillValue = -99999999. ;

exL2:long-name = "Excess Phase on L2 channel" ;

// global attributes:

:dataName = "ionPhs" ;

:leoId = 20 ;

:occsatId = 22 ;

:setting = 0 ;

:year = 2025 ;

:month = 1 ;

:day = 1 ;

:hour = 2 ;

:minute = 1 ;

:second = 16.999899924 ;

:doy = 1 ;

:duration = 393 ;

:gnssName = "BDS" ;

:coordinate = "ECI" ;

:exL1qc = 100 ;

:exL2qc = 100 ;

:startTime = 1419732077. ;

:stopTime = 1419732470. ;

:fileStamp = "Y020-GNROI-ORBT-L1-20250101-0201-INC22" ;:nmax = 394 ;

:bad = 0 ;

:inverter = "GROPP" ;

:processing-center = "YYYH" ;

:creation-time = "2025-01-02T01:51:32Z" ;

:L1Flag = "B1I" ;

:L2Flag = "B3I" ;

A.2 大气附加相位文件格式样例

大气附加相位文件格式样例如下:

netcdf Y020-GNROI-ORBT-L1-20250101-0201-ANC37-V0 { dimensions:

time = 11722 ;

time:valid-range = 0.f,240.f ;

time:long-name = "Time since start time of atmosphere occultation" ; float pL1Snr(time) ;

pL1Snr:-FillValue = -99999999. ;

pL2Snr:-FillValue = -99999999. ;

pL2Snr:long-name = "L2P observation signal noise radio" ; double xLeo(time) ;

exL1:valid-range = -5000.,5000. ;

exL1:long-name = "Excess Phase on L1 channel" ;

double exL2(time) ;

exL2:valid-range = -5000.,5000. ;

exL2:long-name = "Excess Phase on L2 channel" ; double exLC(time) ;

exLC:units = "m" ;

exLC:valid-range = -5000.,5000. ;

exLC:-FillValue = -99999999. ;

exLC:long-name = "Ionosphere - free combination excess Phase on L1 channel and L2 channel" ;

double xmdl(time) ;

xmdl:units = "m" ;

xmdl:valid-range = -5000.,5000. ;

xmdl:-FillValue = -99999999. ;

xmdl:long-name = "OpenLoop Phase Model on L1 channel" ; double xmdldd(time) ;

xmdldd:units = "m" ;

xmdldd:valid-range = -5000.,5000. ;

xmdldd:-FillValue = -99999999. ;

xmdldd:long-name = "OpenLoop Phase Model(DD) on L1 channel" ; double xrng(time) ;

xrng:units = "m" ;

xrng:valid-range = -5000.,5000. ;

xrng:-FillValue = -99999999. ;

xrng:long-name = "OpenLoop Range Model on L1 channel" ; double xmdl2(time) ;

xmdl2:units = "m" ;

xmdl2:valid-range = -5000.,5000. ;

xmdl2:-FillValue = -99999999. ;

xmdl2:long-name = "OpenLoop Phase Model on L2 channel" ; double xmdldd2(time) ;

xmdldd2:units = "m" ;

xmdldd2:valid-range = -5000.,5000. ;

xmdldd2:-FillValue = -99999999. ;

xmdldd2:long-name = "OpenLoop Phase Model(DD) on L2 channel" ; double xrng2(time) ;

xrng2:units = "m" ;

xrng2:valid-range = -5000.,5000. ;

xrng2:-FillValue = -99999999. ;

xrng2:long-name = "OpenLoop Range Model on L2 channel" ;

:occsatId = 37 ;

:setting = 1 ;

:second = 48.780269325 ;

:startTime = 1419732108.78027 ;

:stopTime = 1419732225.99027 ;

:l2min = 5.81f ;

:l2max = 493.61f ;

:occfreq1 = 1561098000. ;

:occfreq2 = 1268520000. ;

:nmax = 11722 ;

:fileStamp = "Y020-GNROI-ORBT-L1-20250101-0201-ANC37" ;:bad = 0 ;

:creation-time = "2025-01-02T01:50:45Z" ;

:refsatId = 25 ;

A.3 绝对总电子含量文件格式样例

绝对总电子含量文件格式样例如下:

netcdf Y020-GNROI-ORBT-L1-20250101-0201-ONC22-V0 {

double time(time) ;

time:valid-range = 0.0,99999.0 ;

time:-FillValue = -99999.0 ;

time:long-name = "Time since start time of ionosphere occultation" ; double TEC(time) ;

TEC:units = "TECU" ;

TEC:valid-range = 0.0,9999.0 ;

TEC:-FillValue = -99999.0 ;

TEC:long-name = "Total electron content of GNSS-LEO link" ; double elevation(time) ;

elevation:units = " (°) " ;

elevation:valid-range = -90.0,90.0 ;

elevation:-FillValue = -99999.0 ;

elevation:long-name = "Elevation" ; double L1Snr(time) ;

L1Snr:units = "dB-Hz" ;

L1Snr:valid-range = 0.0,9999.0 ;

L1Snr:-FillValue = -99999.0 ;

L1Snr:long-name = "L1P observation signal noise radio" ; double L2Snr(time) ;

L2Snr:units = "dB-Hz" ;

L2Snr:valid-range = 0.0,9999.0 ;

L2Snr:-FillValue = -99999.0 ;

L2Snr:long-name = "L2P observation signal noise radio" ; double xLeo(time) ;

xLeo:valid-range = -7378.0,7378.0 ;

xLeo:-FillValue = -99999.0 ;

yLeo:valid-range = -7378.0,7378.0 ;

yLeo:-FillValue = -99999.0 ;

zLeo:valid-range = -7378.0,7378.0 ;

zLeo:-FillValue = -99999.0 ;

zLeo:long-name = "LEO Z position(ECI)" ; double xGnss(time) ;

xGnss:valid-range = -36000.0,36000.0 ;

xGnss:-FillValue = -99999.0 ;

yGnss:valid-range = -36000.0,36000.0 ;

yGnss:-FillValue = -99999.0 ;

zGnss:valid-range = -36000.0,36000.0 ;

zGnss:-FillValue = -99999.0 ;

zGnss:long-name = "GNSS Z position(ECI)" ;

:prnId = 22 ;

:leodcb = 1419732077. ;

:gnssdcb = 1419732470. ;

:tecmin = 1419732077. ;

:tecmax = 1419732470. ;

:lat-tecmax = 50.16 ;

:lon-tecmax = -121.20 ;

:lct-tecmax = 20.28 ;

:fileStamp = "Y020-GNROI-ORBT-L1-20250101-0201-ONC22" ;:inverter = "GROPP" ;

:creation-time = "2025-01-02T01:51:33Z" ;

A.4 电离层廓线文件格式样例

电离层廓线文件格式样例如下:

netcdf Y020-GNROI-ORBT-L2-20250101-0201-INC22-V0 {

MSL-alt = 279 ;

float MSL-alt(MSL-alt) ;

MSL-alt:units = "km" ;

MSL-alt:valid-range = 0.0f,9999.0f ;

MSL-alt:-FillValue = -999999999.0f ;

MSL-alt:long-name = "Mean sea level altitude of perigee point" ; float GEO-lon(MSL-alt) ;

GEO-lon:units = " (°) " ;

GEO-lon:valid-range = -180.0f,180.0f ;

GEO-lon:-FillValue = -999999999.0f ;

GEO-lon:long-name = "Geographical longitude of perigee point" ; float GEO-lat(MSL-alt) ;

GEO-lat:units = " (°) " ;

GEO-lat:valid-range = -90.0f,90.0f ;

GEO-lat:-FillValue = -999999999.0f ;

GEO-lat:long-name = "Geographical latitude of perigee point" ; float OCC-azi(MSL-alt) ;

OCC-azi:units = " (°) " ;

OCC-azi:valid-range = 0.0f,360.0f ;

OCC-azi:-FillValue = -999999999.0f ;

OCC-azi:long-name = "Azimuth angle of occ . plane with respect to north" ; float TEC-cal(MSL-alt) ;

TEC-cal:units = "TECU" ;

TEC-cal:valid-range = -1.0e8f,1.0e8f ;

TEC-cal:-FillValue = -999999999.0f ;

TEC-cal:long-name = "Calibrated occultation TEC below LEO orbit" ; double TEC(MSL-alt) ;

TEC:valid-range = 0.0,1000.0 ;

TEC:-FillValue = -999999999.0 ;

TEC:long-name = "Total electron content" ; double doppler1(MSL-alt) ;

doppler1:units = "Hz" ;

doppler1:valid-range = -1000.0,1000.0 ;

doppler1:-FillValue = -999999999.0 ;

doppler1:long-name = "Additional Doppler at first frequency" ; double doppler2(MSL-alt) ;

doppler2:units = "Hz" ;

doppler2:valid-range = -1000.0,1000.0 ;

doppler2:-FillValue = -999999999.0 ;

doppler2:long-name = "Additional Doppler at second frequency" ; double Impact-parm(MSL-alt) ;

Impact-parm:units = "km" ;

Impact-parm:valid-range = -6200.0,8000.0 ;

Impact-parm:-FillValue = -999999999.0 ;

Impact-parm:long-name = "Impact parameter" ; double bangle(MSL-alt) ;

bangle:units = "rad" ;

bangle:valid-range = -1.0,1.0 ;

bangle:-FillValue = -999999999.0 ;

bangle:long-name = "Bending angle" ;

double ion-Refr(MSL-alt) ;

ion-Refr:units = "N" ;

ion-Refr:valid-range = -500.0,500.0 ;

ion-Refr:-FillValue = -999999999.0 ;

ion-Refr:long-name = "Ionospheric refractivity" ; float ELEC-dens(MSL-alt) ;

ELEC-dens:units = "el/cm3 " ;

ELEC-dens:valid-range = -1.0e8f,1.0e8f ;

ELEC-dens:-FillValue = -999999999.0f ;

ELEC-dens:long-name = "Electron density" ;

:dataName = "ionPrf" ;

:bottime = 1419732082. ;

:botlct = 17.942676617 ;

:botalt = 27.283291457 ;

:botlat = 50.162550915 ;

:botlon = -121.201517395 ;

:botaz = 78.058786755 ;

:edmaxtime = 1419732222. ;

:edmaxlct = 17.916582095 ;

:edmaxalt = 317.613897182 ;

:edmaxlat = 47.091457427 ;

:edmaxlon = -122.176268562 ;

:edmaxaz = 80.168934963 ;

:edmax = 1030385.041194920 ;

:toptime = 1419732452. ;

:toplct = 17.854337343 ;

:topalt = 524.509066865 ;

:toplat = 41.419605907 ;

:toplon = -124.068273173 ;

:topaz = -84.063992629 ;

:critfreq = 9.1131242897433900 ;

:nmax = 279 ;

:fileStamp = "Y020-GNROI-ORBT-L2-20250101-0201-INC22" ;

:qc = 100 ;

:inverter = "GROI" ;

:creation-time = "2025-01-02T01:51:35Z" ;

:refsatId = 22 ;

A.5 干大气廓线文件格式样例

干大气廓线文件格式样例如下:

netcdf Y020-GNROI-ORBT-L2-20250828-0001-ANC29-V0 {

MSL-alt = 6028 ;

double Impact-parm(MSL-alt) ;

Impact-parm:valid-range = 0.0,9999.0 ;

Impact-parm:-FillValue = -9999.0 ;

Impact-parm:long-name = "Impact parameter" ; double Bend-ang(MSL-alt) ;

Bend-ang:units = "rad" ;

Bend-ang:valid-range = 0.0,10.0 ;

Bend-ang:-FillValue = -9999.0 ;

Bend-ang:long-name = "Raw(unoptimized) bending angle" ;

double Bend-ang1(MSL-alt) ; Bend-ang1:units = "rad" ;

Bend-ang1:valid-range = 0.0,10.0 ;

Bend-ang1:-FillValue = -9999.0 ;

Bend-ang1:long-name = "Raw(unoptimized) bending angle on L1 channel" ; double Bend-ang2(MSL-alt) ;

Bend-ang2:units = "rad" ;

Bend-ang2:valid-range = 0.0,10.0 ;

Bend-ang2:-FillValue = -9999.0 ;

Bend-ang2:long-name = "Raw(unoptimized) bending angle on L2 channel" ; double Opt-bend-ang(MSL-alt) ;

Opt-bend-ang:units = "rad" ;

Opt-bend-ang:valid-range = 0.0,10.0 ;

Opt-bend-ang:-FillValue = -9999.0 ;

Opt-bend-ang:long-name = "Optimized bending angle" ; double Bend-ang-stdv(MSL-alt) ;

Bend-ang-stdv:units = "rad" ;

Bend-ang-stdv:valid-range = 0.0,0.01 ;

Bend-ang-stdv:-FillValue = -9999.0 ;

Bend-ang-stdv:long-name = "Bending Angle Standard Deviation" ; float MSL-alt(MSL-alt) ;

MSL-alt:valid-range = 0.0,9999.0 ;

MSL-alt:-FillValue = -9999.0 ;

MSL-alt:long-name = "Mean sea level altitude of perigee point" ; double MSL-alt-Ref(MSL-alt) ;

MSL-alt-Ref:units = "km" ;

MSL-alt-Ref:valid-range = 0.0,9999.0 ;

MSL-alt-Ref:-FillValue = -9999.0 ;

MSL-alt-Ref:long-name = "Refractivity altitude" ; float Ref(MSL-alt) ;

Ref:units = "N" ;

Ref:valid-range = 0.0,9999.0 ;

Ref:-FillValue = -9999.0 ;

Ref:long-name = "Refractivity" ; double Geop-Ref(MSL-alt) ;

Geop-Ref:units = "km" ;

Geop-Ref:valid-range = 0.0,9999.0 ;

Geop-Ref:-FillValue = -9999.0 ;

Geop-Ref:long-name = "Refractivity geopotential height" ; float Ref-stdv(MSL-alt) ;

Ref-stdv:units = "N" ;

Ref-stdv:valid-range = 0.0,50.0 ;

Ref-stdv:-FillValue = -9999.0 ;

Ref-stdv:long-name = "Refractivity Standard Deviation" ; float Temp(MSL-alt) ;

Temp:units = " ℃" ;

Temp:valid-range = —200.0,100.0 ;

Temp:-FillValue = -9999.0 ;

Temp:long-name = "Dry temperature" ; float Pres(MSL-alt) ;

Pres:units = "mb" ;

Pres:valid-range = 0.0,1500.0 ;

Pres:-FillValue = -9999.0 ;

Pres:long-name = "Dry pressure" ; float Dens(MSL-alt) ;

Dens:units = "kg/m3 " ;

Dens:valid-range = 0.0,100.0 ;

Dens:-FillValue = -9999.0 ;

Dens:long-name = "Density" ; float Lon(MSL-alt) ;

Lon:units = " (°) " ;

Lon:valid-range = -180.0,180.0 ;

Lon:-FillValue = -9999.0 ;

Lon:long-name = "Longitude of perigee point" ; float Lat(MSL-alt) ;

Lat:units = " (°) " ;

Lat:valid-range = -90.0,90.0 ;

Lat:-FillValue = -9999.0 ;

Lat:long-name = "Latitude of perigee point" ; float Azim(MSL-alt) ;

Azim:units = " (°) " ;

Azim:valid-range = 0.0,360.0 ;

Azim:-FillValue = -9999.0 ;

Azim:long-name = "Azimuth of occultation plane wrt North" ;

double Geop(MSL-alt) ;

Geop:units = "km" ;

Geop:valid-range = 0.0,9999.0 ;

Geop:-FillValue = -9999.0 ;

Geop:long-name = "Dry geopotential height" ;

double Impact-Height(MSL-alt) ;

Impact-Height:units = "km" ;

Impact-Height:valid-range = 0.0,9999.0 ;

Impact-Height:-FillValue = -9999.0 ;

Impact-Height:long-name = "Impact Height" ;

:dataName = "atmPrf" ;

:occsatId = 29 ;

:duration = 120 ;

:month = 8 ;

:day = 28 ;

:hour = 0 ;

:minute = 2 ;

:second = 5.000279558 ;

:doy = 240 ;

:start-time = 1440374525.00028 ;

:stop-time = 1440374650.99028 ;

:rfict = 6375.153490771 ;

:rgeoid = 0.00215 ;

:curv = 4.383682654,6.779613290,18.579082916 ;

:lat = -34.298787368 ;

:lon = 80.081137789 ;

:azim = 54.738155637 ;

:znid = 9.043335254 ;

:ztop = 147.305987904 ;

:hslbot = -82.623725545 ;

:difmaxion = 0.000109151 ;

:zmaxion = 9.040037453 ;

:difmaxref = 0.051989861 ;

:zmaxref = 11.764050479 ;

:smean = 5.22541076037513e-07 ;

:stdv = 3.96594324889202e-06 ;

:errstr = "" ;

:parmsfile = "parms48" ;

:wave-optics = "full spectrum inversion" ;

:nmax = 10708 ;

:fileStamp = "Y020-GNROI-ORBT-L2-20250828-0001-ANC29" ;:bad = 0 ;

:creation-time = "2025-08-28T05:55:09Z" ;

:refsatId = 21 ;

A.6 湿大气廓线文件格式样例

湿大气廓线文件格式样例如下:

netcdf Y020-GNROI-ORBT-L2-20250828-0001-WNC29-V0 {

MSL-alt = 801 ;

MSL-alt:long-name = "Mean sea level altitude of perigee point" ;

MSL-alt:-FillValue = -9999.0 ; double Temp(MSL-alt) ;

Temp:valid-range = -150.0,100.0 ;

Temp:long-name = "temperature" ;

Temp:-FillValue = -9999.0 ; double Vp(MSL-alt) ;

Vp:units = "mb" ;

Vp:valid-range = 0.0,60.0 ;

Vp:long-name = "H2O vapor pressure" ;

Vp:-FillValue = -9999.0 ; double Shum(MSL-alt) ;

Shum:units = "g/kg" ;

Shum:valid-range = -20.0,50.0 ;

Shum:long-name = "specific humidity" ;

Shum:-FillValue = -9999.0 ; double Geop(MSL-alt) ;

Geop:valid-range = -1.0,100.0 ;

Geop:long-name = "Geopotential height" ;

Geop:-FillValue = -9999.0 ; double Pres(MSL-alt) ;

Pres:valid-range = 0.0,1200.0 ;

Pres:long-name = "Pressure" ;

Pres:-FillValue = -9999.0 ; double Ref(MSL-alt) ;

Ref:valid-range = 0.0,500.0 ;

Ref:long-name = "Analyzed refractivity,consistent with Temp,Vp,and Pres" ;

double Ref-obs(MSL-alt) ;

Ref-obs:units = "N" ;

Ref-obs:valid-range = 0.0,500.0 ;

Ref-obs:long-name = "Observed refractivity,interpolated from the atmPrf file" ;

Ref-obs:-FillValue = -9999.0 ; double Lon(MSL-alt) ;

Lon:long-name = "Longitude,-180 to 180 East" ;

Lon:-FillValue = -9999.0 ; double Lat(MSL-alt) ;

Lat:long-name = "Latitude,-90 to 90 North" ;

:dataName = "wetPrf" ;

:rgeoid = 0.00215;

:fileStamp = "Y020-GNROI-ORBT-L2-20250828-0001-WNC29" ;:bad = 0 ;

:backgroundfile = "GFS" ;

参考 文献

[1] GB/T 33674—2017 气象数据集核心元数据

[2] GB/T 38081—2019 陆地观测卫星 0 级数据格式规范

[3] GB/T 39267—2020 北斗卫星导航术语

[4] GB/T 39397.2—2020 全球连续监测评估系统(iGMAS)文件格式第 2 部分:产品

[5] GB/T 48112—2026 GNSS 掩星数据产品类型及分级

[6] QX/T 137—2011 气象卫星产品分层数据格式

[7] 杨光林,王聪,谭广远,等 . 风云三号(03 批)气象卫星地面应用系统工程 F 星 GNOS-Ⅱ电子密度廓线产品使用说明文档 [Z] . 国家卫星气象中心,2023.

[8] 廖蜜,孟祥广,杨光林,等 . 风云三号(03 批)气象卫星地面系统工程 F 星全球导航系统掩星探测仪掩星大气产品使用说明 [Z] . 国家卫星气象中心,2024.

[9] Jim Ray. RINEX Extensions to Handle Clock Information [EB/OL] .(2017-07-08)[2025-07-03] . https://files.igs.org/pub/data/format/rinex-clock304.txt.

[10] Spofford,P R,Remondi B W . The National Geodetic Survey Standard GPS Format SP3 . (SP3-a format)[EB/OL] .(2001-01)[2025-07-03] . https://files.igs.org/pub/data/format/sp3-docu.txt.

[11] Steve Hilla . The Extended Standard Product 3 Orbit Format(SP3-c)[EB/OL] .(2010-08-17) [2025-07-03] . https://files.igs.org/pub/data/format/sp3c.txt.

[12] Steve Hilla . The Extended Standard Product 3 Orbit Format(SP3-d)[EB/OL] .(2016-02-11) [2025-07-03] . https://files.igs.org/pub/data/format/sp3d.pdf.

[13] RTCM-SC104 . The Receiver Independent Exchange Format Version 3.02 [EB/OL] .(2013-04-03)[2025-07-03] . https://files.igs.org/pub/data/format/rinex302.pdf.

———————————