midgard.data

midgard.data._h5utils

Simple utilities used by Dataset when dealing with HDF5 files

dict2h5attr()

Full name: midgard.data._h5utils.dict2h5attr

Signature: (dct:Dict[str, str]) -> str

Convert a dictionary to a string that can be stored as an HDF5 attribute

h5attr2dict()

Full name: midgard.data._h5utils.h5attr2dict

Signature: (attr:str) -> List[str]

Convert an HDF5 attribute to a dictionary of strings

h5attr2list()

Full name: midgard.data._h5utils.h5attr2list

Signature: (attr:str) -> List[str]

Convert an HDF5 attribute to a list of strings

h5attr2tuple()

Full name: midgard.data._h5utils.h5attr2tuple

Signature: (attr:str) -> Tuple[str, ...]

Convert an HDF5 attribute to a list of strings

sequence2h5attr()

Full name: midgard.data._h5utils.sequence2h5attr

Signature: (lst:Sequence[str]) -> str

Convert a list to a string that can be stored as an HDF5 attribute

midgard.data._position

Module for dealing with positions, velocities and position corrections in different coordinate systems

PosBase

Full name: midgard.data._position.PosBase

Signature: ()

Base class for the various position and velocity arrays

PosVelArray

Full name: midgard.data._position.PosVelArray

Signature: (val, ellipsoid=Ellipsoid(name='GRS80', a=6378137, f_inv=298.257222101, description='Used by ITRS'), **pos_args)

Base class for Position and Velocity arrays

This PosVelArray should not be instantiated. Instead instantiate one of the system specific subclasses, typically using the Position factory function.

PosVelDeltaArray

Full name: midgard.data._position.PosVelDeltaArray

Signature: (val, ref_pos, **delta_args)

Base class for position and velocity deltas

This PosVelDeltaArray should not be instantiated. Instead instantiate one of the system specific subclasses, typically using the PositionDelta factory function.

PositionArray

Full name: midgard.data._position.PositionArray

Signature: (val, ellipsoid=Ellipsoid(name='GRS80', a=6378137, f_inv=298.257222101, description='Used by ITRS'), **pos_args)

Base class for Position arrays

This PositionArray should not be instantiated. Instead instantiate one of the system specific subclasses, typically using the Position factory function.

PositionDeltaArray

Full name: midgard.data._position.PositionDeltaArray

Signature: (val, ref_pos, **delta_args)

Base class for position deltas

This PositionDeltaArray should not be instantiated. Instead instantiate one of the system specific subclasses, typically using the PositionDelta factory function.

VelocityArray

Full name: midgard.data._position.VelocityArray

Signature: (val, ref_pos, **vel_args)

Base class for Velocity arrays

This VelocityArray should not be instantiated. Instead instantiate one of the system specific subclasses. The intended usage will be through a PosVelArray

VelocityDeltaArray

Full name: midgard.data._position.VelocityDeltaArray

Signature: (val, ref_pos, **vel_args)

Base class for Velocity arrays

This VelocityArray should not be instantiated. Instead instantiate one of the system specific subclasses. The intended usage will be through a PosVelArray

register_attribute()

Full name: midgard.data._position.register_attribute

Signature: (cls:Callable, name:str, attr_cls:Callable) -> None

Function used to register new attributes on position arrays

The registered attributes will be available as attributes on PositionArray and its subclasses. In addition, each attribute can be given as a parameter when creating a PositionArray.

The reason for using this register-function instead of a regular attribute is to allow additional attributes to be added on all position systems.

Args:

register_field()

Full name: midgard.data._position.register_field

Signature: (units:List[str]) -> Callable

Decorator used to register fields and their units

register_system()

Full name: midgard.data._position.register_system

Signature: (convert_to:Dict[str, Callable]=None, convert_from:Dict[str, Callable]=None) -> Callable[[Callable], Callable]

Decorator used to register new position systems

The system name is read from the .system attribute of the Position class.

Args:

Returns:

Decorator registering system.

midgard.data._time

Array with time epochs

TimeArray

Full name: midgard.data._time.TimeArray

