from osgeo import gdal import pandas as pd import numpy as np gdal.AllRegister() def tifftocsv(path): filePath = path dataset = gdal.Open(filePath) adfGeoTransform = dataset.GetGeoTransform() nXSize = dataset.RasterXSize # 列数 nYSize = dataset.RasterYSize # 行数 im_data = dataset.ReadAsArray(0,0,nXSize,nYSize) index = [] # 纬度 columns = [] # 经度 for j in range(nYSize): lat = adfGeoTransform[3] + j * adfGeoTransform[5] index.append(lat) for i in range(nXSize): lon = adfGeoTransform[0] + i * adfGeoTransform[1] columns.append(lon) data = pd.DataFrame(im_data, index=index, columns=columns) data_np=np.array(data) data_np=data_np.reshape(5254,1) data=pd.DataFrame(data_np) return data
aod_ab_num=6 for i in range(1,aod_ab_num+1): AODpath='D:\\research\\5_AOD\\results\\AODresults\\nmf'+str(aod_ab_num)+'\\Abundance'+str(i)+'.tif' AOD=tifftocsv(AODpath) AOD.columns=['AOD'+str(i)] if(i==1): result=AOD else: frames=[result,AOD] result = pd.concat(frames,axis=1)
VARlist=['NDVI','VOC','SO2','Precipitation','PM2.5','OC','NOX','LST','EVI','BC'] ab_num=6 for i in range(0,len(VARlist)): var=str(VARlist[i]) print(var) for j in range(1,ab_num+1): # print(var) #print(j) VARpath='D:\\research\\5_AOD\\results\\'+var+'results\\nmf'+str(ab_num)+'\\Abundance'+str(j)+'.tif' # print(VARpath) VAR=tifftocsv(VARpath) VAR.columns=[var+str(j)] frame=[result,VAR] result=pd.concat(frame,axis=1) result=result.fillna(0)
上一个:正确计算linux系统内存使用率
下一个:SpringMVC拦截器配置方式