Curvas de nivel con barreras (Spatial Analyst)
Resumen
Crea curvas de nivel a partir de una superficie de ráster. La inclusión de entidades de barrera permitirá generar de forma independiente curvas de nivel a cada lado de la barrera.
Uso
-
La versión actual de Curva de nivel con barreras solo admite la salida de polilínea. Si se usa la opción de salida de polígono, se ignorará y se creará una salida de polilínea.
Curvas de nivel más suaves pero menos precisas se pueden obtener al preprocesar el ráster de entrada con una operación Focal_Statistics con la opción MEAN o con la herramienta Filtro con la opción LOW.
-
Las curvas de nivel se extienden a la celda NoData del ráster por una distancia de la mitad del tamaño de celda del ráster. Esto significa que las curvas de nivel se generan sobre celdas NoData únicas. Sin embargo, en un área de NoData de 3 celdas por 3 celdas, las curvas de nivel que se extienden a esta área son de la mitad de la distancia del tamaño de la celda.
-
El campo Tipo de la clase de entidad de curvas de nivel de salida tiene los valores:
1 for contours 2 for indexed contours 3 for explicit contours
-
Un intervalo de curvas de nivel indexadas se puede usar para generar curvas de nivel adicionales y el valor de Tipo se codificará como 2 en la clase de entidad de salida.
-
Una curva de nivel base se usa, por ejemplo, cuando desea crear curvas de nivel cada 15 metros, comenzando a los 10 metros. Aquí, 10 se utilizará para la curva de nivel base y 15 será el intervalo de las curvas de nivel. Los valores en los que se generará una curva de nivel serán 10, 25, 40, 55 y así sucesivamente.
-
Especificar una curva de nivel base no evita que las curvas de nivel se creen por encima o por debajo de ese valor.
-
Un archivo de texto que contiene especificaciones del valor de curva de nivel puede incluir lo siguiente:
- Cualquier línea que comienza con un valor no numérico se ignora y se trata como línea de comentario.
- Una línea con un valor único se tratará como un valor de curva de nivel explícito.
- Una línea que contenga tres valores será tratada como base, intervalo de curvas de nivel y curva de nivel indexada.
- Una línea con cuatro valores se trata como desde, hasta, por y curvas de nivel indexadas.
Por ejemplo, si un ráster tiene un valor mínimo de 102 y uno máximo de 500, entonces, un archivo de texto con:
# contour values and ranges 122.75 485 500 5 12 4 100 99
producirá curvas de nivel en:
122.75 104, 204, 304, 404 103, 202, 301, 400, 499 485, 490, 495, 500 497
-
Si hay valores de celda del ráster dentro de una entidad poligonal de barrera, las líneas de la curva de nivel se dividirán en la barrera. Si los valores de celda dentro de la entidad poligonal se deben ignorar, cambie dichos valores a NoData.
-
Si la superficie de ráster de entrada es muy grande o se solicitan muchas entidades de salida, se crea una gran cantidad de archivos temporales en la ubicación de archivos temporales del sistema operativo. Si ocurre algún problema como resultado de esto, debe hacer lo siguiente:
- Aumentar el espacio en disco disponible para los archivos temporales.
- Reducir la cantidad de curvas de nivel especificadas, o dividir el rango de curvas de nivel y procesar cada grupo por separado y, después, combinar los resultados de cada rango en un resultado final.
- Procesar los datos de entrada en secciones (teselas) y fusionar los resultados individuales en un dataset.
Las entidades de curvas de nivel de salida se pueden etiquetar mediante la herramienta Anotación de curva de nivel.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_raster |
Gáster de entrada de superficie. | Raster Layer |
out_contour_feature_class |
Entidades de curvas de nivel de salida. | Feature Class |
in_barrier_features (Opcional) |
Entidades de barreras de entrada. | Feature Layer |
in_contour_type (Opcional) |
El tipo de curva de nivel a crear.
La versión actual de Curva de nivel con barreras solo admite la salida de polilínea. Si se usa la opción de salida de polígono, se ignorará y se creará una salida de polilínea. | String |
in_contour_values_file (Opcional) |
La curva de nivel base, el intervalo de curva de nivel, el intervalo de curvas de nivel indexadas y los valores de curva de nivel explícitos también se especifican mediante un archivo de texto. | File |
explicit_only (Opcional) |
Solo se usan valores de curva de nivel explícitos. La curva de nivel base, el intervalo de curvas de nivel y los intervalos de curvas de nivel indexadas no están especificados.
| Boolean |
in_base_contour (Opcional) |
Valor de la curva de nivel base. Las curvas de nivel se generan por encima y por debajo de este valor según se necesite cubrir el rango de valor completo del ráster de entrada. El valor predeterminado es cero. | Double |
in_contour_interval (Opcional) |
El intervalo o distancia entre líneas de curva de nivel. Éste puede ser cualquier número positivo. | Double |
in_indexed_contour_interval (Opcional) |
También se generan curvas de nivel para este intervalo y se marcan según corresponda en la clase de entidad de salida. | Double |
in_contour_list [in_explicit_contour,...] (Opcional) |
Valores explícitos en los que se crean curvas de nivel. | Double |
in_z_factor (Opcional) | El factor de conversión de la unidad utilizado cuando se generan curvas de nivel. El valor predeterminado es 1. Las líneas de curva de nivel se generan basándose en los valores z del ráster de entrada, que se miden habitualmente en metros o pies. Con el valor predeterminado de 1, las curvas de nivel estarán en las mismas unidades que los valores z del ráster de entrada. Para crear curvas de nivel en una unidad diferente a la de los valores z, ajuste el valor apropiado para el factor z. Tenga en cuenta que para esta herramienta no es necesario que las unidades x, y de terreno y z de superficie concuerden. Por ejemplo, si los valores de elevación de su ráster de entrada están en pies, pero desea que las curvas de nivel sean generadas basándose en unidades en metros, ajuste el factor z en 0,3048 (puesto que 1 ft = 0,3048 m). | Double |
Ejemplo de código
En este ejemplo se crean curvas de nivel a partir de un ráster Esri Grid con una entidad de barrera de entrada y también los parámetros de intervalo y base especificados. La salida genera un área de curvas de nivel como polilíneas en un shapefile.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
ContourWithBarriers("elevation", "C:/sapyexamples/output/outcontourwithbarriers.shp", "elevation_barrier.shp", "POLYLINES",
"", "", 0, 300)
En este ejemplo se crean curvas de nivel a partir de un ráster Esri Grid con una entidad de barrera de entrada y también los parámetros de intervalo y base especificados. La salida genera un área de curvas de nivel como polilíneas en un shapefile.
# Name: ContourWithBarriers_Ex_02.py
# Description: Creates contours from a raster surface.
# The inclusion of barrier features will allow one to independently generate contours on either side of a barrier.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "elevation"
inBarrier = "elevation_barrier.shp"
inTextFile = ""
explicitValues = "NO_EXPLICIT_VALUES_ONLY"
contourInterval = 200
contourList = [600, 935, 1237.4]
baseContour = 0
outContours = "C:/sapyexamples/output/outcontourwithbarriers02.shp"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Contour
ContourWithBarriers(inRaster, outContours, inBarrier, "POLYLINES", inTextFile,
explicitValues, baseContour, contourInterval, "",
contourList, "")