1 dic 2022

6. GENERAR Y ETIQUETAR CURVAS DE NIVEL

Las curvas de nivel son "isolíneas" que representan la misma altitud a través de todo su recorrido, y son un elemento fundamental que repercute tanto en el análisis y diseño de las diferentes obras civiles, por ende aprender a generarlas es muy importante, entre las diferentes formas que existen para crear estas curvas tenemos: levantamiento topográfico (la más recomendable!!!), generadas a partir de un DEM, levantamiento topográfico con drones, entre otros métodos. Para esta ocasión se presenta un método a partir de un DEM en el cual a parte de generar las curvas se procede a etiquetarlas en función a la distancia que se desee (esto para no tener curvas etiquetadas de manera aleatoria o en todo caso que estén todas etiquetadas).

Datos iniciales:
📌DEM de la zona de estudio.
Si aún no sabes como descargar un DEM (Modelo Digital de Elevaciones), te recomiendo revisar antes estos posts:

1. "CONTOUR":
Para generar las curvas de nivel hacemos uso de la herramienta Contour (Contorno), que nos permite realizar tal tarea a partir de un DEM, la ruta para encontrar la herramienta es la siguiente:
ArcToolBox
→3D Analyst Tools
→Raster
→Surface
→Contour
Input raster: Ingresar el DEM de la zona de estudio.
Output feature class: Genera una ruta de salida automática.
Contour interval: Ingresar el valor del intervalo entre curvas de nivel en metros (se recomienda usar como máximo el valor de la resolución del DEM descargado para no generar posibles errores).
Contour type: Contour.

2. ETIQUETAR CURVAS DE NIVEL:
2.1 DISCRIMINACIÓN ENTRE CURVAS (PRIMARIAS Y SECUNDARIAS):
Una vez generadas las curvas de nivel es necesario para una mejor visualización categorizarlas para darles un grado de significancia descrinándolas entre ambas, se recomienda aplicar esta discriminación:

Curvas Primarias: Son las curvas más representativas, por lo general poseen valores enteros múltiplos de 100. (Curvas cada 100, 200, 300, etc.), esto también aplica al criterio que uno quiera discriminar sus curvas en función a la distancia entre estas.
Curvas Secundarias: Son las curvas que se encuentran entre las curvas principales y gráficamente suelen tener menor acentuación (menor calidad de línea).

Para realizar esta discriminación requerimos de crear un "Field" (campo, atributo) nuevo que permita alojar esta variable tipo texto, para realizar esto abrimos la "Attribute Table" (Tabla de atributos), dándole click derecho sobre el shapefile de curvas de nivel recién generado, y para generar un nuevo field damos click en la tabla sobre el botón "Add".
En el campo de "Field Name" (Nombre del campo), colocamos el nombre con el que queremos identificar la columna (Puedes colocar el nombre que gustes con tal que lo puedas identificar), y en la celda de "Data Type" (Tipo de datos), seleccionamos la opción "Text" (Texto), para finalizar en la cinta de opciones le damos en "Save" (Guardar).
Con el nuevo campo generado, ahora se necesita seleccionar las curvas primarias y para seleccionar estas curvas (para este ejemplo se requiere seleccionar las curvas cada 100 metros), se debe ir en la cinta de opciones en la pestaña "Map" (Mapa) a las opciones de "Selection" (Selección), y seleccionar la opción de "Select By Attributes" (Selección por atributos).
Luego de dar click se nos abrirá la siguiente ventana:
Input Rows: Seleccionamos el archivo de curvas de nivel.
Selection Type: New Selection
SQL: ACTIVADO!!!
En el recuadro escribimos el siguiente comando para seleccionar las curvas de nivel cada 100 metros.
Mod(Round(" Contour ", 0) * 10, 1000)=0
Este script nos ayuda a seleccionar las curvas cada 100 metros, pero si se desea cambiar el intervalo solo se debe saber que para realizar eso se debe multiplicar por 10 el valor que requerimos e insertarlo en la parte final del script, como por ejemplo:

