Estoy escribiendo un script de Python para ArcGIS 10.3. Lo sé Scale tool
en la interfaz de ArcGIS pero no puedo encontrar ese comando arcpy. ¿Existe?
Como puede ver en la imagen, el Scale tool
trabajo es diferente a Buffer tool
: cambia la forma del polígono original. Entonces la pregunta es:
¿Puedo usar Scale tool
(disponible desde la interfaz de ArcGIS) usando arcpy?
arcgis-desktop
arcpy
polygon
Señor che
fuente
fuente
Respuestas:
No conozco nada en la API de arcpy que haga el escalado por usted, pero escribir una función para hacerlo sería relativamente simple.
El siguiente código escala las características 2D y no tiene en cuenta los valores M o Z:
Puede llamarlo con un objeto de geometría, un factor de escala (1 = mismo tamaño, 0.5 = medio tamaño, 5 = 5 veces más grande, etc.) y un punto de referencia opcional:
Use esto junto con los cursores para escalar una clase de entidad completa, suponiendo que la clase de entidad de destino ya exista:
editar: aquí hay un ejemplo usando una aproximación de su geometría de prueba, por 0.5 y 5 veces:
¡También probado con polígonos de múltiples anillos (agujeros)!
Una explicación, según lo solicitado:
scale_geom
toma un solo polígono y recorre cada vértice, midiendo la distancia desde él hasta un punto de referencia (por defecto, el centroide del polígono).Esa distancia es luego escalada por la escala dada para crear el nuevo vértice 'escalado'.
El escalado se realiza esencialmente dibujando una línea en la longitud escalada desde el punto de referencia a través del vértice original, con el final de la línea convirtiéndose en el vértice escalado.
El ángulo y la rotación están ahí porque es más sencillo calcular la posición del final de la línea a lo largo de un solo eje y luego rotarlo 'en su lugar'.
fuente
bdist = refgeom.distanceTo(apnt)
. ¿Puedes probar y arreglar eso?