工具箱下载:【免费】arcgis新标识、擦除工具箱资源-优快云文库
使用说明:本工具针对原标识、擦除工具箱进行升级,升级后标识、擦除图层可以指定多值。工具运行后请刷新显示,如发现问题欢迎指正,需求和交流,Q:775915005
标识工具箱代码:
# -*- coding:utf-8 -*-
# ---------------------------------------------------------------------------
# Author: LGZ
# Created on:
# Reference:
# coding:cp936 or coding:utf-8
# ---------------------------------------------------------------------------
import logging, os, pprint
import pandas as pd
import numpy as np
import arcpy
if __name__ == '__main__':
try:
logprint("start of program")
# TODO
argv = tuple(arcpy.GetParameterAsText(i) for i in range(arcpy.GetArgumentCount()))
fcpath = argv[0]
idfc = argv[1]
outputname = argv[2]
idpathlst = idfc.split(";")
arcpy.env.overwriteOutput = True
arcpy.AddMessage(str(idpathlst))
n = 0
for i0 in idpathlst:
if n == 0:
idOutputn = r"in_memory\idOutput" + str(n)
arcpy.Identity_analysis(fcpath, i0, idOutputn)
n += 1
continue
idOutputn = r"in_memory\idOutput" + str(n - 1)
idOutputn1 = r"in_memory\idOutput" + str(n)
arcpy.Identity_analysis(idOutputn, i0, idOutputn1)
n += 1
if n == len(idpathlst):
arcpy.CopyFeatures_management(idOutputn1, outputname) # 输出os.path.basename(fcpath)+"multiidoutput"
except arcpy.ExecuteError:
print(arcpy.GetMessages())
# 无错误运行else后代码
else:
logprint("program success")
arcpy.AddMessage("program success")
# 有没有错误均运行finally后代码
finally:
pass
擦除工具箱代码:
# -*- ################
# -------------------------------------------
# Author: LGZ
# Created on: 2022/08/31
# Version:
# Reference:
import arcpy
inputfeature_lyr = arcpy.GetParameterAsText(0)
analsfeature_lyr = arcpy.GetParameterAsText(1)
outputfeature_lyr = arcpy.GetParameterAsText(2)
analsfeature_lyr_list = analsfeature_lyr.split(";")
item_count = len(analsfeature_lyr_list)
cpfeature = "copyInput"
arcpy.env.overwriteOutput = True
arcpy.CopyFeatures_management(inputfeature_lyr, cpfeature)
list1 = []
n = 0
try:
for analyr in analsfeature_lyr_list:
if n == 0:
eraseOutputn = "eraseOutput" + str(n)
arcpy.Erase_analysis(cpfeature, analyr, eraseOutputn)
n += 1
continue
eraseOutputn = "eraseOutput" + str(n-1)
eraseOutputn1 = "eraseOutput" + str(n)
arcpy.Erase_analysis(eraseOutputn, analyr, eraseOutputn1)
n += 1
if n == item_count:
arcpy.CopyFeatures_management(eraseOutputn1, outputfeature_lyr)
arcpy.Delete_management(cpfeature)
for i in range(item_count):
eraseOut = "eraseOutput" + str(i)
arcpy.Delete_management(eraseOut)
except:
print arcpy.GetMessages()
欢迎使用,如发现问题欢迎指正,需求和交流请私信