我在進行DEM數(shù)據(jù)的裁剪時,發(fā)現(xiàn)各個省的數(shù)據(jù)量非常大,比如說四川省的30m的DEM數(shù)據(jù)的大小為2G。考慮到有限的電腦磁盤空間,我對Tif文件采用了LZW壓縮。
#文件夾中每個文件都進行壓縮
# -*- coding: utf-8 -*-
import rasterio as rio
import rasterio
import os
from tqdm import tqdm
#每個線程選擇一個文件夾
Input_path ="輸入文件夾"+"\\"
Output_path ="輸出文件夾"+"\\"
#文件列表
pathDir= os.listdir(Input_path)
#壓縮函數(shù)
for i in tqdm(range(len(pathDir))):
# 讀入柵格文件
rasterfile = Input_path+"\\"+pathDir[i]
#打開柵格
rasterdata = rio.open(rasterfile)
#讀取柵格
rasterdata2= rasterdata.read()
#獲取柵格信息
profile = rasterdata.profile
print(profile)
#選擇壓縮方式
profile.update(
compress='lzw', #壓縮方式:rle,lzw等
)
#導出文件路徑與名字
out_put_name=Output_path +"RLE"+pathDir[i]
#導出
with rasterio.open(out_put_name, mode='w', **profile) as dst:
dst.write(rasterdata2)