4 votos

¿Excluir páginas sin punto dentro de páginas de datos impulsada por?

ArcMap 10.2

Estoy creando una utilidad mapbook para mostrar HVAC puntos de una instalación. Las páginas controladas por datos son el nombre y ordenadas por una capa independiente (función de la zona de clase). Hay 70 nombrado áreas, sin embargo, no cada página tiene unidades de aire acondicionado dentro de la medida.

Hay un método para excluir automáticamente a páginas que NO incluyen HVAC puntos dentro de la visualización de la medida?

Notas: - Los datos en sí tiene que permanecer intacta, así que no puedo añadir campos adicionales. - Estoy lo suficientemente familiarizado con python para ejecutar una secuencia de comandos, pero no sé qué módulos para llamar o ejecutar.

3voto

john Puntos 11

La forma en que siempre me he limitado a qué páginas se incluyen es a través de una definición de consulta.

Si no se puede editar los datos originales, entonces puede hacer una copia de la misma. Sin embargo, no estoy seguro de todos sus requisitos.

La secuencia de comandos siguiente será hacer una copia de la original de la capa de área, y agregar un campo llamado DisplayPage. A continuación, hace una SelectByLocation , para seleccionar todas las áreas que contienen una HVAC característica. Después de la selección se utiliza un UpdateCursor a rellenar el DisplayPage de campo con un Yes de toda la actualidad de las áreas seleccionadas.

import arcpy

arcpy.env.overwriteOutput = True

#change paths to where your data is located
original_area = "C:\\temp\\Data.gdb\\Area"
hvac_features = "C:\\temp\\Data.gdb\\HVAC"

#change path to where you'd like the copy outputted
copy_area = "C:\\temp\\Data.gdb\\AreaCopy"

arcpy.CopyFeatures_management(original_area, copy_area)
arcpy.AddField_management(copy_area, "DisplayPage", "TEXT")

copy_area_fl = arcpy.MakeFeatureLayer_management(copy_area, "copy_area_fl")
hvac_features_fl = arcpy.MakeFeatureLayer_management(hvac_features, "hvac_features_fl")

arcpy.SelectLayerByLocation_management(copy_area_fl, "CONTAINS", hvac_features_fl)

with arcpy.da.UpdateCursor(copy_area_fl, ("DisplayPage")) as cursor:
     for row in cursor:
         row[0] = "Yes"

         cursor.updateRow(row)

arcpy.Delete_management(copy_area_fl)
arcpy.Delete_management(hvac_features_fl)

A continuación, en ArcMap establecer una definición de consulta en el área de copiado de la capa de a DisplayPage = 'Yes'. Y el uso de esta capa como el índice de las Páginas controladas por Datos.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: