本博客系转载~

from osgeo import gdal
from osgeo import osr
import numpy as npdef getSRSPair(dataset):'''获得给定数据的投影参考系和地理参考系:param dataset: GDAL地理数据:return: 投影参考系和地理参考系'''prosrs = osr.SpatialReference()prosrs.ImportFromWkt(dataset.GetProjection())geosrs = prosrs.CloneGeogCS()return prosrs, geosrsdef geo2lonlat(dataset, x, y):'''将投影坐标转为经纬度坐标(具体的投影坐标系由给定数据确定):param dataset: GDAL地理数据:param x: 投影坐标x:param y: 投影坐标y:return: 投影坐标(x, y)对应的经纬度坐标(lon, lat)'''prosrs, geosrs = getSRSPair(dataset)ct = osr.CoordinateTransformation(prosrs, geosrs)coords = ct.TransformPoint(x, y)return coords[:2]def lonlat2geo(dataset, lon, lat):'''将经纬度坐标转为投影坐标(具体的投影坐标系由给定数据确定):param dataset: GDAL地理数据:param lon: 地理坐标lon经度:param lat: 地理坐标lat纬度:return: 经纬度坐标(lon, lat)对应的投影坐标'''prosrs, geosrs = getSRSPair(dataset)ct = osr.CoordinateTransformation(geosrs, prosrs)coords = ct.TransformPoint(lon, lat)return coords[:2]def imagexy2geo(dataset, row, col):'''根据GDAL的六参数模型将影像图上坐标(行列号)转为投影坐标或地理坐标(根据具体数据的坐标系统转换):param dataset: GDAL地理数据:param row: 像素的行号:param col: 像素的列号:return: 行列号(row, col)对应的投影坐标或地理坐标(x, y)'''trans = dataset.GetGeoTransform()px = trans[0] + col * trans[1] + row * trans[2]py = trans[3] + col * trans[4] + row * trans[5]return px, pydef geo2imagexy(dataset, x, y):'''根据GDAL的六 参数模型将给定的投影或地理坐标转为影像图上坐标(行列号):param dataset: GDAL地理数据:param x: 投影或地理坐标x:param y: 投影或地理坐标y:return: 影坐标或地理坐标(x, y)对应的影像图上行列号(row, col)'''trans = dataset.GetGeoTransform()a = np.array([[trans[1], trans[2]], [trans[4], trans[5]]])b = np.array([x - trans[0], y - trans[3]])return np.linalg.solve(a, b)  # 使用numpy的linalg.solve进行二元一次方程的求解if __name__ == '__main__':gdal.AllRegister()dataset = gdal.Open(r"E:\\1207\\input\\L17.tif")print('数据投影:')print(dataset.GetProjection())print('数据的大小(行,列):')print('(%s %s)' % (dataset.RasterYSize, dataset.RasterXSize))x = 464201y = 5818760lon = 122.47242lat = 52.51778row = 2399col = 3751print('投影坐标 -> 经纬度:')coords = geo2lonlat(dataset, x, y)print('(%s, %s)->(%s, %s)' % (x, y, coords[0], coords[1]))print('经纬度 -> 投影坐标:')coords = lonlat2geo(dataset, lon, lat)print('(%s, %s)->(%s, %s)' % (lon, lat, coords[0], coords[1]))print('图上坐标 -> 投影坐标:')coords = imagexy2geo(dataset, row, col)print('(%s, %s)->(%s, %s)' % (row, col, coords[0], coords[1]))print('投影坐标 -> 图上坐标:')coords = geo2imagexy(dataset, x, y)print('(%s, %s)->(%s, %s)' % (x, y, coords[0], coords[1]))

