From 305ab5c526ce5eab494ab71c45ac591afe4de2b0 Mon Sep 17 00:00:00 2001 From: Tian jianyong <11429339@qq.com> Date: Mon, 30 Dec 2024 18:41:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A=EF=BC=8C?= =?UTF-8?q?=E7=94=9F=E6=88=90=20API=20=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 7 +- api_doc.pdf | Bin 0 -> 211700 bytes docfx.json | 63 ++++ docfx.pdf.json | 28 ++ docs/custom.css | 43 +++ docs/generate_pdf.md | 145 +++++++ docs/introduction.md | 40 ++ docs/toc.yml | 25 ++ docs/usage_examples.md | 165 ++++++++ filterConfig.yml | 10 + log.txt | 0 src/AirTransmission/AirTransmission.xml | 355 ++++++++++++++++-- .../AtmosphericTransmittanceCalculator.cs | 10 +- .../AtmosphericTurbulenceModel.cs | 14 +- src/AirTransmission/IRTransmittanceModel.cs | 93 ++++- .../LaserTransmittanceModel.cs | 32 +- .../MillimeterWaveTransmittanceModel.cs | 32 +- src/AirTransmission/TransmittanceModel.cs | 27 +- src/AirTransmission/UVTransmittanceModel.cs | 40 +- src/AirTransmission/WeatherCondition.cs | 38 +- src/AirTransmissionConsole/Program.cs | 7 +- toc.yml | 2 + 22 files changed, 1116 insertions(+), 60 deletions(-) create mode 100644 api_doc.pdf create mode 100644 docfx.json create mode 100644 docfx.pdf.json create mode 100644 docs/custom.css create mode 100644 docs/generate_pdf.md create mode 100644 docs/introduction.md create mode 100644 docs/toc.yml create mode 100644 docs/usage_examples.md create mode 100644 filterConfig.yml create mode 100644 log.txt create mode 100644 toc.yml diff --git a/.gitignore b/.gitignore index 2b97d60..3b167d1 100644 --- a/.gitignore +++ b/.gitignore @@ -48,4 +48,9 @@ Thumbs.db # 其他 *.swp *.*~ -project.lock.json \ No newline at end of file +project.lock.json + +# 文档 +_site/ +_site_pdf/ +api/ diff --git a/api_doc.pdf b/api_doc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..93e5ea0cf684319ba811c6675beef50decafbf87 GIT binary patch literal 211700 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 IpHZOuKTln4MgRZ+ literal 0 HcmV?d00001 diff --git a/docfx.json b/docfx.json new file mode 100644 index 0000000..73d8816 --- /dev/null +++ b/docfx.json @@ -0,0 +1,63 @@ +{ + "metadata": [ + { + "src": [ + { + "files": [ + "src/**.csproj" + ] + } + ], + "dest": "api", + "disableGitFeatures": false, + "disableDefaultFilter": false + } + ], + "build": { + "content": [ + { + "files": [ + "api/**.yml", + "api/index.md" + ] + }, + { + "files": [ + "docs/**.md", + "docs/**/toc.yml", + "toc.yml", + "*.md" + ] + } + ], + "resource": [ + { + "files": [ + "images/**" + ] + } + ], + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "dest": "_site", + "globalMetadataFiles": [], + "fileMetadataFiles": [], + "template": [ + "default" + ], + "postProcessors": [], + "noLangKeyword": false, + "keepFileLink": false, + "cleanupCacheHistory": false, + "disableGitFeatures": false + } +} \ No newline at end of file diff --git a/docfx.pdf.json b/docfx.pdf.json new file mode 100644 index 0000000..0f59aff --- /dev/null +++ b/docfx.pdf.json @@ -0,0 +1,28 @@ +{ + "pdf": { + "content": [ + { + "files": [ + "api/**.yml", + "docs/usage_examples.md" + ], + "exclude": [ + "**/toc.yml", + "**/toc.md" + ] + } + ], + "name": "AirTransmission-API-Doc", + "title": "大气传输计算库 API 文档", + "coverPage": { + "title": "大气传输计算库", + "author": "田建勇", + "version": "v1.0.0", + "date": "2024年3月" + }, + "wkhtmltopdf": { + "additionalArguments": "--enable-local-file-access" + }, + "outputFolder": "_site_pdf" + } +} \ No newline at end of file diff --git a/docs/custom.css b/docs/custom.css new file mode 100644 index 0000000..3a80fb0 --- /dev/null +++ b/docs/custom.css @@ -0,0 +1,43 @@ +/* 隐藏目录切换按钮 */ +.sideaffix, +.sidetoc, +.toc-filter, +#toc_filter_input, +.toc-toggle, +button[data-toggle="toc"] { + display: none !important; +} + +/* 隐藏导航按钮 */ +.mobile-hide { + display: none !important; +} + +/* 隐藏顶部导航栏 */ +.navbar { + display: none !important; +} + +/* 隐藏面包屑导航 */ +.subnav { + display: none !important; +} + +/* 移除文档内容的左边距 */ +.article { + margin-left: 0 !important; +} + +/* 隐藏页脚 */ +.footer { + display: none !important; +} + +/* 隐藏所有导航相关元素 */ +.nav, +.nav-tabs, +.navigation, +.pull-right, +.toggle-mode { + display: none !important; +} \ No newline at end of file diff --git a/docs/generate_pdf.md b/docs/generate_pdf.md new file mode 100644 index 0000000..7be4526 --- /dev/null +++ b/docs/generate_pdf.md @@ -0,0 +1,145 @@ +# 生成 API 文档 PDF 指南 + +本文档说明如何将 API 文档转换为 PDF 格式。 + +## 前提条件 + +1. 安装 DocFX + + ```bash + dotnet tool install -g docfx + ``` + +2. 安装 wkhtmltopdf +从官方网站下载并安装: + +## 生成步骤 + +1. 首先生成 API 文档的 HTML 文件: + + ```bash + docfx build docfx.json + ``` + + 这会在 `_site` 目录下生成 HTML 文档。 + +2. 使用 wkhtmltopdf 将 HTML 文件转换为 PDF: + + ```bash + wkhtmltopdf --enable-local-file-access \ + _site/api/AirTransmission.html \ + _site/api/AirTransmission.WeatherType.html \ + _site/api/AirTransmission.WeatherCondition.html \ + _site/api/AirTransmission.AtmosphericTransmittanceCalculator.html \ + api_doc.pdf + ``` + +## PDF 格式优化选项 + +如果需要优化 PDF 输出效果,可以添加以下 wkhtmltopdf 参数: + +1. 页面大小和方向: + + ```bash + --page-size A4 --orientation Portrait + ``` + +2. 页边距(单位:毫米): + + ```bash + --margin-top 20 --margin-bottom 20 --margin-left 20 --margin-right 20 + ``` + +3. 添加页眉页脚: + + ```bash + --header-center "[page]/[topage]" \ + --header-line \ + --footer-center "大气传输计算库 API 文档" \ + --footer-line \ + --footer-spacing 10 \ + --footer-font-size 8 + ``` + +4. 封面和目录: + + ```bash + cover _site/docs/introduction.html \ + toc --toc-header-text "目录" + ``` + +5. 自定义样式: + + ```bash + --user-style-sheet docs/custom.css + ``` + + 自定义样式文件 `custom.css` 的内容: + ```css + /* 隐藏目录切换按钮 */ + .sideaffix { + display: none !important; + } + + /* 隐藏导航按钮 */ + .mobile-hide { + display: none !important; + } + + /* 隐藏顶部导航栏 */ + .navbar { + display: none !important; + } + + /* 隐藏面包屑导航 */ + .subnav { + display: none !important; + } + + /* 移除文档内容的左边距 */ + .article { + margin-left: 0 !important; + } + + /* 隐藏页脚 */ + .footer { + display: none !important; + } + ``` + +完整的优化命令示例: + +```bash +wkhtmltopdf \ + --enable-local-file-access \ + --page-size A4 \ + --orientation Portrait \ + --margin-top 20 \ + --margin-bottom 20 \ + --margin-left 20 \ + --margin-right 20 \ + --header-center "[page]/[topage]" \ + --header-line \ + --footer-center "大气传输计算库 API 文档" \ + --footer-line \ + --footer-spacing 10 \ + --footer-font-size 8 \ + --user-style-sheet docs/custom.css \ + cover _site/docs/introduction.html \ + toc --toc-header-text "目录" \ + _site/docs/usage_examples.html \ + _site/api/AirTransmission.html \ + _site/api/AirTransmission.WeatherType.html \ + _site/api/AirTransmission.WeatherCondition.html \ + _site/api/AirTransmission.AtmosphericTransmittanceCalculator.html \ + api_doc.pdf +``` + +## 注意事项 + +1. 确保所有的 HTML 文件都已经正确生成 +2. 如果遇到路径问题,请使用完整的文件路径 +3. 如果文档包含中文,确保系统安装了相应的中文字体 +4. 生成的 PDF 文件默认保存在当前目录下 +5. 封面页不会显示页眉和页脚 +6. 自定义样式可以隐藏不需要的 HTML 元素 diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 0000000..a7ad935 --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1,40 @@ +# 大气传输计算库 + +## 简介 + +大气传输计算库(AirTransmission)是一个用于计算大气传输特性的 .NET 类库。它提供了一系列工具和模型,用于计算不同天气条件下的大气透过率和大气湍流影响。 + +### 主要功能 + +1. 大气透过率计算 + - 支持多种波长范围(紫外、可见光、红外、毫米波) + - 考虑多种天气条件(晴天、多云、雨天等) + - 计算不同传输距离的影响 + +2. 大气湍流模型 + - 计算大气湍流强度 + - 评估湍流对传输的影响 + +3. 天气条件模型 + - 温度、湿度、气压等参数的综合影响 + - 能见度和天气类型的影响 + +### 适用场景 + +- 激光传输系统设计 +- 光电设备性能评估 +- 大气光学研究 +- 气象影响分析 + +### 技术特点 + +- 基于 .NET 8.0 开发 +- 支持跨平台运行 +- 提供 C# 原生支持 +- 通过 C++/CLI 包装器支持 C++ 调用 +- 完整的 API 文档和使用示例 + +### 版本信息 + +- 版本:1.0.0 +- 发布日期:2024年10月 diff --git a/docs/toc.yml b/docs/toc.yml new file mode 100644 index 0000000..0fae9eb --- /dev/null +++ b/docs/toc.yml @@ -0,0 +1,25 @@ +- name: 使用示例 + href: usage_examples.md +- name: 大气透过率计算器 + href: api/AirTransmission.AtmosphericTransmittanceCalculator.yml +- name: 天气条件 + href: api/AirTransmission.WeatherCondition.yml +- name: 传输模型 + items: + - name: 基础模型 + href: api/AirTransmission.TransmittanceModel.yml + - name: 激光传输模型 + href: api/AirTransmission.LaserTransmittanceModel.yml + - name: 红外传输模型 + href: api/AirTransmission.IRTransmittanceModel.yml + - name: 紫外传输模型 + href: api/AirTransmission.UVTransmittanceModel.yml + - name: 毫米波传输模型 + href: api/AirTransmission.MillimeterWaveTransmittanceModel.yml +- name: 大气湍流模型 + href: api/AirTransmission.AtmosphericTurbulenceModel.yml +- name: API 文档 + href: api/ + homepage: api/AirTransmission.html +- name: PDF 生成指南 + href: generate_pdf.md \ No newline at end of file diff --git a/docs/usage_examples.md b/docs/usage_examples.md new file mode 100644 index 0000000..8a41a32 --- /dev/null +++ b/docs/usage_examples.md @@ -0,0 +1,165 @@ +# 使用示例 + +本文档提供了使用大气传输计算库的 C# 和 C++ 示例代码。 + +## C# 示例 + +### 基本使用 + +```csharp +using AirTransmission; + +// 创建天气条件 +var weather = new WeatherCondition +{ + Temperature = 20, // 温度(摄氏度) + Humidity = 0.65, // 相对湿度(0-1) + Pressure = 101.325, // 大气压力(kPa) + Visibility = 10000, // 能见度(米) + WeatherType = WeatherType.Clear // 天气类型 +}; + +// 创建大气透过率计算器 +var calculator = new AtmosphericTransmittanceCalculator(); + +// 计算激光透过率 +double wavelength = 1.064; // 波长(微米) +double distance = 1000; // 传输距离(米) +double transmittance = calculator.CalculateTransmittance(wavelength, distance, weather); + +Console.WriteLine($"激光透过率: {transmittance:P2}"); +``` + +### 高级用法 + +```csharp +// 计算不同天气条件下的透过率 +var weatherConditions = new[] +{ + new WeatherCondition { WeatherType = WeatherType.Clear, Temperature = 20, Humidity = 0.65 }, + new WeatherCondition { WeatherType = WeatherType.Cloudy, Temperature = 18, Humidity = 0.8 }, + new WeatherCondition { WeatherType = WeatherType.Rain, Temperature = 15, Humidity = 0.95 } +}; + +var calculator = new AtmosphericTransmittanceCalculator(); +double wavelength = 1.064; // 微米 +double distance = 1000; // 米 + +foreach (var weather in weatherConditions) +{ + var transmittance = calculator.CalculateTransmittance(wavelength, distance, weather); + Console.WriteLine($"天气: {weather.WeatherType}, 透过率: {transmittance:P2}"); +} + +// 计算大气湍流影响 +var turbulence = calculator.CalculateAtmosphericTurbulence(wavelength, distance, weather); +Console.WriteLine($"大气湍流强度: {turbulence:E2}"); +``` + +## C++ 调用说明 + +由于 AirTransmission 是 .NET 动态库,C++ 程序需要通过 C++/CLI 包装器来调用。 + +### C++/CLI 包装器使用方法 + +1. 创建包装器项目(由库作者提供): + + ```cpp + // AirTransmissionWrapper.h + #pragma once + + namespace AirTransmissionWrapper { + public enum class WeatherType { + Clear = 0, + Cloudy = 1, + Rain = 2 + }; + + public ref class WeatherCondition { + public: + property double Temperature; + property double Humidity; + property double Pressure; + property double Visibility; + property WeatherType Type; + }; + + public ref class Calculator { + public: + Calculator(); + double CalculateTransmittance(double wavelength, double distance, WeatherCondition^ weather); + double CalculateAtmosphericTurbulence(double wavelength, double distance, WeatherCondition^ weather); + }; + } + ``` + +2. 在 C++ 代码中使用包装器: + + ```cpp + #include + #include "AirTransmissionWrapper.h" + + int main() { + using namespace AirTransmissionWrapper; + + // 创建天气条件 + WeatherCondition^ weather = gcnew WeatherCondition(); + weather->Temperature = 20.0; // 温度(摄氏度) + weather->Humidity = 0.65; // 相对湿度(0-1) + weather->Pressure = 101.325; // 大气压力(kPa) + weather->Visibility = 10000.0; // 能见度(米) + weather->Type = WeatherType::Clear; + + // 创建计算器 + Calculator^ calculator = gcnew Calculator(); + + // 计算透过率 + double wavelength = 1.064; // 波长(微米) + double distance = 1000.0; // 传输距离(米) + double transmittance = calculator->CalculateTransmittance(wavelength, distance, weather); + + std::cout << "透过率: " << transmittance * 100.0 << "%" << std::endl; + return 0; + } + ``` + +## 项目配置 + +### C# 项目 + +1. 在 Visual Studio 中创建新的 .NET 项目 +2. 通过 NuGet 包管理器添加 AirTransmission 包: + +```bash +dotnet add package AirTransmission +``` + +### C++ 项目 + +1. 在 Visual Studio 中创建新的 C++ 项目 +2. 项目配置: + - 包含目录:添加 AirTransmissionWrapper.h 所在目录 + - 库目录:添加 AirTransmissionWrapper.lib 所在目录 + - 链接器输入:添加 AirTransmissionWrapper.lib +3. 确保以下 DLL 在可执行文件的同一目录下: + - AirTransmissionWrapper.dll + - AirTransmission.dll + +## 注意事项 + +1. 所有浮点数输入都使用 double 类型 +2. 波长单位为微米(μm) +3. 距离单位为米(m) +4. 温度单位为摄氏度(℃) +5. 压力单位为千帕(kPa) +6. 相对湿度范围为 0-1 +7. 确保输入参数在合理范围内: + - 波长:0.2-20 μm + - 距离:> 0 m + - 温度:-40 到 +60 ℃ + - 相对湿度:0-1 + - 压力:80-120 kPa +8. C++ 调用注意事项: + - 使用 `^` 符号声明托管对象 + - 使用 `gcnew` 创建托管对象 + - 包装器类中的所有对象都需要使用托管引用 diff --git a/filterConfig.yml b/filterConfig.yml new file mode 100644 index 0000000..88e7a59 --- /dev/null +++ b/filterConfig.yml @@ -0,0 +1,10 @@ +apiRules: + - include: + uidRegex: ^AirTransmission + type: Namespace + - include: + uidRegex: ^AirTransmission\..* + type: Type + - include: + uidRegex: ^AirTransmission\..* + type: Member \ No newline at end of file diff --git a/log.txt b/log.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/AirTransmission/AirTransmission.xml b/src/AirTransmission/AirTransmission.xml index 5968676..b5ab102 100644 --- a/src/AirTransmission/AirTransmission.xml +++ b/src/AirTransmission/AirTransmission.xml @@ -6,8 +6,16 @@ - 大气透过率计算器 + 大气透过率计算器,提供各种电磁波在大气中传输的透过率计算方法 + + 支持以下电磁波类型的透过率计算: + - 激光(包含湍流效应) + - 红外线 + - 紫外线 + - 毫米波 + 可以处理各种天气条件和烟雾环境 + @@ -96,6 +104,21 @@ 大气湍流模型类,用于计算大气湍流对光传输的影响 + + 主要功能: + - 计算大气折射率结构常数 + - 计算湍流引起的光束抖动 + - 计算闪烁指数 + - 评估湍流对光传输的综合影响 + + + + + 波数常量,单位:m^-1 + + + 基于1.06微米波长(常用的Nd:YAG激光器波长)计算:k = 2π/λ + @@ -168,37 +191,174 @@ - 红外线传输模型类,用于计算红外线在大气中的传输特性 + 红外线透过率计算模型,用于计算红外线在大气中的传输特性 + + 主要功能: + - 计算红外线在不同天气条件下的透过率 + - 使用光谱模型法进行计算 + - 考虑大气分子吸收(主要是水汽和CO2) + - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + + + + + 红外波段最小波长,单位:微米 + + + + + 红外波段最大波长,单位:微米 + + + + + 光谱分段数 + + + + + 主要计算波长,单位:微米 + + + 选择10μm作为主要计算波长,因为这是大气窗口区 + + + + + 计算给定距离的红外线透过率 + + 传输距离,单位:米 + 红外线透过率,范围:0-1 + + 计算过程: + 1. 将光谱分为多个波段 + 2. 对每个波段计算衰减 + 3. 考虑天气条件的影响 + 4. 综合得到最终透过率 + + + + + 计算特定波长的波段衰减 + + 波长,单位:微米 + 波段衰减系数,单位:km^-1 + + 包含三种衰减机制: + - 瑞利散射(Rayleigh散射) + - 米氏散射(Mie散射) + - 分子吸收 + + + + + 计算瑞利散射系数 + + 波长,单位:微米 + 瑞利散射系数,单位:km^-1 + + 使用改进的瑞利散射公式,考虑温度和压力的影响 + + + + + 计算米氏散射系数 + + 波长,单位:微米 + 米氏散射系数,单位:km^-1 + + 基于能见度和气溶胶密度计算米氏散射 + + + + + 计算分子吸收系数 + + 波长,单位:微米 + 分子吸收系数,单位:km^-1 + + 主要考虑水汽和CO2的吸收 + + + + + 获取特定波长的光谱权重 + + 波长,单位:微米 + 光谱权重,范围:0-1 + + 根据黑体辐射理论计算光谱权重 + + + + + 计算天气效应对透过率的影响 + + 传输距离,单位:米 + 天气影响因子,范围:0-1 + + 综合考虑: + - 降水(雨、雪)的影响 + - 雾的衰减效应 + - 沙尘的影响 + - 激光传输模型类,用于计算激光在大气中的传输特性 + 激光透过率计算模型,用于计算激光在大气中的传输特性 + + 主要功能: + - 计算激光在不同天气条件下的透过率 + - 考虑大气湍流效应 + - 处理烟雾对激光传输的影响 + - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + - 激光传输模型类,用于计算激光在大气中的传输特性 + 激光透过率计算模型,用于计算激光在大气中的传输特性 + + 主要功能: + - 计算激光在不同天气条件下的透过率 + - 考虑大气湍流效应 + - 处理烟雾对激光传输的影响 + - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + - 激光波长(微米) + 激光波长常量,单位:微米 + + 默认使用1.06μm波长,对应Nd:YAG激光器的基频输出 + 计算给定距离的激光透过率 - 传输距离(米) - 激光透过率(0到1之间的值) + 传输距离,单位:米 + 激光透过率,范围:0-1 + + 计算过程考虑: + - 分子散射和吸收 + - 气溶胶散射 + - 降水(雨、雪)衰减 + - 雾和沙尘的影响 + 计算考虑湍流效应的激光透过率 - 传输距离(米) - 考虑湍流效应的激光透过率 + 传输距离,单位:米 + 考虑湍流效应后的透过率,范围:0-1 + + 使用大气湍流模型计算湍流对激光传输的影响 + @@ -272,26 +432,48 @@ - 毫米波传输模型类,用于计算毫米波在大气中的传输特性 + 毫米波透过率计算模型,用于计算毫米波在大气中的传输特性 + + 主要功能: + - 计算毫米波在不同天气条件下的透过率 + - 考虑大气分子散射和吸收 + - 处理水汽和氧气的吸收 + - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + - 毫米波波长(毫米) + 毫米波波长常量,单位:毫米 + + 默认使用3.19mm波长,对应94GHz频率 + 该频率是毫米波雷达常用工作频率 + 计算给定距离的毫米波透过率 - 传输距离(米) - 毫米波透过率(0到1之间的值) + 传输距离,单位:米 + 毫米波透过率,范围:0-1 + + 计算过程考虑: + - 分子散射和吸收 + - 水汽吸收 + - 氧气吸收 + - 降水(雨、雪)衰减 + - 雾和沙尘的影响 + 计算分子散射系数 - 分子散射系数(km^-1) + 分子散射系数,单位:km^-1 + + 使用修正的瑞利散射公式,考虑温度和压力的影响 + @@ -326,38 +508,58 @@ - 大气透过率模型的抽象基类,提供了各种大气条件下的透过率计算方法 + 大气透过率计算的基础模型类,提供了各种大气条件下的透过率计算方法 + + 包含以下主要衰减机制的计算: + - 分子散射和吸收 + - 气溶胶散射和吸收 + - 降水(雨、雪)衰减 + - 沙尘和雾的衰减 + - 大气透过率模型的抽象基类,提供了各种大气条件下的透过率计算方法 + 大气透过率计算的基础模型类,提供了各种大气条件下的透过率计算方法 + + 包含以下主要衰减机制的计算: + - 分子散射和吸收 + - 气溶胶散射和吸收 + - 降水(雨、雪)衰减 + - 沙尘和雾的衰减 + - 标准大气透过率 + 标准大气透过率常量 + + 在标准大气条件下(23km能见度,1013.25hPa气压,20℃温度)的透过率值 + - 标准能见度(公里) + 标准能见度常量,单位:千米 - 标准气溶胶密度(粒子/立方厘米) + 标准气溶胶密度常量,单位:粒子/立方厘米 - 当前天气条件 + 当前天气条件对象 - 温度(开尔文) + 温度,单位:开尔文 + + 由摄氏度转换而来:K = ℃ + 273.15 + @@ -487,18 +689,92 @@ - 紫外线传输模型类,用于计算紫外线在大气中的传输特性 + 紫外线透过率计算模型,用于计算紫外线在大气中的传输特性 + + 主要功能: + - 计算紫外线在不同天气条件下的透过率 + - 使用光谱模型法进行计算 + - 考虑臭氧层吸收 + - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + + + + + 紫外波段最小波长,单位:微米 + + + + + 紫外波段最大波长,单位:微米 + + + + + 光谱分段数 + + + + + 主要计算波长,单位:微米 + + + 选择0.308μm作为主要计算波长,这是XeCl准分子激光器的输出波长 + + + + + 计算给定距离的紫外线透过率 + + 传输距离,单位:米 + 紫外线透过率,范围:0-1 + + 计算过程: + 1. 将光谱分为多个波段 + 2. 对每个波段计算衰减 + 3. 考虑天气条件的影响 + 4. 综合得到最终透过率 + - 天气条件类 + 天气条件类,用于描述大气传输计算所需的天气参数 + + 包含以下主要天气参数: + - 天气类型(晴天、雨天、雪天等) + - 温度 + - 相对湿度 + - 能见度 + - 降水量 + - CO2浓度 + + 天气类型 + 温度(摄氏度) + 相对湿度(百分比) + 能见度(公里) + 降水量(毫米/小时),可选 + 二氧化碳浓度(ppm),默认415ppm - 天气条件类 + 天气条件类,用于描述大气传输计算所需的天气参数 + + 包含以下主要天气参数: + - 天气类型(晴天、雨天、雪天等) + - 温度 + - 相对湿度 + - 能见度 + - 降水量 + - CO2浓度 + + 天气类型 + 温度(摄氏度) + 相对湿度(百分比) + 能见度(公里) + 降水量(毫米/小时),可选 + 二氧化碳浓度(ppm),默认415ppm @@ -534,12 +810,41 @@ 打印天气信息 - 天气条件 + 天气条件对象 + + 输出格式: + 天气类型: [类型], 温度: [温度]°C, 相对湿度: [湿度]%, 能见度: [能见度]km, 降水量: [降水量]mm/h + 天气类型枚举 + + + 晴朗天气 + + + + + 雨天 + + + + + 雪天 + + + + + 雾天 + + + + + 沙尘天气 + + diff --git a/src/AirTransmission/AtmosphericTransmittanceCalculator.cs b/src/AirTransmission/AtmosphericTransmittanceCalculator.cs index c8ec098..3da905d 100644 --- a/src/AirTransmission/AtmosphericTransmittanceCalculator.cs +++ b/src/AirTransmission/AtmosphericTransmittanceCalculator.cs @@ -7,8 +7,16 @@ namespace AirTransmission { /// - /// 大气透过率计算器 + /// 大气透过率计算器,提供各种电磁波在大气中传输的透过率计算方法 /// + /// + /// 支持以下电磁波类型的透过率计算: + /// - 激光(包含湍流效应) + /// - 红外线 + /// - 紫外线 + /// - 毫米波 + /// 可以处理各种天气条件和烟雾环境 + /// public static class AtmosphericTransmittanceCalculator { /// diff --git a/src/AirTransmission/AtmosphericTurbulenceModel.cs b/src/AirTransmission/AtmosphericTurbulenceModel.cs index ba624a0..05ec0a0 100644 --- a/src/AirTransmission/AtmosphericTurbulenceModel.cs +++ b/src/AirTransmission/AtmosphericTurbulenceModel.cs @@ -9,9 +9,21 @@ namespace AirTransmission /// /// 大气湍流模型类,用于计算大气湍流对光传输的影响 /// + /// + /// 主要功能: + /// - 计算大气折射率结构常数 + /// - 计算湍流引起的光束抖动 + /// - 计算闪烁指数 + /// - 评估湍流对光传输的综合影响 + /// internal class AtmosphericTurbulenceModel { - // 波数,假设波长为1.06微米(常用的激光波长) + /// + /// 波数常量,单位:m^-1 + /// + /// + /// 基于1.06微米波长(常用的Nd:YAG激光器波长)计算:k = 2π/λ + /// private const double k = 2 * Math.PI / 1.06e-6; /// diff --git a/src/AirTransmission/IRTransmittanceModel.cs b/src/AirTransmission/IRTransmittanceModel.cs index 0afe64c..bd072e5 100644 --- a/src/AirTransmission/IRTransmittanceModel.cs +++ b/src/AirTransmission/IRTransmittanceModel.cs @@ -7,18 +7,51 @@ namespace AirTransmission { /// - /// 红外线传输模型类,用于计算红外线在大气中的传输特性 + /// 红外线透过率计算模型,用于计算红外线在大气中的传输特性 /// + /// + /// 主要功能: + /// - 计算红外线在不同天气条件下的透过率 + /// - 使用光谱模型法进行计算 + /// - 考虑大气分子吸收(主要是水汽和CO2) + /// - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + /// internal class IRTransmittanceModel : TransmittanceModel { - // 光谱分段参数 + /// + /// 红外波段最小波长,单位:微米 + /// private const double MIN_WAVELENGTH = 3.0; // 红外波段最小波长(微米) + /// + /// 红外波段最大波长,单位:微米 + /// private const double MAX_WAVELENGTH = 12.0; // 红外波段最大波长(微米) + /// + /// 光谱分段数 + /// private const int SPECTRAL_BANDS = 100; // 光谱分段数 + /// + /// 主要计算波长,单位:微米 + /// + /// + /// 选择10μm作为主要计算波长,因为这是大气窗口区 + /// private const double IR_WAVELENGTH = 10.0; // 主要计算波长(微米) public IRTransmittanceModel(WeatherCondition weather) : base(weather) { } + /// + /// 计算给定距离的红外线透过率 + /// + /// 传输距离,单位:米 + /// 红外线透过率,范围:0-1 + /// + /// 计算过程: + /// 1. 将光谱分为多个波段 + /// 2. 对每个波段计算衰减 + /// 3. 考虑天气条件的影响 + /// 4. 综合得到最终透过率 + /// public override double CalculateTransmittance(double distance) { // 将距离转换为千米 @@ -47,6 +80,17 @@ namespace AirTransmission return Math.Max(0, Math.Min(1, finalTransmittance)); } + /// + /// 计算特定波长的波段衰减 + /// + /// 波长,单位:微米 + /// 波段衰减系数,单位:km^-1 + /// + /// 包含三种衰减机制: + /// - 瑞利散射(Rayleigh散射) + /// - 米氏散射(Mie散射) + /// - 分子吸收 + /// private double CalculateBandAttenuation(double wavelength) { // 进一步增加衰减系数 @@ -57,6 +101,14 @@ namespace AirTransmission return rayleighScattering + mieScattering + molecularAbsorption; } + /// + /// 计算瑞利散射系数 + /// + /// 波长,单位:微米 + /// 瑞利散射系数,单位:km^-1 + /// + /// 使用改进的瑞利散射公式,考虑温度和压力的影响 + /// private double CalculateRayleighScattering(double wavelength) { // Rayleigh散射系数计算(km^-1) @@ -65,6 +117,14 @@ namespace AirTransmission return 0.02735 * Math.Pow(wavelengthMicrons, -4.08) * (Pressure / 1013.25) * (288.15 / Temperature); } + /// + /// 计算米氏散射系数 + /// + /// 波长,单位:微米 + /// 米氏散射系数,单位:km^-1 + /// + /// 基于能见度和气溶胶密度计算米氏散射 + /// private double CalculateMieScattering(double wavelength) { // Mie散射系数计算(km^-1) @@ -74,6 +134,14 @@ namespace AirTransmission return beta * alpha * (AerosolDensity / STANDARD_AEROSOL_DENSITY) * 3.5; // 从2.0改为3.5 } + /// + /// 计算分子吸收系数 + /// + /// 波长,单位:微米 + /// 分子吸收系数,单位:km^-1 + /// + /// 主要考虑水汽和CO2的吸收 + /// private double CalculateMolecularAbsorption(double wavelength) { // 分子吸收系数计算(km^-1) @@ -123,7 +191,15 @@ namespace AirTransmission return 0.16 * (CO2Concentration / 400.0); // 从0.08改为0.16 } - private double GetSpectralWeight(double wavelength) + /// + /// 获取特定波长的光谱权重 + /// + /// 波长,单位:微米 + /// 光谱权重,范围:0-1 + /// + /// 根据黑体辐射理论计算光谱权重 + /// + private static double GetSpectralWeight(double wavelength) { // 调整权重分布 if (wavelength >= 3.0 && wavelength <= 5.0) @@ -134,6 +210,17 @@ namespace AirTransmission return 0.2; // 从0.3改为0.2 } + /// + /// 计算天气效应对透过率的影响 + /// + /// 传输距离,单位:米 + /// 天气影响因子,范围:0-1 + /// + /// 综合考虑: + /// - 降水(雨、雪)的影响 + /// - 雾的衰减效应 + /// - 沙尘的影响 + /// private double CalculateWeatherEffect(double distance) { // 降低天气效应的影响 diff --git a/src/AirTransmission/LaserTransmittanceModel.cs b/src/AirTransmission/LaserTransmittanceModel.cs index 97d12d7..0614af2 100644 --- a/src/AirTransmission/LaserTransmittanceModel.cs +++ b/src/AirTransmission/LaserTransmittanceModel.cs @@ -7,20 +7,37 @@ namespace AirTransmission { /// - /// 激光传输模型类,用于计算激光在大气中的传输特性 + /// 激光透过率计算模型,用于计算激光在大气中的传输特性 /// + /// + /// 主要功能: + /// - 计算激光在不同天气条件下的透过率 + /// - 考虑大气湍流效应 + /// - 处理烟雾对激光传输的影响 + /// - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + /// internal class LaserTransmittanceModel(WeatherCondition weather) : TransmittanceModel(weather) { /// - /// 激光波长(微米) + /// 激光波长常量,单位:微米 /// + /// + /// 默认使用1.06μm波长,对应Nd:YAG激光器的基频输出 + /// private const double LASER_WAVELENGTH = 1.06; /// /// 计算给定距离的激光透过率 /// - /// 传输距离(米) - /// 激光透过率(0到1之间的值) + /// 传输距离,单位:米 + /// 激光透过率,范围:0-1 + /// + /// 计算过程考虑: + /// - 分子散射和吸收 + /// - 气溶胶散射 + /// - 降水(雨、雪)衰减 + /// - 雾和沙尘的影响 + /// public override double CalculateTransmittance(double distance) { double attenuationFactor = CalculateAttenuationFactor(); @@ -41,8 +58,11 @@ namespace AirTransmission /// /// 计算考虑湍流效应的激光透过率 /// - /// 传输距离(米) - /// 考虑湍流效应的激光透过率 + /// 传输距离,单位:米 + /// 考虑湍流效应后的透过率,范围:0-1 + /// + /// 使用大气湍流模型计算湍流对激光传输的影响 + /// public double CalculateTransmittanceWithTurbulence(double distance) { double transmittance = CalculateTransmittance(distance); diff --git a/src/AirTransmission/MillimeterWaveTransmittanceModel.cs b/src/AirTransmission/MillimeterWaveTransmittanceModel.cs index 412cfd9..506c26b 100644 --- a/src/AirTransmission/MillimeterWaveTransmittanceModel.cs +++ b/src/AirTransmission/MillimeterWaveTransmittanceModel.cs @@ -7,13 +7,24 @@ namespace AirTransmission { /// - /// 毫米波传输模型类,用于计算毫米波在大气中的传输特性 + /// 毫米波透过率计算模型,用于计算毫米波在大气中的传输特性 /// + /// + /// 主要功能: + /// - 计算毫米波在不同天气条件下的透过率 + /// - 考虑大气分子散射和吸收 + /// - 处理水汽和氧气的吸收 + /// - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + /// internal class MillimeterWaveTransmittanceModel : TransmittanceModel { /// - /// 毫米波波长(毫米) + /// 毫米波波长常量,单位:毫米 /// + /// + /// 默认使用3.19mm波长,对应94GHz频率 + /// 该频率是毫米波雷达常用工作频率 + /// private const double MILLIMETER_WAVE_WAVELENGTH = 3.19; // 毫米(对应94 GHz) public MillimeterWaveTransmittanceModel(WeatherCondition weather) : base(weather) { } @@ -21,8 +32,16 @@ namespace AirTransmission /// /// 计算给定距离的毫米波透过率 /// - /// 传输距离(米) - /// 毫米波透过率(0到1之间的值) + /// 传输距离,单位:米 + /// 毫米波透过率,范围:0-1 + /// + /// 计算过程考虑: + /// - 分子散射和吸收 + /// - 水汽吸收 + /// - 氧气吸收 + /// - 降水(雨、雪)衰减 + /// - 雾和沙尘的影响 + /// public override double CalculateTransmittance(double distance) { // 计算各种衰减机制 @@ -49,7 +68,10 @@ namespace AirTransmission /// /// 计算分子散射系数 /// - /// 分子散射系数(km^-1) + /// 分子散射系数,单位:km^-1 + /// + /// 使用修正的瑞利散射公式,考虑温度和压力的影响 + /// private double CalculateMolecularScattering() { // 分子散射系数计算(km^-1) diff --git a/src/AirTransmission/TransmittanceModel.cs b/src/AirTransmission/TransmittanceModel.cs index d4e20e9..e85c836 100644 --- a/src/AirTransmission/TransmittanceModel.cs +++ b/src/AirTransmission/TransmittanceModel.cs @@ -7,33 +7,44 @@ namespace AirTransmission { /// - /// 大气透过率模型的抽象基类,提供了各种大气条件下的透过率计算方法 + /// 大气透过率计算的基础模型类,提供了各种大气条件下的透过率计算方法 /// + /// + /// 包含以下主要衰减机制的计算: + /// - 分子散射和吸收 + /// - 气溶胶散射和吸收 + /// - 降水(雨、雪)衰减 + /// - 沙尘和雾的衰减 + /// internal abstract class TransmittanceModel(WeatherCondition weather) { - // 常量 /// - /// 标准大气透过率 + /// 标准大气透过率常量 /// + /// + /// 在标准大气条件下(23km能见度,1013.25hPa气压,20℃温度)的透过率值 + /// protected const double STANDARD_TRANSMITTANCE = 0.975; // 标准大气透过率 /// - /// 标准能见度(公里) + /// 标准能见度常量,单位:千米 /// protected const double STANDARD_VISIBILITY = 23.0; // 标准能见度 (km) /// - /// 标准气溶胶密度(粒子/立方厘米) + /// 标准气溶胶密度常量,单位:粒子/立方厘米 /// protected const double STANDARD_AEROSOL_DENSITY = 100.0; // 标准气溶胶密度 (particles/cm³) - /// - /// 当前天气条件 + /// 当前天气条件对象 /// protected WeatherCondition weatherCondition = weather; // 大气模型参数 /// - /// 温度(开尔文) + /// 温度,单位:开尔文 /// + /// + /// 由摄氏度转换而来:K = ℃ + 273.15 + /// protected double Temperature { get; set; } = weather.Temperature + 273.15; /// /// 大气压力(百帕) diff --git a/src/AirTransmission/UVTransmittanceModel.cs b/src/AirTransmission/UVTransmittanceModel.cs index 4785002..254dc99 100644 --- a/src/AirTransmission/UVTransmittanceModel.cs +++ b/src/AirTransmission/UVTransmittanceModel.cs @@ -7,18 +7,54 @@ namespace AirTransmission { /// - /// 紫外线传输模型类,用于计算紫外线在大气中的传输特性 + /// 紫外线透过率计算模型,用于计算紫外线在大气中的传输特性 /// + /// + /// 主要功能: + /// - 计算紫外线在不同天气条件下的透过率 + /// - 使用光谱模型法进行计算 + /// - 考虑臭氧层吸收 + /// - 计算各种天气条件(雨、雪、雾、沙尘)的衰减效应 + /// internal class UVTransmittanceModel : TransmittanceModel { - // 光谱分段参数 + /// + /// 紫外波段最小波长,单位:微米 + /// private const double MIN_WAVELENGTH = 0.2; // 紫外波段最小波长(微米) + + /// + /// 紫外波段最大波长,单位:微米 + /// private const double MAX_WAVELENGTH = 0.4; // 紫外波段最大波长(微米) + + /// + /// 光谱分段数 + /// private const int SPECTRAL_BANDS = 100; // 光谱分段数 + + /// + /// 主要计算波长,单位:微米 + /// + /// + /// 选择0.308μm作为主要计算波长,这是XeCl准分子激光器的输出波长 + /// private const double UV_WAVELENGTH = 0.308; // 主要计算波长(微米) public UVTransmittanceModel(WeatherCondition weather) : base(weather) { } + /// + /// 计算给定距离的紫外线透过率 + /// + /// 传输距离,单位:米 + /// 紫外线透过率,范围:0-1 + /// + /// 计算过程: + /// 1. 将光谱分为多个波段 + /// 2. 对每个波段计算衰减 + /// 3. 考虑天气条件的影响 + /// 4. 综合得到最终透过率 + /// public override double CalculateTransmittance(double distance) { // 将距离转换为千米 diff --git a/src/AirTransmission/WeatherCondition.cs b/src/AirTransmission/WeatherCondition.cs index 415f91a..d64ac1b 100644 --- a/src/AirTransmission/WeatherCondition.cs +++ b/src/AirTransmission/WeatherCondition.cs @@ -3,8 +3,23 @@ using System; namespace AirTransmission { /// - /// 天气条件类 + /// 天气条件类,用于描述大气传输计算所需的天气参数 /// + /// + /// 包含以下主要天气参数: + /// - 天气类型(晴天、雨天、雪天等) + /// - 温度 + /// - 相对湿度 + /// - 能见度 + /// - 降水量 + /// - CO2浓度 + /// + /// 天气类型 + /// 温度(摄氏度) + /// 相对湿度(百分比) + /// 能见度(公里) + /// 降水量(毫米/小时),可选 + /// 二氧化碳浓度(ppm),默认415ppm public class WeatherCondition(WeatherType type, double temperature, double relativeHumidity, double visibility, double? precipitation = null, double co2Concentration = 415) { /// @@ -35,7 +50,11 @@ namespace AirTransmission /// /// 打印天气信息 /// - /// 天气条件 + /// 天气条件对象 + /// + /// 输出格式: + /// 天气类型: [类型], 温度: [温度]°C, 相对湿度: [湿度]%, 能见度: [能见度]km, 降水量: [降水量]mm/h + /// public static void PrintWeatherInfo(WeatherCondition weather){ Console.WriteLine($"---天气类型: {weather.Type}, 温度: {weather.Temperature}°C, 相对湿度: {weather.RelativeHumidity}%, 能见度: {weather.Visibility}km, 降水量: {weather.Precipitation ?? 0}mm/h"); } @@ -46,10 +65,25 @@ namespace AirTransmission /// public enum WeatherType { + /// + /// 晴朗天气 + /// 晴天, // 晴朗天气 + /// + /// 雨天 + /// 雨天, // 雨天 + /// + /// 雪天 + /// 雪天, // 雪天 + /// + /// 雾天 + /// 雾天, // 雾天 + /// + /// 沙尘天气 + /// 沙尘 // 沙尘 } } \ No newline at end of file diff --git a/src/AirTransmissionConsole/Program.cs b/src/AirTransmissionConsole/Program.cs index 4751819..d96df44 100644 --- a/src/AirTransmissionConsole/Program.cs +++ b/src/AirTransmissionConsole/Program.cs @@ -1,9 +1,4 @@ -/* - * 版本历史: - * 1.0.0 (2024-10-13): 初始版本,实现基本的大气透过率计算和测试功能。作者:田建勇 - */ - -using AirTransmission; +using AirTransmission; class Program { diff --git a/toc.yml b/toc.yml new file mode 100644 index 0000000..aa5f299 --- /dev/null +++ b/toc.yml @@ -0,0 +1,2 @@ +- name: API 文档 + href: docs/ \ No newline at end of file