Agregar información de superficie (3D Analyst)
Resumen
Atribuye a las entidades información espacial derivada de una superficie.
Uso
Los valores Z de las entidades 3D se ignoran. Cada entidad resumirá las propiedades Z de la superficie que se interseca con su geometría. Los puntos derivan los valores Z de la ubicación XY de la superficie, las líneas adquieren las propiedades Z mediante la interpolación de las mediciones de la superficie a lo largo de su longitud y los polígonos resumen las propiedades Z de la superficie correspondientes a su área.
-
Las opciones Propiedad de salida se escriben en la tabla de atributos de la entidad de entrada. Cada entidad define la ubicación de las propiedades de superficie evaluadas y el tipo de propiedad que se puede reportar depende de la geometría de la entidad:
Geometría de entidad
Propiedades de superficie
Punto
Elevación puntual interpolada desde las coordenadas XY del punto en la superficie.
Multipunto
Valor mínimo, máximo y medio de la elevación puntual de todos los puntos del registro multipunto.
longitud
Distancia 3D de la línea a lo largo de la superficie.
Valor mínimo, máximo y medio de la elevación y la pendiente de la línea a lo largo de la superficie.
Polígono
Área 3D de la superficie que se solapa con el polígono.
Valor mínimo, máximo y medio de la elevación y la pendiente de la superficie.
Los valores de pendiente se miden en unidades de porcentaje (grado) y, para las entidades de línea, se calculan en cada segmento a lo largo de la línea.
- La pendiente mínima se obtiene desde el segmento cuyo valor es más cercano a 0, o grado horizontal.
- La pendiente máxima se obtiene desde el segmento con el mayor valor calculado.
- La pendiente promedio se obtiene ponderando cada pendiente por su longitud 3D. Esto resulta en segmentos más largos con mayor influencia en el valor resultante sobre segmentos más cortos.
Considere la posibilidad de aplicar un filtro de ruido para impedir que las porciones de superficie caracterizadas por mediciones anómalas contribuyan a los cálculos de pendiente. Las entidades de línea están segmentadas por vértices que capturan el perfil de la superficie, y filtrar estos segmentos por longitud elimina la influencia de los segmentos cortos, debidos probablemente a mediciones de superficie no deseables. Del mismo modo, el filtro de área para las entidades poligonales impide que los falsos triángulos de las superficies trianguladas contribuyan a los cálculos de pendiente. En el caso de las superficies ráster, se usa un subconjunto de centroides de celda para construir una superficie triangulada sobre la que se aplica el filtro de área.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_feature_class |
Las entidades de punto, multipunto, polilínea o polígono que definen las ubicaciones para determinar una o más propiedades de superficie. | Feature Layer |
in_surface |
La superficie de dataset LAS, ráster, de terreno o TIN que se utiliza para interpolar los valores Z. | LAS Dataset Layer; Raster Layer; Terrain Layer; TIN Layer |
out_property | La propiedad de elevación de la superficie que se agrega a la tabla de atributos de la clase de entidad de entrada. La siguiente lista resume las palabras clave de propiedad disponibles y sus tipos de geometría compatible:
| String |
method (Opcional) |
El método de interpolación que se utilizará para determinar la información de la superficie. La interpolación bilineal siempre se usa para las superficies ráster, mientras que las siguientes opciones están disponibles para las superficies trianguladas:
| String |
sample_distance (Opcional) |
El espaciado en el que se interpolarán los valores z. Por defecto, el tamaño de celda ráster se utiliza cuando la superficie de entrada es un ráster, y la densificación natural de la superficie de triángulos se utiliza cuando la entrada es un dataset de TIN o de terreno. | Double |
z_factor (Opcional) |
El factor por el que se multiplicarán los valores de elevación. Esto se suele usar para convertir unidades lineales Z que coinciden con las de las unidades lineales XY. El valor predeterminado es 1, que no altera los valores de elevación. | Double |
pyramid_level_resolution (Opcional) |
La tolerancia Z o la resolución del tamaño de la ventana del nivel de pirámide de terreno que utilizará esta herramienta. El valor predeterminado es 0, o resolución completa. | Double |
noise_filtering (Opcional) |
Impide que las porciones de superficie que pueden estar caracterizadas por mediciones anómalas contribuyan a los cálculos de pendiente. Las entidades de línea ofrecen un filtro de longitud, mientras que los polígonos proporcionan un filtro de área, y el valor correspondiente a las distintas opciones de filtrado se evalúa en las unidades lineales del sistema de coordenadas de la entidad. Las propiedades no relacionadas con la pendiente no se ven afectadas por este parámetro.
| String |
Ejemplo de código
El siguiente ejemplo muestra cómo usar de esta herramienta en la ventana Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.AddSurfaceInformation_3d("points.shp", "my_tin", "Z", "LINEAR")
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''*********************************************************************
Name: AddSurfaceInformation Example
Description: This script demonstrates how to use AddSurfaceInformation
on all 2D feature classes in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set Local Variables
env.workspace = 'c:/data'
inSurface = 'fgdb.gdb/municipal/terrain'
pyramid = 5
method = "BILINEAR"
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
# Determine if the feature is 2D
if not desc.hasZ:
if desc.shapeType == "Polygon":
# Desired properties separated by semi-colons
Prop = "Z_MIN;Z_MAX"
elif desc.shapeType == "Point":
Prop = "Z"
elif desc.shapeType == "Multipoint":
Prop = "Z_MIN;Z_MAX;Z_MEAN"
elif desc.shapeType == "Polyline":
Prop = "LENGTH_3D"
# Execute AddSurfaceInformation
arcpy.ddd.AddSurfaceInformation(fc, inSurface, Prop,
method, 15, 1, pyramid)
print "Completed adding surface information."
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)