Welcome to gMeterPy’s documentation!

gMeterPy

Latest version on PyPI TravisCI build status Test coverage status Codacy grade Compatible Python versions Documentation Status Chat room on Gitter

Gravity (small g) measurement data processing framework written in Python.

The goal of the gMeterPy is to create an open source software to process raw data from all types of gravimeters.

The project is in the early planning and development stage.

About

gMeterPy is an open source and free Python library for processing measurement data from gravimeters, which are used for gravity field surveys in geodesy, geophysics and other branches of Earth and planetary sciences. The main intention is to go as deep as possible in processing raw data from scratch, as well as to support all types of instruments, corrections, common file formats and processing procedures.

Install

You will need Python 3.5 or greater.

To install gMeterPy simply use pip as usual:

pip install https://github.com/opengrav/gmeterpy/archive/master.zip

Or clone the git repository locally and run:

git clone https://github.com/opengrav/gmeterpy.git
cd gmeterpy
pip install .

Contributing

There are many ways you can contribute! Please read CONTRIBUTING.rst to see how you can help and give feedback.

Please note also that gMeterPy is released with a Code of Conduct (see CODE_OF_CONDUCT.md). By participating in this project you agree that you will follow all its terms.

License

This project is licensed under the MIT license. Please see LICENSE.txt for details.

Installing

Installing from PyPI

gMeterPy can be installed via pip from PyPI:

pip install gmeterpy

However, this is not the best option, given that the package is under active development.

Installing the latest development version

To install gMeterPy from GitHub simply use pip as usual:

pip install https://github.com/opengrav/gmeterpy/archive/master.zip

Or clone the git repository locally and run pip:

git clone https://github.com/opengrav/gmeterpy.git
cd gmeterpy
pip install .
Dependencies

The gMeterPy depends on several open source projects:

User guide

Units (gmeterpy.units)

The unit aware calculations is one of the main goals of the gMeterPy. We are using astropy.units sub-package for this. To use units you need to import gmeterpy.units module:

>>> import gmeterpy.units as u

And now you can work with gravity acceleration SI units:

>>> gravity = 9.8 * u.m / u.s**2
>>> gravity
<Quantity 9.8 m / s2>

and convert them to more convinient CGS units:

>>> gravity.to(u.Gal)
<Quantity 980. Gal>

and even use prefixes (u – micro):

>>> gravity.to(u.uGal)
<Quantity 9.8e+08 uGal>

In addition to Astropy built-in units we introduce Eotvos unit for the gravity gradient:

>>> gradient = 0.3086 * u.mGal / u.m
>>> gradient.to(u.E)
<Quantity 3086. E>
Constants (gmeterpy.constants)

The gMeterPy uses astropy.constants sub-package for handling constants. We expand it for some frequently used constants in gravimetry.

Constant

Description

omega

Mean angular rotation rate of the Earth

atm_sens

Default gravity/pressure sensitivity (0.3 uGal / mbar)

International Standard Atmosphere

The Standard Atmosphere (ISO 2533:1975) is used to calculate the normal pressure in the atmospheric pressure correction.

Constant

Description

p0

Standard atmospheric pressure at sea level

L

Temperature lapse rate

Tn

Standard thermodynamic air temperature at sea level

gn

Standard acceleration of free-fall

M

Air molar mass at sea level

R

Universal gas constant

API Reference

Gravity Corrections and Reductions

gmeterpy.corrections.atmosphere

Atmospheric pressure correction.

gmeterpy.corrections.polar_motion

Polar motion correction.

gmeterpy.corrections.fsol

Correction due to the finite speed of light for absolute gravimeters.

Contributing

Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.

You can contribute in many ways:

Types of Contributions
Report Bugs

Report bugs at https://github.com/opengrav/gmeterpy/issues.

If you are reporting a bug, please include:

  • Your operating system name and version.

  • Any details about your local setup that might be helpful in troubleshooting.

  • Detailed steps to reproduce the bug.

Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with “bug” and “help wanted” is open to whoever wants to implement it.

Implement Features

Look through the GitHub issues for features. Anything tagged with “enhancement” and “help wanted” is open to whoever wants to implement it.

Write Documentation

gMeterPy could always use more documentation, whether as part of the official gMeterPy docs, in docstrings, or even on the web in blog posts, articles, and such.

Submit Feedback

The best way to send feedback is to file an issue at https://github.com/opengrav/gmeterpy/issues.

If you are proposing a feature:

  • Explain in detail how it would work.

  • Keep the scope as narrow as possible, to make it easier to implement.

  • Remember that this is a volunteer-driven project, and that contributions are welcome :)

Indices and tables