(地理国情监测)arcgis使用python,做arctoolbox,渔网裁剪gdb里的要素,四等分

本文介绍了一种使用ArcGIS和Python实现的地理国情监测工具,该工具通过创建渔网来裁剪地理数据库中的要素,并将其四等分输出到指定路径。此过程涉及创建渔网、添加标记字段及要素身份识别等多个步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(地理国情监测)arcgis使用python,做arctoolbox,渔网裁剪gdb里的要素,四等分:

# ecoding=gbk
coding = 'utf-8'
import os
import shutil
import arcpy
import arcpy.cartography as CA
import arcpy.management as DM
import arcpy.analysis as AN

inSacle=1
def setupProcess():
    inputGDB1 = arcpy.GetParameterAsText(0);
    inputGDB2 = arcpy.GetParameterAsText(1);
    
    #inputGDB1 = "E:\\001.yangdebin\\渔网裁剪\\LCA\\DLGGC\\JC20_340401.gdb"
    #inputGDB2 = "E:\\001.yangdebin\\渔网裁剪\\LCA\\BGData\\JC19_340401.gdb"
    
    lca1= inputGDB1 + "/LcrDataset/UV_LCRA";
    lca2= inputGDB2 + "/LcrDataset/V_LCRA";
    desc = arcpy.Describe(lca1);
    extent = desc.extent;
    sr = desc.spatialReference;

    #创建渔网
    fishnet = inputGDB1 + "/LcrDataset/fishnet";
    originCoordinate = str(extent.XMin) + " " + str(extent.YMin);
    yAxisCoordinate = str(extent.XMin) + " " + str(int(extent.YMin)+10);
    oppositeCoorner = str(extent.XMax) + " " + str(extent.YMax);
    arcpy.CreateFishnet_management(fishnet, originCoordinate, yAxisCoordinate, 0, 0, 2, 2, oppositeCoorner, "NO_LABELS", lca1, "POLYGON");
    print("--------创建渔网Success!--------")

    #添加标记字段
    arcpy.AddField_management(fishnet, "Index", "TEXT","", "", 4);
    arcpy.CalculateField_management(fishnet, "Index", "[OID]","VB")
    
    #标记
    idenFeatures1 = inputGDB1 + "/LcrDataset/idenFeatures";
    idenFeatures2 = inputGDB2 + "/LcrDataset/idenFeatures";
    arcpy.Identity_analysis(lca1, fishnet, idenFeatures1);
    arcpy.Identity_analysis(lca2, fishnet, idenFeatures2);
    
    outPath = arcpy.GetParameterAsText(2);
    #outPath = "E:\\001.yangdebin\\渔网裁剪\\LCA\\result"
    
    (filepath1,gdbname1) = os.path.split(inputGDB1);
    (filepath2,gdbname2) = os.path.split(inputGDB2);

    #分别输出
    arcpy.CreateFolder_management(outPath, "block_1");
    arcpy.CreateFolder_management(outPath+"/block_1/", "DLGGC");
    arcpy.CreateFileGDB_management(outPath+"/block_1/DLGGC", gdbname1);
    arcpy.CreateFeatureDataset_management(outPath+"/block_1/DLGGC/"+gdbname1, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures1, outPath+"/block_1/DLGGC/"+gdbname1+"/LcrDataset", "UV_LCRA", "Index = '1'");
    arcpy.CreateFolder_management(outPath+"/block_1/", "BGData");
    arcpy.CreateFileGDB_management(outPath+"/block_1/BGData", gdbname2)
    arcpy.CreateFeatureDataset_management(outPath+"/block_1/BGData/"+gdbname2, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures2, outPath+"/block_1/BGData/"+gdbname2+"/LcrDataset", "V_LCRA", "Index = '1'");
    print("--------创建block_1 ---Success!--------")
    
    arcpy.CreateFolder_management(outPath, "block_2");
    arcpy.CreateFolder_management(outPath+"/block_2/", "DLGGC");
    arcpy.CreateFileGDB_management(outPath+"/block_2/DLGGC", gdbname1)
    arcpy.CreateFeatureDataset_management(outPath+"/block_2/DLGGC/"+gdbname1, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures1, outPath+"/block_2/DLGGC/"+gdbname1+"/LcrDataset", "UV_LCRA", "Index = '2'");
    arcpy.CreateFolder_management(outPath+"/block_2/", "BGData");
    arcpy.CreateFileGDB_management(outPath+"/block_2/BGData", gdbname2)
    arcpy.CreateFeatureDataset_management(outPath+"/block_2/BGData/"+gdbname2, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures2, outPath+"/block_2/BGData/"+gdbname2+"/LcrDataset", "V_LCRA", "Index = '2'");
    print("--------创建block_2 ---Success!--------")
    
    arcpy.CreateFolder_management(outPath, "block_3");
    arcpy.CreateFolder_management(outPath+"/block_3/", "DLGGC");
    arcpy.CreateFileGDB_management(outPath+"/block_3/DLGGC", gdbname1)
    arcpy.CreateFeatureDataset_management(outPath+"/block_3/DLGGC/"+gdbname1, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures1, outPath+"/block_3/DLGGC/"+gdbname1+"/LcrDataset", "UV_LCRA", "Index = '3'");
    arcpy.CreateFolder_management(outPath+"/block_3/", "BGData");
    arcpy.CreateFileGDB_management(outPath+"/block_3/BGData", gdbname2)
    arcpy.CreateFeatureDataset_management(outPath+"/block_3/BGData/"+gdbname2, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures2, outPath+"/block_3/BGData/"+gdbname2+"/LcrDataset", "V_LCRA", "Index = '3'");
    print("--------创建block_3 ---Success!--------")
    
    arcpy.CreateFolder_management(outPath, "block_4");
    arcpy.CreateFolder_management(outPath+"/block_4/", "DLGGC");
    arcpy.CreateFileGDB_management(outPath+"/block_4/DLGGC", gdbname1)
    arcpy.CreateFeatureDataset_management(outPath+"/block_4/DLGGC/"+gdbname1, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures1, outPath+"/block_4/DLGGC/"+gdbname1+"/LcrDataset", "UV_LCRA", "Index = '4'");
    arcpy.CreateFolder_management(outPath+"/block_4/", "BGData");
    arcpy.CreateFileGDB_management(outPath+"/block_4/BGData", gdbname2)
    arcpy.CreateFeatureDataset_management(outPath+"/block_4/BGData/"+gdbname2, "LcrDataset", sr);
    arcpy.FeatureClassToFeatureClass_conversion(idenFeatures2, outPath+"/block_4/BGData/"+gdbname2+"/LcrDataset", "V_LCRA", "Index = '4'");
    print("--------创建block_4 ---Success!--------")
    
    arcpy.Delete_management(idenFeatures1, "");
    arcpy.Delete_management(idenFeatures2, "");
    arcpy.Delete_management(fishnet, "");
    print("--------全部---Success!--------")
    

if __name__ == "__main__":
    setupProcess()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木易GIS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值