arcGIS python两个点要素类,分别求核密度,求取栅格的平均值,并进行栅格计算,栅格裁剪Clip。

37 篇文章 3 订阅
21 篇文章 7 订阅

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-----")
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ArcGIS Python提供了强大的栅格计算功能,可以轻松实现历年最大值的计算。下面是使用ArcGIS Python进行历年最大值计算的步骤: 1. 导入所需模块:在Python脚本中,首先需要导入ArcGIS相关的模块,如arcpy和arcpy.sa。 2. 定义输入路径和文件名:指定包含历年栅格数据的文件夹路径和栅格数据的文件名。 3. 创建栅格对象:利用arcpy.sa模块中的Raster函数,将栅格数据加载到内存中,并创建一个栅格对象。 4. 创建一个空的结果栅格:使用arcpy.sa模块中的Con函数,创建一个与输入栅格相同大小的空白栅格,用于存储历年最大值。 5. 循环计算最大值:通过for循环,分别计算每个像元在历年中的最大值。可以使用arcpy.sa模块中的CellStatistics函数,在每次循环中计算历年最大值,并将结果存储到结果栅格中。 6. 保存结果:使用arcpy.sa模块中的Raster函数,将结果栅格保存为新的栅格数据。 以下是一个示例代码,用于计算历年降水数据的最大值: import arcpy from arcpy.sa import * # 定义输入路径和文件名 input_folder = r"C:\data" input_files = ['rainfall2000.tif', 'rainfall2001.tif', 'rainfall2002.tif'] # 创建空白结果栅格 result_raster = arcpy.sa.Con(Raster(input_files[0]) > 0, Raster(input_files[0]) * 0, -9999) # 循环计算最大值 for input_file in input_files: raster = Raster(input_folder + "\\" + input_file) result_raster = arcpy.sa.CellStatistics([result_raster, raster], "MAXIMUM") # 保存结果 result_raster.save(input_folder + "\\max_rainfall.tif") 以上代码会将指定文件夹下的降水数据进行历年最大值计算,并将结果保存为max_rainfall.tif文件。你可以根据需要修改输入路径和文件名,以适应自己的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值