【发布时间】:2014-10-26 18:00:30
【问题描述】:
我有一组数据给定here,其中第一列和第二列分别是天空坐标 (ra,dec),第三列和第四列分别是笛卡尔坐标系中的坐标 (x,y) .
我需要使用坐标x 和y 制作一个二维插值曲面,另一个使用Ra 和Dec。问题是存在被遮罩的区域,如上图所示。我可以通过绘制它们来说明丢失的数据(目录中没有NaN 值)。这是我迄今为止尝试过但没有给出正确答案的方法:
from scipy.interpolate import griddata
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('test.asc')
ra = data[:,0]
dec = data[:,1]
Xpos = data[:,2]
Ypos = data[:,3]
xi = np.linspace(Xpos.min(), Xpos.max(), 1000)
yi = np.linspace(Ypos.min(), Ypos.max(), 1000)
xi, yi = np.meshgrid(xi, yi, copy=False)
ra_int = griddata(data[:,2:4], ra, (xi.flatten(), yi.flatten()),
method='cubic')
dec_int = griddata(data[:,2:4], dec, (xi.flatten(), yi.flatten()),
method='cubic')
使用 griddata 失败并仅返回 NaN 值。有没有办法进行这种插值,以便从给定的x 和y 坐标估计Ra 和Dec 的值,即使在蒙面区域(从x 和y 映射到@ 987654338@和dec)?
【问题讨论】:
-
您可能会尝试填补本文stackoverflow.com/questions/20753288/…中显示的空白,然后进行插值。
-
其实我不想给你指出那个具体的答案(我不能编辑评论),但问题和你的很相似。我想亚历克斯我的答案可以很好地适应。
-
@ChristianK。这似乎很有趣,但我怎么能从一架飞机映射到另一架飞机呢?我不太清楚应该怎么做!
-
看来我误解了你的问题。我假设问题的一部分是 z = f(x,y) 表面的插值,它有间隙,但显然情况并非如此。其实我不知道你打算做什么。
griddata用于 f(x1,x2,x3,...,xn) 类型数据的插值。你好像还想做点别的事情…… -
我假设 RA 和 Dec 的单位是度数(天文学数据中常用的赤道坐标系),但笛卡尔坐标集到底是什么? (在特定地理位置对地球表面的一些投影?)没有这些信息很难回答,因为我们不知道这两个空间之间的依赖关系(很可能是非线性的,而不仅仅是镜像和缩放......)
标签: python scipy scikit-learn interpolation computational-geometry