最近有幸和自动化监测领域权威专家进行交流,讨论到全站仪气象改正的问题,因为有些观点与专家不太一致,所以再次温习了一下全站仪气象改正的技术细节。
-
气象改正的概念
全站仪一般利用光波进行测距,首先仪器会处理测距光波的相位漂移引起的测距误差。但实际应用中因为光波在大气中穿透受大气温度、气压、大气成分变化(特别是二氧化碳浓度影响)、密度、大气湿度等客观条件的影响,所测距离要经过相关气象条件改正才能得到正确的真值。一般情况下只改正大气温度、大气气压和大气湿度对测距的影响。
-
气象改正的公式
以上公式引用于徕卡TS16用户手册
-
GEOCOM气象改正代码
/// <summary>/// 设置气象参数/// </summary>/// <param name="Lambda"> Wave length of the EDM transmitter [m] 通常为0.000000658</param>/// <param name="Pressure"> Atmospheric pressure [mbar]</param>/// <param name="DryTemperature">Dry temperature [°C]</param>/// <param name="WetTemperature">Wet temperature [°C]</param>/// <returns></returns>public GeoComResult TMC_SetAtmCor(double Lambda, double Pressure,double DryTemperature, double WetTemperature){onSendMessage("TMC_SetAtmCor");string req = createRequest(2028, Lambda + "," + Pressure + "," + DryTemperature + "," + WetTemperature);GeoComResult result = senCommond(req);if (result != null){result.CommondName = "TMC_SetAtmCor";}return result;}/// <summary>/// 获取气象参数/// </summary>/// <returns></returns>public GeoComResult TMC_GetAtmCorr(ref TMC_ATMOS_TEMPERATURE tMC_ATMOS_TEMPERATURE){onSendMessage("TMC_GetAtmCorr");string req = createRequest(2029, "");GeoComResult result = senCommond(req);if (result != null){result.CommondName = "TMC_GetAtmCorr";if (result.RC == RETURN_CODES.RC_OK){tMC_ATMOS_TEMPERATURE = new TMC_ATMOS_TEMPERATURE();tMC_ATMOS_TEMPERATURE.Lambda = double.Parse(result.Result[0]);tMC_ATMOS_TEMPERATURE.Pressure = double.Parse(result.Result[1]);tMC_ATMOS_TEMPERATURE.DryTemperature = double.Parse(result.Result[2]);tMC_ATMOS_TEMPERATURE.WetTemperature = long.Parse(result.Result[3]);}}return result;}
-
总结
精密测量场景下,气象变化带来的测距误差必须进行消除(相同气压和湿度情况下,每公里可达1MM/°C)。监测场景下,长时间的开展监测,环境气象变化比较大会导致误判,此外进行多站联测务必保证绝对精度,气象改正不可忽略。