1)定义tiff转csv的函数
 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    
  2)计算得到一个DataFrame(作为后续合并的基础文件)
  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)  
  3)批量计算其余所有的变量
  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):                          VARpath='D:\\research\\5_AOD\\results\\'+var+'results\\nmf'+str(ab_num)+'\\Abundance'+str(j)+'.tif'                 VAR=tifftocsv(VARpath)         VAR.columns=[var+str(j)]         frame=[result,VAR]         result=pd.concat(frame,axis=1)         result=result.fillna(0)