This repository introduces an open-source tool for computing regional gravimetric geoids using gravity observations. Our primary goal is to create a platform for analysis-ready gravity data, where algorithms and code for working with gravity data are openly shared and improved. The initial release features a tile-wise least-squares collocation (LSC) method based on gravity anomaly observations.
Quasi-geoid calculated from Least Squares Collocation.
In summary, for computing a geoid from gravity anomalies, the process can be conceptualized as a sequence of "remove-predict-restore" operations, where the Global Gravity Model (GGM) and topographic effects are removed, a geoid is predicted (here with LSC), and then the effects are restored to obtain the final geoid model. The functions
folder provides all the MATLAB functions to perform these three steps for geoid calculations.
This self-contained codebase provides three major steps for geoid calculation:
- Topographic corrections to gravity anomalies
- Calculation of covariance functions
- Performing least squares collocation (LSC)
The code is designed as a starting point for research and development in geoid calculation using a variety of gravity data, such as terrestrial gravity anomalies, gravity anomalies from satellite altimetry, airborne gravity anomalies, and gravity gradients.
The workflow for generating the geoid from gravity observations can be found in RunDemo.m
. This script is highly flexible and can be adapted to different regions and processing requirements. Designed to be run on a personal computer, RunDemo.m
allows users to specify an area of interest and directories where the final plots will be saved.
In RunDemo.m
, all necessary specifications are defined. The script first calls the functions needed to apply topographic corrections to the gravity observations within the area of interest. It then performs the geoid calculation by dividing the area into tiles, which reduces the matrix sizes for easier inversion.
At the end of the process, RunDemo.m
combines all the tiles and outputs the geoid in TIFF format for the specified region.
To run RunDemo.m
:
-
Create the following folders:
Data
outputs/Grids/
outputs/ResidualTiles/
-
Download the required input data from the following links and place them in the
Data
folder:
Detailed output files and plots generated by RunDemo.m
are available in the document
folder.
The code can be run using the Run*.m
scripts.
All functions are in the functions
folder. The hierarchy of the four main scripts and their related functions is listed in the table below.
Function Group | Function Name |
---|---|
importAndFormatData.m |
|
computeFullTerrainEffect.m |
computeTerrainCorrection.m |
computeTerrainEffect.m |
computePrismGravity.m |
computeNagyFormula.m |
|
filterDEM.m |
|
computeCovarianceFunctionParameters.m |
|
computeSphericalEmpiricalCovariance.m |
|
fitEmpiricalCovariance.m |
|
precomputeCovarianceFunction.m |
|
interpolateCovarianceFunction.m |
|
computeGravimetryLSC.m |
solveGravityLSCmatrix.m |
computeGradiometryLSC.m |
solveGradientLSCmatrix.m |
computeGravimetryGradiometryLSC.m |
solveGravityGradientLSCmatrix.m |
createGridWeights.m |
|
mosaicTiles.m |
If you use this code in your research, please contact [email protected] for citation information.