将utm坐标转换为参考相邻区域的坐标

Posted

技术标签:

【中文标题】将utm坐标转换为参考相邻区域的坐标【英文标题】:convert utm coordinate to coordinate in reference to neighboring zone 【发布时间】:2016-02-13 04:01:20 【问题描述】:

我在 NAD83 UTM 13N 中有数万个栅格。我正在尝试使用 arcpy.GetCellValue_management(raster.tif, point) 逐点提取数据,但数据的最西侧位于 UTM 12N 区域。有没有办法从 12N 获取坐标但参考 13N?项目要求是所有数据都在 UTM 13N 中,即使它是一个全州项目。我知道这很愚蠢。

【问题讨论】:

【参考方案1】:

这可以通过 GDAL 来完成。将 dataPoints.shp 保存在所需的 UTM 网格中(即 UTM 13N),然后使用 GDAL 加载点图层、获取字段、获取几何、获取边界坐标、地理变换、栅格波段、点坐标(在 UTM 13N 中)和将栅格读取为数组。在所有栅格上建立一个循环,它的工作速度非常快。感谢Luke 提供详细信息here。

from osgeo import gdal, ogr
shp_filename = 'C:\\Path\\dataPoints_UTM13.shp'
ds = ogr.Open(shp_filename)
lyr = ds.GetLayer()
for feat in lyr:
    point_id_obj = feat.GetField("Sample")
    name = feat.GetField("Location_D")
    geom = feat.GetGeometryRef()
    mx, my = geom.GetX(), geom.GetY()
    path = 'C:\\RasterPath'
    raster = 'myraster'
    ras_open = gdal.Open('a\\b.tif'.format(a=path, b=raster))
    gt = aws_open.GetGeoTransform()
    rb = aws_open.GetRasterBand(1)
    px = abs(int((mx - gt[0]) / gt[1]))
    py = int((my - gt[3]) / gt[5])
    ras_obj = rb.ReadAsArray(px, py, 1, 1)
    print point_id_obj
    print name
    print mx, my

【讨论】:

以上是关于将utm坐标转换为参考相邻区域的坐标的主要内容,如果未能解决你的问题,请参考以下文章

UTM坐标和WGS84坐标(如何转换?)

怎样将gps wgs-84坐标系转换为其他坐标系

在 SQL Server 中将经纬度转换为 UTM X 和 UTM Y 坐标的函数

在arcgis中投影坐标系krasovsky_1940_Albers怎么转换成wgs-1984-utm

从UTM32N WGS84坐标系怎么转化成经纬度?拜谢

python 经纬度坐标转换为UTM坐标方法与结果验证分析