astropop 0.9.4.dev11__tar.gz → 0.9.4.dev75__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/.github/workflows/build-n-publish.yml +0 -6
- astropop-0.9.4.dev75/.github/workflows/ci_devdeps.yml +41 -0
- astropop-0.9.4.dev75/.github/workflows/ci_workflows.yml +120 -0
- astropop-0.9.4.dev75/.github/workflows/code_quality_analysis.yml +106 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/PKG-INFO +4 -2
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/README.rst +1 -1
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/astrometry/astrometrynet.py +44 -130
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/gaia.py +3 -1
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/file_collection.py +31 -14
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/framedata/_memmap.py +2 -2
- astropop-0.9.4.dev75/astropop/framedata/cache_manager.py +260 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/framedata/framedata.py +36 -44
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/image/register.py +2 -1
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/photometry/detection.py +3 -1
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/py_utils.py +1 -2
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/version.py +2 -2
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop.egg-info/PKG-INFO +4 -2
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop.egg-info/SOURCES.txt +4 -3
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop.egg-info/requires.txt +2 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/pyproject.toml +3 -1
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_astrometry.py +37 -155
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_catalogs_online.py +22 -2
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_filecollection.py +18 -7
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata.py +21 -18
- astropop-0.9.4.dev75/tests/test_framedata_cachemanager.py +230 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_math_models.py +4 -5
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_pyutils.py +2 -2
- astropop-0.9.4.dev75/tox.ini +54 -0
- astropop-0.9.4.dev11/.github/workflows/code_quality_analysis.yml +0 -180
- astropop-0.9.4.dev11/.github/workflows/unit-tests.yml +0 -197
- astropop-0.9.4.dev11/astropop/_db.py +0 -1075
- astropop-0.9.4.dev11/tests/test_db.py +0 -1804
- astropop-0.9.4.dev11/tox.ini +0 -72
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/.codacy.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/.gitignore +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/.readthedocs.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/MANIFEST.in +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/_unit_property.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/astrometry/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/astrometry/coords_utils.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/astrometry/manual_wcs.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/_online_tools.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/_sources_catalog.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/simbad.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/allwise.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/apass9.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/denis.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/gsc242.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/hip.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/twomass.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/tycho2.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/ucac4.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/ucac5.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/vsx.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/catalogs/vizier_catalogs/wise.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/fits_utils.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/flags.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/framedata/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/framedata/_compat.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/framedata/util.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/image/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/image/_tools.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/image/imarith.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/image/imcombine.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/image/processing.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/logger.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/math/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/math/_deriv.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/math/array.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/math/hasher.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/math/models.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/math/physical.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/photometry/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/photometry/aperture.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/photometry/background.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/polarimetry/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop/testing.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop.egg-info/dependency_links.txt +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/astropop.egg-info/top_level.txt +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/codecov.yml +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/Makefile +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/_static/le2pol.jpeg +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/conf.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/data_structures/framedata.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/data_structures/physical.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/data_structures.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/dev/pixel_convention.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/index.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/ipynb/astrometry_example.ipynb +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/ipynb/diy_reduction_script.ipynb +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/ipynb/online_catalogs.ipynb +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/make.bat +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reducing.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/astrometry.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/ccdprocessing.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/imarith.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/photometry.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/pipelines.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/polarimetry.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/reduction/registering.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/references.txt +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/catalog/gaia.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/catalog/simbad.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/catalog/vizier.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/catalogs.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/files.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/fits_utils.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/logger.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/py_utils.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools/testing.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/tools.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/docs/user_guide.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/licenses/LICENSE.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/licenses/TEMPLATE_LICENCE.rst +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/scripts/fitsheader_set +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/setup.cfg +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/setup.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/__init__.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/conftest.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_aperture.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_catalogs.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_detection.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_fits_utils.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_flags.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_compat.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_getset.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_io.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_memmap.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_meta.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_tools.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_framedata_utils.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_image_imarith.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_image_imcombine.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_image_mergers.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_image_processing.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_image_register.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_logger.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_math.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_physical.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_physical_numpyfuncs.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_polarimetry.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_testing.py +0 -0
- {astropop-0.9.4.dev11 → astropop-0.9.4.dev75}/tests/test_unit_property.py +0 -0
|
@@ -32,12 +32,6 @@ jobs:
|
|
|
32
32
|
--sdist
|
|
33
33
|
--wheel
|
|
34
34
|
--outdir dist/
|
|
35
|
-
- name: Publish package to PyPi testing
|
|
36
|
-
if: github.ref == 'refs/heads/main'
|
|
37
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
38
|
-
with:
|
|
39
|
-
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
|
|
40
|
-
repository_url: https://test.pypi.org/legacy/
|
|
41
35
|
- name: Publish package to PyPi
|
|
42
36
|
if: github.ref == 'refs/heads/main'
|
|
43
37
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: CI (Development Deps)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- 'v*'
|
|
8
|
+
tags:
|
|
9
|
+
- '*'
|
|
10
|
+
pull_request:
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
allowed_failures:
|
|
18
|
+
uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
|
|
19
|
+
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
|
|
20
|
+
with:
|
|
21
|
+
cache-path: ~/.astropy
|
|
22
|
+
cache-key: ${{ github.ref }}-${{ matrix.toxenv }}-astropycache
|
|
23
|
+
libraries: |
|
|
24
|
+
apt:
|
|
25
|
+
- tzdata
|
|
26
|
+
- libopenblas-base
|
|
27
|
+
- libopenblas-dev
|
|
28
|
+
envs: |
|
|
29
|
+
- name: (Allowed Failure) Python 3.12 with dev version of deps
|
|
30
|
+
linux: py313-test-devdeps-online
|
|
31
|
+
python-version: 3.13-dev
|
|
32
|
+
|
|
33
|
+
- name: (Allowed Failure) Python 3.13 with dev version of deps
|
|
34
|
+
linux: py313-test-devdeps-online
|
|
35
|
+
python-version: 3.12
|
|
36
|
+
|
|
37
|
+
- macos: py312-test-online
|
|
38
|
+
cache-key: ${{ github.ref }}-py312mac-astropycache
|
|
39
|
+
|
|
40
|
+
- windows: py312-test-online
|
|
41
|
+
cache-key: ${{ github.ref }}-py312win-astropycache
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- 'v*'
|
|
8
|
+
tags:
|
|
9
|
+
- '*'
|
|
10
|
+
pull_request:
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
tests:
|
|
18
|
+
uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
|
|
19
|
+
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
|
|
20
|
+
with:
|
|
21
|
+
cache-path: ~/.astropy
|
|
22
|
+
envs: |
|
|
23
|
+
- linux: py38-test-olddeps-online
|
|
24
|
+
cache-key: ${{ github.ref }}-py38lin-astropycache
|
|
25
|
+
- linux: py39-test-online
|
|
26
|
+
cache-key: ${{ github.ref }}-py39lin-astropycache
|
|
27
|
+
- linux: py310-test-online
|
|
28
|
+
cache-key: ${{ github.ref }}-py310lin-astropycache
|
|
29
|
+
- linux: py311-test-online
|
|
30
|
+
cache-key: ${{ github.ref }}-py311lin-astropycache
|
|
31
|
+
- linux: py312-test-online
|
|
32
|
+
cache-key: ${{ github.ref }}-py312lin-astropycache
|
|
33
|
+
|
|
34
|
+
build_docs:
|
|
35
|
+
uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
|
|
36
|
+
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
|
|
37
|
+
with:
|
|
38
|
+
cache-path: .tox
|
|
39
|
+
cache-key: build_docs-astropy
|
|
40
|
+
libraries: |
|
|
41
|
+
apt:
|
|
42
|
+
- pandoc
|
|
43
|
+
- graphviz
|
|
44
|
+
envs: |
|
|
45
|
+
- linux: build_docs
|
|
46
|
+
|
|
47
|
+
coverage:
|
|
48
|
+
name: "Conda/Coverage/Astrometry.net"
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v3
|
|
53
|
+
with:
|
|
54
|
+
fetch-depth: 0
|
|
55
|
+
- name: Get Date
|
|
56
|
+
id: get-date
|
|
57
|
+
run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
|
|
58
|
+
shell: bash
|
|
59
|
+
- name: Cache conda
|
|
60
|
+
uses: actions/cache@v3
|
|
61
|
+
with:
|
|
62
|
+
path: ~/conda_pkgs_dir
|
|
63
|
+
key:
|
|
64
|
+
${{ runner.os }}-${{ runner.arch }}-conda-${{ hashFiles('pyproject.toml') }}
|
|
65
|
+
- name: Cache env
|
|
66
|
+
uses: actions/cache@v3
|
|
67
|
+
with:
|
|
68
|
+
path: ${{ env.CONDA }}/envs
|
|
69
|
+
key:
|
|
70
|
+
${{ github.ref }}-${{ runner.os }}-${{ runner.arch }}-${{ steps.get-date.outputs.today }}-conda-envs-${{ hashFiles('pyproject.toml') }}
|
|
71
|
+
- uses: conda-incubator/setup-miniconda@v2
|
|
72
|
+
with:
|
|
73
|
+
miniforge-variant: Mambaforge
|
|
74
|
+
miniforge-version: latest
|
|
75
|
+
activate-environment: astropop
|
|
76
|
+
use-mamba: true
|
|
77
|
+
mamba-version: "*"
|
|
78
|
+
channels: conda-forge,defaults
|
|
79
|
+
python-version: "3.12"
|
|
80
|
+
- name: Cache astropy cache
|
|
81
|
+
uses: actions/cache@v3
|
|
82
|
+
with:
|
|
83
|
+
path: ~/.astropy
|
|
84
|
+
# setup.cfg and pyproject.toml have versioning info that would
|
|
85
|
+
# impact the tox environment.
|
|
86
|
+
key: ${{ github.ref }}-conda-astropy
|
|
87
|
+
- name: Install dependencies
|
|
88
|
+
shell: bash -l {0}
|
|
89
|
+
run: |
|
|
90
|
+
mamba install -y -q pytest astrometry \
|
|
91
|
+
astropy scipy numpy matplotlib \
|
|
92
|
+
scikit-image scikit-learn \
|
|
93
|
+
sep astroquery
|
|
94
|
+
pip install astroscrappy
|
|
95
|
+
pip install coveralls .[test]
|
|
96
|
+
- name: Install astropop
|
|
97
|
+
shell: bash -l {0}
|
|
98
|
+
run: pip install -U .[all]
|
|
99
|
+
- name: Print versions
|
|
100
|
+
shell: bash -l {0}
|
|
101
|
+
run: |
|
|
102
|
+
conda info
|
|
103
|
+
conda list
|
|
104
|
+
- name: Run Pytest and generate coverage
|
|
105
|
+
shell: bash -l {0}
|
|
106
|
+
run: |
|
|
107
|
+
pytest --pyargs ./tests ./docs --remote-data --cov astropop --cov-config=./pyproject.toml
|
|
108
|
+
coverage xml -o ./coverage.xml
|
|
109
|
+
- name: Upload coverage to Codecov
|
|
110
|
+
uses: codecov/codecov-action@v4
|
|
111
|
+
with:
|
|
112
|
+
file: ./coverage.xml
|
|
113
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
114
|
+
- name: Upload coverage to Coveralls
|
|
115
|
+
shell: bash -l {0}
|
|
116
|
+
if: github.event_name != 'pull_request'
|
|
117
|
+
env:
|
|
118
|
+
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
119
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
120
|
+
run: coveralls
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
name: "Code Style"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: codestyle-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
ruff:
|
|
14
|
+
name: ruff
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
if: github.event_name != 'pull_request'
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v3
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
- name: Set up Python 3.12
|
|
23
|
+
uses: actions/setup-python@v4
|
|
24
|
+
with:
|
|
25
|
+
python-version: '3.12'
|
|
26
|
+
cache: 'pip'
|
|
27
|
+
cache-dependency-path: '**/pyproject.toml'
|
|
28
|
+
- name: Install base dependencies
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip
|
|
31
|
+
python -m pip install tox
|
|
32
|
+
python -m pip install ruff
|
|
33
|
+
- name: Code Analyse
|
|
34
|
+
run: |
|
|
35
|
+
ruff check astropop
|
|
36
|
+
ruff check tests
|
|
37
|
+
ruff check --statistics astropop
|
|
38
|
+
ruff check --statistics tests
|
|
39
|
+
|
|
40
|
+
ruff_pull_request:
|
|
41
|
+
name: ruff-pull-request
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
if: github.event_name == 'pull_request'
|
|
44
|
+
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@v3
|
|
47
|
+
with:
|
|
48
|
+
fetch-depth: 0
|
|
49
|
+
- name: Set up Python 3.12
|
|
50
|
+
uses: actions/setup-python@v4
|
|
51
|
+
with:
|
|
52
|
+
python-version: '3.12'
|
|
53
|
+
cache: pip
|
|
54
|
+
cache-dependency-path: '**/pyproject.toml'
|
|
55
|
+
- uses: technote-space/get-diff-action@v6
|
|
56
|
+
with:
|
|
57
|
+
PATTERNS: |
|
|
58
|
+
astropop/**/*.py
|
|
59
|
+
!tests/*.py
|
|
60
|
+
- name: Print DIFF
|
|
61
|
+
run: |
|
|
62
|
+
echo "GIT_DIFF: ${{ env.GIT_DIFF }}"
|
|
63
|
+
echo "GIT_DIFF_FILTERED: ${{ env.GIT_DIFF_FILTERED }}"
|
|
64
|
+
- name: Install base dependencies
|
|
65
|
+
run: |
|
|
66
|
+
python -m pip install --upgrade pip
|
|
67
|
+
python -m pip install ruff
|
|
68
|
+
- name: Run pycodestyle
|
|
69
|
+
run: |
|
|
70
|
+
ruff check ${{ env.GIT_DIFF_FILTERED }}
|
|
71
|
+
ruff check --statistics ${{ env.GIT_DIFF_FILTERED }}
|
|
72
|
+
if: env.GIT_DIFF_FILTERED
|
|
73
|
+
|
|
74
|
+
prospector_pull_request:
|
|
75
|
+
name: prospector-pull-request
|
|
76
|
+
runs-on: ubuntu-latest
|
|
77
|
+
if: github.event_name == 'pull_request'
|
|
78
|
+
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/checkout@v3
|
|
81
|
+
with:
|
|
82
|
+
fetch-depth: 0
|
|
83
|
+
- name: Set up Python 3.12
|
|
84
|
+
uses: actions/setup-python@v4
|
|
85
|
+
with:
|
|
86
|
+
python-version: '3.12'
|
|
87
|
+
cache: 'pip'
|
|
88
|
+
cache-dependency-path: '**/pyproject.toml'
|
|
89
|
+
- uses: technote-space/get-diff-action@v6
|
|
90
|
+
with:
|
|
91
|
+
PATTERNS: |
|
|
92
|
+
astropop/**/*.py
|
|
93
|
+
!tests/*.py
|
|
94
|
+
- name: Print DIFF
|
|
95
|
+
run: |
|
|
96
|
+
echo "GIT_DIFF: ${{ env.GIT_DIFF }}"
|
|
97
|
+
echo "GIT_DIFF_FILTERED: ${{ env.GIT_DIFF_FILTERED }}"
|
|
98
|
+
- name: Install base dependencies
|
|
99
|
+
run: |
|
|
100
|
+
python -m pip install --upgrade pip
|
|
101
|
+
python -m pip install prospector pylint pyflakes bandit
|
|
102
|
+
python -m pip install .[all]
|
|
103
|
+
- name: Code Analyse
|
|
104
|
+
continue-on-error: true
|
|
105
|
+
run: prospector -w pyflakes -w bandit -F --no-autodetect --doc-warnings ${{ env.GIT_DIFF_FILTERED}}
|
|
106
|
+
if: env.GIT_DIFF_FILTERED
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: astropop
|
|
3
|
-
Version: 0.9.4.
|
|
3
|
+
Version: 0.9.4.dev75
|
|
4
4
|
Summary: Astronomical Polarimetry and Photometry Pipeline
|
|
5
5
|
Author-email: Julio Campagnolo <julio.campagnolo@cefet-rj.br>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -32,6 +32,8 @@ Requires-Dist: astroscrappy
|
|
|
32
32
|
Requires-Dist: astroalign
|
|
33
33
|
Requires-Dist: tqdm
|
|
34
34
|
Requires-Dist: nest-asyncio
|
|
35
|
+
Requires-Dist: dbastable
|
|
36
|
+
Requires-Dist: platformdirs
|
|
35
37
|
Provides-Extra: all
|
|
36
38
|
Requires-Dist: matplotlib; extra == "all"
|
|
37
39
|
Provides-Extra: test
|
|
@@ -194,7 +196,7 @@ Documentation
|
|
|
194
196
|
|
|
195
197
|
Documentation (not complete yet) can be found at `astropop.readthedocs.io <https://astropop.readthedocs.io>`_
|
|
196
198
|
|
|
197
|
-
.. |GHAction Status| image:: https://github.com/sparc4-dev/astropop/actions/workflows/
|
|
199
|
+
.. |GHAction Status| image:: https://github.com/sparc4-dev/astropop/actions/workflows/ci_workflows.yml/badge.svg
|
|
198
200
|
:target: https://github.com/sparc4-dev/astropop/actions
|
|
199
201
|
:alt: Astropop's Github CI Status
|
|
200
202
|
|
|
@@ -143,7 +143,7 @@ Documentation
|
|
|
143
143
|
|
|
144
144
|
Documentation (not complete yet) can be found at `astropop.readthedocs.io <https://astropop.readthedocs.io>`_
|
|
145
145
|
|
|
146
|
-
.. |GHAction Status| image:: https://github.com/sparc4-dev/astropop/actions/workflows/
|
|
146
|
+
.. |GHAction Status| image:: https://github.com/sparc4-dev/astropop/actions/workflows/ci_workflows.yml/badge.svg
|
|
147
147
|
:target: https://github.com/sparc4-dev/astropop/actions
|
|
148
148
|
:alt: Astropop's Github CI Status
|
|
149
149
|
|
|
@@ -9,6 +9,7 @@ import os
|
|
|
9
9
|
import shutil
|
|
10
10
|
from subprocess import CalledProcessError
|
|
11
11
|
import copy
|
|
12
|
+
from packaging import version
|
|
12
13
|
from tempfile import NamedTemporaryFile, mkdtemp
|
|
13
14
|
import warnings
|
|
14
15
|
|
|
@@ -27,11 +28,37 @@ from ..py_utils import run_command, check_number
|
|
|
27
28
|
|
|
28
29
|
__all__ = ['AstrometrySolver', 'solve_astrometry_xy', 'solve_astrometry_image',
|
|
29
30
|
'solve_astrometry_framedata', 'create_xyls',
|
|
30
|
-
'AstrometryNetUnsolvedField']
|
|
31
|
+
'AstrometryNetUnsolvedField', 'SolveFieldCommand']
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
_solve_field = shutil.which('solve-field')
|
|
34
35
|
|
|
36
|
+
|
|
37
|
+
class SolveFieldCommand:
|
|
38
|
+
"""Astrometry.net solve field check and run command."""
|
|
39
|
+
_version = None
|
|
40
|
+
|
|
41
|
+
def __init__(self, command=_solve_field):
|
|
42
|
+
if isinstance(command, SolveFieldCommand):
|
|
43
|
+
self._version = command._version
|
|
44
|
+
command = command._command
|
|
45
|
+
elif command is None or not os.path.exists(command):
|
|
46
|
+
raise FileNotFoundError('solve-field command not found.')
|
|
47
|
+
self._command = command
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def version(self):
|
|
51
|
+
"""Return the version of the solve-field command."""
|
|
52
|
+
if self._version is None:
|
|
53
|
+
_, sout, _ = run_command([self._command, '--version'])
|
|
54
|
+
self._version = version.parse(sout[0])
|
|
55
|
+
return self._version
|
|
56
|
+
|
|
57
|
+
def run(self, args, **kwargs):
|
|
58
|
+
"""Run the solve-field command."""
|
|
59
|
+
return run_command([self._command, *args], **kwargs)
|
|
60
|
+
|
|
61
|
+
|
|
35
62
|
_center_help = 'only search in indexes within `radius` of the field center ' \
|
|
36
63
|
'given by `ra` and `dec`'
|
|
37
64
|
solve_field_params = {
|
|
@@ -222,35 +249,13 @@ solve_field_params = {
|
|
|
222
249
|
'To astrometry.cfg file. If no scale estimate is given, use these '
|
|
223
250
|
'limits on field width in deg.'
|
|
224
251
|
),
|
|
225
|
-
'
|
|
226
|
-
'<bool>',
|
|
227
|
-
'To astrometry.cfg file. Check indexes in parallel. Only enable it if '
|
|
228
|
-
'you have memory to store all indexes.'
|
|
229
|
-
),
|
|
230
|
-
'index': (
|
|
231
|
-
'<string or list(string)>',
|
|
232
|
-
'To astrometry.cfg file. Explicitly list the indices to load.'
|
|
233
|
-
' Disables ``autoindex``'
|
|
234
|
-
),
|
|
235
|
-
'autoindex': (
|
|
236
|
-
'<bool>',
|
|
237
|
-
'To astrometry.cfg file. Load any indices found in the directories '
|
|
238
|
-
'listed.'
|
|
239
|
-
),
|
|
240
|
-
'add_path': (
|
|
252
|
+
'index-dir': (
|
|
241
253
|
'<string or list(string)>',
|
|
242
|
-
'
|
|
254
|
+
'Add a location of astrometry.net index files.'
|
|
243
255
|
' ``astrometry-engine`` will search index files in all listed folders.'
|
|
244
256
|
' Additive, do not override defaults.'
|
|
245
|
-
),
|
|
246
|
-
'depths': (
|
|
247
|
-
'<list(int)>',
|
|
248
|
-
'To astrometry.cfg file. If no depths are given, use these.'
|
|
249
257
|
)
|
|
250
258
|
}
|
|
251
|
-
# These are the parameters that can be set in the astrometry.cfg file
|
|
252
|
-
_conf_file = ['inparallel', 'minwidth', 'maxwidth', 'depths',
|
|
253
|
-
'add_path', 'autoindex', 'index']
|
|
254
259
|
|
|
255
260
|
|
|
256
261
|
def get_options_help():
|
|
@@ -473,17 +478,17 @@ class AstrometrySolver():
|
|
|
473
478
|
Explicitly list the indices to load.
|
|
474
479
|
"""
|
|
475
480
|
|
|
476
|
-
def __init__(self, solve_field=
|
|
477
|
-
|
|
481
|
+
def __init__(self, solve_field=_solve_field, defaults=None,
|
|
482
|
+
keep_files=False):
|
|
478
483
|
# declare the defaults here to be safer
|
|
479
484
|
self._defaults = {'no-plots': None, 'overwrite': None}
|
|
480
485
|
if defaults is None:
|
|
481
486
|
defaults = {}
|
|
482
487
|
self._defaults.update(defaults)
|
|
483
488
|
|
|
484
|
-
self.
|
|
485
|
-
|
|
486
|
-
|
|
489
|
+
self._command = SolveFieldCommand(solve_field)
|
|
490
|
+
if self._command.version < version.parse('0.95'):
|
|
491
|
+
raise ValueError('Astrometry.net version must be at least 0.95.')
|
|
487
492
|
self._keep = keep_files
|
|
488
493
|
|
|
489
494
|
def solve_field(self, filename, options=None, output_dir=None, **kwargs):
|
|
@@ -567,103 +572,9 @@ class AstrometrySolver():
|
|
|
567
572
|
|
|
568
573
|
return args
|
|
569
574
|
|
|
570
|
-
def _read_config(self, fname=None, config=None):
|
|
571
|
-
"""Read the default configuration file and return the config."""
|
|
572
|
-
|
|
573
|
-
if fname is None:
|
|
574
|
-
prefix = os.path.dirname(os.path.dirname(_solve_field))
|
|
575
|
-
fname = os.path.join(prefix, 'etc', 'astrometry.cfg')
|
|
576
|
-
default = open(fname, 'r')
|
|
577
|
-
|
|
578
|
-
cfg = {'inparallel': False, 'autoindex': True}
|
|
579
|
-
for line in default.readlines():
|
|
580
|
-
# just use line before "#"
|
|
581
|
-
line = line.split("#")[0].strip()
|
|
582
|
-
if line == "":
|
|
583
|
-
continue
|
|
584
|
-
param = line.split(" ")[0]
|
|
585
|
-
argument = line[len(param)+1:].strip()
|
|
586
|
-
if argument == "":
|
|
587
|
-
argument = True
|
|
588
|
-
if param == 'depths':
|
|
589
|
-
argument = [int(i) for i in argument.split(" ") if i.strip()]
|
|
590
|
-
if param == 'add_path' or param == 'index':
|
|
591
|
-
if param not in cfg:
|
|
592
|
-
cfg[param] = []
|
|
593
|
-
cfg[param].append(argument)
|
|
594
|
-
else:
|
|
595
|
-
cfg[param] = argument
|
|
596
|
-
|
|
597
|
-
if config is not None:
|
|
598
|
-
for k, v in config.items():
|
|
599
|
-
if k == 'add_path' or k == 'index':
|
|
600
|
-
if np.isscalar(v):
|
|
601
|
-
v = [v]
|
|
602
|
-
cfg[k].extend(v)
|
|
603
|
-
else:
|
|
604
|
-
cfg[k] = v
|
|
605
|
-
|
|
606
|
-
return cfg
|
|
607
|
-
|
|
608
|
-
def _updated_config(self, config=None):
|
|
609
|
-
"""Return a copy of the self.config updated by another config dict.
|
|
610
|
-
|
|
611
|
-
Config is updated using config parameter. All present parameters are
|
|
612
|
-
overwritten.
|
|
613
|
-
"""
|
|
614
|
-
cfg = self.config.copy()
|
|
615
|
-
if config is not None:
|
|
616
|
-
# # indexes deactivate 'autoindex'
|
|
617
|
-
# if 'index' in config:
|
|
618
|
-
# cfg['autoindex'] = False
|
|
619
|
-
if 'add_path' in config:
|
|
620
|
-
cfg['add_path'].extend(np.atleast_1d(config.pop('add_path')))
|
|
621
|
-
cfg.update(config)
|
|
622
|
-
return config
|
|
623
|
-
|
|
624
|
-
def _write_config(self, fname, config=None):
|
|
625
|
-
"""Create the astrometry.cfg file for the run."""
|
|
626
|
-
# write the new cfg
|
|
627
|
-
f = open(fname, 'w')
|
|
628
|
-
config = config or self.config
|
|
629
|
-
for k, v in config.items():
|
|
630
|
-
if k in ['inparallel', 'autoindex']:
|
|
631
|
-
# These keys are bool. Only write if True
|
|
632
|
-
if v:
|
|
633
|
-
f.write(f'{k}\n')
|
|
634
|
-
elif k in ['index', 'add_path']:
|
|
635
|
-
# multiple entries in the file
|
|
636
|
-
for i in v:
|
|
637
|
-
f.write(f'{k} {i}\n')
|
|
638
|
-
elif k == 'depths':
|
|
639
|
-
# detphs requires a list of strings
|
|
640
|
-
f.write(f'{k} {" ".join([str(i) for i in v])}\n')
|
|
641
|
-
else:
|
|
642
|
-
f.write(f'{k} {v}\n')
|
|
643
|
-
f.close()
|
|
644
|
-
|
|
645
|
-
def _pop_config(self, options):
|
|
646
|
-
"""Pop the config from options."""
|
|
647
|
-
options = options.copy()
|
|
648
|
-
cfg = {}
|
|
649
|
-
for i in _conf_file:
|
|
650
|
-
if i in options:
|
|
651
|
-
cfg[i] = options.pop(i)
|
|
652
|
-
return options, cfg
|
|
653
|
-
|
|
654
575
|
def _get_args(self, root, fname, options, output_dir,
|
|
655
576
|
correspond):
|
|
656
|
-
args = [
|
|
657
|
-
# if any of the options is from config file, rewrite it.
|
|
658
|
-
if any([i in _conf_file for i in options.keys()]):
|
|
659
|
-
# pop some options and put them in config
|
|
660
|
-
options, cfg = self._pop_config(options)
|
|
661
|
-
cfg = self._updated_config(cfg)
|
|
662
|
-
config_file = os.path.join(output_dir, root + '.cfg')
|
|
663
|
-
logger.debug('Creating new configuration file.')
|
|
664
|
-
self._write_config(config_file, cfg)
|
|
665
|
-
args += ['--config', config_file]
|
|
666
|
-
|
|
577
|
+
args = [fname, '--dir', output_dir]
|
|
667
578
|
args += self._parse_options(options)
|
|
668
579
|
args += ['--corr', correspond]
|
|
669
580
|
return args
|
|
@@ -685,7 +596,7 @@ class AstrometrySolver():
|
|
|
685
596
|
correspond=correspond)
|
|
686
597
|
|
|
687
598
|
try:
|
|
688
|
-
process, _, _ =
|
|
599
|
+
process, _, _ = self._command.run(args, **kwargs)
|
|
689
600
|
# .solved file must exist and contain a binary one
|
|
690
601
|
with open(solved_file, 'rb') as fd:
|
|
691
602
|
if ord(fd.read()) != 1:
|
|
@@ -749,7 +660,7 @@ def create_xyls(fname, x, y, flux, imagew, imageh, header=None, dtype='f8'):
|
|
|
749
660
|
|
|
750
661
|
def solve_astrometry_xy(x, y, flux, width, height,
|
|
751
662
|
image_header=None, options=None,
|
|
752
|
-
command=
|
|
663
|
+
command=_solve_field,
|
|
753
664
|
**kwargs):
|
|
754
665
|
"""Solve astrometry from a (x,y) sources list using astrometry.net.
|
|
755
666
|
|
|
@@ -776,7 +687,7 @@ def solve_astrometry_xy(x, y, flux, width, height,
|
|
|
776
687
|
- radius: maximum search radius
|
|
777
688
|
- scale: pixel scale in arcsec/pixel
|
|
778
689
|
- tweak-order: SIP order to fit
|
|
779
|
-
- index-
|
|
690
|
+
- index-dir: path to index files
|
|
780
691
|
command: str
|
|
781
692
|
Full path of astrometry.net ``solve-field`` command.
|
|
782
693
|
|
|
@@ -799,7 +710,7 @@ def solve_astrometry_xy(x, y, flux, width, height,
|
|
|
799
710
|
return solver.solve_field(f.name, options=options, **kwargs)
|
|
800
711
|
|
|
801
712
|
|
|
802
|
-
def solve_astrometry_framedata(frame, options=None, command=
|
|
713
|
+
def solve_astrometry_framedata(frame, options=None, command=_solve_field,
|
|
803
714
|
**kwargs):
|
|
804
715
|
"""Solve astrometry from a `~astropop.framedata.FrameData`.
|
|
805
716
|
|
|
@@ -815,6 +726,7 @@ def solve_astrometry_framedata(frame, options=None, command=None,
|
|
|
815
726
|
- radius: maximum search radius
|
|
816
727
|
- scale: pixel scale in arcsec/pixel
|
|
817
728
|
- tweak-order: SIP order to fit
|
|
729
|
+
- index-dir: path to index files
|
|
818
730
|
command: str
|
|
819
731
|
Full path of astrometry.net ``solve-field`` command.
|
|
820
732
|
|
|
@@ -846,6 +758,7 @@ def solve_astrometry_image(filename, options=None, command=_solve_field,
|
|
|
846
758
|
- radius: maximum search radius
|
|
847
759
|
- scale: pixel scale in arcsec/pixel
|
|
848
760
|
- tweak-order: SIP order to fit
|
|
761
|
+
- index-dir: path to index files
|
|
849
762
|
command: str
|
|
850
763
|
Full path of astrometry.net ``solve-field`` command.
|
|
851
764
|
|
|
@@ -859,7 +772,7 @@ def solve_astrometry_image(filename, options=None, command=_solve_field,
|
|
|
859
772
|
return solver.solve_field(filename, options=options, **kwargs)
|
|
860
773
|
|
|
861
774
|
|
|
862
|
-
def solve_astrometry_hdu(hdu, options=None, command=
|
|
775
|
+
def solve_astrometry_hdu(hdu, options=None, command=_solve_field, **kwargs):
|
|
863
776
|
"""Solve astrometry from a `~astropy.fits.ImageHDU` using astrometry.net.
|
|
864
777
|
|
|
865
778
|
Parameters
|
|
@@ -874,6 +787,7 @@ def solve_astrometry_hdu(hdu, options=None, command=None, **kwargs):
|
|
|
874
787
|
- radius: maximum search radius
|
|
875
788
|
- scale: pixel scale in arcsec/pixel
|
|
876
789
|
- tweak-order: SIP order to fit
|
|
790
|
+
- index-dir: path to index files
|
|
877
791
|
command: str
|
|
878
792
|
Full path of astrometry.net ``solve-field`` command.
|
|
879
793
|
|
|
@@ -145,7 +145,9 @@ class GaiaDR3SourcesCatalog(_OnlineSourcesCatalog):
|
|
|
145
145
|
radius=self._radius.to(u.deg).value,
|
|
146
146
|
columns=self._columns)
|
|
147
147
|
sk = SkyCoord(self._query['ra'], self._query['dec'],
|
|
148
|
-
obstime=Time(self._query['ref_epoch'], format='jyear')
|
|
148
|
+
obstime=Time(self._query['ref_epoch'], format='jyear'),
|
|
149
|
+
pm_ra_cosdec=self._query['pmra'],
|
|
150
|
+
pm_dec=self._query['pmdec'])
|
|
149
151
|
ids = np.array([string_fix(i) for i in self._query['DESIGNATION']])
|
|
150
152
|
|
|
151
153
|
# perform magnitude filtering only if available
|