Logo Leibniz Universität Hannover
Logo: Mock Data Challenge
Logo Leibniz Universität Hannover
Logo: Mock Data Challenge
  • Zielgruppen
  • Suche
 

GRACETOOLS

Overview

GRACETOOLS is a collection of MATLAB scripts that can be used for gravity field recovery using GRACE type satellite observations.

Features

  • The code is written using a batch least squares algorithm.
  • Three different fixed step numerical integration schemes are provided.
  • MATLAB parallel for-Loops (parfor) is used for calculation over arcs (days here).
  • This code can be easily modified to run on the user’s local parallel computations clusters.

Content

GRACETOOLS is open source software and licensed under GPLv3. Please reference this article if you use GRACETOOLS:

Darbeheshti N., Wöske F., Weigelt M., McCullough C., Wu H. (2018) GRACETOOLS - GRACE gravity field recovery tools, Geosciences 2018, 8(9), 350; https://doi.org/10.3390/geosciences8090350.

Requirements

MATLAB and the Parallel Computing Toolbox.

Installation

Download GRACETOOLS as a zip file and extract it somewhere on your computer.

Or clone the repository with git clone:

$ git clone git@gitlab.aei.uni-hannover.de:geoq/gracetools.git

Usage

The main m-files to run are:

  • gfr_parallel.m
  • continue_gfr_par_from_iteration.m

You need an example dataset to run these scripts. If you’re on Linux or MacOS use the get_input_data.sh script to get the dataset:

$ ./get_input_data.sh

If you prefer the manual way download the dataset:

Move the zip file into the input_data directory, extract it and delete the now unnecessary input_data.zip file. For completeness here are the terminal commands:

$ mv ~/Downloads/input_data.zip input_data/
$ cd input_data/
$ unzip input_data.zip
$ rm -f input_data.zip

The directory structure of input_data/ should look like this:

input_data
├── MockData_do10_nod4
│   ├── 2005-05-01
│   │   ├── GNV1B_2005-05-01_A_02.asc
│   │   ├── GNV1B_2005-05-01_B_02.asc
│   │   └── KBR1B_2005-05-01_X_02.asc
│   ├── 2005-05-02
│   │   ├── GNV1B_2005-05-02_A_02.asc
│   │   ├── GNV1B_2005-05-02_B_02.asc
│   │   └── KBR1B_2005-05-02_X_02.asc
│   ├── 2005-05-03
│   │   ├── GNV1B_2005-05-03_A_02.asc
│   │   ├── GNV1B_2005-05-03_B_02.asc
│   │   └── KBR1B_2005-05-03_X_02.asc
│   └── 2005-05-04
│       ├── GNV1B_2005-05-04_A_02.asc
│       ├── GNV1B_2005-05-04_B_02.asc
│       └── KBR1B_2005-05-04_X_02.asc
├── EGM96.gfc
└── GGM05S.gfc

Performance

With an older Intel i5 (4 cores) a test case with degree and order 10 with 4 days of observation, each iteration takes about 10min.

Files

  • batch_processor_partitioned.m - batch processing algorithm for GRACE range-rate observations
  • cs2sc.m- converts the square containing spherical harmonics coefficients storage format into a rectangular format
  • cs2vec- rearranges a field of spherical harmonic coefficients in cs-or sc-format to a vector shape
  • deriv.m- calculates equation of motion and all partials
  • dv_geoidn.m- reads an Earth’s gravity field model and plots the degree variances
  • dv_geoidn_no_plot- reads an Earth’s gravity field model and gives the degree variances without plotting
  • grtenpshs.m- calculates the gradient and the tensor of the gravity field
  • hmat.m- makes the Hi_tilda matrix
  • importGravityField.m- import numeric data from a text file as a matrix
  • initplm.m- initializes a plm calculation
  • inter_sat_dist.m- calculates range and range rate from position and velocity
  • llpartialgradV.m- determines the partial derivative of the gradient of the gravity field w.r.t. the coefficients
  • multmatvek.m- mulitplicates a matrix and a vector
  • odeint.m- integrates one step with step size dt from t0 and initial values y0
  • odeint_abm.m- integrates one step with step size h from t0 and initial values y0
  • odeint_dp8.m- integrates one step with step size h from t0 and initial values y0 with Runge-Kutta (RK) integrator
  • odeint_dp8_abm_init.m- integrates one step with step size h from t0 and initial values y0 with Runge-Kutta (RK) integrator
  • odeint_rk4.m- integrates one step with step size h from t0 and initial values y0 with simple 4th order Runge-Kutta (RK) integrator
  • odeint_rk4_abm_init.m- integrates one step with step size h from t0 and initial values y0 with simple 4th order Runge-Kutta (RK) integrator
  • plm.m- fully normalized associated Legendre functions for a selected order M
  • plmsp.m- fully normalized associated Legendre functions for all degree and order but in a single points
  • readACC.m- Read GRACE ACC1B
  • readGFC.m- Read Gravity Field Coefficients (GFC file)
  • readGNV.m- Read GRACE GNV1B
  • readKBR.m- Read GRACE KBR1B
  • readSCA.m- Read GRACE SCA1B
  • Ri2e.m- returns the rotation matrix (only Z-rotation) from an inertial frame to an Earth-fixed coordinate system
  • Ri2e_dot.m- returns the derivative of the rotation matrix (only Z-rotation) from inertial frame to an Earth-fixed coordinate system
  • save_vars2continue_itr.m- save all important variables of a gravity estimation
  • vec2cs.m- rearranges a vector shaped set of spherical harmonic coefficients into cs-format

Contributors