GravTesseroid is a collection of matlab scripts for modeling the gravitational potential of a tesseroid and its first and second order derivatives. It is inspired by Uieda et al.(2016) (C language code), Heck & Seitz (2007) and Grombein et al.(2013).
The geometry of a tesseroid is show in Fig.1
The first version v1.0 mainly contains fundamental functions for modeling the gravitatinal attraction of a tesseroid and employs three kinds of approaches to perform the forward modeling. These methods are:
- Gauss-Legendre quadrature (3D GLQ)
- Taylor series expansion (TSE)
- prism approximation (PA)
All subfunctions required are in the folder /private. For instance, the GLQ_tess_g3.m, Taylor_tess_g3.m and prism_grav_vector.m are functions that calculate the gravitational attraction of a tesseroid on one computation point using the 3D GLQ, TSE, and PA, respectively.
The Pf_GLQ_grav.m, Pf_Taylor_grav.m and Pt_Prism_grav.m are their counterparts of parallel computing using the parfor loop of MATLAB and call the functions GLQ_tess_g3.m, Taylor_tess_g3.m and prism_grav_vector.m, respectively.
The input model file is a text fiel that can be read using function importdata(), and each line describe one tesseroid in such format:
W E S N TopH BottomH Density
W,E,S,N denote the western, eastern, southern and northern edges of a tesseroid. TopH and BottomH correspond to the top and the bottom of tesseroid with respect to the reference radius of the earth. Density is the density of the tesseroid.
The computation grid data can be read from the text file in the disk or can be generated by the function grid_gene_pixel(), the grid data should be in such format:
Longitude Latitude Height
Longitude, Latitude and Height are the longitude, latitude and altitude of the computation point.
Example: to obtain the approximation error of the gravitational effect when using GLQ to perform forward modeling for the tesseroids with horizontal dimension of 1 degree, we write script A02_ApproximationError_GaussLegendre.m and the tesseroid model data and grid data required are generated by the function tess_genera_model() and grid_gene(), respectively. The results are written in the A02_Difference_grav_GaussLegendre.mat. The ordinary output is in such format:
Lon Lat ResultValue
Lon and Lat are longitude and latitude of the computation point, respectively. These data are stored in .mat files.
The computed data are visualized using the MATLAB scripts. For example the script Fig3_plotting.m visulizes the relaiton between the approximation errors and the latitude of the computation point in terms of GLQ, TSE and PA methods. The data required by the drawing code are loaded from .mat files (that are computed by scripts like A0X_xxx.m).
- Grombein, T. , Seitz, K. & Heck, B. (2013). Optimized formulas for the gravitational field of a tesseroid. Journal of Geodesy, 87(7), 645-660.
- Heck, B., & Seitz, K. (2007). A comparison of the tesseroid, prism and point-mass approaches for mass reductions in gravity field modelling. Journal of Geodesy, 81(2), 121-136.
- Uieda, L., Barbosa, V. C. & Braitenberg, C. (2016). Tesseroids: Forward-modeling gravitational fields in spherical coordinates. Geophysics, 81(5), F41-F48.