Resumen
Identifica las mediciones de elevación anómalas de datasets de terreno, TIN o LAS que exceden un rango definido de valores de elevación o tienen características de pendiente que son incoherentes con la superficie circundante.
Uso
-
Las opciones Aplicar límite estricto y Aplicar filtro de comparación se pueden aplicar para la detección de los valores atípicos.
Considere la posibilidad de utilizar la opción Aplicar límite estricto cuando el rango de valores de elevación válidos para la superficie sea conocido. Las mediciones de elevación de puntos que caen fuera del rango definido por los valores de Mínimo Z absoluto y Máximo Z absoluto se crearán en la salida.
Considere la posibilidad de usar la opción Aplicar filtro de comparación para localizar los puntos de datos que superan una diferencia de altura o pendiente relativa a las mediciones vecinas. Para cada punto de datos, se realizan pruebas de variaciones de altura y pendiente con respecto a sus vecinos naturales. La opción Superar relación de tolerancia se usa para determinar el número de puntos situados en la vecindad del punto de prueba para los que la tolerancia de pendiente o altura se debe sobrepasar a fin de que un punto se considere un valor atípico.
- Para cualquier punto que tenga X número de nodos conectados por bordes de triángulo, si la pendiente desde él a un punto conectado es mayor que la Tolerancia de pendiente en m puntos (donde m es n veces el valor de Superar relación de tolerancia), el punto se escribe en la salida.
El Extremo de valor atípico limita el número de puntos que se pueden escribir en la salida. Una vez alcanzado este límite, la herramienta devuelve una advertencia y deja de buscar valores atípicos.
Los puntos de salida se asociarán con un campo entero llamado REASON cuyos valores identifican los criterios de identificación de valores atípicos que han llevado a la inclusión de la medición del punto.
- 0: Límite estricto
- 1: Límite estricto y filtro de comparación
- 2: Filtro de comparación
Para eliminar los puntos del valor atípico de un dataset de terreno, considere utilizar la herramienta Borrar puntos de terreno con los puntos del valor atípico especificados en el parámetro Área de interés.
Considere reclasificar los puntos del valor atípico identificados en un dataset LAS como ruido al utilizar la herramienta Establecer códigos de clase LAS utilizando entidades.
Sintaxis
LocateOutliers_3d (in_surface, out_feature_class, {apply_hard_limit}, {absolute_z_min}, {absolute_z_max}, {apply_comparison_filter}, {z_tolerance}, {slope_tolerance}, {exceed_tolerance_ratio}, {outlier_cap})
Parámetro | Explicación | Tipo de datos |
in_surface | El dataset de terreno, TIN o LAS que se analizará. | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class | La clase de entidad que generará esta herramienta. | Feature Class |
apply_hard_limit (Opcional) | Especifica el uso del valor Z mínimo y máximo absoluto para encontrar valores atípicos.
| Boolean |
absolute_z_min (Opcional) | Si se aplican límites estrictos, entonces todo punto con una elevación por debajo de este valor se considerará un valor atípico. El valor predeterminado es 0. | Double |
absolute_z_max (Opcional) | Si se aplican límites estrictos, entonces todo punto con una elevación por encima de este valor se considerará un valor atípico. El valor predeterminado es 0. | Double |
apply_comparison_filter (Opcional) | El filtro de comparación consta de tres parámetros para determinar los valores atípicos (z_tolerance, slope_tolerance y exceed_tolerance_ratio).
| Boolean |
z_tolerance (Opcional) | Se utiliza para comparar valores Z de puntos vecinos si se aplica el filtro de comparación. El valor predeterminado es 0. | Double |
slope_tolerance (Opcional) | El umbral de variación de pendiente entre puntos consecutivos que se utilizará para identificar puntos de valor atípico. La pendiente se expresa como porcentaje, con el valor predeterminado de 150. | Double |
exceed_tolerance_ratio (Opcional) | Define los criterios para determinar cada punto de valor atípico como función de la relación de puntos de su vecindad natural que deben superar los filtros de comparación especificados. Por ejemplo, el valor predeterminado 0,5 significa que al menos la mitad de los puntos que rodean al punto de consulta deben sobrepasar los filtros de comparación para que el punto de consulta se clasifique como valor atípico. Un valor de 0,7 significa que al menos el 70% de los puntos vecinos deben sobrepasar las tolerancias. | Double |
outlier_cap (Opcional) | La cantidad máxima de puntos de valores atípicos que pueden escribir en la salida. Una vez alcanzado este valor no se buscan más valores atípicos. El valor predeterminado es 2.500. | Long |
Ejemplo de código
Ejemplo 1 de LocateOutliers (ventana de Python)
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LocateOutliers_3d("tin", "outliers.shp", "NO_APPLY_HARD_LIMIT", 0, 0,
"APPLY_COMPARISON_FILTER", 0, 150, 0.5, 2500)
Ejemplo 2 de LocateOutliers (secuencia de comandos independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python.
'''**********************************************************************
Name: Delete Terrain Outliers
Description: Uses Locate Outliers to identify outlier points in
a terrain dataset, and eliminates the outliers from the
terrain with Delete Terrain Points.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
env.workspace = 'C:/data'
terrain = 'test.gdb/featuredataset/sample_terrain'
terrainPt = 'elevation_pts' # name of terrain point data source
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(terrain, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute Delete Terrain Points
arcpy.ddd.DeleteTerrainPoints(terrain, terrainPt, outliers)
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: Requiere 3D Analyst
- ArcGIS for Desktop Standard: Requiere 3D Analyst
- ArcGIS for Desktop Advanced: Requiere 3D Analyst