从地理空间数据云(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 j
if i.count(ex) > 0: # 包含特定字符
pathDEM = root +'\\'+ i
f.write(pathDEM + '\n')
f.flush()
# print(pathDEM) # 输出
j += 1
else:
global k
if i.count(ex) > 0: # 包含特定字符
pathDEM2 = root + r'\\' + i
# print( pathDEM2) # 输出
k += 1
root1 = 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文件里的影像进行拼接
# 如果图片大于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/weixin_40450867/article/details/104191939
3.裁剪
https://blog.csdn.net/weixin_40501429/article/details/114140680