使用python将png转tif文件
将第一个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文件相关推荐
- Python gdal库读取tif文件
from osgeo import gdal # GDAL库主要提供对栅格数据的处理,使用抽象数据模型来解析所支持的数据格式 import filename_cut as fc import matp ...
- python读取tif文件与png文件
python读取tif文件与png文件 读取tif文件: import tifffile as tiff image = tiff.imread(image) 读取png文件: import nump ...
- python 如何写tif文件
python 如何写tif文件 tiff_list = None cnt_num = 0 for c in dirCellInfo['Filelist']:image = tifffile.imrea ...
- python使用gdal将shp文件转为TIF
python使用gdal将shp文件转为TIF 方法一 # 缺少获取shp文件坐标系的步骤 def vector2raster(inputfilePath, outputfile, resp):sf ...
- python把hdf转为tif_命令行记录-python读取hdf图层,转成tif文件
主体内容来自 https://www.cnblogs.com/ninicwang/p/11535170.html 1.安装pyhdf包 2.读hdf4文件 #导入包 from pyhdf.SD imp ...
- python 通过tif文件生成经度和纬度的二维矩阵
tif文件中不会保存经度和纬度矩阵数据,如果要用到经度和纬度矩阵可以通过下面的代码生成经纬度矩阵 import numpy as np from osgeo import gdaltif_Path = ...
- python将tif文件与图片转化
1.tif文件转图片 # Author : yyzhangfrom PIL import Image import ospath = r"C:\Users\tif" tif_lis ...
- python中利用GDAL对tif文件进行读写
利用GDAL库对tif影像进行读取 示例代码默认波段为[B.G.R.NIR的顺序,且为四个波段] import gdal def readTif(fileName):dataset = gdal.Op ...
- Python 各种读取保存tif,tiff,png,jpg,mat等格式图像方法大集合
利用opencv读取tif 文件 #导入cv模块 import cv2 as cv import numpy as np #读取图像,支持 bmp.jpg.png.tiff 等常用格式 #第二个参数是 ...
最新文章
- 计算机视觉怎样实现自我超越?更大规模更精准的数据
- 太阳能发电产业有望大发展
- [GKCTF 2021]XOR
- 计算机视觉与深度学习 | 视觉里程计库Libviso2详解
- SAP S/4HANA Cloud SDK 入门介绍
- ffmpeg编译gb28181_国标GB28181协议视频推流平台EasyGBD在Linux下编译报“UINT64_C在此作用领域中尚未声明”错误...
- Angular Render2
- 记一次golang中sync.Map并发创建、读取的问题
- HTML(超文本标记语言)-----WEB开发基础之二
- c++ pdflib 中文乱码解决思路
- java informix_java informix
- 云计算基础与应用 第五章 云存储
- 中国研发经费投入逼近2万亿,保持两位数增速,企业成为主要力量
- 在3D城市模型中添加不同的纹理
- 5.Redis实战—秒杀业务
- 凯撒密码C语言用ASCII码,凯撒密码帮助ASCII循环
- 你有什么道理后悔没早点知道
- 对于新手来说怎么动漫人物手伸出去的动作?该怎么画?
- 3.Ray-Event编写
- PYTHON多线程行情抓取工具实现
热门文章
- 【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
- 瑞芯微开发板资料收集
- [日推荐]『本本海报』内含程序员福利,不可描述~
- linux more 结合 grep查询日志信息
- 45岁程序员因陪娃辞职,半年后找不到工作:中年危机该如何自救?
- 一页纸上,使用多个“邮件合并”
- 设计师:设计师知识储备之总体布局设计(硬装部分、软装部分、水电隐蔽工程、瓦工部分)之详细攻略
- PVE-LXC容器启动ubuntu\debian 黑屏,切换控制台A start job is running for Raise network interface(5min 1s)
- html5简单作图作品小熊,一张纸就能安静一小时,15种动物简笔画!用最简单的方式,画出好看的作品!...
- Android 5.0 以上将图片延伸到状态栏的方法