图像坐标、地理坐标和投影坐标的相互转化(Python版)相关推荐

  1. python 地理坐标与投影坐标的转换

    1. 地理坐标(WGS84)与投影坐标(UTM)的相互转换 from pyproj import Proj# 首先定义要转换的投影坐标系 proj1 = Proj("epsg:32601&q ...

  2. ARCGIS中坐标转换及地理坐标、投影坐标的定义

    原文地址:http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html 1.动态投影(ArcMap) 所谓动态投影指,ArcMap中的Data 的空间参考或 ...

  3. ARCGIS中坐标转换及地理坐标、投影坐标的定义(转载)

    转自http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html 1.动态投影(ArcMap) 所谓动态投影指,ArcMap中的Data 的空间参考或是说坐 ...

  4. (转)ARCGIS中坐标转换及地理坐标、投影坐标的定义

    原文地址:http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html 1.动态投影(ArcMap) 所谓动态投影指,ArcMap中的Data 的空间参考或 ...

  5. python——经纬度坐标和平面投影坐标的相互转换

    美赛建模需要使用到平面坐标系去做基于时间序列的运动范围模型,所以需要对经纬度进行坐标系转换,转换到XY坐标系下.同时,在机器人的路径规划等方面依然会经常使用到坐标系的转换,所以记录一下. 文章目录 经 ...

  6. matlab地理坐标转投影坐标,如何把经纬度转化为大地坐标

    txt文件数据修改成我的数据后,替换了文件名,程序运行后出现了两个问题: 一:弹出图像框  但没有内容   图像框里是空白的,这事为什么? 二:输出的coordinate.txt文件里数据怎样处理精度 ...

  7. 【板栗糖GIS】地理坐标、投影坐标、地图投影的关系

    目录 1.投影坐标系 2. 投影 3.地理坐标系 1.投影坐标系 投影坐标系是平面坐标系,参考平面是水平面,坐标单位是米.千米等. 2. 投影 地理坐标系转换到投影坐标系的过程理解为投影,即将不规则的 ...

  8. 文本分割之水平投影法基于OpenCV(python)版实现

    对于如下一张图片,如何将文本区域分割成一行一行的了? 在文本分割领域中有一种很优秀的算法:投影法,包括水平投影法和垂直投影法.本文主要讲述水平投影法,水平投影法可以理解为一束光线从图像的左侧向右边进行 ...

  9. 学习笔记——【python】GetGeoTransform()使用,gdal截取图像,使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换

    1. GetGeoTransform()使用.gdal截取图像 GetGeoTransform() GeoTransform[0],左上角横坐标(应该是投影坐标) GeoTransform[2],行旋 ...

最新文章

  1. php输出数据安行,PHP对文本数据库的基本操作方法
  2. 除了基于模块度之外的其它社团检测算法
  3. java jdk 序列化_JDK 11:Java序列化的终结开始了吗?
  4. BZOJ - 4520 K远点对
  5. UI测试脸型软件,App脸型美化剖析|UI-影视-其他|观点|freshoil - 原创文章 - 站酷 (ZCOOL)...
  6. ni软件管理器_NI 技术支持丨我的 NI 硬件设备不能被识别,怎么办?Windows
  7. Python入门教学之(标识符和保留字)
  8. download在线下载源码
  9. 如何给网站制作一个favicon.ico图标
  10. 7-217 树种统计 (25 分)
  11. python数据分析是什么意思_选择python进行数据分析的理由和优势
  12. Visual Studio新建的源文件的默认编码
  13. 新年2021HTML,2021年了,来一段新年快乐的挂件源码
  14. 2021-09-02spark streaming
  15. 矩阵分析之 实矩阵分解(3)Cholesky分解
  16. 智能家居蓝海 如何才能破解“外热内冷”的尴尬?
  17. DNS错误不能上网怎么办?电脑dns错误修复方法?
  18. Pocket PC 2003 html 的问题
  19. vue项目使用3d高德城市地图用法
  20. 高中生学python培养思维能力_Python教学:编程如何培养学生计算思维

热门文章

  1. 微信营销十二(短视频、直播)
  2. 编写三个重载函数,分别求两个整数、实数和双精度数中最大的数。
  3. RT-Thread快速入门-消息邮箱
  4. win7 家庭组连接 使用用户账号和密码连接到其他计算机,Win7 家庭组 共享 要密码用户名 及无权访问 解决方案...
  5. SDNUOJ 1199.三角形(acos函数的使用)
  6. 超简单,只需十分钟即可从App Store退款,附无法拒绝的退款理由
  7. 关于常见排序的稳定性
  8. http测试工具postTest
  9. python locust提取参数_Locust利用python模块psutil监控性能指标
  10. DOM4J——强大而易用的XML解析器,我们不只是有数据库