gpt4 book ai didi

python - 尽管有 mask 区域,但从一个平面映射到另一个平面

转载 作者:行者123 更新时间:2023-11-28 18:41:25 25 4
gpt4 key购买 nike

我有一组数据 here其中第一列和第二列分别是天空坐标 (ra,dec),第三列和第四列分别是笛卡尔坐标系 (x,y) 中的坐标。

enter image description here

我需要使用坐标 x 制作一个二维插值曲面和 y另一个使用 RaDec .问题是masked region的存在,如上图所示。我可以通过绘制它们来说明缺失的数据(目录中没有 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值。有什么方法可以进行这种插值以估计 Ra 的值吗?和 Dec来自给定的 xy坐标甚至在掩蔽区域(从 xy 映射到 radec )?

最佳答案

如果我做对了,那就是这样的:

CCD projection

只需将笛卡尔坐标系移动到CCD 的中间,同时将赤道坐标移动到CCD 的中间。然后分别计算 x,y。您唯一需要做的就是分别为 xy 计算焦距 f !!!


pos 是笛卡尔坐标(x 或 y)
ang 为赤道坐标(赤经或赤经)

  1. 从数据库获取边缘点

    将角度移到CCD

    的中间
  2. 从中计算焦点(fx,fy)

    f = pos/tan(ang)
  3. 现在您可以计算数据集中任何条目的投影

    将角度移动到 CCD 的中间,然后计算 x,y

    pos=f*tan(ang)

    CCD 中间移回原始笛卡尔坐标。如果这种方法正确,你应该检查几点

[注释]

x 轴在您的输出中是镜像的,因此只需在最后使用 x=-x,然后再移回原始笛卡尔坐标或离开焦点 f 否定。

如果您的 CCD 轴未与赤道对齐,那么您需要计算旋转(X 轴与赤道之间的角度)并围绕 Z< 进行旋转 转换后的轴在移回之前...

关于python - 尽管有 mask 区域,但从一个平面映射到另一个平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25623926/

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