将第一个png文件转为tif格式文件,再从第二个tif文件中读取地理信息并写入新生成的tif文件中
注意:在运行脚本之前,需要安装 GDAL 库。可以使用以下命令在 Python 中进行安装:

pip install gdal
import os
import sys
from osgeo import gdaldef png_to_tif(png_file, tif_file):input_dataset = gdal.Open(png_file)output_driver = gdal.GetDriverByName('GTiff')output_dataset = output_driver.CreateCopy(tif_file, input_dataset)input_dataset = Noneoutput_dataset = Nonedef set_geotransform(tif_file, new_tif_file):input_dataset = gdal.Open(tif_file)output_dataset = gdal.Open(new_tif_file, gdal.GA_Update)output_dataset.SetGeoTransform(input_dataset.GetGeoTransform())output_dataset.SetProjection(input_dataset.GetProjection())input_dataset = Noneoutput_dataset = Noneif __name__ == '__main__':if len(sys.argv) != 3:print("Usage: png_to_tif.py input_file output_file")sys.exit(1)png_file = sys.argv[1]tif_file = sys.argv[2]new_tif_file = os.path.splitext(png_file)[0] + "_new.tif"png_to_tif(png_file, new_tif_file)set_geotransform(tif_file, new_tif_file)print("PNG to TIFF conversion and geotransform assignment complete.")

使用方法:

将上述代码保存在 png_to_tif.py 文件中;
在命令行中运行 python png_to_tif.py input_file tif_file 命令,其中 input_file 是待转换的 PNG 文件路径,tif_file 是用于提取地理信息的 TIFF 文件路径。

首先,我们定义了一个 png_to_tif() 函数,它将输入的 PNG 文件转换为 TIFF 文件。该函数使用 gdal.Open() 方法打开输入 PNG 文件,并使用 gdal.GetDriverByName() 方法获取创建 GeoTIFF 文件的驱动程序。然后,使用 CreateCopy() 方法创建一个新的 TIFF 文件,并将输入 PNG 文件的数据复制到新的 TIFF 文件中。最后,关闭数据集以释放资源。

接下来,我们定义了一个 set_geotransform() 函数,它从指定的 TIFF 文件中提取地理信息,并将其赋予新的 TIFF 文件。该函数使用 gdal.Open() 方法打开指定的 TIFF 文件,然后使用 GetGeoTransform() 和 GetProjection() 方法从该文件中获取地理信息,并使用 SetGeoTransform() 和 SetProjection() 方法将这些信息赋予新的 TIFF 文件。最后,关闭数据集以释放资源。

在主函数中,我们首先检查命令行参数的数量是否正确,如果不正确,则打印出用法信息并退出脚本。然后,我们从命令行参数中获取输入 PNG 文件路径和用于提取地理信息的 TIFF 文件路径。我们使用 os.path.splitext() 方法来获取输入 PNG 文件的文件名,并将其与 _new.tif 连接起来,以创建新的 TIFF 文件名。接下来,我们调用 png_to_tif() 函数将输入 PNG 文件转换为新的 TIFF 文件,并调用 set_geotransform() 函数将指定 TIFF 文件的地理信息赋予新的 TIFF 文件。最后,我们打印出完成信息。

请注意,这个脚本假设输入的 PNG 文件和指定的 TIFF 文件具有相同的空间参考和分辨率。如果它们不一样,那么输出的 TIFF 文件可能会有问题。

使用python将png转tif文件相关推荐

  1. Python gdal库读取tif文件

    from osgeo import gdal # GDAL库主要提供对栅格数据的处理,使用抽象数据模型来解析所支持的数据格式 import filename_cut as fc import matp ...

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

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

  3. python 如何写tif文件

    python 如何写tif文件 tiff_list = None cnt_num = 0 for c in dirCellInfo['Filelist']:image = tifffile.imrea ...

  4. python使用gdal将shp文件转为TIF

    python使用gdal将shp文件转为TIF 方法一 # 缺少获取shp文件坐标系的步骤 def vector2raster(inputfilePath, outputfile, resp):sf ...

  5. python把hdf转为tif_命令行记录-python读取hdf图层,转成tif文件

    主体内容来自 https://www.cnblogs.com/ninicwang/p/11535170.html 1.安装pyhdf包 2.读hdf4文件 #导入包 from pyhdf.SD imp ...

  6. python 通过tif文件生成经度和纬度的二维矩阵

    tif文件中不会保存经度和纬度矩阵数据,如果要用到经度和纬度矩阵可以通过下面的代码生成经纬度矩阵 import numpy as np from osgeo import gdaltif_Path = ...

  7. python将tif文件与图片转化

    1.tif文件转图片 # Author : yyzhangfrom PIL import Image import ospath = r"C:\Users\tif" tif_lis ...

  8. python中利用GDAL对tif文件进行读写

    利用GDAL库对tif影像进行读取 示例代码默认波段为[B.G.R.NIR的顺序,且为四个波段] import gdal def readTif(fileName):dataset = gdal.Op ...

  9. Python 各种读取保存tif,tiff,png,jpg,mat等格式图像方法大集合

    利用opencv读取tif 文件 #导入cv模块 import cv2 as cv import numpy as np #读取图像,支持 bmp.jpg.png.tiff 等常用格式 #第二个参数是 ...

最新文章

  1. 计算机视觉怎样实现自我超越?更大规模更精准的数据
  2. 太阳能发电产业有望大发展
  3. [GKCTF 2021]XOR
  4. 计算机视觉与深度学习 | 视觉里程计库Libviso2详解
  5. SAP S/4HANA Cloud SDK 入门介绍
  6. ffmpeg编译gb28181_国标GB28181协议视频推流平台EasyGBD在Linux下编译报“UINT64_C在此作用领域中尚未声明”错误...
  7. Angular Render2
  8. 记一次golang中sync.Map并发创建、读取的问题
  9. HTML(超文本标记语言)-----WEB开发基础之二
  10. c++ pdflib 中文乱码解决思路
  11. java informix_java informix
  12. 云计算基础与应用 第五章 云存储
  13. 中国研发经费投入逼近2万亿,保持两位数增速,企业成为主要力量
  14. 在3D城市模型中添加不同的纹理
  15. 5.Redis实战—秒杀业务
  16. 凯撒密码C语言用ASCII码,凯撒密码帮助ASCII循环
  17. 你有什么道理后悔没早点知道
  18. 对于新手来说怎么动漫人物手伸出去的动作?该怎么画?
  19. 3.Ray-Event编写
  20. PYTHON多线程行情抓取工具实现

热门文章

  1. 【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
  2. 瑞芯微开发板资料收集
  3. [日推荐]『本本海报』内含程序员福利,不可描述~
  4. linux more 结合 grep查询日志信息
  5. 45岁程序员因陪娃辞职,半年后找不到工作:中年危机该如何自救?
  6. 一页纸上,使用多个“邮件合并”
  7. 设计师:设计师知识储备之总体布局设计(硬装部分、软装部分、水电隐蔽工程、瓦工部分)之详细攻略
  8. PVE-LXC容器启动ubuntu\debian 黑屏,切换控制台A start job is running for Raise network interface(5min 1s)
  9. html5简单作图作品小熊,一张纸就能安静一小时,15种动物简笔画!用最简单的方式,画出好看的作品!...
  10. Android 5.0 以上将图片延伸到状态栏的方法