CitraClient.Schemas.TelescopeCreate (citra_client v0.3.0)
View SourceSchema for telescope creation - required fields enforced.
FOV precedence: if sensor specifications (horizontal_pixel_count, vertical_pixel_count, pixel_size, focal_length) are provided, the computed field_of_view takes precedence over legacy_field_of_view. Both may coexist; legacy_field_of_view is only used when sensor specs are incomplete. At least one FOV method must be provided.
Fields
:angular_noise—number()(API key:angularNoise) — Angular noise in arcseconds:automated_scheduling—boolean()(API key:automatedScheduling) — Whether this telescope is enabled for automated scheduling:filter_change_time_seconds—number()(API key:filterChangeTimeSeconds) — Time required to change filters in seconds (default: 5.0):focal_length—number()(API key:focalLength) — Focal length of the optical system in millimeters:focal_ratio—number()(API key:focalRatio) — Focal ratio (f-number) of the optical system, unitless:ground_station_id— UUIDString.t()(API key:groundStationId) — Ground station this telescope is assigned to:home_azimuth—number()(API key:homeAzimuth) — Home azimuth position in degrees:home_elevation—number()(API key:homeElevation) — Home elevation position in degrees:horizontal_pixel_count—integer()(API key:horizontalPixelCount) — Number of horizontal pixels in the sensor:image_circle_diameter—number()(API key:imageCircleDiameter) — Diameter of the usable image circle in millimeters:last_connection_epoch—DateTime.t()(API key:lastConnectionEpoch) — Last time the telescope connected:legacy_field_of_view—number()(API key:legacyFieldOfView) — Original FOV in degrees (pre-sensor specs migration):max_magnitude—number()(API key:maxMagnitude) — Maximum detectable magnitude:max_slew_rate—number()(API key:maxSlewRate) — Maximum slew rate in degrees per second:min_elevation—number()(API key:minElevation) — Minimum elevation angle in degrees:name—String.t()— Telescope name:pixel_size—number()(API key:pixelSize) — Physical size of each pixel in micrometers:satellite_id— UUIDString.t()(API key:satelliteId) — Satellite this telescope is assigned to:spectral_config—any()(API key:spectralConfig) — Spectral configuration: discrete filters, tunable, or hyperspectral. Example: {'type': 'discrete', 'filters': [{'name': 'Red', 'central_wavelength_nm': 630}]}:vertical_pixel_count—integer()(API key:verticalPixelCount) — Number of vertical pixels in the sensor
Summary
Functions
Build this struct from a decoded JSON map received from the API. Unknown fields are ignored.
Convert this struct into a map with the API's camelCase keys, ready
to be JSON-encoded. Fields whose value is nil are omitted.
Types
@type t() :: %CitraClient.Schemas.TelescopeCreate{ angular_noise: number() | nil, automated_scheduling: boolean() | nil, filter_change_time_seconds: number() | nil, focal_length: number() | nil, focal_ratio: number() | nil, ground_station_id: String.t() | nil, home_azimuth: number() | nil, home_elevation: number() | nil, horizontal_pixel_count: integer() | nil, image_circle_diameter: number() | nil, last_connection_epoch: DateTime.t() | nil, legacy_field_of_view: number() | nil, max_magnitude: number() | nil, max_slew_rate: number() | nil, min_elevation: number() | nil, name: String.t() | nil, pixel_size: number() | nil, satellite_id: String.t() | nil, spectral_config: any(), vertical_pixel_count: integer() | nil }