Telescopes (pyobs.modules.telescope)

BaseTelescope

DummyRaDecTelescope

DummyAltAzTelescope

DummySolarTelescope

Routing FITS header keywords

BaseTelescope supports provider-side FitsNamespaceMixin configuration. For example, route all telescope cards to its own camera:

class: pyobs.modules.telescope.DummyRaDecTelescope
fits_namespaces:
  camera1: null

This mapping is distinct from a camera’s fits_namespaces list. A provider returns the union of keywords mapped to the RPC sender and explicitly requested namespace names. A mapping value of null includes all keywords; a keyword list selects those cards, and [] includes none. An absent or empty mapping preserves the complete header. Unknown names contribute nothing when a mapping exists. Direct local calls without a sender match only explicitly requested namespaces (unless an empty-string namespace is configured).

For two telescope/camera pairs, map telescope1’s cards to camera1 and telescope2’s cards to camera2, and configure each camera’s fits_header_modules to select its telescope and any shared observation/filter/focuser providers. Deploying without those ownership settings preserves the existing broadcast/pass-through behavior.

The dummy telescope keeps TEL-FOCU and filters it after adding it. Driver subclasses that append cards after calling the base must forward namespaces and sender metadata and apply final namespace filtering to their own additions.