237 lines
7.7 KiB
Plaintext
237 lines
7.7 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Welcome to ATMOS\n",
|
|
"\n",
|
|
"This package is an archive of scientific routines that implements the estimation of atmospheric properties for various atmosphere models, such\n",
|
|
"as exponential, coesa76, and nrimsise00. The package mainly estimates density, temperature, pressure and other parameters of air at a set of specific altitudes. For atmosphere below 86 kilometers, it also calculates the speed of sound, viscosity, and thermal conductivity."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## How to install\n",
|
|
"\n",
|
|
"On Linux, macOS and Windows architectures, the binary wheels can be installed using pip by executing one of the following commands:\n",
|
|
"\n",
|
|
"```python\n",
|
|
"pip install pyatmos\n",
|
|
"pip install pyatmos --upgrade # to upgrade a pre-existing installation\n",
|
|
"```"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## How to use"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Exponential"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[1.22500000e+00 7.76098911e-02 3.97200000e-03 3.20600000e-04\n",
|
|
" 1.90500000e-05]\n",
|
|
"[1.22500000e+00 7.69385063e-02 3.84131212e-03 2.97747719e-04\n",
|
|
" 1.59847603e-05]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
">>> from pyatmos import expo\n",
|
|
">>> rhos_geom = expo([0,20,40,60,80]) # geometric altitudes by default\n",
|
|
">>> print(rhos_geom) # [kg/m^3]\n",
|
|
">>> rhos_geop = expo([0,20,40,60,80],'geopotential') # geopotential altitudes\n",
|
|
">>> print(rhos_geop)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### COESA 1976"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[1.22499916e+00 8.89079563e-02 3.99535051e-03 3.09628985e-04\n",
|
|
" 1.84514759e-05]\n",
|
|
"[1.22499916e+00 8.80348036e-02 3.85100688e-03 2.88320680e-04\n",
|
|
" 1.57005388e-05]\n",
|
|
"[5.60184300e-07 1.91512264e-11 5.21285933e-13 3.06944380e-14\n",
|
|
" 5.75807856e-15]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
">>> from pyatmos import coesa76\n",
|
|
">>> rhos_geom,Ts_geom,Ps_geom = coesa76([0,20,40,60,80]) \n",
|
|
">>> print(rhos_geom) # [kg/m^3]\n",
|
|
">>> rhos_geop,Ts_geop,Ps_geop = coesa76([0,20,40,60,80],'geopotential')\n",
|
|
">>> print(rhos_geop) # [kg/m^3]\n",
|
|
">>> rhos_geom,Ts_geom,Ps_geom = coesa76([100,300,500,700,900]) \n",
|
|
">>> print(rhos_geom) # [kg/m^3]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### NRLMSISE-00"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"*Before using NRLMSISE-00, the space weather data needs to be prepared in advance.*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"The space weather data in /Users/lichunxiao/src/sw-data/ is already the latest.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
">>> from pyatmos import download_sw,read_sw\n",
|
|
">>> # Download or update the space weather file from www.celestrak.com\n",
|
|
">>> swfile = download_sw() \n",
|
|
">>> # Read the space weather data\n",
|
|
">>> swdata = read_sw(swfile) "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Calculate the temperature, density at [25N, 102E, 20km] at 03:00:00 UTC on October 5, 2015 with anomalous oxygen and 3h-geomagnetic index."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{'Year': 2015, 'DOY': 278, 'SOD': 10800.0, 'Lat': 25, 'Lon': 102, 'Alt': 600, 'LST': 9.8, 'f107A': 104.4, 'f107D': 82.6, 'ApD': 18, 'Ap3H': array([18. , 22. , 22. , 22. , 7. , 15.25 , 9.375])}\n",
|
|
"6.416602651204796e-14\n",
|
|
"(853.466244160143, 853.4647165799171)\n",
|
|
"{'He': 2388916051039.6826, 'O': 1758109067905.8027, 'N2': 2866987110.5606275, 'O2': 22411077.605527952, 'Ar': 4351.013995142538, 'H': 155026672753.3203, 'N': 46719306249.863495, 'ANM O': 4920851253.780525}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
">>> from pyatmos import nrlmsise00\n",
|
|
">>> # Set a specific time and location\n",
|
|
">>> t = '2015-10-05 03:00:00' # time(UTC) \n",
|
|
">>> lat,lon,alt = 25,102,600 # latitude, longitude in [degree], and altitude in [km]\n",
|
|
">>> params,rho,T,nd = nrlmsise00(t,(lat,lon,alt),swdata) # aphmode=True\n",
|
|
">>> print(params)\n",
|
|
">>> print(rho) \n",
|
|
">>> print(T) \n",
|
|
">>> print(nd)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"**Note: The range of longitude is [0,360] by default, and the west longitude can also be expressed as a negative number.**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Change log\n",
|
|
"- **1.2.0 — Jan 22, 2021**\n",
|
|
" - Added **Exponential Atmosphere** up to 1000km\n",
|
|
" - Added **Committee on Extension to the Standard Atmosphere(COESA)** up to 1000km\n",
|
|
" - Completed part of the help documentation for NRLMSISE-00\n",
|
|
" - Improved the code structure to make it easier to read\n",
|
|
"- **1.1.2 — Jul 26, 2020**\n",
|
|
" - Added colored-progress bar for downloading data\n",
|
|
"- **1.1.0 — Mar 29, 2020**\n",
|
|
" - Added the International Standard Atmosphere(ISA) Model up to 86kms \n",
|
|
"\n",
|
|
"## Next release\n",
|
|
"\n",
|
|
"- Complete the help documentation for NRLMSISE-00\n",
|
|
"- Add other atmospheric models, such as the **Earth Global Reference Atmospheric Model(Earth-GRAM) 2016**, and the **Jacchia-Bowman 2008 Empirical Thermospheric Density Model(JB2008)**\n",
|
|
"\n",
|
|
"## Reference\n",
|
|
"\n",
|
|
"- U.S. Standard Atmosphere, 1976, U.S. Government Printing Office, Washington, D.C. \n",
|
|
"- [Public Domain Aeronautical Software](http://www.pdas.com/atmos.html) \n",
|
|
"- https://gist.github.com/buzzerrookie/5b6438c603eabf13d07e\n",
|
|
"- https://ww2.mathworks.cn/help/aerotbx/ug/atmosisa.html\n",
|
|
"\n",
|
|
"- [Original Fortran and C code](https://ccmc.gsfc.nasa.gov/pub/modelweb/atmospheric/msis/)\n",
|
|
"- [MSISE-00 in Python and Matlab](https://github.com/space-physics/msise00)\n",
|
|
"- [NRLMSISE-00 Atmosphere Model - Matlab](https://ww2.mathworks.cn/matlabcentral/fileexchange/56253-nrlmsise-00-atmosphere-model?requestedDomain=zh)\n",
|
|
"- [NRLMSISE-00 Atmosphere Model - Aerospace Blockset](https://www.mathworks.com/help/aeroblks/nrlmsise00atmospheremodel.html?requestedDomain=)\n",
|
|
"- [NRLMSISE-00 Atmosphere Model - CCMC](https://ccmc.gsfc.nasa.gov/modelweb/models/nrlmsise00.php)\n",
|
|
"- [NRLMSISE-00 empirical model of the atmosphere: Statistical comparisons and scientific issues](http://onlinelibrary.wiley.com/doi/10.1029/2002JA009430/pdf)\n",
|
|
"- [ATMOSPHERIC MODELS](http://www.braeunig.us/space/atmmodel.htm)\n",
|
|
"- [poliastro-Atmosphere module](https://docs.poliastro.space/en/stable/api/safe/atmosphere/atmosphere_index.html?highlight=nrlmsise#famous-atmospheric-models)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "py3.9",
|
|
"language": "python",
|
|
"name": "py3.9"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.9.1"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|