Resumen
Agrega vértices a lo largo de entidades poligonales o de línea y reemplaza segmentos de curva (Bézier, arcos circulares y arcos elípticos) por segmentos de línea.
Ilustración
Uso
Los segmentos de línea recta se densifican mediante el parámetro Distancia. Los vértices se agregarán a un intervalo que no supere la distancia especificada. Los segmentos curvos se simplifican mediante la densificación con los parámetros Distancia, Ángulo máximo de desviación o Desviación máxima de desplazamiento.
La densificación se realiza segmento a segmento.
Solo se puede seleccionar un método de densificación cada vez que se ejecuta Densificar.
La referencia espacial de los datos es importante para el resultado generado por esta herramienta. Densifique los datos en un sistema de coordenadas apropiado para mantener la forma correcta de las entidades.
Para cada vértice de la entidad original, incluidos los puntos de inicio y final, habrá un vértice coincidente en la entidad resultante.
El parámetro Recuento máximo de vértices controla el número máximo de vértices de cada segmento de salida densificado. Si una operación de densificación requiere un valor mayor, los segmentos se ajustarán para garantizar que no se supere este recuento de vértices (+/- 1). Si se introduce un valor que no es válido (0 o inferior), no se aplicará ningún límite a los segmentos lineales y la herramienta adoptará el valor 12000 para los segmentos curvos de manera predeterminada.
El ajuste del parámetro Recuento máximo de vértices hará que se utilice el valor establecido en el recuento máximo de vértices de los segmentos lineales y curvos.
Nota:
Cuanto más alto sea el valor utilizado, más posibilidades existirán de que una entidad aumente mucho. Las entidades excesivamente grandes pueden producir un impacto negativo en el rendimiento. Si se utiliza un valor extremadamente pequeño, la entidad de salida puede degenerar y dar lugar a una geometría nula. Los valores extremadamente pequeños también pueden provocar la creación de entidades que generan resultados inesperados en análisis posteriores.Al densificar mediante el parámetro Desviación máxima de desplazamiento, si la geometría de entrada contiene arcos circulares, se aplicará un límite superior en el desplazamiento de manera que el ángulo entre dos segmentos de línea consecutivos en la salida no supere los diez grados. Este ángulo se puede superar si densifica mediante el uso de la herramienta Ángulo máximo de desviación.
Precaución:
Esta herramienta modifica los datos de entrada. Consulte Herramientas que modifican o actualizan los datos de entrada para obtener más información y estrategias para evitar cambios de datos no deseados.
Sintaxis
arcpy.edit.Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
Parámetro | Explicación | Tipo de datos |
in_features | La clase de entidad de línea o polígono a densificar. | Feature Layer |
densification_method (Opcional) | Especifica el método de densificación de entidades que se va a utilizar.
| String |
distance (Opcional) | Distancia máxima entre vértices. Esta distancia siempre se aplicará a los segmentos de línea y a las curvas simplificadas. El valor predeterminado es una función de la tolerancia x,y de los datos. Es posible que no se inserten nuevos vértices en este intervalo exacto a lo largo de la línea; en su lugar, se insertarán dentro de esta distancia respecto del vértice anterior. No hay forma de asegurarse de que un vértice se agregue exactamente en el intervalo especificado a lo largo del segmento de línea. | Linear Unit |
max_deviation (Opcional) | La distancia máxima a la que estará el segmento de salida desde la original. Este parámetro sólo afecta las curvas. El valor predeterminado es una función de la tolerancia x,y de los datos. | Linear Unit |
max_angle (Opcional) | El ángulo máximo al que puede estar la geometría de salida desde la geometría de entrada. El rango válido es 0 a 90. El valor predeterminado es 10. Este parámetro sólo afecta las curvas. | Double |
max_vertex_per_segment (Opcional) | Recuento máximo de vértices permitido por segmento. Si no se introduce ningún valor o se introduce un valor no válido (0 o menos), no existirá límite de vértices para los segmentos lineales y los segmentos curvos tendrán un valor predeterminado de 12000. | Long |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_feature_class | Las entidades de entrada densificadas. | Clase de entidad |
Muestra de código
El siguiente script de la ventana de Python demuestra cómo utilizar la función Densify en modo inmediato.
import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE", "", "", 0.75)
El siguiente script independiente muestra la función Densify como parte de un flujo de trabajo que también utiliza la herramienta de edición Snap.
# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer
# boundary to ensure common boundary is coincident
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Make backup copy of climate regions feature class,
# since modification with the Editing tools below is permanent.
climateBackup = "backups/climate.shp"
arcpy.CopyFeatures_management('climate.shp', climateBackup)
# Densify climate regions feature class to make sure there are enough
# vertices to match detail of vegetation layer when layers are snapped.
arcpy.Densify_edit('climate.shp', "DISTANCE", "10 Feet")
# Snap climate regions feature class to vegetation layer vertices and
# edge. First, snap climate region vertices to the nearest vegetation
# vertex within 30 Feet. Second, snap climate region vertices to the
# nearest vegetation edge within 20 Feet.
snapEnv1 = ["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"]
snapEnv2 = ["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]
arcpy.Snap_edit('climate.shp', [snapEnv1, snapEnv2])
Entornos
Información de licenciamiento
- Basic: No
- Standard: Sí
- Advanced: Sí