对大气透过率模型进行优化,微调了能见度对透过率的影响参数

This commit is contained in:
Tian jianyong 2024-10-23 17:57:20 +08:00
parent 0f22c7967e
commit 268e241803
2 changed files with 5 additions and 5 deletions

View File

@ -14,7 +14,7 @@ namespace AirTransmission
/// <summary> /// <summary>
/// 标准大气透过率 /// 标准大气透过率
/// </summary> /// </summary>
protected const double STANDARD_TRANSMITTANCE = 0.979; // 标准大气透过率 protected const double STANDARD_TRANSMITTANCE = 0.975; // 标准大气透过率
/// <summary> /// <summary>
/// 标准能见度(公里) /// 标准能见度(公里)
/// </summary> /// </summary>
@ -193,9 +193,9 @@ namespace AirTransmission
if (Visibility >= STANDARD_VISIBILITY) if (Visibility >= STANDARD_VISIBILITY)
factor = 1; factor = 1;
else if (Visibility > 5) else if (Visibility > 5)
factor = Math.Pow(STANDARD_VISIBILITY / Visibility, 0.2); factor = Math.Pow(STANDARD_VISIBILITY / Visibility, 0.25); //0.2
else else
factor = Math.Pow(STANDARD_VISIBILITY / Visibility, 0.3); factor = Math.Pow(STANDARD_VISIBILITY / Visibility, 0.4); //
if (IsDusty) if (IsDusty)
{ {

View File

@ -62,7 +62,7 @@ class Program
TestLaserTransmittance(WeatherType., "晴朗"); TestLaserTransmittance(WeatherType., "晴朗");
TestLaserTransmittance(WeatherType., "小雨", relativeHumidity: 60, precipitation: 2.5, visibility: 5); TestLaserTransmittance(WeatherType., "小雨", relativeHumidity: 60, precipitation: 2.5, visibility: 5);
TestLaserTransmittance(WeatherType., "大雨", relativeHumidity: 90, precipitation: 25, visibility: 2.5); TestLaserTransmittance(WeatherType., "大雨", relativeHumidity: 90, precipitation: 25, visibility: 2.5);
TestLaserTransmittance(WeatherType., "雾", relativeHumidity: 70, visibility: 1); TestLaserTransmittance(WeatherType., "雾", relativeHumidity: 80, visibility: 5);
TestLaserTransmittance(WeatherType., "沙尘", visibility: 0.5); TestLaserTransmittance(WeatherType., "沙尘", visibility: 0.5);
TestLaserTransmittance(WeatherType., "雪天", temperature: -5, relativeHumidity: 80, visibility: 1, precipitation: 2.5); TestLaserTransmittance(WeatherType., "雪天", temperature: -5, relativeHumidity: 80, visibility: 1, precipitation: 2.5);
} }
@ -70,7 +70,7 @@ class Program
// 测试特定天气条件下的激光透过率 // 测试特定天气条件下的激光透过率
static void TestLaserTransmittance(WeatherType type, string description, static void TestLaserTransmittance(WeatherType type, string description,
double temperature = 25, double relativeHumidity = 50, double temperature = 25, double relativeHumidity = 50,
double visibility = 10, double? precipitation = null, double latitude = 30) double visibility = 23, double? precipitation = null, double latitude = 30)
{ {
double[] distances = [0.1, 0.5, 1, 5, 10]; // 测试不同距离(公里) double[] distances = [0.1, 0.5, 1, 5, 10]; // 测试不同距离(公里)