使用各种大气密度模型估计大气垂直结构的软件包
项目描述
欢迎来到 ATMOS
这个包是一个科学例程档案,用各种大气密度模型估计大气的垂直结构,例如指数(-0.611~1000 km)、COESA76(-0.611~1000 km)、NRLMSISE-00(0~2000 km) , 和JB2008 (90~2500 公里)。
NRLMSISE -00模型由美国海军研究实验室开发。它基于质谱和非相干雷达散射数据,还结合了阻力和加速度计数据,并解释了高海拔(> 500 km)的异常氧气。国际空间研究委员会 (COSPAR) 建议将其作为大气成分的标准。该模型中使用了两个指数:F10.7(前一天的日太阳通量值和以输入日为中心的 81 天平均值)和 $A_p$(地磁日值)。
JB2008 (Jacchia-Bowman) 模型是由 Space Environment Technologies (SET) 和美国空军太空司令部开发的较新模型。该模型考虑了与热层 EUV 加热相关的各种现象,并使用 DST 指数作为全球密度变化的驱动因素。该模型是 NRLMSISE00 模型的补充,在太阳活动高和地磁暴期间更加准确。COSPAR 建议将其作为卫星阻力计算中热层密度的标准。该模型使用了四个太阳指数和两个地磁活动指数:F10.7(前一天的表格值和以输入时间为中心的 81 天平均值);S10.7(前一天的表格值和以输入时间为中心的 81 天平均值);M10.7(五天前的表格值和以输入时间为中心的 81 天平均值);Y10.7(五天前的表格值和以输入时间为中心的 81 天平均值);$a_p$(3 小时表格值);和DST(在输入时间上转换并输入为 dTc 温度变化表格值)。
指数回报_
- 质量密度
COESA76回归_
- 海拔高度的质量密度、温度和压力
NRLMSISE -00返回
-
N$_2$、O$_2$、Ar、He、O、N和500公里以上高度的异常氧等大气成分的数密度
-
海拔高度
-
包括异常氧成分的总质量密度
JB2008回归_
-
海拔高度
-
总质量密度
如何安装
在 Linux、macOS 和 Windows 架构上,可以通过执行以下命令之一使用pip安装二进制轮子:
pip install pyatmos
pip install pyatmos --upgrade # to upgrade a pre-existing installation
如何使用
指数的
>>> from pyatmos import expo
>>> expo_geom = expo([0,20,40,60,80]) # geometric altitudes by default
>>> print(expo_geom.rho) # [kg/m^3]
>>> # expo_geop = expo([0,20,40,60,80],'geopotential') # geopotential altitudes
[1.22500000e+00 7.76098911e-02 3.97200000e-03 3.20600000e-04
1.90500000e-05]
1976 年欧洲经济共同体
>>> from pyatmos import coesa76
>>> coesa76_geom = coesa76([0,20,40,60,80]) # geometric altitudes by default
>>> print(coesa76_geom.rho) # [kg/m^3]
>>> print(coesa76_geom.T) # [K]
>>> print(coesa76_geom.P) # [Pa]
>>> # coesa76_geop = coesa76([0,20,40,60,80],'geopotential') # geopotential altitudes
[1.22499916e+00 8.89079563e-02 3.99535051e-03 3.09628985e-04
1.84514759e-05]
[288.15 216.65 250.35120115 247.01740767 198.63418825]
[1.01325000e+05 5.52919008e+03 2.87122194e+02 2.19548951e+01
1.05207648e+00]
NRLMSISE-00
在使用 NRLMSISE-00 之前,需要提前准备好空间天气数据。
>>> from pyatmos import download_sw_nrlmsise00,read_sw_nrlmsise00
>>> # Download or update the space weather file from www.celestrak.com
>>> swfile = download_sw_nrlmsise00()
>>> # Read the space weather data
>>> swdata = read_sw_nrlmsise00(swfile)
>>> from pyatmos import nrlmsise00
>>> # Set a specific time and location
>>> t = '2014-07-22 22:18:45' # time(UTC)
>>> lat,lon,alt = 25,102,600 # latitude, longitude in [degree], and altitude in [km]
>>> nrl00 = nrlmsise00(t,(lat,lon,alt),swdata)
>>> print(nrl00.rho) # [kg/m^3]
>>> print(nrl00.T) # [K]
>>> print(nrl00.nd) # composition in [1/m^3]
1.714115212984513e-14
765.8976564552341
{'He': 645851224907.2849, 'O': 456706971423.5056, 'N2': 531545420.00015724, 'O2': 2681352.1654067687, 'Ar': 406.9308900607773, 'H': 157249711103.90558, 'N': 6759664327.87355, 'ANM O': 10526544596.059282}
JB2008
在使用JB2008之前,需要提前准备好空间气象数据。
>>> from pyatmos import download_sw_jb2008,read_sw_jb2008
>>> # Download or update the space weather file from https://sol.spacenvironment.net
>>> swfile = download_sw_jb2008()
>>> # Read the space weather data
>>> swdata = read_sw_jb2008(swfile)
>>> from pyatmos import jb2008
>>> # Set a specific time and location
>>> t = '2014-07-22 22:18:45' # time(UTC)
>>> lat,lon,alt = 25,102,600 # latitude, longitude in [degree], and altitude in [km]
>>> jb08 = jb2008(t,(lat,lon,alt),swdata)
>>> print(jb08.rho) # [kg/m^3]
>>> print(jb08.T) # [K]
1.2991711750265394e-14
754.2803276187265
更改日志
- 1.2.3 — 2021 年 6 月 7 日
- 增加大气模型JB2008
- 将结果的输出更改为实例
- 改进了NRLMSISE-00的代码结构,运行速度近三倍
- 1.2.1 — 2021 年 1 月 22 日
- 添加指数大气高达 1000 公里
- 增加标准大气延伸委员会(COESA)至 1000 公里
- 完成了 NRLMSISE-00 的部分帮助文档
- 改进了代码结构,使其更易于阅读
- 1.1.2 — 2020 年 7 月 26 日
- 添加了用于下载数据的彩色进度条
- 1.1.0 — 2020 年 3 月 29 日
- 添加了长达86公里的国际标准大气(ISA)模型
下一个版本
- 由于当前 Day-Of-Year 与 Space Environment Technologies (SET) 提供的指数文件中的最后一个数据 DOY 之间存在45 天的滞后,因此通过最后一个数据的预测 DOY 为 137 天(5 个太阳自转)需要使用机器学习或其他方法进行估计。
- 添加其他大气模型,例如Earth Global Reference Atmospheric Model(Earth-GRAM) 2016和Drag Temperature Model(DTM)2013。
参考
- 美国标准大气,1976 年,美国政府印刷局,华盛顿特区
- 公共领域航空软件
- https://gist.github.com/buzzerrookie/5b6438c603eabf13d07e
- https://ww2.mathworks.cn/help/aerotbx/ug/atmosisa.html
- 原始 Fortran 和 C 代码
- Python 和 Matlab 中的 MSISE-00
- NRLMSISE-00 大气模型 - Matlab
- NRLMSISE-00 大气模型 - 航空航天模块组
- NRLMSISE-00 大气模型 - CCMC
- NRLMSISE-00 大气经验模型:统计比较和科学问题
- 大气模型
- poliastro-大气模块
- 大气 API
- COSPAR 国际参考大气 - 2012