将 x,y 转换为纬度和经度
Convert x,y to latitiude and longitude
如果我有一张地图图像,其中:
- 左上角(x=0,y=0)的经纬度已知
- 图片的宽高已知
- 缩放(z 轴)已知。
我们可以计算图像中其他坐标的纬度和经度吗?
例如,在下图中,如果我想计算白色 ploygon 的 lat/lon 值(坐标 (x,y) 已知)
所以给定图像的信息和形状,():
import numpy as np
top_left = np.array((32.0055597, 35.9265418))
bottom_right = np.array((33.0055597, 36.9265418))
delta = bottom_right - top_left
shape = (454, 394)[::-1] # convert from ij to xy coords
pixel_sizes = delta / shape
pixel_sizes * (80, 200) + top_left
>>> array([32.20860539, 36.36707043])
给出给定点的 (x, y) 或 (longtiude, latitude)。
这种方法可以在给定一组使用 numpy 的点的情况下推广为:
coords * pixel_sizes + top_left # coords is (N, 2) array
如果 coords
是数组的元组,可以使用 np.column_stack
.
将其转换为 (N,2)
数组
如果我有一张地图图像,其中:
- 左上角(x=0,y=0)的经纬度已知
- 图片的宽高已知
- 缩放(z 轴)已知。
我们可以计算图像中其他坐标的纬度和经度吗? 例如,在下图中,如果我想计算白色 ploygon 的 lat/lon 值(坐标 (x,y) 已知)
所以给定图像的信息和形状,(
import numpy as np
top_left = np.array((32.0055597, 35.9265418))
bottom_right = np.array((33.0055597, 36.9265418))
delta = bottom_right - top_left
shape = (454, 394)[::-1] # convert from ij to xy coords
pixel_sizes = delta / shape
pixel_sizes * (80, 200) + top_left
>>> array([32.20860539, 36.36707043])
给出给定点的 (x, y) 或 (longtiude, latitude)。
这种方法可以在给定一组使用 numpy 的点的情况下推广为:
coords * pixel_sizes + top_left # coords is (N, 2) array
如果 coords
是数组的元组,可以使用 np.column_stack
.
(N,2)
数组