python_gis实现批量tif转换jpg
2023-04-18 17:00:22 时间
概述
python_gis实现批量tif转换jpg
概述
目的:将tif格式的遥感图片转换为jpg,匹配下级的I/O操作 why:其实基于linux的convert命令集合bash可以做到普通的tif转jpg,但是对于遥感的图片,也就是栅格数据是不支持这样的转换的,好像是因为tif的格式是32位的,但是普通的图片只有8位数。
代码
思路:通过arcgis将栅格数据导入到arcmap中,再通过界面的导出图片导出,对于少量的图片,完全可以是用手动的方式实现,但是如果量大的数据就不太容易实现了
代码也可以用用gis的批量出图。
# coding: utf-8
import arcpy
from arcpy import env
from arcpy import mapping
import os
path="D:/test"#读取tif目标路径
blank_mxd_path = "D:/test/blank.mxd"# 一个空的mxd文件
target_path="D:/test/out" #转换后的jpg路径
for file in os.listdir(path):
if file[-3:]=="tif":#选择tif格式的图片
print (file)
# 导入mxd文件,也就是arcmap的保存文件
mxd = arcpy.mapping.MapDocument(blank_mxd_path)
df = arcpy.mapping.ListDataFrames(mxd)[0]#dataframe没具体意义
tif_path = os.path.join(path,file)
# 创建raster对象
raster = arcpy.Raster(tif_path)
arcpy.MakeRasterLayer_management(raster,'rasterLayer')
layer = arcpy.mapping.Layer("rasterLayer")# make layer
arcpy.mapping.AddLayer(df, layer, "AUTO_ARRANGE")# add layer
# mxd.saveACopy("D:/test/test.mxd")
# mxd=arcpy.mapping.MapDocument("D:/test/test.mxd")
df = arcpy.mapping.ListDataFrames(mxd)[0]
new_name=file[:-4]+"jpg"
file_target=os.path.join(target_path, new_name)
# 导出图片命令
arcpy.mapping.ExportToJPEG(mxd, file_target, df, df_export_width=1024, df_export_height=1024, resolution=300)
del mxd, df
结束语
有人说模型构造器也可以实现这个功能,但是不知道具体怎么操作 关于gis和python的结合,我后续抽空将我整理好的代码上传,有需要的可以改改自己用。
今天诸事不顺,不说啦,love & peace。
相关文章
- GEEer成长日记四:Landsat8_SR计算NDVI并时间序列分析
- 电力行业数据安全解决方案
- 物联网工程设计与实施
- 初体验完全托管型图数据库 Amazon Neptune
- 公司为什么选择云数据库?它的魅力到底是什么!
- 用shell脚本,计算1-100的和
- 运维、监控、AIOps的几个重要观点
- 基于STM32设计的指针式电子钟与日历
- 面试必问之redis
- 客流量总是少?是你门店选址出了问题!
- 面试必问之kafka
- 基于STM32设计的计算器(实现基本运算)
- LeetCode(7-整数反转&&8-字符串转换整数 (atoi)&&9-回文数)
- 第11章 流计算
- 基于STM32设计的健康检测设备(测温心率计步)
- 面试必问之mysql基础
- 云原生数据库如荼如火,未来可期
- 面试必问之mysql优化
- AWS亚马逊云EC2搭建ginblog系统
- 基于STM32设计的数字电子秤