python - 使用 pyproj 投影 NumPy 坐标数组

标签 python numpy coordinates map-projections pyproj

我有一个 NumPy 纬度/经度 (WGS84) 坐标数组,如下所示:

coords = np.asarray([
    [6.74219, -53.57835],
    [6.74952, -53.57241],
    [6.75652, -53.56289],
    [6.74756, -53.56598],
    [6.73462, -53.57518]])

我想使用 pyproj库以便使用 Winkel-Tripel(仍然是 WGS84)投影这些纬度/经度坐标而不单独处理每个点?

如何将 pyproj 的结果(它们是单独的 X/Y 数组)连接到单个 numpy 数组中,就像上面的坐标数组一样?

最佳答案

pyproj文档显示了如何投影单点和

对于 WGS84 中的投影,您可以使用以下函数:

def project_array(coordinates, srcp='latlong', dstp='wintri'):
    """
    Project a numpy (n,2) array in projection srcp to projection dstp
    Returns a numpy (n,2) array.
    """
    p1 = pyproj.Proj(proj=srcp, datum='WGS84')
    p2 = pyproj.Proj(proj=dstp, datum='WGS84')
    fx, fy = pyproj.transform(p1, p2, coordinates[:,0], coordinates[:,1])
    # Re-create (n,2) coordinates
    return np.dstack([fx, fy])[0]

注意使用 dstack 连接 x/y 数组

坐标数组的使用示例。

>>> project_array(coords)
array([[  497789.36471653, -5965577.60559519],
       [  498357.98167095, -5964919.091806  ],
       [  498918.88707764, -5963861.91844427],
       [  498243.057953  , -5964202.54601671],
       [  497245.19767552, -5965221.87480737]])

关于python - 使用 pyproj 投影 NumPy 坐标数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42459068/

相关文章:

javascript - JQuery - 获取 <p>太多溢出!</p> 的 .x .y 坐标,然后 move <div>

wpf - 在 WPF 用户控件中,如何指定相对于控件总大小的坐标,以便控件正确缩放?

python - SciKit One-class SVM 分类器训练时间随着训练数据的大小呈指数增长

python - numpy polyfit 中使用的权重值是多少,拟合误差是多少

python - 提取 csv 文件特定列以在 Python 中列出

coordinates - Power BI - 根据纬度/经度查找最近的位置

python - 如何使用 SSL 发送 JSON 数据

python - 在 PyPy 上运行 Scrapy

c++ - swig 包装器的速度

python-3.x - python : how to display an image pixel by pixel using random coordinates