Tengo algunos objetos de características de polilínea en python. Ahora quiero obtener todos los puntos de las polilíneas.
Por ejemplo, si una polilínea tiene un punto de inicio y un punto [0,0]
final [5,5]
. Resultado: [1,1];[2,2];[3,3];[4,4];[5,5]
.
Quiero encontrar todos los puntos enteros en esa línea, incluidos los puntos finales. Para la línea recta, esto es muy simple, pero si la polilínea tiene tipos de geometría Beizer Curve, Circular Arc, Elliptic Arc, ¿cómo puedo hacerlo?
EDITAR:
Solo puedo usar esas herramientas que están disponibles en todos los niveles de licencia de ArcGIS. Por ejemplo, ArcGIS Basic.
arcpy
point
features
geometry-conversion
usuario
fuente
fuente
Respuestas:
Sé que esto es antiguo, pero estaba buscando lo mismo, ya que no tengo ArcInfo para las herramientas FeatureVerticesToPoints . Después de usar la solución de cursor de búsqueda anterior, avancé para simplificar el código y descubrí que usando NumPy Arrays en el Módulo de acceso a datos se podía producir un script simple y muy rápido. Estoy usando esto como una herramienta de script.
Nota: La clave es el
explode_to_points
parámetro enarcpy.da.FeatureClassToNumPyArray
Aquí hay un enlace a la Ubicación del repositorio de ArcGIS: Clase de entidad a puntos
fuente
ctrl-k
aplique el formato de código (lo mismo parab
antiguo yi
talico). Por convención, tendemos a evitar partes parlanchinas como "hola", "gracias", "aplausos". Se supone que están siempre presentes y ayudan a reforzar la idea de que este lugar es diferente de los foros y correos electrónicos habituales. Bienvenido a bordo.Como entendí, necesita aumentar el número de vértices para sus entidades de polilínea. Y también para transformar todos los segmentos de "Curva de Beizer, Arco circular, Arco elíptico" en varios segmentos de línea.
Para esta tarea en ArcGIS, puede usar la herramienta Densificar (Edición) en ArcToolbox.
Luego, puede convertir los vértices de sus polilíneas en entidades de puntos como se sugiere Darren Cope y el material gráfico21.
Si prefiere hacerlo en ArcMap, eche un vistazo a Crear nuevos puntos a lo largo de un tema de ayuda lineal .
fuente
Lo siguiente debería funcionar en polilíneas y polígonos:
Para algunos datos de carreteras del Reino Unido, entiendo esto; Una lista anidada de pares X, Y para cada vértice que forma la polilínea:
fuente
print pnt.X, pnt.Y
conpart_list.append([pnt.X, pnt.Y])
. Y está imprimiendo esto al final del ciclo. ¿Cómo puede su código obtener todos los puntos de una línea pero el código ESRI no?Como ha sugerido Darren Cope, la conversión de la capa en vértices de un punto se puede hacer con la herramienta Vertices de entidad en puntos .
Aquí está el código de Python recortado:
fuente