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

convert pixel x,y coordinates to wgs84

我有 2 个相同对象的数据集,但都是在不同的坐标系中获得的。一个是从图像 [像素数据] 中获得的坐标,因此坐标是相对于图像的。另一个系统是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
...        ...     ...     ...  ...  ...  ...

原始数据:

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

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

Convert latitude/longitude point to a pixels (x,y) on mercator projection

感谢任何帮助:) 谢谢!

如果您 link 的转换公式正确(尤其是评论 Convert latitude/longitude point to a pixels (x,y) on mercator projection 中的这个) 然后:

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

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