Densificar (Edición)

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

Densificar ilustración
La curva se densifica en segmentos lineales por Desplazamiento, Distancia o Ángulo.

Uso

    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.

  • 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.

Sintaxis

arcpy.edit.Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
ParámetroExplicaciónTipo 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.

  • DISTANCELas líneas rectas y las curvas se densificarán utilizando la distancia especificada. Esta es la opción predeterminada.
  • OFFSETLas curvas se densificarán utilizando la desviación de desplazamiento máxima especificada.
  • ANGLELas curvas se densificarán utilizando el ángulo de desviación máximo especificado.
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

NombreExplicaciónTipo de datos
out_feature_class

Las entidades de entrada densificadas.

Clase de entidad

Muestra de código

Ejemplo 1 de Densificar (ventana de Python)

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)
Ejemplo 2 de Densify (script independiente)

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])

Información de licenciamiento

  • Basic: No
  • Standard: Sí
  • Advanced: Sí

Temas relacionados