macro-consortium / pyscope

pyscope is a pure-Python package for control of small robotic telescopes.
https://pyscope.readthedocs.io
GNU Affero General Public License v3.0
16 stars 10 forks source link
ascom astronomy astropy automation observatory python

pyscope


.. container::

|License| |Zenodo| |PyPI Version| |PyPI Python Versions| |PyPI Downloads| |Astropy| |GitHub CI| |Code Coverage| |Documentation Status| |Codespaces Status| |pre-commit| |Black| |isort| |Donate|

.. image:: https://github.com/macro-consortium/pyscope/blob/main/docs/source/_static/pyscope_logo_white.png :alt: pyscope logo

This is the repository for pyscope <https://pyscope.readthedocs.io/en/latest/>_, a pure-Python package for robotic scheduling, operation, and control of small optical telescopes.

pyscope <https://pyscope.readthedocs.io/en/latest/> is an open-source <LICENSE> project that provides a set of tools to rapidly and easily control astronomical instrumentation. It is designed to be modular and extensible, allowing users to easily add support for new devices and observatories. pyscope <https://pyscope.readthedocs.io/en/latest/> is built on top of the ASCOM <https://ascom-standards.org/> standard, but also provides support for non-ASCOM devices. Users may also access their devices through third-party applications such as MaxIm DL <https://diffractionlimited.com/product/maxim-dl/>_.

Observatories who use pyscope <https://pyscope.readthedocs.io/en/latest/> can take advantage of the telrun <https://pyscope.readthedocs.io/en/latest/api/pyscope.telrun.html> module, which provides a simple interface for fully-robotic observatory control.

pyscope <https://pyscope.readthedocs.io/en/latest/> is aiming to become an astropy-affiliated package <https://www.astropy.org/affiliated/>.

Features

Installation

pyscope is available on PyPI and can be installed with pip:

.. code-block:: bash

pip install pyscope

pyscope will be available on conda-forge soon.

Development Installation

|Codespaces|

We recommend using a virtual environment for development. You may create a new virtual environment with pip:

.. code-block:: bash

python -m venv pyscope-dev
source pyscope-dev/bin/activate

Or with conda:

.. code-block:: bash

conda create -n pyscope-dev python=3.12
conda activate pyscope-dev

To install pyscope for development, clone the repository and install with pip:

.. code-block:: bash

git clone https://github.com/macro-consortium/pyscope
cd pyscope
pip install -e ".[dev]"

Usage

TBD

Documentation

All supporting documentation can be found at readthedocs <https://pyscope.readthedocs.io/en/latest/>_.

Citing

If you use this package in your research, please cite it using the following:

History

pyscope is based off of the IOTAlib (Iowa Optical Telescope Automation library) package, drawing on 25+ years of robotic observatory development at the University of Iowa, now with an emphasis on usage by anyone with a computerized telescope and python experience.

Contributing

Please see the developer documentation <https://pyscope.readthedocs.io/en/latest/development/>_.

License

This project is licensed under the GNU AGPLv3 License <LICENSE>_.

Issues

Please post any issues you find here <https://github.com/macro-consortium/pyscope/issues>_.

.. |License| image:: https://img.shields.io/pypi/l/pyscope :target: https://pypi.org/project/pyscope/ :alt: License

.. |Zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.8403570.svg :target: https://doi.org/10.5281/zenodo.8403570 :alt: Zenodo

.. |PyPI Version| image:: https://img.shields.io/pypi/v/pyscope :target: https://pypi.org/project/pyscope/ :alt: PyPI Version

.. |PyPI Python Versions| image:: https://img.shields.io/pypi/pyversions/pyscope?logo=Python :target: https://pypi.org/project/pyscope/ :alt: PyPI Python Versions

.. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/pyscope?logo=python :target: https://pypi.org/project/pyscope/ :alt: PyPI Downloads

.. |Astropy| image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat :target: http://www.astropy.org :alt: Powered by Astropy

.. |GitHub CI| image:: https://img.shields.io/github/actions/workflow/status/macro-consortium/pyscope/ci.yml?logo=GitHub&label=CI :target: https://github.com/macro-consortium/pyscope/actions/workflows/ci.yml :alt: GitHub CI

.. |Code Coverage| image:: https://codecov.io/gh/macro-consortium/pyscope/branch/main/graph/badge.svg :target: https://app.codecov.io/gh/macro-consortium/pyscope/ :alt: Code Coverage

.. |Documentation Status| image:: https://img.shields.io/readthedocs/pyscope?logo=ReadtheDocs :target: https://pyscope.readthedocs.io/en/latest/ :alt: Documentation Status

.. |Codespaces Status| image:: https://github.com/macro-consortium/pyscope/actions/workflows/codespaces/create_codespaces_prebuilds/badge.svg :target: https://github.com/macro-consortium/pyscope/actions/workflows/codespaces/create_codespaces_prebuilds :alt: Codespaces Status

.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit :target: https://github.com/pre-commit/pre-commit :alt: pre-commit enabled

.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code Style

.. |isort| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 :target: https://pycqa.github.io/isort/ :alt: isort

.. |Donate| image:: https://img.shields.io/badge/Donate-to_pyscope-crimson :target: https://github.com/sponsors/macro-consortium :alt: Donate

.. |Codespaces| image:: https://github.com/codespaces/badge.svg :target: https://codespaces.new/macro-consortium/pyscope :alt: Codespaces