|
写好处理一个文件的代码,怎么添加循环来处理整个文件夹中同后缀文件,
处理一个文件代码如下:
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
__author__ = 'dove'
import sys
from osgeo import gdal
import os
import numpy as np
def GetArray(path):
driver = gdal.GetDriverByName('GTiff')#
datasource = gdal.Open(path)#
geoTran = datasource.GetGeoTransform()
print(geoTran)
rows = datasource.RasterXSize#
cols = datasource.RasterYSize
print(rows,cols)
band = datasource.GetRasterBand(1)#
band_arr = band.ReadAsArray()
return band_arr,geoTran,rows,cols
def get200arr(arr):
print(len(arr))
print(len(arr[0]))
new_arr = []
k = 0
for item in arr:
row_ = []
for num in item:
if num == 16:
k+=1
row_.append(1)
else:
row_.append(0)
new_arr.append(row_)
print(len(new_arr),len(new_arr[0]),k)
return np.array(new_arr)
def writeTif(arr,geoTran,rows,cols,outdata):#gdal.GDT_Float32
tiffDriver = gdal.GetDriverByName('GTiff')
ds_out = tiffDriver.Create(outdata,\
int(rows),int(cols),1\
,gdal.GDT_Float32)#outtif name
outband = ds_out.GetRasterBand(1)
outband.WriteArray(arr)
ds_out.SetGeoTransform(geoTran)
ds_out.FlushCache()
del ds_out
if __name__=="__main__":
datapath = "E:/shuchu/clip_MOD10A2.A2001361.Eight_Day_Snow_Cover.tif"
print(os.path.exists(datapath))
outdata = "E:/2001xiangyuan/clip_MOD10A2.A2001361.Eight_Day_Snow_Cover_10.tif"
band_arr,geoTran0,rows0,cols0 = GetArray(datapath)
snow_arr = get200arr(band_arr)
writeTif(snow_arr,geoTran0,rows0,cols0,outdata)
|
|