Tengo un script basado en ArcPy donde estoy tratando de cruzar dos capas donde una capa debe tener su centroide en la otra capa.
Como necesito saber que una capa (feature_layer a continuación) incluye el centroide de la otra, estoy usando la herramienta arcpy.SelectLayerByLocation_management ().
No tengo un Documento de mapa (* .mxd) abierto, así que para hacerlo, tengo que usar Crear capa de características para alimentarlo.
La documentación señala que la capa de entidades desaparecerá cuando el programa salga, pero necesito que desaparezca antes, ya que la tengo en un bucle similar al siguiente.
for feature_class in large_list_of_feature_classes:
some_function(feature_class)
def some_function():
feature = "{path to feature class}"
feature_layer = "feature_layer"
HUCs_layer = "all_HUCs" #HUCs being Hydrologic Unit Codes
arcpy.MakeFeatureLayer_management(feature, feature_layer)
arcpy.MakeFeatureLayer_management(feature, HUCs_layer)
arcpy.SelectLayerByLocation_management(HUCs_layer, "HAVE_THEIR_CENTER_IN", feature_layer, selection_type="NEW_SELECTION")
arcpy.CopyFeatures_management(HUCs_layer, selection_name)
Estoy buscando una función para eliminar capas de entidades y no he podido encontrar una.
Me doy cuenta de que podría incluir algún tipo de conteo allí o algo para que cada uno sea único dentro del alcance del programa, pero eso no es ideal a menos que no haya forma de eliminar las capas de entidades.
fuente
Puede invocar arcpy.mapping.RemoveLayer para eliminar una capa de la tabla de contenido.
fuente
Esto es lo que uso para eliminar capas.
arcpy.mapping.RemoveLayer ("DataFrame", "Layer Name")
O bucle:
fuente
Úselo
mxd.save()
si está utilizando un documento de mapa que no esCURRENT
para asegurarse de que la capa permanezca fuera. Además, agregue una declaración de impresión en su secuencia de comandos:Solo para asegurarme de que está buscando una capa para eliminar.
fuente
prueba esto:
fuente