用Arcpy批量對raster檔案進行區統計

2021-09-07 13:17:57 字數 1395 閱讀 6634

import arcpy

from arcpy import env

from arcpy.sa import *

import arcpy.da as da

arcpy.checkoutextension("spatial")

env.overwriteoutput=1

workingdir="d:\\lyj\\code\\"

env.workspace=workingdir+"globe_temp_raster_result"

in_zone_data=workingdir+"country_188\\"+"country_188.shp"

zone_field="country"

in_value_rasters=arcpy.listrasters()

# 讀入新的10年資料時,修改以下**,startyear=1901 startyear=2001...

startyear=2001

for in_value_raster in in_value_rasters:

print in_value_raster

# out_table=env.workspace+"\\dbf\\" + in_value_raster + ".dbf" # 這樣方便,但是cal_1901.txt.tif.dbf這樣的檔名python會報錯,想了半天才發現是這裡錯了

out_table=env.workspace+"\\dbf\\"+ str(startyear) +".dbf" # 1901.dbf,1902.dbf這樣的檔名不會報錯

outzsat=zonalstatisticsastable(in_zone_data,zone_field,in_value_raster,out_table,"data","sum")

txtfile=env.workspace+"\\txt\\"+str(startyear)+".txt"

with open(txtfile,"w") as f: # 將print的內容寫入.txt檔案

fields=['country','sum'] # 指定要讀入的字段

with arcpy.da.searchcursor(out_table, fields) as rows:

for row in rows:

print(','.format(row[0],row[1]))

f.write(','.format(row[0],row[1]))

f.write('\n') # 寫完一行後換行

f.close()

startyear += 1

arcpy批量合併shp

import arcpy shuju r c users documents arcgis default.gdb arcpy.env.workspace shuju fcs arcpy.listfeatureclasses lspt for fc in fcs arcpy.merge manage...

arcpy批量合併資料庫

最近做生態保護紅線評估調整工作,需要以市州為單位提交資料庫,省級又要以省為單位提交到國家,作業的時候是以縣為單位來做的。這中間就涉及到很多資料庫合併的事情了。本來是打算偷懶,用在網上找的乙個超級工具裡的合併資料庫工具來合,結果用不起,最終還是得靠自己,老老實實寫乙個吧,應該不難。就像這樣,一堆資料庫...

ArcPy 批量給shp欄位賦值

工作中需要做大量圖層的拼接,為了在拼接完成後還能知道原始資料檔案是什麼,所以寫了個python指令碼對每個圖層的source欄位進行賦值。附上python 1 coding utf 8 2 nightroad 3import sys4 import arcpy 56 path c users nig...