About pyobs

pyobs is an observation control system (OCS) for astronomical telescopes and enables them to be operated remotely and fully autonomously. Its main functionality is not to act as a hardware driver for all the devices used at an observatory (although it can be), but to provide an abstraction layer over existing drivers and a means of communication between different devices (called modules in pyobs). In addition, non-hardware related modules are available for automating the boring stuff (focusing, acquisition, guiding, etc.).

pyobs is written in Python, but could easily be extended using other programming languages. The only requirement is the support for XMPP, the underlying protocol for communication, for which libraries are available for all major languages. The advantage of Python is the availability of outstanding packages like NumPy and especially AstroPy and its affiliated packages.

pyobs-core packages

The pyobs-core package (or just pyobs) contains all the gritty code about, e.g., communicating between modules, definining common interfaces and error handling. It also has modules for automating procedures -- going as far as providing a full robotic system that works well with the open-source observing portal from Las Cumbres Observatory (LCO).

Details about the pyobs-core package can be found in the documentation.

Additional packages

One thing the pyobs-core package does not contain are modules for specific hardware like cameras. Therefore, additional packages are available.


This is the list of currently supported camera types.

ASCOM Alpaca

ASCOM is the de-facto standard for accessing astronomical hardware in Windows. Alpaca is a proxy that allows using it via HTTP commands.

Graphical user interface

pyobs also provides a graphical user interface (GUI) that automatically detects connected modules and shows controls for them.

Affiliated packages

There are also some packages that are not part of a the pyobs OCS, but which provide vital parts of an observatory and which can easily be accessed using modules in the pyobs-core package.

Weather monitor

pyobs-weather is mainly a web page that displays weather data from several sources. Behind the scene it is fully configurable to which sources to use and it also provides functionality to classify a situation as "good weather" or "bad weather", which can easily be retrieved from a pyobs module.

Image archive

pyobs-archive provides a web page for searching and downloading images taken by the OCS. The pyobs-core package contains classes for doing this as well as uploading new images.