Signature: (val, val2=None, format='', _jd1=None, _jd2=None)

register_scale()

Full name: midgard.data._time.register_scale

Signature: (convert_to:Dict[str, Callable]=None, convert_from:Dict[str, Callable]=None) -> Callable[[Callable], Callable]

Decorator used to register new time scales

The scale name is read from the .scale attribute of the Time class.

Args:

Returns:

Decorator registering scale.

midgard.data._time_formats

Array with time epochs

TimeDateTime

Full name: midgard.data._time_formats.TimeDateTime

Signature: (val, val2=None)

TimeFormat

Full name: midgard.data._time_formats.TimeFormat

Signature: (val, val2=None)

TimeGPSWeekSec

Full name: midgard.data._time_formats.TimeGPSWeekSec

Signature: (val, val2=None)

GPS weeks and seconds.

TimeJD

Full name: midgard.data._time_formats.TimeJD

Signature: (val, val2=None)

TimeMJD

Full name: midgard.data._time_formats.TimeMJD

Signature: (val, val2=None)

Modified Julian Date time format.

This represents the number of days since midnight on November 17, 1858. For example, 51544.0 in MJD is midnight on January 1, 2000.

TimeYear

Full name: midgard.data._time_formats.TimeYear

Signature: (val, val2=None)

Year.

TODO: conversion is not correct!!!

register_format()

Full name: midgard.data._time_formats.register_format

Signature: (cls:Callable) -> Callable

Decorator used to register new time formats

The format name is read from the .format attribute of the TimeFormat class.

midgard.data._time_scales

Time scales and conversions between them

GpsTime

Full name: midgard.data._time_scales.GpsTime

Signature: (val, val2=None, format='', _jd1=None, _jd2=None)

TaiTime

Full name: midgard.data._time_scales.TaiTime

Signature: (val, val2=None, format='', _jd1=None, _jd2=None)

TtTime

Full name: midgard.data._time_scales.TtTime

Signature: (val, val2=None, format='', _jd1=None, _jd2=None)

UtcTime

Full name: midgard.data._time_scales.UtcTime

Signature: (val, val2=None, format='', _jd1=None, _jd2=None)

midgard.data.dataset

A dataset for handling time series data

Description:

Dataset

Full name: midgard.data.dataset.Dataset

Signature: (num_obs:int=0) -> None

A dataset representing fields of data arrays

Meta

Full name: midgard.data.dataset.Meta

Signature: (*args, **kwargs)

field_type (str)

field_type = 'time'

midgard.data.fieldtypes

Field types that can be used by Dataset

function()

Full name: midgard.data.fieldtypes.function

Signature: (plugin_name:str) -> Callable

Function creating new field

names()

Full name: midgard.data.fieldtypes.names

Signature: () -> List[str]

Names of fieldtype plugins

midgard.data.fieldtypes._fieldtype

Abstract class used to define different types of tables for a Dataset

FieldType

Full name: midgard.data.fieldtypes._fieldtype.FieldType

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

Abstract class representing a type of field in the Dataset

midgard.data.fieldtypes.collection

A Dataset collection field consisting of other fields

Collection

Full name: midgard.data.fieldtypes.collection.Collection

Signature: ()

CollectionField

Full name: midgard.data.fieldtypes.collection.CollectionField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.float

A Dataset float field

FloatField

Full name: midgard.data.fieldtypes.float.FloatField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.position

A Dataset position field

PositionField

Full name: midgard.data.fieldtypes.position.PositionField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.position_delta

A Dataset position delta field

PositionDeltaField

Full name: midgard.data.fieldtypes.position_delta.PositionDeltaField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.posvel

A Dataset position field

PositionField

Full name: midgard.data.fieldtypes.posvel.PositionField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.posvel_delta

A Dataset position delta field

PositionDeltaField

Full name: midgard.data.fieldtypes.posvel_delta.PositionDeltaField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.sigma

A Dataset sigma field

SigmaField

Full name: midgard.data.fieldtypes.sigma.SigmaField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.text

A Dataset text field

TextField

