CitraClient.Schemas.TelescopeCreate (citra_client v0.3.0)

View Source

Schema 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_noisenumber() (API key: angularNoise) — Angular noise in arcseconds
  • :automated_schedulingboolean() (API key: automatedScheduling) — Whether this telescope is enabled for automated scheduling
  • :filter_change_time_secondsnumber() (API key: filterChangeTimeSeconds) — Time required to change filters in seconds (default: 5.0)
  • :focal_lengthnumber() (API key: focalLength) — Focal length of the optical system in millimeters
  • :focal_rationumber() (API key: focalRatio) — Focal ratio (f-number) of the optical system, unitless
  • :ground_station_id — UUID String.t() (API key: groundStationId) — Ground station this telescope is assigned to
  • :home_azimuthnumber() (API key: homeAzimuth) — Home azimuth position in degrees
  • :home_elevationnumber() (API key: homeElevation) — Home elevation position in degrees
  • :horizontal_pixel_countinteger() (API key: horizontalPixelCount) — Number of horizontal pixels in the sensor
  • :image_circle_diameternumber() (API key: imageCircleDiameter) — Diameter of the usable image circle in millimeters
  • :last_connection_epochDateTime.t() (API key: lastConnectionEpoch) — Last time the telescope connected
  • :legacy_field_of_viewnumber() (API key: legacyFieldOfView) — Original FOV in degrees (pre-sensor specs migration)
  • :max_magnitudenumber() (API key: maxMagnitude) — Maximum detectable magnitude
  • :max_slew_ratenumber() (API key: maxSlewRate) — Maximum slew rate in degrees per second
  • :min_elevationnumber() (API key: minElevation) — Minimum elevation angle in degrees
  • :nameString.t() — Telescope name
  • :pixel_sizenumber() (API key: pixelSize) — Physical size of each pixel in micrometers
  • :satellite_id — UUID String.t() (API key: satelliteId) — Satellite this telescope is assigned to
  • :spectral_configany() (API key: spectralConfig) — Spectral configuration: discrete filters, tunable, or hyperspectral. Example: {'type': 'discrete', 'filters': [{'name': 'Red', 'central_wavelength_nm': 630}]}
  • :vertical_pixel_countinteger() (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

t()

@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
}

Functions

from_api(data)

Build this struct from a decoded JSON map received from the API. Unknown fields are ignored.

to_api(struct)

Convert this struct into a map with the API's camelCase keys, ready to be JSON-encoded. Fields whose value is nil are omitted.