2 votos

Ajustar el punto a una arista específica del polígono

Estoy trabajando con datos de parcelas y puntos. He convertido los polígonos (parcelas) en características de punto utilizando la caja de ARctool, es decir, característica a punto (Original etiquetado en la imagen). Después de este paso quiero traer todos los puntos en el borde de cada polígono (imagen del resultado final). Intenté utilizar las herramientas de ajuste (desde la caja de Arctool), que da salida en el borde más cercano (mostrado en la imagen después del ajuste) pero necesito todos los puntos en el borde delantero (imagen del resultado final).

¿Si hay alguna herramienta existente o script (python o VB) que pueda darme la salida deseada?

Sample Data of Final Output

5voto

Tedy Puntos 46

Sería un proceso de cuatro pasos, que implica determinar qué polígonos no tienen lados superpuestos.

Dada:

enter image description here

  1. Inicie una característica para alinear en su clase de característica de la parcela.

enter image description here

  1. Realice una unión espacial en la clase de característica de línea creada en el primer paso. La opción de unión es SHARE_A_LINE_SEGMENT_WITH .

enter image description here

  1. Realice una Select By Attribute en la clase de característica de unión espacial utilizando la cláusula SQL where Join_Count = 1 .

enter image description here

  1. Realice su ajuste en la clase de característica de unión espacial con la selección anterior aplicada.

enter image description here

Voilà:

enter image description here

Rápido y sucio script:

lineFc = r"C:/Users/e1b8/Documents/ArcGIS/Default.gdb/Test_FeatureToLine"
arcpy.FeatureToLine_management("Test", lineFc)
sjLineFc = r"C:/Users/e1b8/Documents/ArcGIS/Default.gdb/Test_FeatureToLine_SpatialJoin"
arcpy.SpatialJoin_analysis(lineFc, lineFc, sjLineFc, match_option = "SHARE_A_LINE_SEGMENT_WITH")
arcpy.MakeFeatureLayer_management (sjLineFc, "Test_FeatureToLine_SpatialJoin", "Join_Count = 1")
arcpy.Snap_edit("Test_FeatureToPoint", "Test_FeatureToLine_SpatialJoin EDGE '500 Feet'")

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:

X