对大气透过率模型进行优化,微调了能见度对透过率的影响参数
This commit is contained in:
parent
0f22c7967e
commit
268e241803
@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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]; // 测试不同距离(公里)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user