Python 基于GDAL包的一些地理坐标投影转换 包括GDAL的安装以及环境配置设置
1.安装GDAL包
建议https://www.lfd.uci.edu/~gohlke/pythonlibs/#_gdal找对应的python版本下载之后安装
pip install GDAL‑3.4.2‑cp37‑cp37m‑win_amd64.whl
然后就是要设置一下环境变量
重启计算机之后再进行一些函数的调用就可以了
2.投影以及坐标转换等
def 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: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]))
当然这也是copy网上一位的,很有用以后方便找就传了
侵删
Python 基于GDAL包的一些地理坐标投影转换 包括GDAL的安装以及环境配置设置相关推荐
- python基于pingouin包进行统计分析:使用ancova函数执行协方差分析、covar参数设置单个协方差变量、以dataframe的形式输出分析结果(包含SS、自由度、F值、p值、np2等)
python基于pingouin包进行统计分析:使用ancova函数执行协方差分析.covar参数设置单个协方差变量.以dataframe的形式输出分析结果(包含SS.自由度.F值.p值.np2等) ...
- Python基于statsmodels包构建多元线性回归模型:模型构建、模型解析、模型推理预测
Python基于statsmodels包构建多元线性回归模型:模型构建.模型解析.模型推理预测 目录
- python基于pingouin包进行统计分析:使用pairwise_tukey函数执行Tukey检验进行事后分析(Pairwise Tukey post-hocs)
python基于pingouin包进行统计分析:使用pairwise_tukey函数执行Tukey检验进行事后分析(Pairwise Tukey post-hocs) 目录
- python基于pingouin包进行统计分析:使用tost函数执行独立双样本双单侧检验(TOST)、以dataframe的形式输出分析结果(包含p值、自由度、bound等)
python基于pingouin包进行统计分析:使用tost函数执行独立双样本双单侧检验(TOST).以dataframe的形式输出分析结果(包含p值.自由度.bound等) 目录
- python基于pingouin包进行统计分析:使用tost函数执行单样本的双单侧检验(TOST)、以dataframe的形式输出分析结果(包含p值、自由度、bound等)
python基于pingouin包进行统计分析:使用tost函数执行单样本的双单侧检验(TOST).以dataframe的形式输出分析结果(包含p值.自由度.bound等) 目录
- python基于pingouin包进行统计分析:使用tost函数执行配对的双单侧检验(TOST)、以dataframe的形式输出分析结果(包含p值、自由度、bound等)
python基于pingouin包进行统计分析:使用tost函数执行配对的双单侧检验(TOST).以dataframe的形式输出分析结果(包含p值.自由度.bound等) 目录
- python基于pingouin包进行统计分析:使用mediation_analysis函数构建包含协变量的mediation analysis(中介分析)模型、covar参数指定协变量
python基于pingouin包进行统计分析:使用mediation_analysis函数构建包含协变量的mediation analysis(中介分析)模型.covar参数指定协变量.以dataf ...
- python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的半相关性检验、x_covar参数指定对应的协变量(多个)、以dataframe的形式返回结果
python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的半相关性检验.x_covar参数指定对应的协变量(多个).以dataframe的形式返回结果(包含p值 ...
- python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的偏相关性检验、covar参数指定对应的协变量(多个)、method参数指定相关性分析方法
python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的偏相关性检验.covar参数指定对应的协变量(多个).method参数指定相关性分析方法.altern ...
最新文章
- Android 使用adb 命令截图 的方法
- 全局声明宏定义_Rust语言:元编程,强大的宏系统,菜鸟到高手进阶的必经之路...
- shell脚本不暂停进程,暂停几秒执行下一条shell命令
- HelloWorld程序的代码编写
- Java 8 日期和时间解读
- 三国佚事——巴蜀之危【递推】
- python redis pipeline使用方法_Redis中的管道Pipeline操作
- Python批量生成垃圾邮件内容
- 转行学编程,女孩子适合web前端还是Java?
- 如何选择Spark Streaming 的Reveiver和Direct模式
- idea 项目启动报错:Missing artifact com.oracle:ojdbc7:jar:12.1.0.1的处理方式
- java 验证码识别_java验证码识别
- 远区场matlab仿真,matlab结题报告(电偶极子的辐射场)博客_0.doc
- 店铺流量突然下滑是怎么回事,我们应该从哪些角度来分析?
- 计算机监控系统在地铁中的应用有哪些,地铁综合监控
- java实现海盗比酒量
- 美团2023届笔试题解
- shell语法(2)
- google play 此应用使用的结算功能版本已不能受支持。
- EAS的WEB开发入门