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

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

View File

@ -62,7 +62,7 @@ class Program
TestLaserTransmittance(WeatherType., "晴朗");
TestLaserTransmittance(WeatherType., "小雨", relativeHumidity: 60, precipitation: 2.5, visibility: 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., "雪天", temperature: -5, relativeHumidity: 80, visibility: 1, precipitation: 2.5);
}
@ -70,7 +70,7 @@ class Program
// 测试特定天气条件下的激光透过率
static void TestLaserTransmittance(WeatherType type, string description,
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]; // 测试不同距离(公里)