Arcgis pro中Arcpy对Excel文件进行克里金插值

具体流程:excel→table(投影)→shp→克里金插值(掩膜)

import arcpy
from arcpy import env
from arcpy.sa import *
import pandas

arcpy.env.overwriteOutput = True  # 允许覆盖之前产生的数据集,便于测试

'''获取excel中sheet名称'''
file_name = "G:/Arcgis/ChangshaXian/Rainfall data.xlsx"
excel_total = pandas.ExcelFile(file_name)
excel_sheet = excel_total.sheet_names


'''excel→表→shp→投影'''
arcpy.env.workspace = "G:/Arcgis/ChangshaXian"  # 设置工作空间
out_table = "G:/Arcgis/ChangshaXian/CSX_table"  # 表输出路径
out_shp = "G:/Arcgis/ChangshaXian/CSX_shp"  # shp输出路径
i = 0
while i < len(excel_sheet):
    arcpy.ExcelToTable_conversion("Rainfall data.xlsx", out_table + "/" + excel_sheet[i], excel_sheet[i])
    with arcpy.EnvManager(
            outputCoordinateSystem='PROJCS["WGS_1984_UTM_Zone_50N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'):
        arcpy.management.XYTableToPoint(out_table + "/" + excel_sheet[i] + ".dbf", out_shp + "/" + excel_sheet[i],
                                        "经度", "纬度", "rainfall")
    i += 1


'''克里金插值'''
z_field = "rainfall"
semiVariogram_props = KrigingModelOrdinary("SPHERICAL")
cell_size = 20
search_radius = "VARIABLE 12"  # 搜索半径(可选)
out_variance_prediction_raster = None  # 预测栅格的输出方差(可选)
mask_region = "G:/Arcgis/ChangshaXian/CSX_basemap/研究区域.shp"  # 掩膜区域限制插值范围

out_kriging = "G:/Arcgis/ChangshaXian/CSX_kriging"  # 克里金插值输出路径
j = 0
while j < len(excel_sheet):
    in_point_features = out_shp + "/" + excel_sheet[j] + ".shp"
    with arcpy.EnvManager(  # 设置输出坐标系、掩膜范围
            outputCoordinateSystem='PROJCS["WGS_1984_UTM_Zone_50N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]',
            extent=mask_region):
        outKriging = Kriging(in_point_features, z_field, semiVariogram_props, cell_size,
                             search_radius, out_variance_prediction_raster)
        outKriging.save(out_kriging + "/" + excel_sheet[j])
    j += 1
    print("已完成%d个插值" % j)

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值