curryer.kernels.ephemeris

ephemeris

@author: Brandon Stone

Attributes

Classes

EphemerisTypes

Ephemeris kernel types.

EphemerisInputDataTypes

Ephemeris input data types.

EphemerisWriterTimeTypes

Ephemeris writer time types.

AbstractEphemerisProperties

Ephemeris kernel common properties.

EphemerisStateProperties

Ephemeris state kernel properties.

EphemerisTLEProperties

Ephemeris state kernel properties.

AbstractEphemerisWriter

Create or append to a SPICE ephemeris (SPK) kernel.

EphemerisStateWriter

Create or append to a SPICE ephemeris (SPK) kernel using table-like input

EphemerisTLEWriter

Create or append to a SPICE ephemeris (SPK) kernel using TLE.

Module Contents

curryer.kernels.ephemeris.logger
class curryer.kernels.ephemeris.EphemerisTypes(*args, **kwds)

Bases: enum.Enum

Ephemeris kernel types.

INTERP_LAGRANGE_EVEN = 8
INTERP_LAGRANGE_UNEVEN = 9
INTERP_HERMITE_EVEN = 12
INTERP_HERMITE_UNEVEN = 13
TLE = 10
class curryer.kernels.ephemeris.EphemerisInputDataTypes(*args, **kwds)

Bases: enum.Enum

Ephemeris input data types.

STATES = 'STATES'
TLE_ELEMENTS = 'TL_ELEMENTS'
class curryer.kernels.ephemeris.EphemerisWriterTimeTypes(*args, **kwds)

Bases: enum.Enum

Ephemeris writer time types.

UTC = 'UTC'
ET = 'ETSECONDS'
class curryer.kernels.ephemeris.AbstractEphemerisProperties

Bases: curryer.kernels.classes.AbstractKernelProperties

Ephemeris kernel common properties.

SUPPORTED_INPUT_DATA_TYPES: ClassVar = None
input_data_type: str = None
input_center: str = None
input_frame: str = None
spk_type: str = None
leapsecond_kernel: str = None
planet_kernels: list[str] = None
__post_init__()
to_dict()

Convert the properties class to a dict for creating kernels.

class curryer.kernels.ephemeris.EphemerisStateProperties

Bases: AbstractEphemerisProperties

Ephemeris state kernel properties.

SUPPORTED_INPUT_DATA_TYPES: ClassVar
input_body: str = None
input_data_type: str = 'STATES'
input_data_units: dict[str, str]
input_time_type: str = 'ugps'
input_time_columns: list[str] = ['ugps']
input_data_columns: list[str] = ['position_x', 'position_y', 'position_z', 'velocity_x', 'velocity_y', 'velocity_z']
spk_type: str = 'INTERP_HERMITE_UNEVEN'
polynom_degree: int = 3
frame_kernel: str = None
writer_ignore_lines: int = 1
writer_lines_per_record: int = 1
writer_data_delimiter: str = ','
writer_data_order: str = 'epoch x y z vx vy vz'
writer_time_type: str = 'UTC'
__post_init__()
to_dict()

Convert the properties class to a dict for creating kernels.

class curryer.kernels.ephemeris.EphemerisTLEProperties

Bases: AbstractEphemerisProperties

Ephemeris state kernel properties.

SUPPORTED_INPUT_DATA_TYPES: ClassVar
input_tle: int = None
input_body: str = None
input_data_type: str = 'TLE_ELEMENTS'
spk_type: str = 'TLE'
tle_start_pad: str = '12 hours'
tle_stop_pad: str = '12 hours'
to_dict()

Convert the properties class to a dict for creating kernels.

class curryer.kernels.ephemeris.AbstractEphemerisWriter(properties: AbstractKernelProperties, bin_dir: str = None, parent_dir: str = None)

Bases: curryer.kernels.classes.AbstractKernelWriter

Create or append to a SPICE ephemeris (SPK) kernel.

Notes

Kernel configuration arguments set by this class:
  • LEAPSECONDS_FILE : __init__, accessor.properties.spice.kernels

  • PCK_FILE : __init__, accessor.properties.spice.kernels

KTYPE = 'spk'
FILE_EXT = '.bsp'
abstractmethod prepare_input_data(input_data: pandas.DataFrame) list[pandas.DataFrame]

Prepare an accessor that will provide input data for the kernel.

abstractmethod write_input_data(fobj_or_str, accessor)

Write input data.

_write_kernel(setup_file, input_file, kernel_file, append=False)

Setup the command to create an “SPK” kernel using the external tool “mkspk”.

Parameters:
  • setup_file (str) – Setup file containing kernel creation properties (see “mkspk”).

  • input_file (str) – Input data file to create kernel from.

  • kernel_file (str) – Kernel filename to create.

  • append (bool, optional) – Append data to an existing kernel (if exists). Default=False

Returns:

List of subprocess commands and arguments.

Return type:

list of str

class curryer.kernels.ephemeris.EphemerisStateWriter(properties: EphemerisStateProperties, **kwargs)

Bases: AbstractEphemerisWriter

Create or append to a SPICE ephemeris (SPK) kernel using table-like input data sets (e.g. database or CSV file).

Notes

Kernel configuration arguments set by this class:
  • OBJECT_NAME : __init__, accessor.properties.spice.name # TODO: Update

  • LEAPSECONDS_FILE : __init__, accessor.properties.spice.kernels

  • PCK_FILE : __init__, accessor.properties.spice.kernels

  • IGNORE_FIRST_LINE : __init__

  • LINES_PER_RECORD : __init__

  • DATA_DELIMITER : __init__

  • DATA_ORDER : prepare_input, time position velocity

  • TIME_WRAPPER : prepare_input, UTC string

properties
prepare_input_data(input_data: pandas.DataFrame) list[pandas.DataFrame]

Prepare an accessor that will provide input data for the kernel.

write_input_data(fobj_or_str, input_data: pandas.DataFrame)

Write input data.

class curryer.kernels.ephemeris.EphemerisTLEWriter(properties: EphemerisTLEProperties, **kwargs)

Bases: AbstractEphemerisWriter

Create or append to a SPICE ephemeris (SPK) kernel using TLE.

Notes

Kernel configuration arguments set by this class:
  • LEAPSECONDS_FILE : __init__, accessor.properties.spice.kernels

  • PCK_FILE : __init__, accessor.properties.spice.kernels

properties
prepare_input_data(input_data: pandas.DataFrame) list[pandas.DataFrame]

Prepare an accessor that will provide input data for the kernel.

write_input_data(fobj_or_str, input_data: pandas.DataFrame)

Write input data.

curryer.kernels.ephemeris.PROPERTIES_TO_WRITER