arcGIS python两个点要素类,分别求核密度,求取栅格的平均值,并进行栅格计算,栅格裁剪Clip。
下载链接:KernelDensity核密度、栅格平均值、栅格裁剪代码实例
信息熵(区位熵)计算公式:
#-*- coding:UTF-8 -*-
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = r"C:\Users\HP\Desktop\20210323\tweets.gdb"
#CheckOut liscen SpatialAnalysis
arcpy.CheckOutExtension("ImageAnalyst")
arcpy.CheckOutExtension("Spatial")
env.overwriteOutput = 1
#(1)核密度计算
outKDens = KernelDensity("DACA", "NONE", 11265.60, 250000, "SQUARE_KILOMETERS")
outDACA = r"C:\Users\HP\Desktop\20210323\tweets.gdb\temp_DACA_KDE"
outKDens.save(outDACA)
print("---DACA KDE Successful-----")
outKDens2 = KernelDensity("mudslide", "NONE", 11265.60, 250000, "SQUARE_KILOMETERS")
outMudslide = r"C:\Users\HP\Desktop\20210323\tweets.gdb\temp_mudslide_KDE"
outKDens2.save(outMudslide)
print("---mudslide KDE Successful-----")
#read Raster
DACA_Raster = arcpy.Raster(outDACA)
Mudslide_Raster = arcpy.Raster(outMudslide)
z = 0.000001
#(2)栅格计算器,求平均值,求Log2(A/B/average(A/B))
average_KDE = r"C:\Users\HP\Desktop\20210323\tweets.gdb\temp_average"
average_Raster = (DACA_Raster + z)/(Mudslide_Raster + z)
average_Raster.save(average_KDE)
meanValueInfo = arcpy.GetRasterProperties_management(average_Raster, 'MEAN')
meanValue = float(meanValueInfo.getOutput(0))
print("average Value is:" + str(meanValue))
resultMap = Log2(((DACA_Raster + z)/(Mudslide_Raster + z))* 1/meanValue)
result_KDE = r"C:\Users\HP\Desktop\20210323\tweets.gdb\result_KDE"
resultMap.save(result_KDE)
print("---output result KDE Successful-----")
#(3)栅格裁剪Clip
#Clip Raster
clip_shp = r"C:\Users\HP\Desktop\20210323\tweets.gdb\states_lower48"
clip_KDE = r"C:\Users\HP\Desktop\20210323\tweets.gdb\clip_KDE"
arcpy.Clip_management(result_KDE, "#", clip_KDE, clip_shp, "0", "ClippingGeometry")
print("---output clip KDE Successful-----")