/// <summary> /// 计算Ping流量 /// </summary> /// <param name="param">参数</param> /// <param name="EastVelocity">船速东向分量</param> /// <param name="NorthVelocity">船速北向分量</param> /// <param name="HeadingOffset">航向角改正值,单位:弧度</param> /// <returns>计算结果</returns> public static EnsembleFlowInfo CalculateEnsembleFlow(CalculateEnsembleFlowParam param, double EastVelocity, double NorthVelocity, double HeadingOffset) { EnsembleFlow flow = new EnsembleFlow(); flow.BottomMode = param.RiverDischargeBottomMode; flow.TopMode = param.RiverDischargeTopMode; flow.Draft = param.RiverDischargeDraft; flow.Exponent = param.RiverDischargeExponent; flow.MinAmplitude = param.RiverDischargeConditions.RiverDischargeMinAmplitude; flow.MinCorrelation = param.RiverDischargeConditions.RiverDischargeMinCorrelation; flow.MinNG3 = param.RiverDischargeConditions.RiverDischargeMinNG3; flow.MinNG4 = param.RiverDischargeConditions.RiverDischargeMinNG4; flow.PulseLag = param.RiverDischargeInstrument.RiverDischargePulseLag; flow.PulseLength = param.RiverDischargeInstrument.RiverDischargePulseLength; flow.BeamAngle = param.RiverDischargeInstrument.RiverDischargeBeamAngle; //LPJ 2013-5-21 将船速采用传递的参数---start EarthVelocity boat = new EarthVelocity(); ////boat.EastVelocity = - param.RiverDischargeOrgData.B_Earth[0]; ////boat.NorthVelocity = - param.RiverDischargeOrgData.B_Earth[1]; //boat.EastVelocity = param.RiverDischargeOrgData.B_Earth[0]; //JZH 2012-04-08 //boat.NorthVelocity = param.RiverDischargeOrgData.B_Earth[1]; //JZH 2012-04-08 boat.EastVelocity = EastVelocity; boat.NorthVelocity = NorthVelocity; //LPJ 2013-5-21 将船速采用传递的参数---end return(flow.CalculateEnsembleFlow(param.RiverDischargeOrgData, boat, param.RiverDischarge_dTime, HeadingOffset)); }
/// <summary> /// 计算表层和底部平均流速 /// </summary> /// <param name="param">参数</param> /// <param name="dTopVx">表层平均流速X分量</param> /// <param name="dTopVy">表层平均流速Y分量</param> /// <param name="dBottomVx">底部平均流速X分量</param> /// <param name="dBottomVy">底部平均流速Y分量</param> public static void CalEnsembleAverageVelocity(CalculateEnsembleFlowParam param, ref double dTopVx, ref double dTopVy, ref double dBottomVx, ref double dBottomVy) { EnsembleFlow flow = new EnsembleFlow(); flow.BottomMode = param.RiverDischargeBottomMode; flow.TopMode = param.RiverDischargeTopMode; flow.Draft = param.RiverDischargeDraft; flow.Exponent = param.RiverDischargeExponent; flow.MinAmplitude = param.RiverDischargeConditions.RiverDischargeMinAmplitude; flow.MinCorrelation = param.RiverDischargeConditions.RiverDischargeMinCorrelation; flow.MinNG3 = param.RiverDischargeConditions.RiverDischargeMinNG3; flow.MinNG4 = param.RiverDischargeConditions.RiverDischargeMinNG4; flow.PulseLag = param.RiverDischargeInstrument.RiverDischargePulseLag; flow.PulseLength = param.RiverDischargeInstrument.RiverDischargePulseLength; flow.BeamAngle = param.RiverDischargeInstrument.RiverDischargeBeamAngle; flow.CalculateAverageVelocity(param.RiverDischargeOrgData, ref dTopVx, ref dTopVy, ref dBottomVx, ref dBottomVy); }