Curvas cada 100 metros (10x100=1000):
Mod(Round(" Contour ", 0) * 10, 1000)=0
Curvas cada 50 metros (10x50=500):
Mod(Round(" Contour ", 0) * 10, 500)=0
Curvas cada 200 metros (10x200=2000):
Mod(Round(" Contour ", 0) * 10, 2000)=0

Entonces con las curvas primarias seleccionadas procedemos a realizar la inserción de los valores en el field creado anteriormente, para esto damos click derecho sobre el encabezado del field creado y seleccionamos la opción "Calculated Field" (Calcular campos).
Input Table: Seleccionamos el archivo de curvas de nivel.
Field Name: Seleccionamos el campo recién creado.
Insert Values: Aparecerá el nombre del campo creado y ahí escribimos entre comillas "Primarias" (O algún otro texto que permita diferenciar entre las curvas primarias y secundarias).
Con este procedimiento todos los campos seleccionados tendrán el valor que acabamos de insertarle.
Para realizar las secundaria simplemente invertimos la selección, haciendo click en la tabla de atributos sobre el botón "Switch" (Cambiar), y procedemos a agregar su valor al campo de la misma manera que para las primarias, pero en este caso dándole otro valor que permita reconocer las curvas secundarias (Como ejemplo se le puede dar de valor "Secundarias").
NOTA!: Para agregar los valores de primarias y secundarias deben estar encerrada dentro de comillas, ejemplo: "Primarias" o "Secundarias".

2.2 VISUALIZACIÓN DE LAS CURVAS DE NIVEL DISCRIMINADAS:
Para proceder a visualizar las etiquetas (para este ejemplo sólo se desea visualizar las curvas de nivel primarias, es decir las curvas que se encuentran cada 100 metros), se procede de la siguiente manera: En la tabla de contenido seleccionamos el archivo de curvas de nivel y le damos click derecho para seleccionar la opción de "Symbology" (Simbología), en la cual se abrirá un cuadro como el siguiente:
Primary symbology: Seleccionar la opción de "Unique Values" (Valores únicos).
Field 1: Seleccionamos el nombre del Field creado en la tabla de atributos.
Color scheme: Seleccionamos la paleta de colores con la cual queremos que se vea las curvas (Esto se puede editar por los colores que se desee).
Con esta configuración se tendrá las curvas de nivel gráficamente discriminadas y para finalmente proceder a su etiquetado.

2.3 ETIQUETADO DE LAS CURVAS DE NIVEL:
Para etiquetar las curvas de nivel (sólo se desea etiquetar las curvas de nivel primarias), se realiza mediante el uso de un script, primero desde la tabla de contenido seleccionamos el archivo de curvas de nivel, y nos al menú de "Labeling" (Etiquetado), que aparecerá en la parte superior de la pantalla, en el en las opciones de "Label Class" (Clase de etiqueta), damos click sobre el botón de "Expression" (Expresión).
Luego aparecerá el siguiente cuadro:
Languaje: VBScript
Expression: En este campo insertar el siguiente script (válido para un etiquetado para curvas cada 100 metros).

Function FindLabel ([Contour])
If ([Contour] Mod 100) = 0 Then
FindLabel = [Contour]
End If
End Function

Si se desea modificar este script para valores diferentes se debe cambiar el valor de 100 que se encuentra luego de la palabra Mod, de modo tal que:

Curvas cada 100 metros (100):
Function FindLabel ([Contour])
If ([Contour] Mod 100) = 0 Then
FindLabel = [Contour]
End If
End Function
Curvas cada 50 metros (50):
Function FindLabel ([Contour])
If ([Contour] Mod 50) = 0 Then
FindLabel = [Contour]
End If
End Function
Curvas cada 200 metros (200):
Function FindLabel ([Contour])
If ([Contour] Mod 200) = 0 Then
FindLabel = [Contour]
End If
End Function

Finalmente se edita las etiquetas como más sea de su agrado hasta obtener un resultado gráfico de acuerdo a sus exigencias o necesidad.

No hay comentarios:

Publicar un comentario