Telescope
A telescope is the central unit of observation in Skynet. Each telescope is a physical system at an observatory site that can carry out observation tasks, and a record in Skynet that ties together a mount, devices, instruments, queues, and access policy.
If you're an owner: this is the record SkyNode pairs against, and the record observers ultimately submit work to (through observing accounts + queues).
What a telescope record references
Every Telescope points at:
- A Mount — the moving structure that tracks targets. Each telescope has exactly one mount.
- An optional Enclosure — dome or roll-off roof, with automation for rotation, shutter, and weather safety.
- A set of Devices — cameras, OTAs, filter wheels, focusers, instrument rotators, antennas, receivers, radio backends, weather sensors. The mix depends on whether the telescope is optical, radio, or hybrid.
- A set of Instruments — each instrument is a combination of devices that together can carry out a given observation type (an "imager" combines an OTA + camera + filter wheel; a "radio spectrometer" combines a receiver + radio backend). See Instrumentation.
- An ordered list of Observing queues — how time on the telescope is prioritized across users and programs. See Telescope access.
- A set of Operational constraints — telescope-level safety and scheduling rules that layer on top of the observatory-level ones.
Telescopes also carry:
- Identity — name, slug, short name, optional IAU code, description, hero image.
- Ownership — the entity (user or organization) that owns the telescope. This is who has top-level authority over access policy and configuration.
- Location — inherits from the observatory's site, but the telescope carries its own latitude/longitude/elevation so a single observatory can host telescopes with subtly different pads.
- Availability flags —
isAvailablegates scheduling entirely;isPubliccontrols whether non-members can see the telescope at all. - Calibration observing account — points at the account used to fund calibration tasks (flats, darks, biases) on this telescope.
- Flat-field screen — declares whether a flat-field screen exists, and if so, where it's mounted (enclosure, fixed alt/az).
- Local horizon — JSON-encoded local-horizon profile used during visibility calculations.
Manual control and SkyNode pairing
Every telescope record carries a controlAuthority that's either
remote (the default — SkyNode runs tasks scheduled by the hub) or
manual (automated scheduling is paused; the local operator is
driving). When a ManualControlLease is active, SkyNode pauses task
execution even if controlAuthority is remote, until the lease
expires or is released.
The link between a telescope record and a running SkyNode install is
the SkyNodeInstallation record. Pairing happens during install (see
SkyNode → Overview).
In the web app
The owner-facing telescope UI is broad. Routes in the React port
(in-progress) under
apps/website-react/app/routes/entity/:
| Route file | What an owner does there |
|---|---|
org-telescopes.tsx |
Browse organization telescopes |
org-telescope-overview.tsx |
Status dashboard |
org-telescope-settings.tsx |
Edit telescope configuration |
org-telescope-live.tsx |
Live camera feed + mount position |
org-telescope-weather.tsx |
Weather telemetry, constraint status |
org-telescope-log.tsx |
Hardware log book |
org-telescope-tasks.tsx |
Current task queue and history |
org-telescope-queues.tsx |
Edit observing queues and prioritization |
org-telescope-timeline.tsx |
Schedule view |
org-telescope-access-grants.tsx |
Manage who can access this telescope |
org-telescope-api-tokens.tsx |
Issue API credentials for integrations |
org-telescope-ip-cameras.tsx |
Configure IP camera feeds |
The Angular site has equivalents under
apps/website/src/app/features/entity/telescopes/;
both UIs run against the same /v1/telescopes/* endpoints.
Reference
Telescope Schema
Description: A single pier/instrument host belonging to an Observatory.
A Telescope's ``latitude``, ``longitude``, and ``elevation`` (from
:class:`LocationMixIn`) describe the *physical pier coordinates* of this
telescope. They are intentionally distinct from the parent
:class:`Observatory`'s coordinates: an observatory is a region (often
spanning a mountain or campus) that contains one or more telescopes housed
in different enclosures, so each telescope's pier may be tens of meters or
even kilometers offset from the observatory centroid. Mount-level optical
pivot offsets are tracked separately on :class:`Mount` (``pivot_x/y/z``).
Properties
| Name | Type | Description |
|---|---|---|
| id | Integer |
No description |
| uid | UUID |
No description |
| owner_id | Integer |
The organization or user which owns the telescope |
| observatory_id | Integer |
No description |
| enclosure_id | Integer (Optional) |
No description |
| name | String(100) |
No description |
| short_name | String(50) (Optional) |
No description |
| slug | String(50) |
No description |
| iau_code | String(3) (Optional) |
No description |
| description | String(Unbounded) |
No description |
| image_id | UUID (Optional) |
No description |
| is_available | Boolean |
No description |
| is_public | Boolean |
Whether the telescope is can be seen by all Skynet users and used through Skynet's first light account. Private telescopes are only visible to the owner and users with the appropriate permissions. |
| local_horizon | JSONB (Optional) |
No description |
| calibration_observing_account_id | Integer (Optional) |
No description |
| location | String(100) |
No description |
| latitude | Float |
No description |
| longitude | Float |
No description |
| elevation | Float |
No description |
Relationships
| Relationship Name | Type |
|---|---|
| queues | ObservingQueue |
| owner | Entity |
| observatory | Observatory |
| enclosure | Enclosure |
| devices | Device |
| instruments | Instrument |
| image | File |
| calibration_observing_account | ObservingAccount |
| gallery_items | TelescopeGalleryItem |
| ip_cameras | IPCamera |
| log | TelescopeLogEntry |
| access_grants | TelescopeAccessGrant |
| manual_control_leases | ManualControlLease |
| shutdown_interlocks | ShutdownInterlock |
| sky_node_installations | SkyNodeInstallation |
| states | TelescopeSnapshot |