# mark: 主要是dem从wgs84转成gcj02,步骤为wgs84的4326转成3857,之后投影进行偏移,再将偏移后的3857转成4326from osgeo import gdal, osr# 经纬度转投影
def tif4326To3857(input_file, output_file):options = gdal.WarpOptions(format='GTiff', srcSRS='EPSG:4326', dstSRS='EPSG:3857', width=1452)gdal.Warp(output_file, input_file, options=options)print('转换完成')# 投影转经纬度
def tif3857To4326(input_file, output_file):options = gdal.WarpOptions(format='GTiff', srcSRS='EPSG:3857', dstSRS='EPSG:4326', width=1452)gdal.Warp(output_file, input_file, options=options)print('转换完成')# wgs84投影偏移至gcj02
def tifWgs84ToGcj02(input_file, output_file):dataset = gdal.Open(input_file)im_width = dataset.RasterXSize #栅格矩阵的列数im_height = dataset.RasterYSize  # 栅格矩阵的列数im_array = dataset.GetRasterBand(1).ReadAsArray()im_projection = dataset.GetProjection()im_GeoTransform = dataset.GetGeoTransform()im_GeoTransform_new = (im_GeoTransform[0]+740.4591671, im_GeoTransform[1], im_GeoTransform[2], im_GeoTransform[3]+24.60901496, im_GeoTransform[4], im_GeoTransform[5])# 创建新的tif文件driver = gdal.GetDriverByName('GTiff')out_tif = driver.Create(output_file, im_width, im_height, 1, gdal.GDT_Float32)out_tif.SetGeoTransform(im_GeoTransform_new)out_tif.SetProjection(im_projection)  # 给新建图层赋予投影信息# # 获取地理坐标系统信息,用于选取需要的地理坐标系统# srs = osr.SpatialReference()# # 导入tif文件的坐标系# srs.ImportFromEPSG(3857)  # 定义输出的坐标系为"WGS 84",AUTHORITY["EPSG","4326"]# out_tif.SetProjection(srs.ExportToWkt())  # 给新建图层赋予投影信息# 数据写出out_tif.GetRasterBand(1).WriteArray(im_array)  # 将数据写入内存,此时没有写入硬盘out_tif.FlushCache()  # 将数据写入硬盘out_tif = None  # 注意必须关闭tif文件print('偏移完成')if __name__ == '__main__':file1 = 'C:\\Users\\ZJZN\\Desktop\\tiff\\4326.tif'file2 = 'C:\\Users\\ZJZN\\Desktop\\tiff\\3857.tiff'file3 = 'C:\\Users\\ZJZN\\Desktop\\tiff\\3857-gcj02.tiff'file4 = 'C:\\Users\\ZJZN\\Desktop\\tiff\\4326-gcj02.tiff'tif4326To3857(file1, file2)tifWgs84ToGcj02(file2, file3)tif3857To4326(file3, file4)

tif4326To3857(file1, file2) 是将wgs84的经纬度转成投影
tifWgs84ToGcj02(file2, file3) 是将投影的进行偏移
tif3857To4326(file3, file4) 再将偏移后的投影转成经纬度

注意:im_GeoTransform_new 中的偏移量是各地根据实际计算得到的。

gcj02-3857投影 wgs84-3857投影 差值
x 12587949.13 12587208.67 740.4591671
y 4337622.252 4337597.643 24.60901496

