mirror of
https://gitlab.astro-wise.org/micado/atmosphericmodel.git
synced 2026-10-30 05:01:02 +00:00
Compare commits
2
Commits
v1.4.1
...
ee7134da7d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee7134da7d | ||
|
|
27abba5f5d |
No files matched your search
@@ -174,9 +174,10 @@ def Edlen1966(l, T=288.15, p=101325, RH=0, CO2=300, f=None):
|
|||||||
def Owens(l, T=288.15, p=101325, RH=0):
|
def Owens(l, T=288.15, p=101325, RH=0):
|
||||||
'''
|
'''
|
||||||
From Owens, 1967
|
From Owens, 1967
|
||||||
Equation 32
|
Equations 29 to 31
|
||||||
Note that the pressure P and H are in torricelli (Torr),
|
|
||||||
however, this is almost precisely 1 Torr = 1 mmHg
|
Code heavily based on ScopeSIM (https://scopesim.readthedocs.io/)
|
||||||
|
and http://www.caha.es/newsletter/news03b/pedraz/newslet.html
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@@ -194,10 +195,27 @@ def Owens(l, T=288.15, p=101325, RH=0):
|
|||||||
n : float
|
n : float
|
||||||
Refractive index of atmospheric air at the given conditions
|
Refractive index of atmospheric air at the given conditions
|
||||||
'''
|
'''
|
||||||
P = hPa2mmHg(p/100)
|
# Calculation from ScopeSIM.effects.atmospheric_refraction()
|
||||||
T = K2C(T)
|
pres = p / 100 # from mbar to Pa
|
||||||
s = 1 / l
|
Ps = -10474. + 116.43 * T - 0.43284 * T**2 + 0.0005384 * T**3
|
||||||
R = 8342.13 + 2406030 / (130 - s**2) + 15997 / (38.9 - s**2) * (P/720.775) * ((1 + P * (0.817 - 0.0133) * 1e-6)/(1 + 0.0036610*T)) - RH * (5.722 - 0.0457*s**2)
|
Pw = Ps * RH / 100.
|
||||||
|
Pa = pres - Pw
|
||||||
|
|
||||||
|
# Wavenumber s
|
||||||
|
s = 1. / l
|
||||||
|
|
||||||
|
# Density factor of dry air, eq. 30
|
||||||
|
Da = (Pa / T) * (1. + Pa * (57.9E-8 - 0.0009325 / T + 0.25844 / T**2))
|
||||||
|
|
||||||
|
# Density factor of moist air, eq. 31
|
||||||
|
Dw = (Pw / T) * (1. + Pw * (1. + 3.7E-4 * Pw) *
|
||||||
|
(-2.37321E-3 + 2.23366 / T - 710.792 / T**2 +
|
||||||
|
77514.1 / T**3))
|
||||||
|
|
||||||
|
# Combining the two into eq. 29
|
||||||
|
na = Da * (2371.34 + 683939.7 / (130. - s**2) + 4547.3 / (38.9 - s**2))
|
||||||
|
nw = Dw * (6487.31 + 58.058 * s**2 - 0.7115 * s**4 + 0.08851 * s**6)
|
||||||
|
R = na + nw
|
||||||
n = R/1e8 + 1
|
n = R/1e8 + 1
|
||||||
return n
|
return n
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ Input parameters for the spherical atmosphere models (all but the first):
|
|||||||
- xc - CO2 density [ppm]
|
- xc - CO2 density [ppm]
|
||||||
- lat - Latitude [deg]
|
- lat - Latitude [deg]
|
||||||
- h - Height above sea level [m]
|
- h - Height above sea level [m]
|
||||||
- l - Wavelength(s) [um]
|
- l - Wavelength(s) [μm]
|
||||||
- z - Zenith angle [deg]
|
- z - Zenith angle [deg]
|
||||||
|
|
||||||
An example - To calculate the atmospheric refraction we set up a `refraction()` object. This requires the latitude and altitude of the observer. The atmospheric dispersion is calculated similarly, but by exchanging the `refraction()` object by a `dispersion()` object and parsing two refractive indices into the `cassini()` function.
|
An example - To calculate the atmospheric refraction we set up a `refraction()` object. This requires the latitude and altitude of the observer. The atmospheric dispersion is calculated similarly, but by exchanging the `refraction()` object by a `dispersion()` object and parsing two refractive indices into the `cassini()` function.
|
||||||
@@ -195,6 +195,7 @@ Included are
|
|||||||
| Bonsch & Potulski (1998) | `BonschPotulski()` | Allows for any temperature, pressure, humidity and CO2 density. |
|
| Bonsch & Potulski (1998) | `BonschPotulski()` | Allows for any temperature, pressure, humidity and CO2 density. |
|
||||||
| Birch & Downs (1994) | `BirchDowns()` | Only at standard atmosphere. Function requires wavelength only. |
|
| Birch & Downs (1994) | `BirchDowns()` | Only at standard atmosphere. Function requires wavelength only. |
|
||||||
| Peck & Reeder (1972) | `PeckReeder()` | Only at standard atmosphere. Function requires wavelength only. |
|
| Peck & Reeder (1972) | `PeckReeder()` | Only at standard atmosphere. Function requires wavelength only. |
|
||||||
|
| Mathar (2006) | `Mathar()` | Allows for temperature, pressure and humidity specification. Works best at wavelengths above 1.4 μm. |
|
||||||
| Hohenkerk & Sinclair (1985) | `HohenkerkAndSinclair()` | Based on Barrell & Sears equation. Generally, gives slightly larger values.|
|
| Hohenkerk & Sinclair (1985) | `HohenkerkAndSinclair()` | Based on Barrell & Sears equation. Generally, gives slightly larger values.|
|
||||||
| Hohenkerk & Sinclair (1985) | `slalib()` | Uses pySLALIB to retrieve the refractive index at standard atmospheric conditions.|
|
| Hohenkerk & Sinclair (1985) | `slalib()` | Uses pySLALIB to retrieve the refractive index at standard atmospheric conditions.|
|
||||||
|
|
||||||
@@ -226,6 +227,7 @@ Presently, several observatories are known. These can all be found in the `obser
|
|||||||
| Roque de los Muchachos Observatory (La Palma) | `LA_PALMA` | GTC, INT, WHT, NOT, and others. |
|
| Roque de los Muchachos Observatory (La Palma) | `LA_PALMA` | GTC, INT, WHT, NOT, and others. |
|
||||||
| La Silla Observatory | `LA_SILLA` | ESO 3.6m telescope, NTG, BlackGEM and others. |
|
| La Silla Observatory | `LA_SILLA` | ESO 3.6m telescope, NTG, BlackGEM and others. |
|
||||||
| Las Campanas Observatory | `LAS_CAMPANAS` | Site of the future GMT. |
|
| Las Campanas Observatory | `LAS_CAMPANAS` | Site of the future GMT. |
|
||||||
|
| Mauna Kea Observatory (Hawaii) | `MAUNA_KEA` | Location of Keck, Subaru, Gemini North and others.|
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
|
|
||||||
|
|||||||
@@ -21,14 +21,14 @@ def setup_package():
|
|||||||
# write_version_py()
|
# write_version_py()
|
||||||
|
|
||||||
setup(name='AstroAtmosphere',
|
setup(name='AstroAtmosphere',
|
||||||
version='1.4.1',
|
version='1.5',
|
||||||
description='Collection of equations for refractive index, refraction and dispersion calculations of atmospheric air.',
|
description='Collection of equations for refractive index, refraction and dispersion calculations of atmospheric air.',
|
||||||
long_description=__readme__,
|
long_description=__readme__,
|
||||||
long_description_content_type='text/markdown',
|
long_description_content_type='text/markdown',
|
||||||
author='Joost van den Born',
|
author='Joost van den Born',
|
||||||
author_email='born@astron.nl',
|
author_email='born@astron.nl',
|
||||||
url='https://gitlab.astro-wise.org/micado/atmosphericmodel',
|
url='https://gitlab.astro-wise.org/micado/atmosphericmodel',
|
||||||
download_url='https://gitlab.astro-wise.org/micado/atmosphericmodel/-/archive/v1.4.1/atmosphericmodel-v1.4.1.tar.gz',
|
download_url='https://gitlab.astro-wise.org/micado/atmosphericmodel/-/archive/v1.5/atmosphericmodel-v1.5.tar.gz',
|
||||||
license='GNU General Public License v3',
|
license='GNU General Public License v3',
|
||||||
data_files = [('',['LICENSE.txt'])],
|
data_files = [('',['LICENSE.txt'])],
|
||||||
package_dir={'AstroAtmosphere': 'AstroAtmosphere'},
|
package_dir={'AstroAtmosphere': 'AstroAtmosphere'},
|
||||||
|
|||||||
Reference in new issue
Block a user