Source code for ptr.snippets
"""Generic PTR snippets."""
from .element import Element
[docs]class Lon(Element):
"""PTR east longitude element.
Parameters
----------
lon: float
East longitude value.
units: str, optional
Value units (default: 'deg').
description: str or list, optional
Longitude description, put as a xml-comment on top of the element.
"""
def __init__(self, lon_e, units='deg', description=None):
super().__init__('lon', float(lon_e), units=units, description=description)
[docs]class Lat(Element):
"""PTR latitude element.
Parameters
----------
lon: float
Latitude value.
units: str, optional
Value units (default: 'deg').
description: str or list, optional
Latitude description, put as a xml-comment on top of the element.
"""
def __init__(self, lat, units='deg', description=None):
super().__init__('lat', float(lat), units=units, description=description)
[docs]class Target(Element):
"""PTR target element.
Parameters
----------
lon_e: float
Target east longitude coordinate.
lat: float
Target latitude coordinate.
frame: str, optional
Target reference frame (default 'EME2000').
units: str, optional
Value coordinates units (default: 'deg').
description: str or list, optional
Target description, put as a xml-comment on top of the element.
**attrs: optional
Targets attributes.
"""
def __init__(self, lon_e, lat, frame='EME2000', units='deg', **attrs):
super().__init__(
'target',
Lon(lon_e, units=units),
Lat(lat, units=units),
frame=frame,
**attrs
)
[docs]class SolarArrays(Element):
"""PTR metadata solar array element.
Parameters
----------
fixed_rotation_angle: float, optional
Solar array fixed rotation angle (in degrees).
description: str or list, optional
Solar array description, put as a xml-comment on top of the element.
"""
def __init__(self, fixed_rotation_angle=None, description=None, **attrs):
super().__init__('solarArrays', description=description, **attrs)
if fixed_rotation_angle is not None:
self.append(
Element('fixedRotationAngle', fixed_rotation_angle, units='deg')
)