Astropy:确定一个点(RA,DEC)是否在给定该区域角坐标的方形区域内
Astropy: determe if a point (RA, DEC) is inside a squared region given the coordinates of the corners of this region
我有从中获得的天空区域的 4 个角的坐标
header fits
图像 astropy.wcs
和用于获取坐标的投影。
import astropy.wcs as wcs
import astropy.fits as fits
hdu=fits.open('filenmae.fits')
w=wcs.WCS(hdu[0].header)
print(w)
输出:
[out]: WCS Keywords
Number of WCS axes: 2
CTYPE : 'RA---ZPN' 'DEC--ZPN'
CRVAL : 308.45901 41.424847
CRPIX : 6010.0186 -1881.9392
CD1_1 CD1_2 : 1.0754576e-07 -5.5698074e-05
CD2_1 CD2_2 : 5.5690351e-05 6.8120784e-08
NAXIS : 4119 4119
从中我得到了场地角落的坐标:
corners=w.calc_footprint()
print(corners)
[out]: [[308.318759 41.08966578]
[308.01327548 41.08869031]
[308.01293347 41.31890048]
[308.31905451 41.31954629]]
如何在尊重投影效果的同时检查随机坐标是否在角点坐标定义的区域内(如输出所示,使用的投影是 ZPN
)?
一般来说,如果您有一个可以通过 WCS 转换为天空坐标的局部坐标系(比如图像像素),那么一种策略是将 "random coordinate" 转换为局部像素坐标并执行你的区域在那个平面直线坐标系中测试。
我有从中获得的天空区域的 4 个角的坐标
header fits
图像 astropy.wcs
和用于获取坐标的投影。
import astropy.wcs as wcs
import astropy.fits as fits
hdu=fits.open('filenmae.fits')
w=wcs.WCS(hdu[0].header)
print(w)
输出:
[out]: WCS Keywords
Number of WCS axes: 2
CTYPE : 'RA---ZPN' 'DEC--ZPN'
CRVAL : 308.45901 41.424847
CRPIX : 6010.0186 -1881.9392
CD1_1 CD1_2 : 1.0754576e-07 -5.5698074e-05
CD2_1 CD2_2 : 5.5690351e-05 6.8120784e-08
NAXIS : 4119 4119
从中我得到了场地角落的坐标:
corners=w.calc_footprint()
print(corners)
[out]: [[308.318759 41.08966578]
[308.01327548 41.08869031]
[308.01293347 41.31890048]
[308.31905451 41.31954629]]
如何在尊重投影效果的同时检查随机坐标是否在角点坐标定义的区域内(如输出所示,使用的投影是 ZPN
)?
一般来说,如果您有一个可以通过 WCS 转换为天空坐标的局部坐标系(比如图像像素),那么一种策略是将 "random coordinate" 转换为局部像素坐标并执行你的区域在那个平面直线坐标系中测试。