繁体   English   中英

将像素 x,y 坐标转换为 wgs84

[英]convert pixel x,y coordinates to wgs84

我有 2 个相同 object 的数据集,但都在不同的坐标系中获得。 一种是从图像[像素数据]获得的坐标,因此坐标是相对于图像的。 另一个系统是WGS84系统。

我需要通过使用 python 将图像像素系统中的点映射到 WGS84 系统中的相应相对点来转换图像像素系统中的点。

我掌握的信息如下:

图像数据采用以下格式:

    pixIndex       X       Y    R    G    B
           1       0       0  227  227  227
           2       1       0  237  237  237
           3       2       0   0     0    0
           4       3       0  232  232  232
           5       4       0  233  233  233
...        ...     ...     ...  ...  ...  ...

原始数据:

原始数据 XY WGS84

我该如何进行这种转换? 等角投影应该没问题,我不需要它在墨卡托坐标中。

python atm 不是很强大,我看了这个但不确定如何在 python 中这样做:

将纬度/经度点转换为墨卡托投影上的像素 (x,y)

任何和所有的帮助表示赞赏:) 谢谢!

如果每个链接的转换公式是正确的(尤其是评论中的这个公式将纬度/经度点转换为墨卡托投影上的像素 (x,y) ),那么:

import pandas as pd
import numpy as np
import math
from io import StringIO

df = pd.read_csv(StringIO("""    pixIndex       X       Y    R    G    B
           1       0       0  227  227  227
           2       1       0  237  237  237
           3       2       0   0     0    0
           4       3       0  232  232  232
           5       4       0  233  233  233"""), sep="\s+")

mapWidth  = df["X"].max()
mapHeight = df["Y"].max()

x = df["X"]
y = df["Y"]

df["Lon"] = ((360 * x) / mapWidth) - 180
df["Lat"] = 90 * (-1 + (4 * np.arctan(np.power(math.e, (math.pi - (2 * math.pi * y) / mapHeight)))) / math.pi)

哪个输出(样本数据中的 Y 全为 0)

   pixIndex  X  Y    R    G    B    Lon  Lat
0         1  0  0  227  227  227 -180.0  NaN
1         2  1  0  237  237  237  -90.0  NaN
2         3  2  0    0    0    0    0.0  NaN
3         4  3  0  232  232  232   90.0  NaN
4         5  4  0  233  233  233  180.0  NaN

不确定转换过程的有效性,只是调整了公式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM