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...