Python实现栅格数据拼接、裁剪等操作
从地理空间数据云(http://www.gscloud.cn/)上下载了GDEMV2—30米分辨率的数据,检索按照行政区来的。
下载完的数据解压缩以后,如下:
1.首先把所有的文件夹下的dem数据路径读入到TXT文件中,代码:
此部分参考:https://blog.csdn.net/weixin_42236288/article/details/81810761
import os# 查询符合条件的文件
f = open(r'D:\ProfessionalProfile\DEMdata\StatisticsDEMfile.txt','w')
j,k=0,0
def file(root, ext):for i in os.listdir(root): # os.listdir(root) 读取root目录下的文件和目录# os.path.splitext()将文件名和扩展名分开ext = os.path.splitext(root + '\\' + i) # os.path.splitext()读取文件扩展名if ext[1]: # 有扩展名时 为文件global jif i.count(ex) > 0: # 包含特定字符pathDEM = root +'\\'+ if.write(pathDEM + '\n')f.flush()# print(pathDEM) # 输出j += 1else:global kif i.count(ex) > 0: # 包含特定字符pathDEM2 = root + r'\\' + i# print( pathDEM2) # 输出k += 1root1 = root + '\\' + i # 拼接目录file(root1, ext) # 递归调用print('文件数量为:', j)# print('文件夹数量为:', k)
# f.close()# root = os.getcwd() # 生成目录 root
# 包含的特定字符
ex = 'dem'
# 调用函数
file('D:\ProfessionalProfile\DEMdata\GDEMV2_30m_shandong','.tif')
运行后得到文件:
2.对该TXT文件里的影像进行拼接
参考:https://blog.csdn.net/qq_43177210/article/details/108402353?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=2a4eb29a-3fae-44ad-8384-ce28a6a41f0a&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
# 如果图片大于4G,需要在输入图片路径前加入 -co BIGTIFF=YES
# subprocess 模块首先推荐使用的是它的 run 方法,更高级的用法可以直接使用 Popen 接口。
import subprocess# 路径
create_slope = r'''E:\r_python\python.exe E:\r_python\Scripts/gdal_merge.py -of GTiff -o '''
list = []
# 打开TXT文件路径
f = open(r'D:\ProfessionalProfile\DEMdata\StatisticsDEMfile.txt', 'r')
# 获取TXT文件中所有DEMTIF文件路径
# readlines()函数:1、一次性读取整个文件。2、自动将文件内容分析成一个行的列表。
lines = f.readlines()
# strip()函数:用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。# 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
fileDir = [x.strip() for x in lines]
# 遍历所有TIF文件
list = fileDir
# print(list)# 生成文件路径
tarDir = r'D:\ProfessionalProfile\DEMdata'
#这句没懂
filename = ' '.join(list)
# l3 = len(filename)
# print(filename)
# subprocess.call执行指定的命令,返回命令执行状态,其功能类似于os.system(cmd)。详见:https://www.cnblogs.com/zhou2019/p/10582716.html
# subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None)
subprocess.call(create_slope + r'D:\ProfessionalProfile\DEMdata\demMosaic1224.tif' + ' ' + '-co COMPRESS=LZW ' + filename)
运行结果如下(ENVI中打开):
此外,还学习到了很多,如:
subprocess模块的信息可参考:https://www.cnblogs.com/zhou2019/p/10582716.html
https://blog.csdn.net/m0_38051293/article/details/103218755?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-7&spm=1001.2101.3001.4242
https://blog.csdn.net/weixin_40450867/article/details/104191939
https://blog.csdn.net/qq_36178899/article/details/83989031?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase
3.裁剪
https://blog.csdn.net/weixin_40501429/article/details/114140680
Python实现栅格数据拼接、裁剪等操作相关推荐
- Python使用GDAL矢量裁剪栅格,设置背景值为空白(已解决)
一.使用gdal.Warp gdalwarp 实用程序是一种图像拼接.重投影和扭曲实用程序.该程序可以重新投影到任何支持的投影.如果图像是带有控制信息的"原始"图像,也可以存储原始 ...
- python播放视频代码_Python中操作各种多媒体,视频、音频到图片的代码详解
我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...
- python 图像无缝拼接,OpenCV Python 系列教程3 - Core 组件
基本知识 灰度图像的存储方式: image 多通道图像存储方式 image OpenCV 中的通道存储为 BGR 像素值的存储方式 RGB 模式,显示设备采用这种模式 HSV.HLS 将颜色分解成色调 ...
- python文件路径拼接多出斜杠_浅谈python中拼接路径os.path.join斜杠的问题
浅谈python中拼接路径os.path.join斜杠的问题 调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠 directory1='/opt/apps/upgradePac ...
- 利用python进行png图像的读写操作
利用python进行png图像的读写操作 最近遇到了对png灰度图像进行读取,并统计图像中众数的需求,现将代码记录如下.ps:适用于单波段图,形如(X,Y). 1.导入需要的包 import matp ...
- python查询银行汇款_基于Python实现一个简单的银行转账操作
前言 在进行一个应用系统的开发过程中,从上到下一般需要四个构件:客户端-业务逻辑层-数据访问层-数据库,其中数据访问层是一个底层.核心的技术.而且在实际开发中,数据库的操作也就是说数据访问层都是嵌套在 ...
- python字符串高效拼接
众所周知,为了使字符串的使用如整形等基本类型一样安全,无副作用,字符被限定为不可变对象,也就是说绝大部分对字符串的修改操作将会创建新的字符串对象,而不是返回原字符串,这就容易造成不断创建对象,申请内存 ...
- python字符串的拼接名字的组成_Python拼接字符串的7种方法
python拼接字符串一样平常有以下几种方式: 1,通过(%)操作符拼接 print('%s %s' % ('Hello', 'world')) >>> Hello world 2, ...
- Python中的文件及目录操作
Python中的文件及目录操作 在变量.序列和对象中存储的数据是暂时的,程序结束后就会丢失.为了能够长时间地保存程序中的数据,需要将程序中的数据保存到磁盘文件中.Python提供了内置的文件对象和对文 ...
- python 列表加入变量_python-变量操作-列表
Python3 列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见 ...
最新文章
- 乐观准则和最小后悔值怎么算_婚姻危机:结婚后想离婚,你该怎么办?
- Java应用中使用ShutdownHook友好地清理现场(转)
- 共享童车,怎么还没火就凉了
- 默认轮播,鼠标移入停止,移出继续
- java监听机制_详解java的事件监听机制和观察者设计模式
- 为什么我使用Java
- 船员英语老师是面试还是计算机答题,面试时的英语介绍
- 来到ThoughtWorks
- 歌声合成:mid与xml 乐谱文件解析(3)
- 并(zhao)查(die)集详解以及其优化版本
- wap建站程序源码_织梦程序搭建网站实例教程,想尝试搭建网站的朋友赶紧保存了...
- android studio 4.0 开启offline
- Fabric 1.0 ubuntu1704安装过程
- 抖音直播新号怎么起号?抖音直播间不进人怎么办?
- 【Elasticsearch】elasticsearch–ik安装
- oracle数据库表数据误删除恢复
- Dell optiPlex麦克风显示未插入问题解决
- gdb 查看内存 及 变量类型
- linux驱动 设备驱动模型
- 【JVM进阶之路】垃圾回收机制和GC算法之三色标记(三)
热门文章
- 在 HTML 语言中,试题15
- 切片 go 去除第一个_Go语言入门指南,带你轻松学Go
- redis数据类型-字符串
- springmvc配置拦截器
- Java雨水计量_雨水24小时的降雨量怎么计算?
- python元类_Python中元类
- python按钮代码_Python QPalette.Button方法代码示例
- python 运行时 变量_在运行时在python中检索变量的名称?
- arraylist 线性不安全_Java面试系列(一)--集合类ArrayList
- C#:JObject、JArray、JProperty、JValue作用