python将tif从wgs84转gcj02相关推荐

  1. Unity经纬度相互转换(WGS-84、GCJ-02、BD-09)

    /***  *   *    Title: MXFramework  *           主题: GPS工具类  *    Description:   *           功能:1.各种坐标 ...

  2. WGS84与GCJ02、BD09经纬度坐标转换介绍

    在涉及到经纬度的地方,我们在编码的时候,经常需要进行转换.而且转换代码似乎非常复杂,真正理解,其实需要做一些工作,这里我将了解的经纬度坐标相关的知识做一个梳理. 首先了解经纬度坐标系统. 因为地球并不 ...

  3. GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系)

    GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系) 坐标系简介 WGS-84 标准坐标系 GCJ-02 - 国测局坐标 BD-09 - 百度坐标系 干货前的说明 WGS84转GCJ-02 ...

  4. python读取tif文件与png文件

    python读取tif文件与png文件 读取tif文件: import tifffile as tiff image = tiff.imread(image) 读取png文件: import nump ...

  5. WGS84、GCJ-02、BD-09、图吧坐标简介及坐标转换实现(js版)

    1.不同地图服务商的坐标系 出于国家安全考虑不同的国家在规定地图服务提供商在提供地图服务的时候需要将地图数据进行加密.现在比较流行的坐标系有WGS84.GCJ-02.BD-09,且各个坐标之间存在偏差 ...

  6. WGS84、GCJ-02、BD-09、图吧坐标简介及坐标转换实现(java版)

    1.定位系统及如何定位 现在全球有四个卫星定位系统:美国的全球定位系统GPS(Global Positioning System),俄罗斯的格洛纳斯GIONASS, 欧盟的伽利略系统,我国的北斗. 每 ...

  7. Android开发:WGS-84、GCJ02坐标名词解释及坐标转换

    WGS-84.GCJ02坐标名词解释及坐标转换 目录 一.什么是WSG-84坐标系? 二 .什么是GCJ-02坐标系? 三.GCJ-02坐标系使用场景 四.函数说明 五.工具类代码 注:本文仅包含国测 ...

  8. python读取tif图片时保留其16bit的编码格式

    python读取tif图片时保留其16bit的编码格式 tif图片的编码格式一般是16bit的,在使用python-opencv读取tif文件时,为了保留其编码格式,我们需要用以下的方式: impor ...

  9. 转换WGS84、GCJ02、BD09坐标,解决百度高德坐标偏移

    转换WGS84.GCJ02.BD09坐标,解决百度高德坐标偏移 做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一 ...

最新文章

  1. 让人“眼前一亮、不明觉厉”的互联网技术PPT
  2. linux下安装python(安装python 3.6稳定版成功亲测)
  3. eq值 推荐算法_C++实现十种排序算法
  4. SQL Server数据库的查询、排序
  5. Spring Cloud 微服务实战系列-Eureka注册中心(二)
  6. js获取当前月的第一天和最后一天
  7. MatLab基本知识学习 详细!
  8. 2018年国内外信息安全相关大事件
  9. 哪吒票房超复联4,100行python代码抓取豆瓣短评,看看网友怎么说
  10. php怎么在excel表格中输出换行,Excel表格怎么换行打字
  11. php 删除redis队列,php redis队列操作
  12. matlab hist函数的使用
  13. 综述(十)北京在安全测试示范区上的政策与成果数据分析
  14. 量子计算机为什么低温,突破量子计算机瓶颈!超低温芯片能在接近绝对零度的温度下工作...
  15. _GLIBCXX_USE_CXX11_ABI 定义不一致带来的宕机问题
  16. 风险准备(金)这样(估)算,来年工作不白干
  17. 中国计算机仿真行业全景调查与投资策略建议报告2022-2028年版
  18. css label 居中布局_label标签 html教程
  19. signature=e7a4f21fa0bd38abc7e1a2451a8b7b26,Win10 14328起“迅雷7.9、迅雷极速版”崩溃修正补丁...
  20. 爱看广场舞的老爷爷的笔记---ifconfig命令无法使用

热门文章

  1. 基于主从博弈理论的共享储能与综合能源微网优化运行研究
  2. Nokia N900刷android 2.3.4
  3. spring boot博客
  4. aliyun-java-vod-upload引入失败解决
  5. 新浪云平台部署Java代码
  6. Handler原理剖析,看这篇就够了
  7. 定时器的应用(三):数码时钟
  8. 程序员必知的10个C语言技巧
  9. 关于星空的游戏java_简易动画星空 《Java就该这样学》
  10. JAVA判断当前时间在时间范围内