geodezyx.atmo package
Submodules
geodezyx.atmo.atmo module
Created on Tue Jul 9 09:23:54 2019
@author: Chaiyaporn Kitpracha
- geodezyx.atmo.atmo.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.atmo.atmo.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.atmo.atmo.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)
- Returns:
Standard ties of total delay in milimeters or meters
- Return type:
ties
- geodezyx.atmo.atmo.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
lon_ref – Longitude of Ref. station
lat_rov – Latitude of Rov. station
lon_rov – Longitude of Rov. station
h_ref – Height of Ref. station
h_rov – Height of Rov. station
grid – meteological grid file
unit – in meters (m) or milimeters (mm)
- Returns:
Standard ties of total delay in milimeters or meters
- Return type:
ties
- geodezyx.atmo.atmo.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.
Examples
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
- 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
Notes
Modified for Python by: Chaiyaporn Kitpracha
References
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
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
- geodezyx.atmo.atmo.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
C – grid data
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.atmo.atmo.read_grid_gpt(grid_name, cols=64)
- geodezyx.atmo.atmo.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.atmo.atmo.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
References
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.atmo.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.atmo.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.atmo.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.atmo.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.atmo.vmf1_compute.main()
Main function to run VMF1G computation from command line or interactive input.
- geodezyx.atmo.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.atmo.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.atmo.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.atmo.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.atmo.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