Novice le pide a Python que calcule la distancia más larga de las entidades poligonales de ArcGIS en una dirección determinada
Para calcular la distancia más larga de una entidad poligonal de ArcGIS en una dirección determinada, puede seguir los siguientes pasos:
Utilice el objeto Polígono en la biblioteca arcpy para leer la entidad poligonal.
Para calcular las coordenadas del punto inicial y final de las líneas paralelas que se van a interceptar, puedes utilizar las funciones sin y cos en la biblioteca matemática.
Crea líneas paralelas usando el objeto Polilínea en la biblioteca arcpy.
Utilice la función Intersect_analysis en la biblioteca arcpy para calcular los puntos de intersección de entidades poligonales y líneas paralelas.
Utiliza la función sqrt en la biblioteca matemática para calcular la distancia desde cada intersección hasta el punto inicial.
Encuentra la distancia más larga y regresa.
El siguiente es un código de muestra: import arcpyimport math
# Leer característica poligonal polígono = arcpy.Polygon(arcpy.Array([arcpy.Point(*coords) para coordenadas en polygon_coords ]))
# Ángulo
ángulo = 112# Coordenadas del punto inicial
start_x, start_y = polígono.centroid.X, polígono.centroid.Y p >
# Calcular las coordenadas del punto final
end_x = start_x math.cos(math.radians(angle)) * 1000 # 1000 es la longitud de la línea paralela
end_y = start_y math.sin (math.radians(angle)) * 1000# Crear líneas paralelas
line_array = arcpy.Array([arcpy.Point(start_x, start_y), arcpy.Point(end_x, end_y )])line = arcpy .Polyline(line_array)
# Calcular puntos de intersección
intersect_points = arcpy.Intersect_analysis([polygon, line], arcpy.Geometry())
# Calcular cada uno La distancia desde el punto de intersección hasta el punto inicial
distancias = [math.sqrt((point.X - start_x) ** 2 (point.Y - start_y) ** 2) para el punto en intersect_points]
# Encuentra la distancia más larga
max_distance = max(distances)
print('Distancia máxima:', max_distance)
Tenga en cuenta que el código anterior polygon_coords es una lista que contiene coordenadas de entidades poligonales. Además, la biblioteca arcpy de ArcGIS se utiliza en el código y es necesario instalar el software ArcGIS y configurar el entorno Python para que se ejecute correctamente.