82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# 大气透过率计算库
|
|
|
|
## 项目简介
|
|
|
|
大气透过率计算库是一个用于模拟和计算各种电磁波(包括激光、红外线、毫米波和紫外线)在不同大气条件下透过率的工具。本项目考虑了多种天气因素和大气湍流的影响,为光学和通信系统的设计与分析提供了有力支持。
|
|
|
|
## 功能特性
|
|
|
|
- 支持多种电磁波类型:激光、红外线、毫米波和紫外线
|
|
- 激光 (1.06μm)
|
|
- 红外 (3-12μm)
|
|
- 紫外 (0.2-0.4μm)
|
|
- 毫米波 (94GHz)
|
|
- 考虑多种天气条件:晴天、雨天、雪天、雾天、沙尘天气
|
|
- 模拟大气湍流对光传输的影响
|
|
- 计算烟幕对透过率的影响
|
|
- 灵活配置传输距离和天气参数
|
|
- 提供详细的计算过程和结果输出
|
|
|
|
## 安装说明
|
|
|
|
1. 确保您的系统已安装 .NET 7 或更高版本。
|
|
2. 克隆此仓库到本地机器: ```
|
|
git clone https://github.com/11429339/atmospheric-transmittance-model.git ```
|
|
3. 进入项目目录: ```
|
|
cd atmospheric-transmittance-model ```
|
|
4. 编译项目: ```
|
|
dotnet build ```
|
|
|
|
## 快速开始
|
|
|
|
```csharp
|
|
// 创建天气条件
|
|
var weather = new WeatherCondition(
|
|
type: WeatherType.晴天, // 天气类型
|
|
temperature: 20, // 温度(℃)
|
|
relativeHumidity: 0.45, // 相对湿度
|
|
visibility: 23000, // 能见度(米)
|
|
precipitation: 0 // 降雨量(mm/h)
|
|
);
|
|
|
|
// 计算激光透过率
|
|
double distance = 1000; // 1000米
|
|
double transmittance = AtmosphericTransmittanceCalculator.CalcLaser(weather, distance);
|
|
Console.WriteLine($"激光透过率: {transmittance:F4}");
|
|
```
|
|
|
|
## 项目结构
|
|
|
|
- `AtmosphericTransmittanceCalculator.cs`: 主要的计算接口
|
|
- `TransmittanceModel.cs`: 透过率模型的基类
|
|
- `LaserTransmittanceModel.cs`: 激光透过率模型
|
|
- `IRTransmittanceModel.cs`: 红外线透过率模型
|
|
- `MillimeterWaveTransmittanceModel.cs`: 毫米波透过率模型
|
|
- `UVTransmittanceModel.cs`: 紫外线透过率模型
|
|
- `AtmosphericTurbulenceModel.cs`: 大气湍流模型
|
|
- `SmokeTransmittanceModel.cs`: 烟幕透过率模型
|
|
|
|
## 版本历史
|
|
|
|
- 1.0.0 (2024-10-13): 初始版本发布
|
|
- 1.1.0 (2025-01-07): 添加湍流模型
|
|
- 1.2.0 (2025-03-10): 添加烟幕模型
|
|
|
|
## 作者
|
|
|
|
田建勇
|
|
|
|
## 许可证
|
|
|
|
本项目采用 MIT 许可证。
|
|
|
|
## 联系方式
|
|
|
|
如有任何问题或建议,请通过以下方式联系我们:
|
|
|
|
- 电子邮件:<11429339@qq.com>
|
|
|
|
## 致谢
|
|
|
|
感谢所有为本项目做出贡献的开发者和研究人员。
|