[英]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
... ... ... ... ... ... ...
原始数据:
我该如何进行这种转换? 等角投影应该没问题,我不需要它在墨卡托坐标中。
python atm 不是很强大,我看了这个但不确定如何在 python 中这样做:
任何和所有的帮助表示赞赏:) 谢谢!
如果每个链接的转换公式是正确的(尤其是评论中的这个公式将纬度/经度点转换为墨卡托投影上的像素 (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.