python gdal读取(ogr)shapefile的坐标表示为度,栅格数据的坐标为米。
以下代码展示读取shapefile文件的度坐标并转换为依赖栅格数据投影的坐标米。
from osgeo import gdal,ogr
def world2Pixel(padfTransform, x, y):
pixel = padfTransform[0] + x*padfTransform[1] + y*padfTransform[2]
line = padfTransform[3] + x*padfTransform[4] + y*padfTransform[5]
return (pixel, line)
dataset = gdal.Open("E:/RS_data/caijian1214/res_data.tif")
driver = ogr.GetDriverByName("ESRI Shapefile")
dataSource = driver.Open(u"E:\RS_data\caijian1214\LastOutput_Clip.shp")
layer = dataSource.GetLayer(0)
minX, maxX, minY, maxY = layer.GetExtent()
print("原边界(坐标系度):",minX,maxX,maxY,minY)
geoTrans = dataset.GetGeoTransform()
ulX, ulY = world2Pixel(geoTrans, minX, maxY)
lrX, lrY = world2Pixel(geoTrans, maxX, minY)
print("新边界:(坐标系米)",ulX,ulY,lrX,lrY)
输出结果如下: