ATMOS/test.ipynb
2021-01-22 16:52:28 +08:00

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
}