gpt4 book ai didi

python - 插值后Healpy坐标错误: appearance of bisector

转载 作者:太空宇宙 更新时间:2023-11-03 16:15:28 25 4
gpt4 key购买 nike

我有一个由 128 个点组成的粗略天空图,我想制作一个平滑的healpix map (见附图,LHS)。文中引用的数字:

here

我加载数据,然后为最终 map 创建适当像素长度的新经度和纬度数组(例如 nside=32)。

我的输入数据是:

lats = pi/2 + ths   # theta from 0, pi, size 8
lons = phs # phi from 0, 2pi, size 16
data = sky_data[0] # shape (8,16)

基于 nside 像素数的新经/纬度数组大小:

nside = 32 
pixIdx = hp.nside2npix(nside) # number of pixels I can get from this nside
pixIdx = np.arange(pixIdx) # pixel index numbers

然后,我通过插值找到这些像素的新数据值,然后从角度转换回像素。

# new lon/lat
new_lats = hp.pix2ang(nside, pixIdx)[0] # thetas I need to populate with interpolated theta values
new_lons = hp.pix2ang(nside, pixIdx)[1] # phis, same

# interpolation
lut = RectSphereBivariateSpline(lats, lons, data, pole_values=4e-14)
data_interp = lut.ev(new_lats.ravel(), new_lons.ravel()) #interpolate the data
pix = hp.ang2pix(nside, new_lats, new_lons) # convert latitudes and longitudes back to pixels

然后,我使用插值构建一个治疗贴图:

healpix_map = np.zeros(hp.nside2npix(nside), dtype=np.double) # create empty map
healpix_map[pix] = data_interp # assign pixels to new interpolated values
testmap = hp.mollview(healpix_map)

map 的结果是附图的上部右侧。

(请原谅使用 jet - viridis 没有“白色”零,因此使用该颜色图会添加蓝色背景。)

map 看起来不对:从图中的粗略 map 可以看出,右下角应该有一个“热点”,但这里它出现在左上角。

作为完整性检查,我使用 matplotlib 制作了 mollview 投影中插值点的散点图,图 2,其中我删除了标记的边缘,使其看起来像 map ;)

ax = plt.subplot(111, projection='astro mollweide')
ax.grid()
colors = data_interp
sky=plt.scatter(new_lons, new_lats-pi/2, c = colors, edgecolors='none', cmap ='jet')
plt.colorbar(sky, orientation = 'horizontal')

您可以看到这张 map (附图的右侧较低位置)产生的结果正是我所期望的!所以坐标没问题,我完全困惑了。

有人遇到过这种情况吗?我能做些什么?我想在这张 map 和 future 的 map 上使用healpy函数,所以仅仅使用matplotlib不是一个选择。

谢谢!

最佳答案

我想通了——我必须将 pi/2 添加到我的 theta 中才能使插值工作,因此最终需要应用以下转换才能正确渲染图像:

newnew_lats = pi - new_lats
newnew_lons = pi + new_lons

虽然现在看起来不太明显,但插值似乎仍然存在一些问题。我可能会尝试换一个来比较。

关于python - 插值后Healpy坐标错误: appearance of bisector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38975961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com