python地图投影转换
发布时间:2020-12-20 10:27:18 所属栏目:Python 来源:网络整理
导读:一、投影包osr与proj4的使用 1.osr投影转换示例 from osgeo import osr,ogr #定义投影 #wgs84 source=osr.SpatialReference() source.ImportFromEPSG(4326) #google target=osr.SpatialReference() target.ImportFromEPSG(3857) #简单投影转换 coordTrans=os
一、投影包osr与proj4的使用 1.osr投影转换示例 from osgeo import osr,ogr from pyproj import Proj,Geod,transform #栅格数据投影转换from osgeo import gdal,osrfrom osgeo.gdalconst import *#源图像投影source=osr.SpatialReference()source.ImportFromEPSG(32650)#目标图像投影target=osr.SpatialReference()target.ImportFromEPSG(3857)coordTrans=osr.CoordinateTransformation(source,target)#打开源图像文件ds=gdal.Open("fdem.tif")#仿射矩阵六参数mat=ds.GetGeoTransform()#源图像的左上角与右下角像素,在目标图像中的坐标(ulx,uly,ulz)=coordTrans.TransformPoint(mat[0],mat[3])(lrx,lry,lrz ) = coordTrans.TransformPoint(mat[0] + mat[1]*ds.RasterXSize,mat[3] + mat[5]* ds.RasterYSize )#创建目标图像文件(空白图像),行列数、波段数以及数值类型仍等同原图像driver=gdal.GetDriverByName("GTiff")ts=driver.Create("fdem_lonlat.tif",ds.RasterXSize,ds.RasterYSize,1,GDT_UInt16)#转换后图像的分辨率resolution=(int)((lrx-ulx)/ds.RasterXSize)#转换后图像的六个放射变换参数mat2=[ulx,resolution,-resolution]ts.SetGeoTransform(mat2)ts.SetProjection(target.ExportToWkt())#投影转换后需要做重采样gdal.ReprojectImage(ds,ts,source.ExportToWkt(),target.ExportToWkt(),gdal.GRA_Bilinear)#关闭ds = Nonets= None (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |