A collection of tools for gravimeter data analysis
Project description
A collection of tools to analyze gravimeter data.
This Python package is a collaborative effort by the gravity metrology group at the German Federal Agency for Carthography and Geoesy (BKG) and the hydrology section at GFZ German Research Centre for Geosciences.
Features
- Read and process raw data of the Exail Absolute Quantum Gravimeter (AQG)
- Apply standardized or customized AQG data processing and outlier detection
- Read and write processed datasets with metadata to .nc-files in NETCDF4-format
- Handle Earth orientation parameters (EOP) from iers.org for polar motion correction
- Evaluate tilt calibration measurements
- Visualize data with matplotlib
- CLI for standard processing of AQG raw data to .nc-file
- Dashboard for real-time processing and visualization during measurements (on AQG laptop)
- Dashboard includes a proposed standard template for a measurement protocol
Planned
- Handling of Scintrex CG6 data and standard analyses
- Generation of PDF-report for tilt calibration analyses
Dependencies
- Python 3.8 or later
- allantools (LGPLv3+ license)
- fpdf2 (LGPLv3)
- matplotlib (PSF license)
- netcdf4-python (MIT license)
- numpy (BSD license)
- pandas (BSD license)
- pyyaml (MIT license)
- requests (Apache 2 license)
- xarray (Apache 2 license)
Optional
AQG dashboard
Documentation
- mkdocs (BSD license)
- mkdocstrings-python (ISC license)
- mkdocs-material (MIT license)
- mkdocs-jupyter (Apache 2 license)
Unit tests
- pytest (MIT license)
- pytest-cov (MIT license)
Installation
For the latest stable release, install from PyPI.org
$ pip install gravitools
For the latest (development) version, install from Git repository
$ pip install git+https://gitlab.opencode.de/bkg/gravitools.git
For further install instructions please see the respective section in the documentation.
Getting started with AQG data processing
Example usage:
from gravitools.aqg import read_aqg_raw_dataset
# Read raw data to an AQGRawData object (which wraps a pandas.DataFrame)
raw = read_aqg_raw_dataset("20240620_163341.zip")
# Apply standard processing
raw.process()
# Finalize processing by converting to an AQGDataset (which wraps an
# xarray.Dataset)
dataset = raw.to_dataset()
# Save processed dataset to file in NETCDF-4 format
dataset.to_nc("20240620_163341.nc")
# Generate and save a measurement report in PDF format
dataset.save_report("report_20240620_163341.pdf")
AQG dashboard
The dashboard has to be run on the AQG laptop in order to profit from its full functionality. It has the purpose to provide an alternative, customizable way of viewing and interacting with measurement data, during the process of live measurements. This is especially helpful for updated, on-the-fly outlier detection and plots of parameters as time series (e.g. temperatures, tilts). More information on this, including all offered options, are addressed in the documentation.
Install gravitools with the optional dependencies for the dashboard, preferably in an isolated virtual environment.
$ pip install gravitools[dashboard]
Run the dashboard
$ gt-aqg-dash
You can now access the dashboard at http://localhost:8000/.
Documentation
The documenation is available at readthedocs.io.
To build the documentation, clone the repository and install gravitools with the necessary dependencies into a virtual environment.
$ git clone https://gitlab.opencode.de/bkg/gravitools.git
$ cd gravitools/
$ python -m venv venv
$ source venv/bin/activate
$ pip install -e .[docs]
Build the documentation
$ mkdocs build
The documentation can be accessed at public/index.html.
Conventions
Data
- All corrections are subtracted from the measured gravity value.
- Units are assumed as follows (if not provided and parameters are passed only
as numbers). Input data in other units is converted.
- Gravity: nm s^-2^
- Gravity gradient: nm s^-2^ m^-1^
- Heights: m
- Tilt angle: rad
- Polar angles: arcsec
- Coordinates: degree
- Orientation of sensor: degree from North
- Timestamps are always UTC.
Terminology
Point : A precisely defined measurement location, usually identified by a point code. For example, the gravimeter lab at the Geodetic Observatory Wettzell has points WET_CA, WET_DA, WET_EA, and WET_FA. The vertical gravity gradient is a property of each point. An Earth tide model can apply to multiple points.
site_name
: The AQG control software has an input field for the measurement site name. It
is recored in the metadata (.info file) as measurement_site_name. Here, this
parameter name is shortened to site_name and its value kept unchanged. Since
this field can contain supplementary metadata, such as sensor orientation, it
is not necessarily identical to the point code. When reading a dataset,
Gravitools attempts to guess the point code and sensor orientation from the
site_name by a formatting pattern.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gravitools-0.2.0.tar.gz.
File metadata
- Download URL: gravitools-0.2.0.tar.gz
- Upload date:
- Size: 70.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a502256bd4fbc1f7274f28760fc3688a60680856f9bcc341916835285db0233
|
|
| MD5 |
8f09b74b737e95af4d998b5fe18b7778
|
|
| BLAKE2b-256 |
90bfcde6ab14ce8b1593e55fa21674a40fff8293683bdf2810a6db272e30c786
|
File details
Details for the file gravitools-0.2.0-py3-none-any.whl.
File metadata
- Download URL: gravitools-0.2.0-py3-none-any.whl
- Upload date:
- Size: 66.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99d61c921300f58b819129a006b09f02bd26e508a1d7916beed7ba5f2b9fda03
|
|
| MD5 |
f4dbc1081244c42cac12f6802ce51601
|
|
| BLAKE2b-256 |
181f7c5204259d35093a429ff3d93f3aeb75034dfeb2be43183f991ba959c55f
|