mirror of
https://gitlab.astro-wise.org/micado/atmosphericmodel.git
synced 2026-10-30 05:01:02 +00:00
ported slalib.sla_refro, some refactoring
This commit is contained in:
1 parent
83d0c9ea45
commit
c1f94e4d95
9 files changed
+1241
-234
No files matched your search
@@ -41,7 +41,7 @@ disp = dispersion(lat, h)
|
||||
disp.setReducedHeight(P, rho)
|
||||
|
||||
# Calculation of the atmopheric dipsersion
|
||||
atm_dispersion = disp.cassini(n1, z0) * 3.6e6
|
||||
atm_dispersion = disp.cassini(n1, n2, z0) * 3.6e6
|
||||
print ('The dispersion is %.03f milli arc seconds' %(atm_dispersion))
|
||||
```
|
||||
|
||||
@@ -60,7 +60,7 @@ The package contains the following files:
|
||||
- `/data/1976USSA.txt` : Data file of the 1976 US Standard Atmosphere.
|
||||
- `ciddorModel.py` : Contains the `Observatory()` class to calculate the refractive index of atmospheric air, using the Ciddor (1996) model.
|
||||
- `dispersionModels.py` : Contains various atmospheric models that can be used to calculate the atmospheric dispersion
|
||||
- `examples.py` : Contains several quick functions, e.g. to quickly calculate the refractive index.
|
||||
- `misc.py` : Contains several miscellaneous functions, e.g. to quickly calculate the refractive index.
|
||||
- `refractionModels.py` : Contains various atmospheric models that can be used to calculate the atmospheric refraction
|
||||
- `refractivityModels.py` : Contains various functions from literature to calculate the refractive index. Some examples of works included are Ciddor (1996), Barrell & Sears (1939), SLALIB, Owens (1967) and Edlen (1966).
|
||||
|
||||
@@ -85,7 +85,7 @@ Basic functionality of other refractivity models is included as well and is disc
|
||||
|
||||
## The atmospheric refraction and atmospheric dispersion models
|
||||
|
||||
If the atmospheric refraction is denoted as R(n), then atmospheric dispersion is defined as R(n1) - R(n2). Thus they are very similar in function and also in use.
|
||||
If the atmospheric refraction is denoted as R(n), then atmospheric dispersion is defined as R(n1) - R(n2). Thus they are very similar in function and use.
|
||||
|
||||
|
||||
The available models in this package:
|
||||
@@ -96,6 +96,7 @@ The available models in this package:
|
||||
- `tan5()` - Oriani's theorem expanded ( Atan(z) + Btan^3(z) + Ctan^5(z) )
|
||||
- `corbard()` - Error function refraction model
|
||||
- `matharExponential()` - Barometric exponential model by R. Mathar.
|
||||
The package also includes a python native port of the `SLA_REFRO()` FORTRAN routine, ported from pyslalib. See below for more information.
|
||||
|
||||
|
||||
Input parameters for the spherical atmosphere models (all but the first):
|
||||
@@ -190,7 +191,8 @@ Included are
|
||||
| Bonsch & Potulski (1998) | `BonschPotulski()` | Function does not include humidity |
|
||||
| Birch & Downs (1994) | `BirchDowns()` | Only at standard atmosphere. Function requires wavelength only. |
|
||||
| Peck & Reeder (1972) | `PeckReeder()` | Only at standard atmosphere. Function requires wavelength only. |
|
||||
| Hohenkerk & Sinclair (1985) | `slalib()` | Only at standard atmosphere. Function requires wavelength only. |
|
||||
| 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.|
|
||||
|
||||
The last function extracts the refractive index from the `pyslalib.sla_refro()` function and thus requires [pyslalib](https://pypi.org/project/pySLALIB/). This is an optional dependency for the setup of AstroAtmosphere.
|
||||
|
||||
@@ -210,3 +212,7 @@ rq = quick_refraction(l1, zenith_obs, conditions='STANDARD')
|
||||
# Quick dispersion
|
||||
dq = quick_dispersion(l1, l2, zenith_obs, conditions='STANDARD')
|
||||
```
|
||||
|
||||
## Other
|
||||
|
||||
This package also contains a python native port of the `SLA_REFRO()` routine of the pyslalib package, which was originally written in FORTRAN by P.T. Wallace. It can be called directly using `sla_refro()`. When using the same units as the other refraction functions, you might prefer using `slalib_refraction()` or `slalib_dispersion()`.
|
||||
Reference in new issue
Block a user