
简介面向全球导航卫星系统测量与工程控制网数据处理人员这份PDF源自《西北水电》2018年第6期详细介绍GAMIT、COSAGPS两套软件联合处理卫星观测数据的完整流程。内容覆盖GAMIT基线解算关键环节更新星历与自转参数表、准备标准观测文件、修改测站信息及数据处理控制文件随后说明COSAGPS的基线质量检验、三维向量网平差、二维联合约束平差、高程拟合等功能并结合某工程C级网实例演示获取国际地球参考框架下空间直角坐标与北京54平面坐标成果的方法。资源为单个PDF文件大小约1.24兆字节浓缩了中国电建西北院高级工程师在高精度控制网项目中的操作要点与质量评估经验适合测绘专业本科生、注册测绘师及工程测量人员研读。目前已有246人学习该资源可帮助读者快速建立从GAMIT基线解算、COSAGPS平差到TBC独立验证的完整技术路径。1. 为什么C级网处理要同时动用GAMIT和COSAGPSC级GNSS控制网是工程测绘里最常遇到的高精度网型之一基线从几公里到四十公里成果要同时满足测图、变形监测和施工放样。只用接收机厂商软件短基线场景通常够用但基线拉长后双差解算策略和精密星历的作用就体现出来了——这也是GAMIT相对精度能达到10^-9量级的核心原因。COSAGPS的价值不在解算而在平差和质量检验它能按国内规范处理GAMIT输出的基线文件最终给出ITRF2008框架下的空间直角坐标和北京54平面成果。两步分开各干各的活听起来不复杂实际操作中从RINEX命名到tables配置、从NRMS阈值到二维约束平差的起算数据选择每一步都有细节值得拆开看。2. GAMIT数据准备与五个必须改的tables文件GAMIT解算的起点不是观测文件本身而是运行环境的完整性。论文里的处理流程中准备数据阶段占了将近一半工作量。先把RINEX文件、星历文件和tables目录准备好后面跑sh_gamit才有意义。2.1 原始观测文件标准化与RINEX命名规则原始观测文件要先转成标准RINEX格式。论文中的数据来自南方银河-1接收机在南方测绘GNSS数据处理软件中完成转换同时把天线高换算到相位中心高度并根据rcvant.dat修正RINEX头文件里的接收机类型、版本和天线类型。这一步的错误比解算参数更容易被忽略——头文件天线类型写错GAMIT解算不会直接报错但成果会带着几厘米的系统偏差。RINEX文件的命名规则有严格约定。GAMIT按文件名识别测站、时段和年份名字不对sh_gamit第一步就会找不到文件。# 命名格式sitedoyn.yyo # site : 测站4字母标识必须小写 # doy : 年积日例如124 # n : 时段号从0开始 # yy : 两位数年份 # 示例2017年第124天第1时段CHNS站观测文件 # chns1240.17o mkdir -p rinex brdc igs cp /raw_data/chns1240.17o ./rinex/ cp /raw_data/brdc1240.17.Z ./brdc/命名中site必须是4位小写字母doy用三位数字补零时段号决定同一测站同一天多个时段文件的区分方式。论文案例观测了4个时段、得到23个观测文件、重复设站率2.3按时段存储是后续分时段解算的前提。目录结构上把rinex、广播星历和精密星历分成三个目录是sh_gamit运行时的默认查找路径不建议改动。2.2 更新tables文件与星历准备GAMIT运行依赖一系列地球物理参数表通过sh_setup命令自动建立tables文件夹后还需要手工更新其中的部分文件。文件名内容更新频率leap.sec闰秒表每年或闰秒调整时luntab.*.J2000月球星历表年度nutabl.*章动表年度soltab.*.J2000太阳星历表年度pole.unso极移序列随地球自转参数更新ut1.unsoUT1-UTC差值随地球自转参数更新svs_exclude.dat不可用卫星列表每次解算前检查这些tables文件可以从UCSD的garner服务器获取实践中的更新方式如下sh_setup -yr 2017 cd /opt/gamit/tables wget ftp://garner.ucsd.edu/archive/garner/gamit/tables/leap.sec wget ftp://garner.ucsd.edu/archive/garner/gamit/tables/pole.unso wget ftp://garner.ucsd.edu/archive/garner/gamit/tables/ut1.unsoleap.sec记录闰秒信息如果过期会破坏观测时刻与UTC的对应关系pole.unso和ut1.unso是地球定向参数直接影响测站坐标解算。svs_exclude.dat用于排除处于机动或信号异常的卫星——比如某颗卫星当天进行轨道机动不把它加进排除列表整段基线解算可能被带偏。论文中的数据准备阶段从CDDIS下载了IGS站观测文件和广播星历brdc1240.17.Z从UCSD的garner服务器下载最终精密星历igs19474.sp3.Z其中1947是GPS周、4是星期几对应2017年5月4日。2.3 五个关键文件的作用与配置要点在工程目录下运行sh_setup之后tables文件夹内需要手工确认以下5个文件它们共同决定了基线解算的走向。station.info维护测站名、接收机类型、天线类型和天线高的时段信息。GAMIT根据它识别RINEX文件里测站的物理配置多时段观测时如果中间换过天线必须在station.info中分段登记。sites.defaults定义测站坐标的初始值。长基线解算中初始坐标偏差过大会影响整周模糊度固定通常做法是把RINEX头文件里的近似坐标填进去论文中提到lfile.中的坐标来自RINEX头文件sites.defaults的取值原则类似。sestbl.是解算策略控制文件观测值类型、模糊度固定方式论文中的LC_Help、对流层模型、电离层处理策略都在这里配置。注意sestbl.在不同GAMIT版本中文件名可能带后缀需要和sh_gamit的默认读取逻辑对齐。process.defaults定义数据处理的全局参数包括精密星历路径、解算方式RELAX.或BASELINE。做控制网时选BASELINE即可涉及全球网或长时间序列分析才需要RELAX.模式。lfile.是测站坐标初始文件GAMIT平差时以此为基准。论文中lfile.的坐标来自RINEX头文件说明可以从RINEX头文件批量提取生成。这5个文件互相联动。station.info不更新GAMIT会误判天线类型sestbl.没设置LC_Help默认策略可能与预期精度不符lfile.坐标精度太差模糊度固定成功率会明显下降。每次开始新项目时把这5个文件按顺序过一遍比日后回头排查错误高效得多。提示每次解算新项目前先对比本地tables和服务器上的最新版本这个习惯能避免用过期闰秒表和过期极移参数跑出看似正常其实带偏差的结果。3. 执行sh_gamit解算基线并读懂NRMS指标数据准备完成之后基线解算本身是一个黑盒运行过程。GAMIT的集成命令sh_gamit把读取RINEX、预处理、基线解算、输出结果的流程串起来一行命令跑完但命令参数和输出文件的理解才是这一章的关键。3.1 sh_gamit命令的运行方式与参数含义在工程目录下执行cd /path/to/project sh_gamit -d 2017124 -orbit IGSF-d参数指定年积日2017124表示2017年第124天-orbit IGSF表示使用IGS最终精密星历GAMIT会自动去igs目录读取igs19474.sp3.Z文件。如果是广播星历解算可以改相应参数但论文案例使用最终精密星历基线的相对精度和模糊度固定率都更有保证。解算完成后工程目录下会生成oexpta.doy文件文件名中的124对应年积日所有基线的解算结果和统计信息都在这个文件里。如果需要处理多个时段重复执行sh_gamit并修改-d参数即可。for doy in 124 125 126 127; do sh_gamit -d 2017$doy -orbit IGSF done这个循环按天调用sh_gamit每次运行都会重新读取tables和星历耗时较长但无需人工干预。注意不同时段之间如果测站有开关机或天线变动需要在station.info中提前登记清楚。3.2 基线解算的参数设置与LC_Help选择论文中C级网的解算参数为采样间隔15秒、高度截止角15°、基线解算方式LC_Help、星历类型最终精密星历。这些参数写在sestbl.中。采样间隔15秒与采集时保持一致。高度截止角从采集时的10°提高到15°是为了剔除低高度角卫星——低高度角信号受对流层延迟和多路径影响更大观测冗余度降低后残差往往集中在这些卫星上。数据采集阶段保留10°是为了捕获更多卫星后处理阶段提高5°是在观测质量和解算稳健性之间做取舍。LC_Help是GAMIT中的一种解算策略LC指消电离层组合观测值Help表示在处理过程中启用自动周跳修复与模糊度固定的辅助模式。相比LC_AUTCLNLC_Help在遇到长基线或电离层活跃时段时给人工检查留出了更多干预空间。论文中的基线长度跨度5.05到41.67公里属于中长基线混合网采用LC_Help可以在模糊度固定失败时通过调整个别卫星的处理方式重新解算。3.3 NRMS解读oexpta.doy中的质量指标NRMS是GAMIT基线质量评估中最常看的指标。它体现在oexpta.doy文件的Postfit nrms项中查看方式grep Postfit nrms oexpta.doyPostfit nrms 0.196NRMS是标准化均方根误差反映观测值与平差模型之间的整体吻合程度。国内外GNSS数据处理的经验阈值是0.3NRMS区间判读处理建议小于0.2优秀直接进入COSAGPS平差0.20.3合格检查是否有余留周跳大于0.3不合格回到sestbl.调整解算策略或重新处理论文中4个时段的Postfit nrms分别为0.196、0.196、0.191、0.186全部在0.2以内且四个时段之间高度一致。这个一致性本身也是质量信号——如果某一天NRMS突然跳到0.35而前一天还是0.18优先怀疑当天观测数据在某个时段存在异常而不是整体参数出了问题。NRMS是归一化指标不受基线长度和观测值数量的影响可以在不同网型间直接比较。这也是为什么适合作为第一道质量门槛——在进入COSAGPS之前先把NRMS不合格的时段重新解算而不是把问题带到平差阶段。4. COSAGPS后处理从基线文件到北京54平面成果GAMIT负责算基线COSAGPS负责把基线成果按中国规范做质量检验和平差最终输出可用的坐标成果。这一章跟着论文案例走一遍COSAGPS的操作主线。4.1 从GAMIT到COSAGPS的数据交接COSAGPS不能直接读取GAMIT默认输出的oexpta.doy文件需要先在这个文件末尾添加一行识别标志。# 假设oexpta.doy位于当前GAMIT工程目录下 echo COSAGPS FOR GAMIT O-FILE oexpta.doy这行标志让COSAGPS按GAMIT的基线输出格式解析文件内容。没有它COSAGPS读取基线时会报格式错误或直接跳过基线向量。实际项目中我一般会在跑完sh_gamit后立即执行这条命令避免后续在文件堆里找不全每个时段的oexpta.doy。4.2 三维向量网平差的操作要点打开COSAGPS后按论文流程走新建工程、设置坐标系为WGS84、输入三维已知坐标。已知坐标来自与IGS站联测的成果——论文中第1时段将CHNS、WQKY与BJFS、LHAZ、ULAB、URUM四个IGS站联测计算出这两个点在ITRF2008框架2017.3370历元下的空间直角坐标作为三维平差的起算数据。仪器误差设置为5mm1ppm对应接收机标称精度。5mm是固定误差1ppm是比例误差基线每增长1公里增加1mm误差。这个参数要如实填写因为它参与方差分量估计直接影响最弱点位中误差的数值。案例中三维平差后的最弱点位中误差为±8.4mm、最弱边长中误差为1/3029000量级与该网规模匹配。三维平差前必须完成两项检验环闭合差检验和重复基线差检验。所有异步环闭合差要在限差范围内重复设站的基线互差也要满足规范要求。这两项检验在COSAGPS中通过菜单操作即可完成但需要先分时段读取同步基线并生成同步基线文件。COSAGPS操作序列 1. 新建工程设置WGS84坐标系统 2. 输入三维已知坐标 3. 分时段读取同步基线形成同步基线文件 4. 环闭合差检验 5. 重复基线差检验 6. 三维向量网平差 7. 二维联合/约束平差 8. GPS高程拟合分时段读取同步基线和一次性读取全部基线不一样。分时段读取可以让COSAGPS在每个时段内识别同步观测基线同步环和异步环的判定才准确交叉时段基线在后续二维约束平差中才会被正确处理。4.3 北京54坐标系下的二维约束平差三维平差成果合格后进入坐标系转换和二维约束平差。论文案例的操作是将坐标系统改为北京54设置中央子午线经度102°输入CHNS和SZXB两点的北京54平面坐标执行约束平差。起算点选择是关键决策。CHNS通过与IGS站联测获得了高精度空间坐标SZXB作为网中另一个控制点两者分居网的两端形成对整个网形的控制。二维约束平差后最弱点位中误差为±2.3mm、最弱边长中误差为1/5016000比三维平差指标更好原因是约束平差引入了起算点的平面坐标约束高程维度被固定平面解的分量更集中。中央子午线的选择要与测区实际经度匹配。论文中库区位于黄河上游中央子午线102°是该区域的3度带中央经线。如果选错带号平面坐标会出现明显的系统性偏移这种错误在TBC验证时会被立刻发现但更稳妥的做法是在平差前就通过已有测区成果反算中央子午线。4.4 框架认定与成果输出论文中强调了一点GAMIT解算的基线向量属于ITRF2014框架精密星历文件第一行的ORBIT IGS14表明轨道坐标系统为IGS14但由于IGS14源于ITRF2014而ITRF2014与ITRF2008在2010.0历元具有相同的坐标原点、尺度和定向因此基线成果可以认定为ITRF2008当天历元。这个框架认定的意义在于后续如果需要2000国家大地坐标系成果可以通过框架历元综合变换将ITRF2008当天历元坐标变换到ITRF97框架2000.0历元坐标再转换到CGCS2000。整套链路在COSAGPS中都有对应功能但框架关系要在分析成果时保持一致不要在同一个报告中混用框架名称。5. 用TBC做交叉验证的工程落地细节交叉验证是GNSS控制网数据处理中最容易被省略的一步尤其当主处理软件是GAMIT这种科研级工具时很多人认为不需要再验证。论文用Trimble Business CenterTBC做了完整对照这种做法在高精度控制网中值得借鉴。5.1 GAMIT与TBC的参数设定对照TBC基线解算参数设置为广播星历、固定解、双频L1L2、采样间隔15s、高度截止角15°。与GAMIT相比两套方案的独立性体现在星历和组合方式上。参数GAMITTBC采样间隔15s15s高度截止角15°15°星历IGS最终精密星历广播星历解算方式LC_Help消电离层组合L1L2双频固定解坐标系统ITRF2014认定ITRF2008WGS84TBC采用广播星历和双频固定解处理速度快短中基线精度足够GAMIT采用最终精密星历和消电离层组合对长基线的电离层延迟消除更彻底。两种方案独立解算网平差时再使用相同的坐标系统和起算数据这样才能形成有效对照。如果TBC也用IGS最终精密星历验证的独立性会打折扣——共享星历会把星历误差带入两套成果互差变小只是假象。5.2 成果互差的判读方法论文表1给出了8个点的互差数据最大8.6mm出现在KSZ7点最小1.8mm在YQ01点。判读互差时要看dx、dy分量的分布而不是只看dr点名dx/mmdy/mmdr/mmBCTD0.25.35.3FESL1.94.95.3GK040.63.93.9KSZ73.67.88.6KZ213.03.94.9LYC22.91.73.4WQKY2.03.23.8YQ011.80.01.8从分量看大部分点的dy大于dx说明两套成果在南北方向存在一定系统差这通常与起算数据或投影变形有关而不是随机误差主导。实际操作中把dx、dy标在网形图上如果差异有明显方向性优先检查中央子午线选择和已知点坐标的兼容性如果差异离散且没有规律再回头检查GAMIT的NRMS和COSAGPS的环闭合差检验记录。5.3 一套可复用的验证流程结合论文案例可复用的交叉验证步骤是先用TBC导入相同RINEX文件设置好坐标系统和起算数据后输出各点独立平差成果然后在同一个坐标系下与GAMIT-COSAGPS成果逐点求差最后按分量标记差异判断是否存在方向性。把每个点的dx、dy单独标在网形图上比只统计最大互差更有价值——它能直观暴露系统偏差的方向和量级帮助在提交成果前发现坐标框架或投影参数上的隐患。论文中8.6mm的互差落在C级网限差要求内这个量级说明GAMIT和COSAGPS的联合处理没有引入异常的系统误差。真正需要留意的是验证时两套软件必须使用相同的坐标系统和起算数据否则互差会混入坐标框架差8.6mm的结论就失去了意义。本文还有配套的精品资源点击获取