Full name: midgard.data.fieldtypes.text.TextField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.fieldtypes.time

A Dataset time field

TimeField

Full name: midgard.data.fieldtypes.time.TimeField

Signature: (num_obs, name, val, unit=None, write_level=None, **field_args)

midgard.data.position

Array with positions

EnuPosVelDelta

Full name: midgard.data.position.EnuPosVelDelta

Signature: (val, ref_pos, **delta_args)

EnuPositionDelta

Full name: midgard.data.position.EnuPositionDelta

Signature: (val, ref_pos, **delta_args)

EnuVelocityDelta

Full name: midgard.data.position.EnuVelocityDelta

Signature: (val, ref_pos, **vel_args)

LlhPosition

Full name: midgard.data.position.LlhPosition

Signature: (val, ellipsoid=Ellipsoid(name='GRS80', a=6378137, f_inv=298.257222101, description='Used by ITRS'), **pos_args)

PosVel()

Full name: midgard.data.position.PosVel

Signature: (val:numpy.ndarray, system:str, **pos_args:Any) -> 'PosVelArray'

Factory for creating PosVelArrays for different systems

See each position class for exact optional parameters.

Args:

Returns:

Array with positions in the given system.

PosVelDelta()

Full name: midgard.data.position.PosVelDelta

Signature: (val:numpy.ndarray, system:str, ref_pos:midgard.data._position.PosVelArray, **delta_args:Any) -> midgard.data._position.PosVelDeltaArray

Factory for creating PosVelArrays for different systems

See each position class for exact optional parameters.

Args:

Returns:

Array with positions in the given system.

Position()

Full name: midgard.data.position.Position

Signature: (val:numpy.ndarray, system:str, **pos_args:Any) -> 'PositionArray'

Factory for creating PositionArrays for different systems

See each position class for exact optional parameters.

Args:

Returns:

Array with positions in the given system.

PositionDelta()

Full name: midgard.data.position.PositionDelta

Signature: (val:numpy.ndarray, system:str, ref_pos:midgard.data._position.PositionArray, **delta_args:Any) -> midgard.data._position.PositionDeltaArray

Factory for creating PositionArrays for different systems

See each position class for exact optional parameters.

Args:

Returns:

Array with positions in the given system.

TrsPosVel

Full name: midgard.data.position.TrsPosVel

Signature: (val, ellipsoid=Ellipsoid(name='GRS80', a=6378137, f_inv=298.257222101, description='Used by ITRS'), **pos_args)

TrsPosVelDelta

Full name: midgard.data.position.TrsPosVelDelta

Signature: (val, ref_pos, **delta_args)

TrsPosition

Full name: midgard.data.position.TrsPosition

Signature: (val, ellipsoid=Ellipsoid(name='GRS80', a=6378137, f_inv=298.257222101, description='Used by ITRS'), **pos_args)

TrsPositionDelta

Full name: midgard.data.position.TrsPositionDelta

Signature: (val, ref_pos, **delta_args)

TrsVelocity

Full name: midgard.data.position.TrsVelocity

Signature: (val, ref_pos, **vel_args)

TrsVelocityDelta

Full name: midgard.data.position.TrsVelocityDelta

Signature: (val, ref_pos, **vel_args)

midgard.data.sigma

Array with sigma values

See https://docs.scipy.org/doc/numpy/user/basics.subclassing.html for information about subclassing Numpy arrays.

SigmaArray is a regular Numpy array with an added field, sigma.

SigmaArray

Full name: midgard.data.sigma.SigmaArray

Signature: (values, sigma=None)

midgard.data.time

Array with time epochs

Time()

Full name: midgard.data.time.Time

Signature: (val:numpy.ndarray, scale:str, format:str, val2:Union[numpy.ndarray, NoneType]=None, _jd1:Union[numpy.ndarray, NoneType]=None, _jd2:Union[numpy.ndarray, NoneType]=None) -> 'TimeArray'

Factory for creating TimeArrays for different systems

See each time class for exact optional parameters.

Args:

Returns:

Array with epochs in the given time scale and format