ArcGIS批量導出柵格影像的屬性表
阿新 • • 發佈:2018-12-24
cat 數據庫 workspace with pla ace form cgi csv文件
需要將多幅TIF影像中的屬性表導出後參與運算。
1. 打開 ArcMap 或者 ArcCatalog
2. 在文件夾中新建文件地理數據庫。
3. 導入柵格。
4. 打開Python窗口,修改代碼,輸入進行計算。
以下代碼將各文件的屬性表分別導出為.csv文件。合並為一個.csv 文件在第二段代碼。
# coding:utf-8 #功能:批量導出柵格文件的屬性表。 #使用步驟 1:在相應文件夾下新建“文件地理數據庫”,並將需要導出屬性表的柵格文件“導入”到該數據庫中。 #使用步驟 2:更改第二行代碼[ws = r‘D:\test\test1.gdb‘]為自己的文件存放地址和數據庫名稱,第三行同樣的處理。#使用步驟 3:復制代碼在ArcGIS中運行即可。 import arcpy, os ws = r‘D:\t\test.gdb‘ outPath = r‘D:\test‘ outExt = ".csv" arcpy.env.workspace = ws rasters = arcpy.ListRasters("*") for raster in rasters: rasloc = ws + os.sep + raster fields = "*" try: lstFlds = arcpy.ListFields(rasloc) header= ‘‘ for fld in lstFlds: header += ",{0}".format(fld.name) if len(lstFlds) != 0: outCSV = outPath + os.sep + raster + outExt f = open(outCSV,‘w‘) header = header[1:] + ‘,RasterName\n‘ f.write(header) with arcpy.da.SearchCursor(rasloc, fields) as cursor:for row in cursor: f.write(str(row).replace("(","").replace(")","") + "," + raster + ‘\n‘) f.close() except Exception as e: print (e)
導出至同一個csv文件。
# coding:utf-8 #功能:批量導出柵格文件的屬性表。 #使用步驟 1:在相應文件夾下新建“文件地理數據庫”,並將需要導出屬性表的柵格文件“導入”到該數據庫中。 #使用步驟 2:更改第二行代碼[ws = r‘D:\test\test.gdb‘]為自己的文件存放地址和數據庫名稱,第三行同樣的處理。 #使用步驟 3:復制代碼在ArcGIS中運行即可。 import arcpy, os ws = r‘D:\test\test.gdb‘ outCSV = r‘D:\test\0.csv‘ arcpy.env.workspace = ws rasters = arcpy.ListRasters("*") for raster in rasters: rasloc = ws + os.sep + raster fields = "*" try: lstFlds = arcpy.ListFields(rasloc) header = ‘‘ header += ",{0}".format(lstFlds[0].name)+",{0}".format(lstFlds[1].name) if len(lstFlds) != 0: f = open(outCSV,‘a‘) header =header[0:] + ‘,RasterName\n‘ f.write(header) with arcpy.da.SearchCursor(rasloc, fields) as cursor: for row in cursor: f.write(str(row).replace("(","").replace(")","") + "," + raster + ‘\n‘) f.close() except Exception as e: print (e) del row
參考地址
ArcGIS批量導出柵格影像的屬性表