Skip to content

Quantity

AbsGValue dataclass

Absolute gravity value

Examples:

>>> AbsGValue(9.81e9, 30, height=1.25, vgg=Gradient(-3000))
AbsGValue(value=9810000000.0,  error=30, height=1.25,
    vgg=Gradient(value=-3000, error=0))
>>> str(AbsGValue(9.81e9))
'9,810,000,000.0 nm/s²'
>>> str(AbsGValue(9.81e9, 30))
'9,810,000,000.0 ± 30.0 nm/s²'
>>> str(AbsGValue(9.81e9, 30, 1.25))
'9,810,000,000.0 ± 30.0 nm/s² (1.25 m)'

error = 0 class-attribute instance-attribute

Standard error, in nm/s²

height = None class-attribute instance-attribute

Measurement height, in m

value instance-attribute

Absolute gravity value, in nm/s²

vgg = None class-attribute instance-attribute

Vertical gravity gradient used for height transfer

as_gvalue()

Convert to a relative gravity value

Examples:

>>> AbsGValue(9.81e9, 30).as_gvalue()
GValue(value=9810000000.0, error=30)

transfer(height)

Transfer gravity value to a different height

Parameters:

Name Type Description Default
height float

New height, in meters.

required

Returns:

Type Description
AbsGValue

Absolute gravity value at new height

Examples:

>>> AbsGValue(9.8e9, 30, height=1.25, vgg=Gradient(-3200, 20)).transfer(0)
AbsGValue(value=9800004000.0, error=39.05124837953327, height=0,
    vgg=Gradient(value=-3200, error=20))

GValue dataclass

A relative gravity value

Provides arithmetic, string formatting and error propagation (sum of squares).

Examples:

>>> GValue(100, 10) + GValue(200, 10)
GValue(value=300, error=14.142135623730951)
>>> 10 * GValue(100, 10)
GValue(value=1000, error=100)
>>> str(GValue(123.456))
'123.5 nm/s²'
>>> str(GValue(123.456, 12.34))
'123.5 ± 12.3 nm/s²'

error = 0 class-attribute instance-attribute

Standard error, in nm/s²

value instance-attribute

Gravity value, in nm/s²

as_tuple()

Convert to a tuple of value and error

from_str(text) classmethod

Parse a gravity value string

Examples:

>>> GValue.from_str("123.4 nm/s²")
GValue(value=123.4, error=0)
>>> GValue.from_str("12.34 µGal")
GValue(value=123.4, error=0)
>>> GValue.from_str("123.4 ± 1.2 nm/s²")
GValue(value=123.4, error=1.2)

Gradient dataclass

Vertical gravity gradient

Examples:

>>> str(Gradient(-3000))
'-3000.0 nm/s²/m'
>>> str(Gradient(-3000, 10))
'-3000.0 ± 10.0 nm/s²/m'

error = 0 class-attribute instance-attribute

Standard error, in nm s-2 m-1

value instance-attribute

Vertical gravity gradient, in nm s-2 m-1

as_tuple()

Convert to a tuple of value and error

dg_height(height_difference)

Gravity height transfer correction

Parameters:

Name Type Description Default
height_difference float

Difference to original measurement height, in meters.

required

Returns:

Type Description
GValue

Height transfer correction.

from_str(text) classmethod

Convert string to Gradient

Examples:

>>> Gradient.from_str("-300 µGal/m")
Gradient(value=-3000.0, error=0)
>>> Gradient.from_str("-3000 nm/s²/m")
Gradient(value=-3000.0, error=0)
>>> Gradient.from_str("-300 µGal/m")
Gradient(value=-3000.0, error=0)

Parameters:

Name Type Description Default
text str

Input string.

required

clean_coord_angle(text)

Parse a coordinate angle and format in standard form

Examples:

>>> clean_coord_angle('12.34°')
'12.340000°'

clean_gradient(text)

Bring gravity gradient string to standard form

Examples:

>>> clean_gradient('-300 µGal/m')
'-3000.0 nm/s²/m'

clean_gravity(value)

Bring gravity value string to standard form

Examples:

>>> clean_gravity('12.34 µGal')
'123.4 nm/s²'
>>> clean_gravity(123.4)
'123.4 nm/s²'

clean_height(text)

Parse a height value string and format in standard form

Examples:

>>> clean_height('1.25')
'1.2500 m'

clean_pressure_admittance(text)

Parse a pressure admittance string and format in standard form

Examples:

>>> clean_pressure_admittance('-0.3 µGal/hPa')
'-3.00 nm/s²/hPa'

format_coord_angle(value)

Format a coordinate angle value

format_height(value)

Format a height value

format_pressure_admittance(value)

Format a pressure admittance value

parse_coord_angle(text)

Parse a latitude or longitude angle string

Examples:

>>> parse_coord_angle("12.4567 °")
12.4567
>>> parse_coord_angle("12.4567°")
12.4567

parse_gradient(value)

Parse a gravity gradient value

parse_gravity(value)

Parse a gravity float value or string

parse_height(text)

Parse a height string

If no units are specified, value is interpreted as meters. This is for compatibility with very early AQG metadata files.

Examples:

>>> parse_height("123.45 m")
123.45
>>> parse_height("123.45")
123.45

parse_pressure_admittance(text)

Parse a pressure admittance string

Parameters:

Name Type Description Default
text str | float

If the input is a number, it is assumed to be in units of nm/s²/hPa.

required

Returns:

Type Description
float

Pressure admittance value.

Examples:

>>> parse_pressure_admittance("-3 nm/s²/hPa")
-3.0
>>> parse_pressure_admittance("-0.3 µGal/hPa")
-3.0
>>> parse_pressure_admittance(-3)
-3.0

parse_quantity(text)

Parse a quantity string into value, uncertainty and units

Also accepts float values. These are simply passed through.

Examples:

>>> parse_quantity("12.34 ± 0.01 nm/s²")
(12.34, 0.01, 'nm/s²')
>>> parse_quantity(12.34)
(12.34, None, None)

parse_tilt_angle(text)

Parse an instrument tilt angle

Examples:

>>> parse_tilt_angle("1e-6 rad")
1e-06
>>> parse_tilt_angle("0.001 mrad")
1e-06
>>> parse_tilt_angle("1 µrad")
1e-06
>>> parse_tilt_angle(1e-6)
1e-06