Skip to content

spacetelescope/astrocut

Repository files navigation

Cutout tools for astronomical images

Powered by Astropy Badge PyPi Status Documentation Status

Astrocut provides tools for making cutouts from sets of astronomical images with shared footprints. It is under active development.

Three main areas of functionality are included:

  • Solving the specific problem of creating image cutouts from sectors of Transiting Exoplanet Survey Satellite (TESS) full-frame images.
  • General fits file cutouts including from single images and sets of images with the shared WCS/pixel scale.
  • Cutout post-processing functionality, including centering cutouts along a path (for moving targets) and combining cutouts.

Documentation is at https://astrocut.readthedocs.io.

Project Status

Github actions CI status Codecov coverage status

Developer Documentation

Installation

$ git clone https://github.com/spacetelescope/astrocut.git
$ cd astrocut
$ pip install .

For active development install in develop mode

$ pip install -e .

Testing

Testing is now run with tox (pip install tox). Tests can be found in astrocut/tests/.

$ tox -e test

Tests can also be run directly with pytest:

$ pip install -e .[test]
$ pytest

Documentation

Documentation files are found in docs/.

We now build the documentation with tox (pip install tox):

$ tox -e build_docs

You can also build the documentation with Sphinx directly using:

$ pip install -e .[docs]
$ cd docs
$ make html

The built docs will be in docs/_build/html/, to view them go to file:///path/to/astrocut/repo/docs/_build/html/index.html in the browser of your choice.

Release Protocol

GitHub Action Releases

The pypi-package.yml GitHub workflow creates a PyPI release. The job in this workflow is triggered when a tag is pushed or a GH release (+tag) is created, and uses OpenAstronomy's GitHub action workflow for publishing pure Python packages (see here for documentation).

Manual Releases

For making releases manually, follow the Astropy template release instructions.

Requirements:

  • build (pip install build)
  • twine (pip install twine)

Notes:

  • Astrocut uses setuptools_scm to manage version numbers.
  • Astrocut does have a pyproject.toml file
  • If the given twine command doesn't work you likely need python -m twine upload dist/*
  • You shouldn't have to trigger a readthedocs build manually, it should run on its own in ~20 min.

Contributing

We love contributions! Astrocut is open source, built on open source, and we'd love to have you hang out in our community.

Imposter syndrome disclaimer: We want your help. No, really.

There may be a little voice inside your head that is telling you that you're not ready to be an open source contributor; that your skills aren't nearly good enough to contribute. What could you possibly offer a project like this one?

We assure you - the little voice in your head is wrong. If you can write code at all, you can contribute code to open source. Contributing to open source projects is a fantastic way to advance one's coding skills. Writing perfect code isn't the measure of a good developer (that would disqualify all of us!); it's trying to create something, making mistakes, and learning from those mistakes. That's how we all improve, and we are happy to help others learn.

Being an open source contributor doesn't just mean writing code, either. You can help out by writing documentation, tests, or even giving feedback about the project (and yes - that includes giving feedback about the contribution process). Some of these contributions may be the most valuable to the project as a whole, because you're coming to the project with fresh eyes, so you can see the errors and assumptions that seasoned contributors have glossed over.

Note: This disclaimer was originally written by Adrienne Lowe for a PyCon talk, and was adapted by Astrocut based on its use in the README file for the MetPy project.

License

This project is Copyright (c) MAST Archive Developers and licensed under the terms of the BSD 3-Clause license. This package is based upon the Astropy package template which is licensed under the BSD 3-clause license. See the licenses folder for more information.