geodezyx.athmo package
Submodules
geodezyx.athmo.athmo module
Created on Tue Jul 9 09:23:54 2019
@author: Chaiyaporn Kitpracha
- geodezyx.athmo.athmo.PWV_conversion(zwd, Tm)
This function convert from Zenith Wet delay to Precipitate Water Vapor (PWV)
- Parameters:
zwd – Zenith wet delay in meters
Tm – Mean temperature of troposphere
- Returns:
PWV – Precipitate Water Vapor in mm
Sources
———-
Solution and Constant k2’ k3 from Atmospheric effects in Space Geodesy Chapter 3.
- geodezyx.athmo.athmo.Tm_bevis(Ts)
This function determines mean temperature based on surface temperature using Bevis equation
- Parameters:
Ts – Surface temperature in Kelvin
- Returns:
Tm – Mean temperature in Kevlin
Sources
———-
Atmospheric effects in Space Geodesy Chapter 3.
- geodezyx.athmo.athmo.calc_stand_ties(epoc, lat_ref, h_ref, h_rov, p0, t0, e0, unit='mm')
Determine standard atmospheric ties with analytical equation from Teke et al. (2011)
Parameters:
- epoc :
time in Python datetime
- lat_ref :
Latitude of Ref. station
- h_ref :
Height of Ref. station
- h_rov :
Height of Rov. station
- p0:
Pressure of Ref. station in hPa
- t0:
Temperature in C of Ref. station
- e0:
Water vapor pressure of Ref. station in hPa
- unit :
in meters (m) or milimeters (mm)
Return:
- ties :
Standard ties of total delay in milimeters or meters
- geodezyx.athmo.athmo.calc_stand_ties_gpt3(epoc, lat_ref, lon_ref, h_ref, lat_rov, lon_rov, h_rov, grid, unit='mm')
Determine standard atmospheric ties from meteological information from GPT3 with analytical equation from Teke et al. (2011)
Parameters:
- epoc :
time in Python datetime
- lat_ref :
Latitude of Ref. station
- lat_rov :
Latitude of Rov. station
- h_ref :
Height of Ref. station
- h_rov :
Height of Rov. station
- grid_file :
meteological grid file
- unit :
in meters (m) or milimeters (mm)
Return:
- ties :
Standard ties of total delay in milimeters or meters
- geodezyx.athmo.athmo.gpt2_5(mjd, lat, lon, HELL, IT, VEC)
(c) Department of Geodesy and Geoinformation, Vienna University of Technology, 2013
The copyright in this document is vested in the Department of Geodesy and Geoinformation (GEO), Vienna University of Technology, Austria. This document may only be reproduced in whole or in part, or stored in a retrieval system, or transmitted in any form, or by any means electronic, mechanical, photocopying or otherwise, either with the prior permission of GEO or in accordance with the terms of ESTEC Contract No. 4000107329/12/NL/LvH. —
This subroutine determines pressure, temperature, temperature lapse rate, mean temperature of the water vapor, water vapour pressure, hydrostatic and wet mapping function coefficients ah and aw, water vapour decrease factor and geoid undulation for specific sites near the Earth surface. It is based on a 5 x 5 degree external grid file (‘gpt2_5.grd’) with mean values as well as sine and cosine amplitudes for the annual and semiannual variation of the coefficients.
The hydrostatic mapping function coefficients have to be used with the height dependent Vienna Mapping Function 1 (vmf_ht.f) because the coefficients refer to zero height.
Example 1 (Vienna, 2 August 2012, with time variation):
dmjd = 56141.d0 dlat(1) = 48.20d0*pi/180.d0 dlon(1) = 16.37d0*pi/180.d0 hell(1) = 156.d0 nstat = 1 it = 0
output: p = 1002.56 hPa T = 22.12 deg Celsius dT = -6.53 deg / km Tm = 281.11 K e = 16.72 hPa ah = 0.0012647 aw = 0.0005726 la = 2.6964 undu = 44.06 m
Example 2 (Vienna, 2 August 2012, without time variation, i.e. constant values):
dmjd = 56141.d0 dlat(1) = 48.20d0*pi/180.d0 dlon(1) = 16.37d0*pi/180.d0 hell(1) = 156.d0 nstat = 1 it = 1
output: p = 1003.49 hPa T = 11.95 deg Celsius dT = -5.47 deg / km Tm = 273.00 K e = 10.23 hPa ah = 0.0012395 aw = 0.0005560 la = 2.6649 undu = 44.06 m
Klemens Lagler, 2 August 2012 Johannes Boehm, 6 August 2012, revision Klemens Lagler, 21 August 2012, epoch change to January 1 2000 Johannes Boehm, 23 August 2012, adding possibility to determine constant field Johannes Boehm, 27 December 2012, reference added Johannes Boehm, 10 January 2013, correction for dlat = -90 degrees
(problem found by Changyong He)
Johannes Boehm, 21 May 2013, bug with dmjd removed (input parameter dmjd was replaced unintentionally; problem found by Dennis Ferguson) Gregory Pain, 17 June 2013, adding water vapour decrease factor la Gregory Pain, 01 July 2013, adding mean temperature Tm Gregory Pain, 30 July 2013, changing the method to calculate the water vapor partial pressure (e) Gregory Pain, 31 July 2013, correction for (dlat = -90 degrees, dlon = 360 degrees) Johannes Boehm, 27 December 2013, copyright notice added Johannes Boehm, 25 August 2014, reference changed to Boehm et al. in GPS Solutions
Source
J. Böhm, G. Möller, M. Schindelegger, G. Pain, R. Weber, Development of an improved blind model for slant delays in the troposphere (GPT2w), GPS Solutions, 2014, doi:10.1007/s10291-014-0403-7
Notes
Modified for Python by: Chaiyaporn Kitpracha
Parameters:
- mjd:
modified Julian date (scalar, only one epoch per call is possible)
- lat:
ellipsoidal latitude in degrees
- lon:
longitude in degrees
- HELL:
ellipsoidal height in m
- IT:
case 1: no time variation but static quantities
case 0: with time variation (annual and semiannual terms)
- VEC:
GPT2 grid data in numpy array size 5 x 5 degree (‘gpt2_5.grd’)
Returns:
- p:
pressure in hPa
- T:
temperature in degrees Celsius
- dT:
temperature lapse rate in degrees per km
- e:
water vapour pressure in hPa
- undu:
geoid undulation in m
- geodezyx.athmo.athmo.gpt3(dtin, lat, lon, h_ell, C, it=0)
This subroutine determines pressure, temperature, temperature lapse rate, mean temperature of the water vapor, water vapour pressure, hydrostatic and wet mapping function coefficients ah and aw, water vapour decrease factor, geoid undulation and empirical tropospheric gradients for specific sites near the earth’s surface. It is based on a 5 x 5 degree external grid file (‘gpt3_5.grd’) with mean values as well as sine and cosine amplitudes for the annual and semiannual variation of the coefficients.
Parameters:
- dtin :
datatime in Python datetime object
- lat:
ellipsoidal latitude in radians [-pi/2:+pi/2]
- lon:
longitude in radians [-pi:pi] or [0:2pi]
- h_ell:
ellipsoidal height in m
- it:
case 1 no time variation but static quantities, case 0 with time variation (annual and semiannual terms)
Returns:
- p:
pressure in hPa
- T:
temperature in degrees Celsius
- dT:
temperature lapse rate in degrees per km
- Tm:
mean temperature weighted with the water vapor in degrees Kelvin
- e:
water vapour pressure in hPa
- ah:
hydrostatic mapping function coefficient at zero height (VMF3)
- aw:
wet mapping function coefficient (VMF3)
- la:
water vapour decrease factor
- undu:
geoid undulation in m
- Gn_h:
hydrostatic north gradient in m
- Ge_h:
hydrostatic east gradient in m
- Gn_w:
wet north gradient in m
- Ge_w:
wet east gradient in m
Notes
Modified for Python by Chaiyaporn Kitpracha
Source
(c) Department of Geodesy and Geoinformation, Vienna University of Technology, 2017
The copyright in this document is vested in the Department of Geodesy and Geoinformation (GEO), Vienna University of Technology, Austria. This document may only be reproduced in whole or in part, or stored in a retrieval system, or transmitted in any form, or by any means electronic, mechanical, photocopying or otherwise, either with the prior permission of GEO or in accordance with the terms of ESTEC Contract No. 4000107329/12/NL/LvH.
D. Landskron, J. Böhm (2018), VMF3/GPT3: Refined Discrete and Empirical Troposphere Mapping Functions, J Geod (2018) 92: 349., doi: 10.1007/s00190-017-1066-2. Download at: https://link.springer.com/content/pdf/10.1007%2Fs00190-017-1066-2.pdf
- geodezyx.athmo.athmo.read_grid_gpt(grid_name, cols=64)
- geodezyx.athmo.athmo.trop_saast(p, dlat, hell, t=0, e=0, mode='dry')
This subroutine determines the zenith total delay based on the equation by Saastamoinen (1972) as refined by Davis et al. (1985)
- Parameters:
p – pressure in hPa
dlat – ellipsoidal latitude in radians
t – temperature in Celcius
e – water vapor pressure in hPa
hell – ellipsoidal height in meters
mode – dry, wet or total
- Returns:
res – zenith total delay in m (depend on mode)
Source
———- – c Reference: Saastamoinen, J., Atmospheric correction for the troposphere and stratosphere in radio ranging of satellites. The use of artificial satellites for geodesy, Geophys. Monogr. Ser. 15, Amer. Geophys. Union, pp. 274-251, 1972. Davis, J.L, T.A. Herring, I.I. Shapiro, A.E.E. Rogers, and G. Elgered, Geodesy by Radio Interferometry: Effects of Atmospheric Modeling Errors on Estimates of Baseline Length, Radio Science, Vol. 20, No. 6, pp. 1593-1607, 1985.
- geodezyx.athmo.athmo.vmf1(ah, aw, dt, dlat, zd)
This subroutine determines the VMF1 (Vienna Mapping Functions 1) for specific sites.
- Parameters:
ah – hydrostatic coefficient a
aw – wet coefficient a
dt – datetime in python datetime
dlat – ellipsoidal latitude in radians
zd – zenith distance in radians
- Returns:
vmf1h – hydrostatic mapping function
vmf1w – wet mapping function
Reference
———-
Boehm, J., B. Werl, H. Schuh (2006), Troposphere mapping functions for GPS and very long baseline interferometry
from European Centre for Medium-Range Weather Forecasts operational analysis data,
J. Geoph. Res., Vol. 111, B02406, doi (10.1029/2005JB003629.)
Notes
Written by Johannes Boehm, 2005 October 2
Translated to python by Chaiyaporn Kitpracha
geodezyx.athmo.vmf1_compute module
Python translation of the VMF1G computation Fortran modules.
This module provides atmospheric delay computation functions for geodetic applications using Vienna Mapping Function 1 Gridded (VMF1G) data.
Translated from Fortran modules: - get_vmf1g_values.f90 - compute_vmf1g_values.f90 - get_orography.f90 - sd_vmf1_grid_elevation.f90 - sd_gmf.f90 - sd_gpt.f90 - jour_julien_ff.f90 - calend1.f90
Author: Translated to Python Original Fortran authors: FF, FR, Johannes Boehm
- geodezyx.athmo.vmf1_compute.compute_vmf1g_values(data_dir: str, year: int, month: int, day: int, hh: int, min_val: int, sec: int, lat: float, lon: float, h: float, el: float) Dict[str, float]
Main function to compute VMF1G atmospheric delay values.
Parameters:
- data_dirstr
Directory containing VMF1G data files
- year, month, dayint
Calendar date
- hh, min_val, secint
Time (hour, minute, second)
- lat, lonfloat
Latitude and longitude in degrees
- hfloat
Ellipsoidal height in meters
- elfloat
Elevation angle in degrees
Returns:
dict : Dictionary containing computed atmospheric delay values
- geodezyx.athmo.vmf1_compute.get_orography(orography_file: str, lat: float, lon: float) ndarray
Get orographic heights for the 4 grid nodes surrounding a location.
Parameters:
- orography_filestr
File containing orography data
- lat, lonfloat
Latitude and longitude in degrees
Returns:
np.ndarray : Orographic heights for 4 grid nodes
- geodezyx.athmo.vmf1_compute.get_vmf1g_values(data_dir: str, year: int, month: int, day: int, sec: float, lat: float, lon: float) Dict[str, float | ndarray]
Get VMF1G values for a given location and time.
Parameters:
- data_dirstr
Directory containing VMF1G data files
- year, month, dayint
Calendar date
- secfloat
Seconds since midnight
- lat, lonfloat
Latitude and longitude in degrees
Returns:
dict : Dictionary containing VMF1G grid data and interpolation parameters
- geodezyx.athmo.vmf1_compute.main()
Main function to run VMF1G computation from command line or interactive input.
- geodezyx.athmo.vmf1_compute.sd_gmf(dmjd, dlat, dlon, dhgt, zd)
Python translation of sd_gmf subroutine Determines Global Mapping Functions GMF
Parameters:
- dmjdfloat
modified julian date
- dlatfloat
latitude in radians
- dlonfloat
longitude in radians
- dhgtfloat
height in m
- zdfloat
zenith distance in radians
Returns:
- gmfhfloat
hydrostatic mapping function
- gmfwfloat
wet mapping function
- geodezyx.athmo.vmf1_compute.sd_gmf_simple(dmjd: float, dlat: float, dlon: float, dhgt: float, zd: float) Tuple[float, float]
Determine Global Mapping Functions (GMF).
Parameters:
- dmjdfloat
Modified Julian date
- dlatfloat
Latitude in radians
- dlonfloat
Longitude in radians
- dhgtfloat
Height in m
- zdfloat
Zenith distance in radians
Returns:
tuple : (gmfh, gmfw) - hydrostatic and wet mapping functions
- geodezyx.athmo.vmf1_compute.sd_gpt(dmjd, dlat, dlon, dhgt)
Python translation of sd_gpt subroutine Determines Global Pressure and Temperature
Parameters:
- dmjdfloat
modified julian date
- dlatfloat
latitude in radians
- dlonfloat
longitude in radians
- dhgtfloat
ellipsoidal height in m
Returns:
- presfloat
pressure in hPa
- tempfloat
temperature in Celsius
- undufloat
Geoid undulation in m
- geodezyx.athmo.vmf1_compute.sd_gpt_simple(dmjd: float, dlat: float, dlon: float, dhgt: float) Tuple[float, float, float]
Determine Global Pressure and Temperature based on Spherical Harmonics.
Parameters:
- dmjdfloat
Modified Julian date
- dlatfloat
Latitude in radians
- dlonfloat
Longitude in radians
- dhgtfloat
Ellipsoidal height in m
Returns:
tuple : (pressure in hPa, temperature in Celsius, geoid undulation in m)
- geodezyx.athmo.vmf1_compute.sd_vmf1_grid_elevation(ah: float, aw: float, dmjd: float, dlat: float, ht: float, zd: float) Tuple[float, float]
Determine VMF1 (Vienna Mapping Functions 1) with height correction.
Parameters:
- ahfloat
Hydrostatic coefficient a
- awfloat
Wet coefficient a
- dmjdfloat
Modified Julian date
- dlatfloat
Latitude in radians
- htfloat
Ellipsoidal height in meters
- zdfloat
Zenith distance in radians
Returns:
tuple : (vmf1h, vmf1w) - hydrostatic and wet mapping functions