geodezyx.geodyn package

Submodules

geodezyx.geodyn.emsgfz_load_interp module

Created on Fri Jun 25 16:43:48 2021 @author: psakic

This sub-module of geodezyx.geodyn contains functions to load and use the GFZ’s ESM loading model.

The GeodeZYX Toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/GeodeZYX/geodezyx-toolbox

geodezyx.geodyn.emsgfz_load_interp.ESMGFZ_DataFrame_reader(path_in, contribution='auto')

Reader for CSV files downloaded from EMS’s website

Parameters:
  • path_in (str) – path of the input CSV file.

  • contribution (str, optional or None) – add a column for the loading contribution name. ‘auto’ will determine the contribution based on the filename None will not generate such column ‘<contribution name>’: manual name The default is ‘auto’.

Returns:

DF – output DataFrame.

Return type:

DataFrame

geodezyx.geodyn.emsgfz_load_interp.ESMGFZ_downloader(latitude, longitude, output_dir, components=['NTAL', 'NTOL', 'HYDL', 'SLEL'], CM_CF='CF', outputformat='csv', formatvariables='duNS,duEW,duV', startdate=datetime.datetime(2019, 1, 1, 0, 0), enddate=datetime.datetime(2020, 1, 1, 0, 0), outfile_prefix='')

Download loading contribution values for a specific point from ESM’s website

http://rz-vm115.gfz-potsdam.de:8080/repository/entry/show?entryid=2827909c-6c9d-46fd-ba2c-f806bf215170&output=wiki.view

Parameters:
  • latitude (float) – latitude in degrees.

  • longitude (float) – longitude in degrees.

  • output_dir (str) – ouput directory for the downloaded files.

  • components (list of str, optional) – list of the wished loading contributions. The default is [“NTAL”,”NTOL”,”HYDL”,”SLEL”].

  • CM_CF (str, optional) – Center of Figure (CF) or Center of Mass (CM). The default is “CF”.

  • outputformat (str, optional) – choose the output format. CSV is strongly recommended. ‘netcdf’ and ‘timeseries’ is also supported The default is “csv”.

  • formatvariables (str, optional) – outputed variables. The default is “duNS,duEW,duV”.

  • startdate (datetime, optional) – start date. The default is dt.datetime(2010,1,1).

  • enddate (datetime, optional) – start end. The default is dt.datetime(2020,1,1).

  • outfile_prefix (str, optional) – A custo. The default is “”.

Returns:

output_path – DESCRIPTION.

Return type:

TYPE

geodezyx.geodyn.emsgfz_load_interp.ESMGFZ_extrapolator(path_or_netcdf_object_in, time_xtrp, lat_xtrp, lon_xtrp, wished_values=('duV', 'duNS', 'duEW'), output_type='DataFrame', debug=False, verbose=True, time_smart=True, interp_method='splinef2d')

Extrapolate loading values from the EMSGFZ models esmdata.gfz-potsdam.de:8080/

Parameters:
  • path_or_netcdf_object_in (string, list of strings or NetCDF object) – Input can be a file path (string), a list of string (will be concatenated) or direcly the NetCDF object (faster).

  • time_xtrp (float or float iterable) – time for the wished extrapolated values for daily files: hours of day [0..23]. for yearly files: day of years [0..364].

  • lat_xtrp (float or float iterable) – latitude component for the wished extrapolated values ranging from [-90..90]

  • lon_xtrp (float or float iterable) – longitude component for the wished extrapolated values. ranging from [-180..180]

  • wished_values (tuple of string, optional) – the components of the extrapolated values. The default is (“duV”,”duNS”,”duEW”).

  • output_type (str, optional) – Choose the output type. “DataFrame”,”dict”,”array”,”tuple”,”list” The default is “DataFrame”.

  • debug (bool, optional) – returns the NetCDF object for debug purposes

Returns:

Points_out – The extrapolated values.

Return type:

see output_type

geodezyx.geodyn.euler_pole_calc module

@author: psakic

This sub-module of geodezyx.geodyn contains functions to determine the Euler pole of a tectonic plate.

it can be imported directly with: from geodezyx import geodyn

The GeodeZYX Toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/GeodeZYX/geodezyx-toolbox

This module is based on the work of : Goudarzi, M. A., Cocard, M., & Santerre, R. (2014). EPC: Matlab software to estimate Euler pole parameters. GPS Solutions, 18(1), 153–162. https://doi.org/10.1007/s10291-013-0354-4

geodezyx.geodyn.euler_pole_calc.covarvec2wtmat(covars)

Internal fuction for euler_pole_calc

geodezyx.geodyn.euler_pole_calc.euler_pole_calc(lat_ref, long_ref, vn_ref, ve_ref, incvn_ref=None, incve_ref=None, Rt=6371008.8)

Compute the Euler pole of a set of reference points

