drizzle 2.0.0__cp313-cp313-macosx_11_0_arm64.whl → 2.1.0__cp313-cp313-macosx_11_0_arm64.whl
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.
Potentially problematic release.
This version of drizzle might be problematic. Click here for more details.
- drizzle/cdrizzle.cpython-313-darwin.so +0 -0
- drizzle/resample.py +23 -18
- drizzle/tests/helpers.py +221 -0
- drizzle/tests/test_resample.py +277 -489
- drizzle/tests/test_utils.py +92 -48
- drizzle/utils.py +56 -10
- {drizzle-2.0.0.dist-info → drizzle-2.1.0.dist-info}/METADATA +18 -48
- drizzle-2.1.0.dist-info/RECORD +16 -0
- {drizzle-2.0.0.dist-info → drizzle-2.1.0.dist-info}/WHEEL +2 -1
- drizzle-2.0.0.dist-info/RECORD +0 -15
- {drizzle-2.0.0.dist-info → drizzle-2.1.0.dist-info/licenses}/LICENSE.rst +0 -0
- {drizzle-2.0.0.dist-info → drizzle-2.1.0.dist-info}/top_level.txt +0 -0
drizzle/tests/test_utils.py
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
1
|
import numpy as np
|
|
4
2
|
import pytest
|
|
5
3
|
from numpy.testing import assert_almost_equal, assert_equal
|
|
6
4
|
|
|
7
|
-
from
|
|
8
|
-
from astropy.io import fits
|
|
5
|
+
from drizzle.tests.helpers import wcs_from_file
|
|
9
6
|
from drizzle.utils import (
|
|
10
7
|
_estimate_pixel_scale,
|
|
11
8
|
calc_pixmap,
|
|
@@ -13,9 +10,6 @@ from drizzle.utils import (
|
|
|
13
10
|
estimate_pixel_scale_ratio,
|
|
14
11
|
)
|
|
15
12
|
|
|
16
|
-
TEST_DIR = os.path.abspath(os.path.dirname(__file__))
|
|
17
|
-
DATA_DIR = os.path.join(TEST_DIR, 'data')
|
|
18
|
-
|
|
19
13
|
|
|
20
14
|
def test_map_rectangular():
|
|
21
15
|
"""
|
|
@@ -30,18 +24,17 @@ def test_map_rectangular():
|
|
|
30
24
|
assert_equal(pixmap[5, 500], (500, 5))
|
|
31
25
|
|
|
32
26
|
|
|
33
|
-
|
|
27
|
+
@pytest.mark.parametrize(
|
|
28
|
+
"wcs_type", ["fits", "gwcs"]
|
|
29
|
+
)
|
|
30
|
+
def test_map_to_self(wcs_type):
|
|
34
31
|
"""
|
|
35
32
|
Map a pixel array to itself. Should return the same array.
|
|
36
33
|
"""
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
input_wcs = wcs_from_file("j8bt06nyq_sip_flt.fits", ext=1, wcs_type=wcs_type)
|
|
35
|
+
shape = input_wcs.array_shape
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
naxis1, naxis2 = input_wcs.pixel_shape
|
|
42
|
-
input_hdu.close()
|
|
43
|
-
|
|
44
|
-
ok_pixmap = np.indices((naxis1, naxis2), dtype='float32')
|
|
37
|
+
ok_pixmap = np.indices(shape, dtype='float64')
|
|
45
38
|
ok_pixmap = ok_pixmap.transpose()
|
|
46
39
|
|
|
47
40
|
pixmap = calc_pixmap(input_wcs, input_wcs)
|
|
@@ -56,9 +49,10 @@ def test_map_to_self():
|
|
|
56
49
|
pixmap = calc_pixmap(input_wcs, input_wcs, (12, 34))
|
|
57
50
|
assert_equal(pixmap.shape, (12, 34, 2))
|
|
58
51
|
|
|
59
|
-
# Check that an exception is raised for WCS without pixel_shape
|
|
52
|
+
# Check that an exception is raised for WCS without pixel_shape and
|
|
60
53
|
# bounding_box:
|
|
61
54
|
input_wcs.pixel_shape = None
|
|
55
|
+
input_wcs.bounding_box = None
|
|
62
56
|
with pytest.raises(ValueError):
|
|
63
57
|
calc_pixmap(input_wcs, input_wcs)
|
|
64
58
|
|
|
@@ -72,31 +66,31 @@ def test_map_to_self():
|
|
|
72
66
|
assert_equal(pixmap.shape, (12, 34, 2))
|
|
73
67
|
|
|
74
68
|
# from bounding box and pixel_shape (the later takes precedence):
|
|
75
|
-
input_wcs.
|
|
69
|
+
input_wcs.array_shape = shape
|
|
76
70
|
pixmap = calc_pixmap(input_wcs, input_wcs)
|
|
77
71
|
assert_equal(pixmap.shape, ok_pixmap.shape)
|
|
78
72
|
|
|
79
73
|
|
|
80
|
-
|
|
74
|
+
@pytest.mark.parametrize(
|
|
75
|
+
"wcs_type", ["fits", "gwcs"]
|
|
76
|
+
)
|
|
77
|
+
def test_translated_map(wcs_type):
|
|
81
78
|
"""
|
|
82
79
|
Map a pixel array to at translated array.
|
|
83
80
|
"""
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
second_wcs = wcs.WCS(second_header)
|
|
97
|
-
second_hdu.close()
|
|
81
|
+
first_wcs = wcs_from_file(
|
|
82
|
+
"j8bt06nyq_sip_flt.fits",
|
|
83
|
+
ext=1,
|
|
84
|
+
wcs_type=wcs_type
|
|
85
|
+
)
|
|
86
|
+
second_wcs = wcs_from_file(
|
|
87
|
+
"j8bt06nyq_sip_flt.fits",
|
|
88
|
+
ext=1,
|
|
89
|
+
crpix_shift=(-2, -2), # shift loaded WCS by adding this to CRPIX
|
|
90
|
+
wcs_type=wcs_type
|
|
91
|
+
)
|
|
98
92
|
|
|
99
|
-
ok_pixmap = np.indices(
|
|
93
|
+
ok_pixmap = np.indices(first_wcs.array_shape, dtype='float32') - 2.0
|
|
100
94
|
ok_pixmap = ok_pixmap.transpose()
|
|
101
95
|
|
|
102
96
|
pixmap = calc_pixmap(first_wcs, second_wcs)
|
|
@@ -104,31 +98,81 @@ def test_translated_map():
|
|
|
104
98
|
# Got x-y transpose right
|
|
105
99
|
assert_equal(pixmap.shape, ok_pixmap.shape)
|
|
106
100
|
# Mapping an array to a translated array
|
|
107
|
-
assert_almost_equal(pixmap, ok_pixmap, decimal=5)
|
|
101
|
+
assert_almost_equal(pixmap[2:, 2:], ok_pixmap[2:, 2:], decimal=5)
|
|
108
102
|
|
|
109
103
|
|
|
110
|
-
def
|
|
111
|
-
|
|
104
|
+
def test_disable_gwcs_bbox():
|
|
105
|
+
"""
|
|
106
|
+
Map a pixel array to a translated version ofitself.
|
|
107
|
+
"""
|
|
108
|
+
first_wcs = wcs_from_file(
|
|
109
|
+
"j8bt06nyq_sip_flt.fits",
|
|
110
|
+
ext=1,
|
|
111
|
+
wcs_type="gwcs"
|
|
112
|
+
)
|
|
113
|
+
second_wcs = wcs_from_file(
|
|
114
|
+
"j8bt06nyq_sip_flt.fits",
|
|
115
|
+
ext=1,
|
|
116
|
+
crpix_shift=(-2, -2), # shift loaded WCS by adding this to CRPIX
|
|
117
|
+
wcs_type="gwcs"
|
|
118
|
+
)
|
|
112
119
|
|
|
113
|
-
|
|
114
|
-
|
|
120
|
+
ok_pixmap = np.indices(first_wcs.array_shape, dtype='float64') - 2.0
|
|
121
|
+
ok_pixmap = ok_pixmap.transpose()
|
|
122
|
+
|
|
123
|
+
# Mapping an array to a translated array
|
|
124
|
+
|
|
125
|
+
# disable both bounding boxes:
|
|
126
|
+
pixmap = calc_pixmap(first_wcs, second_wcs, disable_bbox="both")
|
|
127
|
+
assert_almost_equal(pixmap[2:, 2:], ok_pixmap[2:, 2:], decimal=5)
|
|
128
|
+
assert np.all(np.isfinite(pixmap[:2, :2]))
|
|
129
|
+
assert np.all(np.isfinite(pixmap[-2:, -2:]))
|
|
130
|
+
# check bbox was restored
|
|
131
|
+
assert first_wcs.bounding_box is not None
|
|
132
|
+
assert second_wcs.bounding_box is not None
|
|
133
|
+
|
|
134
|
+
# disable "from" bounding box:
|
|
135
|
+
pixmap = calc_pixmap(second_wcs, first_wcs, disable_bbox="from")
|
|
136
|
+
assert_almost_equal(pixmap[:-2, :-2], ok_pixmap[:-2, :-2] + 4.0, decimal=5)
|
|
137
|
+
assert np.all(np.logical_not(np.isfinite(pixmap[-2:, -2:])))
|
|
138
|
+
# check bbox was restored
|
|
139
|
+
assert first_wcs.bounding_box is not None
|
|
140
|
+
assert second_wcs.bounding_box is not None
|
|
141
|
+
|
|
142
|
+
# disable "to" bounding boxes:
|
|
143
|
+
pixmap = calc_pixmap(first_wcs, second_wcs, disable_bbox="to")
|
|
144
|
+
assert_almost_equal(pixmap[2:, 2:], ok_pixmap[2:, 2:], decimal=5)
|
|
145
|
+
assert np.all(np.isfinite(pixmap[:2, :2]))
|
|
146
|
+
assert np.all(pixmap[:2, :2] < 0.0)
|
|
147
|
+
assert np.all(np.isfinite(pixmap[-2:, -2:]))
|
|
148
|
+
# check bbox was restored
|
|
149
|
+
assert first_wcs.bounding_box is not None
|
|
150
|
+
assert second_wcs.bounding_box is not None
|
|
151
|
+
|
|
152
|
+
# enable all bounding boxes:
|
|
153
|
+
pixmap = calc_pixmap(first_wcs, second_wcs, disable_bbox="none")
|
|
154
|
+
assert_almost_equal(pixmap[2:, 2:], ok_pixmap[2:, 2:], decimal=5)
|
|
155
|
+
assert np.all(np.logical_not(np.isfinite(pixmap[:2, :2])))
|
|
156
|
+
# check bbox was restored
|
|
157
|
+
assert first_wcs.bounding_box is not None
|
|
158
|
+
assert second_wcs.bounding_box is not None
|
|
115
159
|
|
|
116
|
-
pscale = estimate_pixel_scale_ratio(w, w, w.wcs.crpix, (0, 0))
|
|
117
160
|
|
|
161
|
+
def test_estimate_pixel_scale_ratio():
|
|
162
|
+
w = wcs_from_file("j8bt06nyq_flt.fits", ext=1)
|
|
163
|
+
pscale = estimate_pixel_scale_ratio(w, w, w.wcs.crpix, (0, 0))
|
|
118
164
|
assert abs(pscale - 0.9999999916964737) < 1.0e-9
|
|
119
165
|
|
|
120
166
|
|
|
121
167
|
def test_estimate_pixel_scale_no_refpix():
|
|
122
168
|
# create a WCS without higher order (polynomial) distortions:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
w.cpdis2 = None
|
|
131
|
-
pixel_shape = w.pixel_shape[:]
|
|
169
|
+
w = wcs_from_file("j8bt06nyq_sip_flt.fits", ext=1)
|
|
170
|
+
w.sip = None
|
|
171
|
+
w.det2im1 = None
|
|
172
|
+
w.det2im2 = None
|
|
173
|
+
w.cpdis1 = None
|
|
174
|
+
w.cpdis2 = None
|
|
175
|
+
pixel_shape = w.pixel_shape[:]
|
|
132
176
|
|
|
133
177
|
ref_pscale = _estimate_pixel_scale(w, w.wcs.crpix)
|
|
134
178
|
|
drizzle/utils.py
CHANGED
|
@@ -7,7 +7,7 @@ __all__ = ["calc_pixmap", "decode_context", "estimate_pixel_scale_ratio"]
|
|
|
7
7
|
_DEG2RAD = math.pi / 180.0
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def calc_pixmap(wcs_from, wcs_to, shape=None):
|
|
10
|
+
def calc_pixmap(wcs_from, wcs_to, shape=None, disable_bbox="to"):
|
|
11
11
|
"""
|
|
12
12
|
Calculate a discretized on a grid mapping between the pixels of two images
|
|
13
13
|
using provided WCS of the original ("from") image and the destination ("to")
|
|
@@ -35,6 +35,14 @@ def calc_pixmap(wcs_from, wcs_to, shape=None):
|
|
|
35
35
|
``numpy.ndarray`` order. When provided, it takes precedence over the
|
|
36
36
|
``wcs_from.array_shape`` property.
|
|
37
37
|
|
|
38
|
+
disable_bbox : {"to", "from", "both", "none"}, optional
|
|
39
|
+
Indicates whether to use or not to use the bounding box of either
|
|
40
|
+
(both) ``wcs_from`` or (and) ``wcs_to`` when computing pixel map. When
|
|
41
|
+
``disable_bbox`` is "none", pixel coordinates outside of the bounding
|
|
42
|
+
box are set to `NaN` only if ``wcs_from`` or (and) ``wcs_to`` sets
|
|
43
|
+
world coordinates to NaN when input pixel coordinates are outside of
|
|
44
|
+
the bounding box.
|
|
45
|
+
|
|
38
46
|
Returns
|
|
39
47
|
-------
|
|
40
48
|
pixmap : numpy.ndarray
|
|
@@ -57,16 +65,39 @@ def calc_pixmap(wcs_from, wcs_to, shape=None):
|
|
|
57
65
|
If ``bounding_box`` is not available, a `ValueError` will be raised.
|
|
58
66
|
|
|
59
67
|
"""
|
|
68
|
+
if (bbox_from := getattr(wcs_from, "bounding_box", None)) is not None:
|
|
69
|
+
try:
|
|
70
|
+
# to avoid dependency on astropy just to check whether
|
|
71
|
+
# the bounding box is an instance of
|
|
72
|
+
# modeling.bounding_box.ModelBoundingBox, we try to
|
|
73
|
+
# directly use and bounding_box(order='F') and if it fails,
|
|
74
|
+
# fall back to converting the bounding box to a tuple
|
|
75
|
+
# (of intervals):
|
|
76
|
+
bbox_from = bbox_from.bounding_box(order='F')
|
|
77
|
+
except AttributeError:
|
|
78
|
+
bbox_from = tuple(bbox_from)
|
|
79
|
+
|
|
80
|
+
if (bbox_to := getattr(wcs_to, "bounding_box", None)) is not None:
|
|
81
|
+
try:
|
|
82
|
+
# to avoid dependency on astropy just to check whether
|
|
83
|
+
# the bounding box is an instance of
|
|
84
|
+
# modeling.bounding_box.ModelBoundingBox, we try to
|
|
85
|
+
# directly use and bounding_box(order='F') and if it fails,
|
|
86
|
+
# fall back to converting the bounding box to a tuple
|
|
87
|
+
# (of intervals):
|
|
88
|
+
bbox_to = bbox_to.bounding_box(order='F')
|
|
89
|
+
except AttributeError:
|
|
90
|
+
bbox_to = tuple(bbox_to)
|
|
91
|
+
|
|
60
92
|
if shape is None:
|
|
61
93
|
shape = wcs_from.array_shape
|
|
62
|
-
if shape is None:
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
)
|
|
94
|
+
if shape is None and bbox_from is not None:
|
|
95
|
+
if (nd := np.ndim(bbox_from)) == 1:
|
|
96
|
+
bbox_from = (bbox_from, )
|
|
97
|
+
if nd > 1:
|
|
98
|
+
shape = tuple(
|
|
99
|
+
math.ceil(lim[1] + 0.5) for lim in bbox_from[::-1]
|
|
100
|
+
)
|
|
70
101
|
|
|
71
102
|
if shape is None:
|
|
72
103
|
raise ValueError(
|
|
@@ -74,7 +105,22 @@ def calc_pixmap(wcs_from, wcs_to, shape=None):
|
|
|
74
105
|
)
|
|
75
106
|
|
|
76
107
|
y, x = np.indices(shape, dtype=np.float64)
|
|
77
|
-
|
|
108
|
+
|
|
109
|
+
# temporarily disable the bounding box for the "from" WCS:
|
|
110
|
+
if disable_bbox in ["from", "both"] and bbox_from is not None:
|
|
111
|
+
wcs_from.bounding_box = None
|
|
112
|
+
if disable_bbox in ["to", "both"] and bbox_to is not None:
|
|
113
|
+
wcs_to.bounding_box = None
|
|
114
|
+
try:
|
|
115
|
+
x, y = wcs_to.world_to_pixel_values(
|
|
116
|
+
*wcs_from.pixel_to_world_values(x, y)
|
|
117
|
+
)
|
|
118
|
+
finally:
|
|
119
|
+
if bbox_from is not None:
|
|
120
|
+
wcs_from.bounding_box = bbox_from
|
|
121
|
+
if bbox_to is not None:
|
|
122
|
+
wcs_to.bounding_box = bbox_to
|
|
123
|
+
|
|
78
124
|
pixmap = np.dstack([x, y])
|
|
79
125
|
return pixmap
|
|
80
126
|
|
|
@@ -1,40 +1,8 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: drizzle
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: A package for combining dithered images into a single image
|
|
5
5
|
Author-email: STScI <help@stsci.edu>
|
|
6
|
-
License: Copyright (C) 2011,2014 Association of Universities for Research in
|
|
7
|
-
Astronomy (AURA)
|
|
8
|
-
|
|
9
|
-
Redistribution and use in source and binary forms, with or without
|
|
10
|
-
modification, are permitted provided that the following conditions
|
|
11
|
-
are met:
|
|
12
|
-
|
|
13
|
-
1. Redistributions of source code must retain the above
|
|
14
|
-
copyright notice, this list of conditions and the following
|
|
15
|
-
disclaimer.
|
|
16
|
-
|
|
17
|
-
2. Redistributions in binary form must reproduce the above
|
|
18
|
-
copyright notice, this list of conditions and the following
|
|
19
|
-
disclaimer in the documentation and/or other materials
|
|
20
|
-
provided with the distribution.
|
|
21
|
-
|
|
22
|
-
3. The name of AURA and its representatives may not be used to
|
|
23
|
-
endorse or promote products derived from this software without
|
|
24
|
-
specific prior written permission.
|
|
25
|
-
|
|
26
|
-
THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR
|
|
27
|
-
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
28
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
29
|
-
ARE DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT,
|
|
30
|
-
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
31
|
-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
32
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
33
|
-
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
34
|
-
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
35
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
|
36
|
-
OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
37
|
-
|
|
38
6
|
Project-URL: Homepage, https://github.com/spacetelescope/drizzle
|
|
39
7
|
Project-URL: Bug Tracker, https://github.com/spacetelescope/drizzle/issues
|
|
40
8
|
Project-URL: Documentation, http://spacetelescope.github.io/drizzle/
|
|
@@ -43,18 +11,20 @@ Requires-Python: >=3.10
|
|
|
43
11
|
Description-Content-Type: text/x-rst
|
|
44
12
|
License-File: LICENSE.rst
|
|
45
13
|
Requires-Dist: numpy
|
|
46
|
-
Requires-Dist: astropy
|
|
47
|
-
Provides-Extra: docs
|
|
48
|
-
Requires-Dist: sphinx ; extra == 'docs'
|
|
49
|
-
Requires-Dist: sphinx-automodapi ; extra == 'docs'
|
|
50
|
-
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
|
|
51
|
-
Requires-Dist: matplotlib ; extra == 'docs'
|
|
52
|
-
Requires-Dist: pytest-doctestplus ; extra == 'docs'
|
|
53
|
-
Requires-Dist: tomli ; (python_version < "3.11") and extra == 'docs'
|
|
54
14
|
Provides-Extra: test
|
|
55
|
-
Requires-Dist:
|
|
56
|
-
Requires-Dist:
|
|
57
|
-
Requires-Dist: pytest
|
|
15
|
+
Requires-Dist: astropy; extra == "test"
|
|
16
|
+
Requires-Dist: gwcs; extra == "test"
|
|
17
|
+
Requires-Dist: pytest; extra == "test"
|
|
18
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
19
|
+
Requires-Dist: pytest-doctestplus; extra == "test"
|
|
20
|
+
Provides-Extra: docs
|
|
21
|
+
Requires-Dist: tomli; python_version < "3.11" and extra == "docs"
|
|
22
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
23
|
+
Requires-Dist: sphinx-automodapi; extra == "docs"
|
|
24
|
+
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
25
|
+
Requires-Dist: matplotlib; extra == "docs"
|
|
26
|
+
Requires-Dist: pytest-doctestplus; extra == "docs"
|
|
27
|
+
Dynamic: license-file
|
|
58
28
|
|
|
59
29
|
drizzle Documentation
|
|
60
30
|
=====================
|
|
@@ -107,8 +77,8 @@ Requirements
|
|
|
107
77
|
The Drizzle Algorithm
|
|
108
78
|
---------------------
|
|
109
79
|
|
|
110
|
-
This section has been extracted from Chapter
|
|
111
|
-
`The DrizzlePac Handbook <
|
|
80
|
+
This section has been extracted from Chapter 3 of
|
|
81
|
+
`The DrizzlePac Handbook <https://hst-docs.stsci.edu/drizzpac>`_ [Driz2025]_
|
|
112
82
|
|
|
113
83
|
There are a family of linear reconstruction techniques that, at two opposite
|
|
114
84
|
extremes, are represented by the interlacing and shift-and-add techniques, with
|
|
@@ -199,4 +169,4 @@ for identifying cosmic rays in the original image. Blot requires the user
|
|
|
199
169
|
to provide the world coordinate system (WCS)-based transformations in the
|
|
200
170
|
form of a pixel map array as input.
|
|
201
171
|
|
|
202
|
-
.. [
|
|
172
|
+
.. [Driz2025] Anand, G. S., Mack, J., et al., 2025, “The DrizzlePac Handbook”, Version 3.0, (Baltimore: STScI)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
drizzle-2.1.0.dist-info/RECORD,,
|
|
2
|
+
drizzle-2.1.0.dist-info/WHEEL,sha256=oqGJCpG61FZJmvyZ3C_0aCv-2mdfcY9e3fXvyUNmWfM,136
|
|
3
|
+
drizzle-2.1.0.dist-info/top_level.txt,sha256=MA5uqwTj1sJBi-hCeQj9v3-sZ9nVUTe6bd_zGWTKy5A,8
|
|
4
|
+
drizzle-2.1.0.dist-info/METADATA,sha256=Ib_IPFdMtDc3ZbRl-xNiL9FY6sGg2dmB4ZDlsOpwmlc,8932
|
|
5
|
+
drizzle-2.1.0.dist-info/licenses/LICENSE.rst,sha256=zbEvAxiq9xY9gvf78KeZaARrnOsTcqC9FeOC6tg8VbA,1474
|
|
6
|
+
drizzle/resample.py,sha256=-uMfJ2AEXfZrAkmi3uq9QOJfZaDx4Em8tOnSYWUVkm8,28450
|
|
7
|
+
drizzle/util.py,sha256=dmaA4MtbUKZa-KTLosDsYG3nuVWCWkqRMCL8zqRf8II,811
|
|
8
|
+
drizzle/__init__.py,sha256=oKjebdSpXrrHeytrwme-CcDlxqSXpED5P8GxUkYLmV0,313
|
|
9
|
+
drizzle/utils.py,sha256=A_N1JpSjqrH7ZlcHphqaeiiCSRzDRqiP7oGrgi-r9eY,10556
|
|
10
|
+
drizzle/cdrizzle.cpython-313-darwin.so,sha256=r4wTjd9VUFdFYIojunFBR4cfwCSY9PZWl4B6-yThUWg,151280
|
|
11
|
+
drizzle/tests/test_utils.py,sha256=7Gt4p-ddGqldUGG4NiAP4kGqjnbPL7Mvcc1f1FtFZ5k,7465
|
|
12
|
+
drizzle/tests/test_overlap_calc.py,sha256=HJPdD5waKM7j4iz8qT38mJyCQDVtb8CzGfgRUpjFQIk,6800
|
|
13
|
+
drizzle/tests/test_cdrizzle.py,sha256=KnK6l8CZ7HxGx2OlziYtAsOMka3PebP-sLJuOIOMTAw,697
|
|
14
|
+
drizzle/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
drizzle/tests/test_resample.py,sha256=9Pd0wpnjov4265eVnF5UOl8_5kyzy0jKyEx0ZR4gFJE,34094
|
|
16
|
+
drizzle/tests/helpers.py,sha256=gFhCa68Ev0nX_oMNlf7gn60F6146jyUCMzu5vXGkhTU,6452
|
drizzle-2.0.0.dist-info/RECORD
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
drizzle-2.0.0.dist-info/RECORD,,
|
|
2
|
-
drizzle-2.0.0.dist-info/WHEEL,sha256=EhaGmhgTZV8uqhZxBmQmxqlBexDOCFpUXsFLjK8lF9g,109
|
|
3
|
-
drizzle-2.0.0.dist-info/LICENSE.rst,sha256=zbEvAxiq9xY9gvf78KeZaARrnOsTcqC9FeOC6tg8VbA,1474
|
|
4
|
-
drizzle-2.0.0.dist-info/top_level.txt,sha256=MA5uqwTj1sJBi-hCeQj9v3-sZ9nVUTe6bd_zGWTKy5A,8
|
|
5
|
-
drizzle-2.0.0.dist-info/METADATA,sha256=qcK15S6z6SyVHihtf5rksL29AhbesMaq32utR6dRfh4,10648
|
|
6
|
-
drizzle/resample.py,sha256=HJD6l2xo9_VoYbWCAEbez5qKBYrGxoTPMuOGWwVnBmw,28280
|
|
7
|
-
drizzle/util.py,sha256=dmaA4MtbUKZa-KTLosDsYG3nuVWCWkqRMCL8zqRf8II,811
|
|
8
|
-
drizzle/__init__.py,sha256=oKjebdSpXrrHeytrwme-CcDlxqSXpED5P8GxUkYLmV0,313
|
|
9
|
-
drizzle/utils.py,sha256=uyAPOQ7LbwT9IJ4O4NYj8luoDpsVS2iOOMBcj74dPvc,8537
|
|
10
|
-
drizzle/cdrizzle.cpython-313-darwin.so,sha256=_K8YaJ1z4voTlCA6WJuHptN89OwFtC4-xCrLuU9C1V0,151056
|
|
11
|
-
drizzle/tests/test_utils.py,sha256=0QdI24l6z2H1UdPabmNe3BwgTSA8b1_xHzRFhgEkV_c,5696
|
|
12
|
-
drizzle/tests/test_overlap_calc.py,sha256=HJPdD5waKM7j4iz8qT38mJyCQDVtb8CzGfgRUpjFQIk,6800
|
|
13
|
-
drizzle/tests/test_cdrizzle.py,sha256=KnK6l8CZ7HxGx2OlziYtAsOMka3PebP-sLJuOIOMTAw,697
|
|
14
|
-
drizzle/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
drizzle/tests/test_resample.py,sha256=ke_A5htg9ez77ehsKjKn5hSjwDbat4_Vz0GI6IqPB7w,39577
|
|
File without changes
|
|
File without changes
|