Exemple #1
0
 /// <summary>
 /// 高度校正
 /// </summary>
 /// <param name="fac">自空校正对象</param>
 static void DoHeightCorrection(FreeAirCorrection fac)
 {
     fac.HeightCorrection = 0.3086 * (1 + 0.0007 * Math.Cos(2 * Radian(fac.Latitude))) * fac.Height - 7.2e-8 * fac.Height * fac.Height;
 }
Exemple #2
0
 /// <summary>
 /// 计算正常重力
 /// </summary>
 /// <param name="fac">自空校正对象</param>
 /// <param name="choice">校正方法</param>
 static void CalculateNormalGravity(FreeAirCorrection fac, int choice)
 {
     double a = 0.0, b = 0.0, c = 0.0;
     switch (choice)
     {
         case 1://(1)1901-1909年的赫尔默特(R.Helment)公式
             a = 978030.00; b = 0.005302; c = 0.000007;
             break;
         case 2://(2)1930年卡西尼(Cassinis)国际正常重力公式
             a = 978049.00; b = 0.0052884; c = 0.0000059;
             break;
         case 3://(3)1971年国际正常重力公式
             a = 978031.80; b = 0.0053024; c = 0.0000059;
             break;
         case 4://(4)1979年IUGG确定的正常重力公式
             a = 978032.70; b = 0.0053024; c = 0.000005;
             break;
         default:
             throw new Exception("公式编号不正确!");
     }
     fac.NormalGravity = a * (1 + b * Math.Sin(Radian(fac.Latitude)) * Math.Sin(Radian(fac.Latitude)) - c * Math.Sin(2 * Radian(fac.Latitude)));
 }