Arcgis批量統(tǒng)計柵格數(shù)據的中位數(shù)

今天跟師妹討論arcgis如何批量統(tǒng)計若干個柵格數(shù)據的中位數(shù),發(fā)現(xiàn)arcgis10.x不能直接做,有教程說只能用Arcgis pro來計算,想了想用Arcpy配合numpy應該也可以直接計算,可供大家參考。

用法:只需要替換input_folder 目錄即可。
功能:對input_folder 文件夾內所有柵格數(shù)據進行批量計算中位數(shù),并將統(tǒng)計結果保存為Excel表格

import arcpy
import os
import numpy as np
import csv

# 輸入柵格數(shù)據文件夾路徑
input_folder = r"####################"
# 輸出統(tǒng)計結果的CSV文件路徑
output_csv = r"統(tǒng)計結果.csv"

# 創(chuàng)建一個CSV文件并寫入表頭
with open(output_csv, mode='w', newline='', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["Raster Name", "Median"])

# 遍歷文件夾中的所有柵格文件
arcpy.env.workspace = input_folder
raster_list = arcpy.ListRasters()

if not raster_list:
    print("未找到柵格文件,請檢查文件夾路徑!")
else:
    for raster in raster_list:
        print(f"正在處理柵格: {raster}")
        try:
            # 將柵格轉換為NumPy數(shù)組
            raster_array = arcpy.RasterToNumPyArray(raster, nodata_to_value=np.nan)
            # 計算中位數(shù)(忽略NaN值)
            median_value = np.nanmedian(raster_array)
            print(f"{raster} 的中位數(shù): {median_value}")

            # 將結果寫入CSV文件
            with open(output_csv, mode='a', newline='', encoding='utf-8') as csvfile:
                writer = csv.writer(csvfile)
                writer.writerow([raster, median_value])
        except Exception as e:
            print(f"處理 {raster} 時出錯: {e}")

print(f"統(tǒng)計完成,結果已保存到 {output_csv}")

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容