切口2D#
- class astropy.nddata.Cutout2D(data, position, size, wcs=None, mode='trim', fill_value=nan, copy=False)[源代码]#
基类:
object
从二维阵列创建剪切对象。
返回的对象将包含一个二维剪切数组。如果
copy=False
(默认),剪切阵列是原始阵列的视图data
数组,否则剪切数组将包含原始数据的副本。如果A
WCS
对象,则返回的对象也将包含原始WCS的副本,但已为cutout数组更新。有关用法,请参见 二维剪切图像 。
警告
cutout WCS对象当前不处理输入WCS对象包含中描述的失真查找表的情况 FITS WCS distortion paper .
- 参数:
- data :
ndarray
恩达雷 从中提取剪切数组的二维数据数组。
- position :
tuple
或SkyCoord
Python:元组或SkyCoord 剪切阵列的中心相对于
data
数组。位置可以指定为(x, y)
像素坐标元组或SkyCoord
,在这种情况下wcs
是必需的输入。- size :
int
, array_like ,或Quantity
PYTHON:INT、NUMPY:ARRAY_LIKE或QUANTITY 沿每个轴的裁切数组的大小。如果
size
是标量数还是标量Quantity
,然后是一个方形的裁剪size
将被创建。如果size
有两个元素,它们应该在(ny, nx)
秩序。中的标量数size
被假定为以像素为单位。size
也可以是Quantity
对象或包含Quantity
物体。是这样的Quantity
对象必须以像素或角度为单位。在所有情况下,size
将转换为整数个像素,四舍五入最接近的整数。请参阅mode
关键字,以获取有关最终裁切大小的其他详细信息。备注
如果
size
如果是以角度单位表示的,则使用沿图像每个轴的像素比例将裁切尺寸转换为像素CRPIX
位置。不考虑投影和其他非线性失真。- wcs :
WCS
可选WCS,可选 与输入关联的WCS对象
data
数组。如果wcs
不是None
,则返回的cutout对象将包含cutout数据数组的更新WCS的副本。- mode{'trim','partial','strict'},可选
用于创建剪切数据数组的模式。对于
'partial'
和'trim'
模式,剪切阵列和输入的部分重叠data
数组就足够了。对于'strict'
模式下,剪切数组必须完全包含在data
数组,否则PartialOverlapError
提高了。在所有模式下,非重叠数组将引发NoOverlapError
. 在'partial'
模式,剪切阵列中与data
数组将被填充fill_value
. 在'trim'
模式仅返回重叠元素,因此结果的截断数组可能小于请求的shape
.- fill_value :
float
或int
,可选PYTHON:FLOAT或PYTHON:INT,可选 如果
mode='partial'
,用于填充剪切数组中与输入不重叠的像素的值data
.fill_value
必须有相同的dtype
作为输入data
数组。- copy : bool ,可选可选的布尔
如果
False
(默认),则剪切数据将成为原始视图的视图data
数组。如果True
,则剪切数据将保存原始数据的副本data
数组。
- data :
实例
>>> import numpy as np >>> from astropy.nddata.utils import Cutout2D >>> from astropy import units as u >>> data = np.arange(20.).reshape(5, 4) >>> cutout1 = Cutout2D(data, (2, 2), (3, 3)) >>> print(cutout1.data) [[ 5. 6. 7.] [ 9. 10. 11.] [13. 14. 15.]]
>>> print(cutout1.center_original) (2.0, 2.0) >>> print(cutout1.center_cutout) (1.0, 1.0) >>> print(cutout1.origin_original) (1, 1)
>>> cutout2 = Cutout2D(data, (2, 2), 3) >>> print(cutout2.data) [[ 5. 6. 7.] [ 9. 10. 11.] [13. 14. 15.]]
>>> size = u.Quantity([3, 3], u.pixel) >>> cutout3 = Cutout2D(data, (0, 0), size) >>> print(cutout3.data) [[0. 1.] [4. 5.]]
>>> cutout4 = Cutout2D(data, (0, 0), (3 * u.pixel, 3)) >>> print(cutout4.data) [[0. 1.] [4. 5.]]
>>> cutout5 = Cutout2D(data, (0, 0), (3, 3), mode='partial') >>> print(cutout5.data) [[nan nan nan] [nan 0. 1.] [nan 4. 5.]]
- 属性:
- data :二维
ndarray
二维 二维剪切阵列。
- shape : (2,)
tuple
(2,)tuple
这个
(ny, nx)
剪切阵列的形状。- shape_input : (2,)
tuple
(2,)tuple
这个
(ny, nx)
输入(原始)数组的形状。- input_position_cutout : (2,)
tuple
(2,)tuple
(未取整)
(x, y)
相对于切口阵列的位置。- input_position_original : (2,)
tuple
(2,)tuple
原始(未取整)
(x, y)
输入位置(相对于原始数组)。- slices_original : (2,)
tuple
的slice
object
(2,)tuple
ofslice
object
一个切片对象的元组,用于相对于原始数组的裁切的最小边界框。为
mode='partial'
,则切片用于有效(未填充)剪切值。- slices_cutout : (2,)
tuple
的slice
object
(2,)tuple
ofslice
object
一个切片对象的元组,用于相对于剪切数组的剪切的最小边界框。为
mode='partial'
,则切片用于有效(未填充)剪切值。- xmin_original, ymin_original, xmax_original, ymax_original :
float
Python :浮点 最小值和最大值
x
和y
与原始数组相比,剪切数组的最小矩形区域的索引。为mode='partial'
,边界框索引用于有效(未填充)剪切值。这些值与中的值相同bbox_original
.- xmin_cutout, ymin_cutout, xmax_cutout, ymax_cutout :
float
Python :浮点 最小值和最大值
x
和y
切口阵列相对于切口阵列的最小矩形区域的索引。为mode='partial'
,边界框索引用于有效(未填充)剪切值。这些值与中的值相同bbox_cutout
.- wcs :
WCS
orNone
WCS或PYTHON:无 如果
wcs
是输入。
- data :二维
属性摘要
边界框
((ymin, ymax), (xmin, xmax))
关于剪切阵列的最小矩形区域。边界框
((ymin, ymax), (xmin, xmax))
与原始数组相关的剪切数组的最小矩形区域。中央
(x, y)
剪切阵列相对于剪切阵列的位置。中央
(x, y)
剪切阵列相对于原始阵列的位置。这个
(x, y)
相对于裁切阵列的裁切原始像素的索引。这个
(x, y)
相对于原始阵列的裁切原始像素的索引。这个
(x, y)
剪切数组中的位置索引(四舍五入到最近的像素)。这个
(x, y)
原始数组中的位置索引(四舍五入到最近的像素)。方法总结
plot_on_original
([ax, fill])在matplotlib Axes实例上打印剪切区域。
to_cutout_position
(original_position)转换一个
(x, y)
在原始大数组中的位置(x, y)
在剪切阵列中的位置。to_original_position
(cutout_position)转换一个
(x, y)
在剪切阵列中定位到原始位置(x, y)
在原始大数组中的位置。属性文档
- bbox_cutout#
边界框
((ymin, ymax), (xmin, xmax))
关于剪切阵列的最小矩形区域。为mode='partial'
,边界框索引用于有效(未填充)剪切值。
- bbox_original#
边界框
((ymin, ymax), (xmin, xmax))
与原始数组相关的剪切数组的最小矩形区域。为mode='partial'
,边界框索引用于有效(未填充)剪切值。
- center_cutout#
中央
(x, y)
剪切阵列相对于剪切阵列的位置。为mode='partial'
,计算有效(非填充)剪切值的中心位置。
- center_original#
中央
(x, y)
剪切阵列相对于原始阵列的位置。为mode='partial'
,计算有效(非填充)剪切值的中心位置。
- origin_cutout#
这个
(x, y)
相对于裁切阵列的裁切原始像素的索引。为mode='partial'
,计算有效(非填充)剪切值的原始像素。
- origin_original#
这个
(x, y)
相对于原始阵列的裁切原始像素的索引。为mode='partial'
,计算有效(非填充)剪切值的原始像素。
- position_cutout#
这个
(x, y)
剪切数组中的位置索引(四舍五入到最近的像素)。
- position_original#
这个
(x, y)
原始数组中的位置索引(四舍五入到最近的像素)。
方法文件
- plot_on_original(ax=None, fill=False, **kwargs)[源代码]#
在matplotlib Axes实例上打印剪切区域。
- 参数:
- ax :
matplotlib.axes.Axes
实例,可选matplotlib.axes.axes实例,可选 如果
None
,然后是电流matplotlib.axes.Axes
实例已使用。- fill : bool ,可选可选的布尔
设置是否填充剪切面片。默认值是
False
.- kwargs可选择的
接受的任何关键字参数
matplotlib.patches.Patch
.
- ax :
- 返回:
- ax :
matplotlib.axes.Axes
实例matplotlib.axes.axes实例 在if方法中构造的matplotlib轴实例
ax=None
. 否则输出ax
与输入相同ax
.
- ax :