计算海洋水深,盐度

#根据纬度,水压计算水深

public static double getData(double latitude, double pWater)
        { 
            double x = Math.Pow(Math.Sin(latitude / 57.29578), 2);
            //Console.WriteLine(x);
            double g = 9.780318 * (1.0 + (5.2788 * Math.Pow(10, -3) + 2.36 * Math.Pow(10, -5) * x) * x) + 1.092 * Math.Pow(10, -6) * pWater;
            double depth = ((((-1.82 * Math.Pow(10, -15) * pWater + 2.279 * Math.Pow(10, -10)) * pWater - 2.2512 * Math.Pow(10, -5)) * pWater + 9.72659) * pWater) / g;

            return depth;
        }

#根据温度和电导率计算出盐度
其中传入的温度是90年温标下得出的温度,而我需要用68年的温标。不需要转换请自行去掉第二行代码

public static double getSalinity(double temperature, double conductivity)
        {
            double R = conductivity / 42.914;
            //90年温标转为68年温标
            double tempt68 = temperature * 1.00024;
            double rt = 0.6766097 + 0.0200564 * tempt68 + 0.0001104259 * tempt68 * tempt68 - 0.00000069698 * tempt68 * tempt68 * tempt68 + 0.0000000010031 * tempt68 * tempt68 * tempt68 * tempt68;
            double RT = R / rt;
            double RT2 = RT * RT;
            double SQRTRT = Math.Sqrt(RT);
            double sal12 = 0.008 - 0.1692 * SQRTRT + 25.3851 * RT + 14.0941 * SQRTRT * RT - 7.0261 * RT2 + 2.7081 * RT2 * SQRTRT;
            double a = (tempt68 - 15) / (1 + 0.0162 * (tempt68 - 15));
            double sal2 = (0.0005 - 0.0056 * SQRTRT - 0.0066 * RT - 0.0375 * SQRTRT * RT + 0.0636 * RT2 - 0.0144 * RT2 * SQRTRT) * a;
            double sail68 = sal12 + sal2;
            return sail68;

        }
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值