Parameters:
  • lat_ref (list or numpy.array) – latitude and longitude of the reference points (deg)

  • long_ref (list or numpy.array) – latitude and longitude of the reference points (deg)

  • vn_ref (list or numpy.array) – north and east velocities of the reference points (m/yr)

  • ve_ref (list or numpy.array) – north and east velocities of the reference points (m/yr)

  • incvn_ref (list or numpy.array) – uncertainties on north and east velocities of the reference points (m/yr)

  • incve_ref (list or numpy.array) – uncertainties on north and east velocities of the reference points (m/yr)

  • Rt (float) – Earth Radius IUGG value = 6.3710088e6 IAU value = 6.378e6

Returns:

  • w (numpy.array) – Euler vector (rad/yr)

  • wratedeg (float) – Rate of rotation (deg/Myr)

  • wlat,wlong (float) – latitude and longitude of the Euler pole (deg)

  • wwmat (numpy.array) – weight matrix (for debug)

  • desmat (numpy.array) – design matrix (for debug)

  • nrmatinv (2-tuple) – output of scipy’s lstsq fct (for debug)

  • Source

  • ——

  • based on

  • Goudarzi, M. A., Cocard, M., & Santerre, R. (2014). EPC (Matlab software to estimate Euler pole parameters. GPS Solutions, 18(1), 153–162. https://doi.org/10.1007/s10291-013-0354-4)

Notes

w is the common element for all Euler pole functions

Should remains in rad/yr

Written by C. Geisert (ENSTA/LIENSs) - 2017

geodezyx.geodyn.euler_pole_calc.euler_pole_quality(w, vn_ref, ve_ref, nrmatinv, desmat, wwmat, pretty_output=True)

Compute the uncertainties of the Euler pole determination

Parameters:
  • w (numpy.array) – Pole of rotation vector computed by euler_pole_calc

  • vn_ref (list or numpy.array) – north and east velocities of the reference points (m/yr)

  • ve_ref (list or numpy.array) – north and east velocities of the reference points (m/yr)

  • nrmatinv (2-tuple) – output of scipy’s lstsq fct from euler_pole_calc

  • wwmat (numpy.array) – weight matrix from euler_pole_calc

  • desmat (numpy.array) – design matrix from euler_pole_calc

  • pretty_output (bool) – if True, convert sigma_ww_latlon to pertinent units directly, returns raw units instead

Returns:

  • sigma_ww (numpy.array) – Uncertainty on the Euler vector

  • sigma_ww_latlon (numpy.array) – Uncertainty on the Euler pole : [rateSigma, latSigma, longSigma] if pretty_output == True : [deg/Myr,deg,deg] if pretty_output == False : [rad/yr,rad,rad]

  • dV_topo3 (numpy.array) – Residual velocities for the references points

  • wrmse (float) – weigthed RMS on Residual velocities (m)

  • wrmse_norm (float) – nomalized weigthed RMS on Residual velocities (m)

  • rmse (float) – unweigthed RMS on Residual velocities (m)

  • apost_sigma (float) – a-posteriori sigma (m)

Notes

w is the common element for all Euler pole functions

Should remains in rad/yr

geodezyx.geodyn.euler_pole_calc.euler_pole_vector_from_latlongrate(wlat, wlong, wrate, return_w_in_deg_per_Myr=False)

Compute the Euler vector from the pole latitude, longitude and rate

Parameters:
  • wlat (float) – latitude and longitude of the Euler pole (deg)

  • wlong (float) – latitude and longitude of the Euler pole (deg)

  • wrate (float) – rate of the Euler pole (rad/Myr)

Returns:

w – Pole of rotation vector (rad/yr)

Return type:

numpy.array

Notes

w is the common element for all Euler pole functions

Should remains in rad/yr per default

Written by C. Geisert (ENSTA/LIENSs) - 2017

geodezyx.geodyn.euler_pole_calc.euler_pole_vector_to_latlongrate(w)

Convert Euler pole vector to latitude longitude and rate

Parameters:

w (numpy.array) – Pole of rotation vector computed by euler_pole_calc (rad/yr)

Returns:

  • wlat,wlong (float) – latitude and longitude of the Euler pole (deg)

  • wrate (float) – Rate of rotation (rad/Myr)

  • wratedeg (float) – Rate of rotation (deg/Myr)

Notes

w is the common element for all Euler pole functions

Should remains in rad/yr

Written by P. Sakic based on C. Geisert’s work

geodezyx.geodyn.euler_pole_calc.euler_vels_relative_to_ref(w, lat_ITRF, long_ITRF, vn_ITRF, ve_ITRF, incvn_ITRF=None, incve_ITRF=None, Rt=6378000.0)

Compute relative velocities of points with respect to a reference plate/Euler pole

Parameters:
  • w (numpy.array) – Pole of rotation vector computed by euler_pole_calc (rad/yr)

  • lat_ITRF (list or numpy.array) – latitude and longitude of the points (deg)

  • long_ITRF (list or numpy.array) – latitude and longitude of the points (deg)

  • vn_ITRF (list or numpy.array) – north and east velocities of the points (m/yr)

  • ve_ITRF (list or numpy.array) – north and east velocities of the points (m/yr)

  • incvn_ITRF (list or numpy.array) – uncertainties on north and east velocities of the points (m/yr)

  • incve_ITRF (list or numpy.array) – uncertainties on north and east velocities of the points (m/yr)

Returns:

vel_reltoref – relative velocities of points with respect to the Euler pole w

Return type:

numpy.array

Notes

w is the common element for all Euler pole functions

Should remains in rad/yr

Written by C. Geisert (ENSTA/LIENSs) - 2017

geodezyx.geodyn.euler_pole_calc.topo2dm(coords)

Internal fuction for euler_pole_calc

geodezyx.geodyn.velo_field_map_plt module

@author: psakic

This sub-module of geodezyx.geodyn contains functions to plot velocity vectors on a map.

it can be imported directly with: from geodezyx import geodyn

The GeodeZYX Toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/GeodeZYX/geodezyx-toolbox

geodezyx.geodyn.velo_field_map_plt.LevelColormap(levels, cmap=None)

Make a colormap based on an increasing sequence of levels

geodezyx.geodyn.velo_field_map_plt.area(lo, la, grid, minla, maxla, minlo, maxlo, type_long='0-180')
geodezyx.geodyn.velo_field_map_plt.draw_map(station_etude, latm, latM, lonm, lonM, path, all_pos, hw, vn_ITRF, ve_ITRF, plot_vertical_ITRF, incvn_ITRF, incve_ITRF, incplot_vertical_ITRF, plot_GEBCO=False, plot_vertical=False, plot_topo=True, plot_ellipses=True, coarse_lines=False, legend_arrow_length=('1 cm/yr', 0.01), legend_ellipse_size=('2 mm/yr', 0.002), legend_position=(0.5, 0.9), scale_arrow=15000000, scale_ellipse=10000000, name_stats=True, name_stats_font_size=8, name_stats_offset=(0.005, 0.01), shorten_oversized_arrows=True, exclude_points_out_of_range=True, adjust_text=False, pixels_hires_backgrnd=2000, draw_borders=True, full_return=False, draw_latlon_lines=True)
geodezyx.geodyn.velo_field_map_plt.landmask(M, color='0.8')
geodezyx.geodyn.velo_field_map_plt.split_grid(lo, la, gr, fact)

geodezyx.geodyn.volcano_mogi module

Created on Mon Mar 14 12:58:32 2022 @author: psakic

This sub-module of geodezyx.geodyn contains functions to for forward volcano-geodesy analytic models.

It is direcly inspired by the work of Scott Henderson https://github.com/scottyhq/cov9

The GeodeZYX Toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/GeodeZYX/geodezyx-toolbox

geodezyx.geodyn.volcano_mogi.benchmark()

Mogi Source in an elastic halfspace (Segall Figure 7.5)

geodezyx.geodyn.volcano_mogi.cart2pol(x1, x2)
geodezyx.geodyn.volcano_mogi.dP2dV(dP, a, mu=4000000000.0)
geodezyx.geodyn.volcano_mogi.dV2dP(dV, a, mu=4000000000.0)
geodezyx.geodyn.volcano_mogi.forward(x, y, xcen=0, ycen=0, d=3000.0, dV=1000000.0, nu=0.25)

Calculates surface deformation based on point source

References: Mogi 1958, Segall 2010 p.203

Args:

x: x-coordinate grid (m) y: y-coordinate grid (m)

Kwargs:

xcen: y-offset of point source epicenter (m) ycen: y-offset of point source epicenter (m) d: depth to point (m) dV: change in volume (m^3) nu: poisson’s ratio for medium

Returns:

(ux, uy, uz)

geodezyx.geodyn.volcano_mogi.forward_dp(x, y, xcen=0, ycen=0, d=3000.0, a=500, dP=100000000.0, mu=4000000000.0, nu=0.25)

dP instead of dV, NOTE: dV = pi * dP * a**3 / mu 981747.7 ~ 1e6

geodezyx.geodyn.volcano_mogi.get_cart2los(incidence, heading)

coefficients for projecting cartesian displacements into LOS vector

geodezyx.geodyn.volcano_mogi.invert(xargs, xcen, ycen, depth, dV)

Wrapper of mogi.forward to project to LOS and adjust arguments to work with scipy.omptimize.curvefit. Assumes UTM input for X and Y

geodezyx.geodyn.volcano_mogi.mogi_frontend(normalize=False, params=None, mesh_size=15000, npts=100, color='blue', figure=None, label_lgd='')

Mogi Source in an elastic halfspace (Segall Figure 7.5)

geodezyx.geodyn.volcano_mogi.pol2cart(theta, r)