6 votos

Crear polilíneas rompió perpendiculares entre un punto existente y polilínea con arcpy

Aquí está mi situación, estoy trabajando en un proyecto que requiere de 20.000+ corto líneas de conexión que se crea, cada extraída de un punto a una acoplada ubicación cerca de un polilínea tal que el resultado de la línea de conexión es perpendicular a la polilínea.

Si se hace con arcpy, esto requiere de una secuencia de comandos que puede un.) encontrar el más cercano de polilínea, b.) calcular el lugar en que polilínea que se habilite una línea perpendicular a ser creado, c.) crear temporal de las coordenadas en ese lugar, y d.) crear el conector de la línea.

Alguien ha probado algo como esto? ¿Qué comandos específicos podría ser necesario? Gracias de antemano por su ayuda.

-Michael

4voto

Sebastian Puntos 193

Lo sentimos, tienes ocupado en el trabajo y no podía publicar hasta ahora. Abajo está el guión enrollado de las sugerencias.

Me parece a posteriori que esto también podría lograrse con un chasquido de borde en lugar de un comando de cercano - parece que arcGIS básicamente ejecuta un comando casi en el cierre.

-Michael

import arcpy, os

try:
inPoints = arcpy.GetParameterAsText(0)
nearLines = arcpy.GetParameterAsText(1)
outFC = arcpy.GetParameterAsText(2)
scratchWorkspace = arcpy.GetParameterAsText(3)

# Get the scratch workspace.
#scratchWorkSace = env.scratchWorkspace

# Get the spatial reference of the input
spatialRef = arcpy.Describe(inPoints).spatialReference

# Determine the temporary output feature class path and name
tempFC = os.path.join(scratchWorkspace, "temp")

# Copy input point features to temporary feature class
arcpy.CopyFeatures_management(inPoints, tempFC)

# Add XY coordinates for point features
arcpy.AddXY_management(tempFC)

# Perform Near Analysis
arcpy.Near_analysis(tempFC, nearLines, "", "LOCATION", "NO_ANGLE")

# Create connector line FC using XY To Line
arcpy.XYToLine_management("tempFC", "outFC", "POINT_X", "POINT_Y", "NEAR_X", "NEAR_Y", "GEODESIC", "", "spatialRef")

except Exception, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message

4voto

aditya Puntos 111

Echa un vistazo en la escritura de abajo enlazado. Tal vez va a funcionar para usted, o tal vez usted será capaz de modificarlas para ajustarse a sus necesidades:

2voto

Monroecheeseman Puntos 825

También, usted puede intentar el próximo comando. Agrega la coordenada XY más cercano en la línea FC a la tabla del punto FC. Mayoría de las veces esto es perpendicular. Ejecute añadir XY de coordenadas para rellenar las coordenadas xy del punto. Usted puede crear fácilmente una línea que conecta los dos lugares con "XY a línea", nuevo en ArcGIS 10. No debe tomar demasiado prueba.

-1voto

DMA57361 Puntos 271

Si no perpendicular puede ser dibujado dentro de los dos extremos de un segmento de polilínea el punto más cercano es el punto final más cercano. Por lo tanto, esta afirmación no siempre es así:

"Si la línea desde el punto de que el punto"más cercano"a lo largo de una polilínea no está perpendicular a la polilínea, es entonces el punto"más cercano"es incorrecto!"

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