10000 GitHub - cds-astro/mocpy: Python library to easily create and manipulate MOCs (Multi-Order Coverage maps)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

cds-astro/mocpy

Repository files navigation

MOCPy

PyPI version Build/Test status Doc

mocpy's logo

MOCPy is a Python library allowing easy creation and manipulation of MOCs (Multi-Order Coverage maps).

MOC is an IVOA standard enabling description of arbitrary sky, time, (or frequency) coverages.

What's in MOCpy?

Space Time Frequency
Space
Time
Frequency

There is support for one dimensional MOCs:

  • Space MOCs. The sky tesselation is based on the HEALPix sky tessellation, it maps regions of the sky into hierarchically grouped cells.
  • Time MOCs. The segmentation of the time axis is linear. This is described in the MOC standard since its version 2.0.
  • Frequency MOCs. ⚠️ this is not standard yet! The segmentation of the frequency axis is logarithmic. See [this IVOA presentation][https://wiki.ivoa.net/internal/IVOA/InterOpMay2023Apps/FMOC_IVOA_Bologne_Fernique.pdf] for a description.

But also these combinations:

  • Space-Time MOCs
  • Space-Frequency MOCs

a MOC plotted with MOCPy

Rendered with MOCpy!

Other resources

For a command line tool, see the moc-cli.

For more information about MOCPy's Rust core, see the moc crate

Installation

We strongly recommend to work in an environnement

Latest stable version

  • from pip pip install mocpy
  • from conda conda install -c conda-forge mocpy

Unreleased latest version

To install MOCPy from this repository, make sure you have Python (https://www.python.org/downloads/) and Rust (https://www.rust-lang.org/tools/install) on your machine. Then, run

pip install git+https://github.com/cds-astro/mocpy.git

To run the notebooks

The example notebooks require additional dependencies. They can be installed with

pip install mocpy[notebooks]

Development installation

Contributions are very welcome. To build and test the library, clone this repository, make sure that you've got Rust on your machine (https://www.rust-lang.org/tools/install) and do:

pip install pre-commit
pre-commit install
pip install maturin
maturin develop --release

And the library is ready to be edited. After a change on the Rust side, you'll have to do maturin develop --release again. If you only edit the python side, then a pip install . at the root of the repository will suffice.

We use pre-commit to keep consistent style conventions between all of us. This means that your commits will not pass if they require modifications. If this happens, do the required changes, git add the files again and attempt to commit as usual.

To run the tests, do:

pip install .[dev]
python -m pytest

For use in pyodide

Wheels that run in pyodide can be downloaded from each github's release for the module.

Other python packages for MOCs

0