Vista previa del material en texto
CARTOGRAFÍA DIGITAL 2023 CÁLCULO DE P E N D I E N T E cartografiadigital2023@gmail.com Managua, Nicaragua Fecha: 9/5/23 La pendiente se puede medir en grados desde una pendiente horizontal (90º) o pendiente en porcentaje (que es la elevación dividida entre el avance, multiplicado por 100). Una pendiente de 45 grados equivale a una pendiente del 100%. A medida que el ángulo de la pendiente se acerca a la vertical (90 grados), la pendiente en porcentaje se acerca al infinito. La pendiente de una cara de TIN es la pendiente cuesta abajo más empinada de un plano definido por la cara. La pendiente para una celda en un ráster es la pendiente más empinada de un plano definido por la celda y sus ocho vecinos circundantes. ¿Qué es la pendiente? Cálculo de pendiente Fuente: esri (2023) La Misión de Topografía del Radar del Transbordador Espacial (SRTM, ver Farr et al. 2007) es un esfuerzo de investigación internacional que obtuvo modelos digitales de elevación a escala casi global. Este producto SRTM V3 (SRTM Plus) es proporcionado por el NASA JPL a una resolución de 1 segundo de arco (aproximadamente 30 metros). Este conjunto de datos ha pasado por un proceso de llenado de vacíos utilizando datos de código abierto (ASTER GDEM2, GMTED2010 y NED), en contraste con otras versiones que contienen vacíos o han sido llenadas con fuentes comerciales. Para obtener más información sobre las diferentes versiones, consulte la Guía Rápida de SRTM. La determinación de la pendiente se puede llevar a cabo mediante el uso de un Modelo de Elevación Digital (DEM). Para este propósito, se pueden descargar DEMs con resoluciones de 12.5 metros o 30 metros, utilizando ASF Data y procesandolo en QGIS o ArcGIS. Sin embargo, también existe una alternativa que también es viable, mediante Google Earth Engine, una plataforma que ofrece una amplia gama de recursos para esta tarea. En particular, podemos utilizar el "NASA SRTM Digital Elevation 30m" como uno de los paquetes disponibles en esta plataforma. Cálculo de pendiente Primero acceda a la plataforma de Google Earth Engine, luego a los datos de ejemplo del código y añada las coordenadas de Huancayo (-75.20510134293208,-12.056677563641315): ¿Como calcular? Al dar “run” observara que se ha generado la capa de pendiente y que aún no está listo. Carga de datos: Comienza cargando los datos de elevación del terreno del conjunto de datos SRTM en Google Earth Engine (GEE). Cálculo de la pendiente: Luego, selecciona la banda de elevación de esos datos y calcula la pendiente del terreno utilizando la función ee.Terrain.slope(). Recorte a una región de interés: La pendiente calculada se recorta para limitar el análisis a una región específica del mapa, definida previamente como "geometry". Visualización en el mapa: La capa de pendiente resultante se agrega al mapa, utilizando una paleta de colores que va de 0 a 60 grados para representar la pendiente del terreno. Reclasificación de la pendiente: A continuación, se reasignan valores de pendiente a diferentes clases numéricas. Esto se hace mediante una serie de condiciones where, donde se definen rangos de pendiente y se les asigna un valor de clase específico. Definición de paleta de colores: Por último, se establece una paleta de colores personalizada que se utilizará para visualizar las diferentes clases de pendiente en el mapa. Por ahora, modificaremos el código un poco, creando una zona donde usted quiera, por ejemplo, cree un recuadro y haga el clip de recorte de “slope” y haga que se muestre en el mapa: Ajustaremos ahora la clasificación hasta 6 clases según Adhikari, tal como se muestra acontinuación: ¿Que hace el código actual?¿Como calcular? Ahora añadimos el Map.addlayer con la clasificación de pendiente y sus paletas, recuerde el min y max dependera de los rangos que haya hecho: Resultado Cálculo de área, descarga y leyenda Primero, calcula el área en kilómetros cuadrados (km²) de cada píxel en la imagen. Esto se logra mediante ee.Image.pixelArea(), dividiendo por 1,000,000 para convertir de metros cuadrados a km². Luego, agrega una banda a la imagen llamada 'sloperclass', que contiene las clases de pendiente. Utiliza reduceRegion() para calcular la suma del área de cada clase de pendiente dentro de la región de interés definida por "geometry". Los resultados se agrupan por las clases de pendiente y se almacenan en la variable area_classified. Exporta la imagen reclassificada de la pendiente del terreno (sloperclass) a Google Drive. La imagen se recorta a la región de interés definida por "geometry" utilizando clip(). Se especifica una descripción para el archivo de salida. La escala se establece en 30 metros por píxel. maxPixels controla el número máximo de píxeles permitidos en la exportación. Se definen dos listas: names que contiene las etiquetas de las clases de pendiente y values que contiene los valores asociados a cada clase. Esto se utiliza para etiquetar las clases en la leyenda. Se crea un panel de usuario (ui.Panel) que actuará como la leyenda. Se establece su posición en la esquina inferior izquierda del mapa y se ajusta el tamaño y el espaciado. Estos son elementos de texto que actúan como el título y el subtítulo de la leyenda. Se establece el estilo del texto, incluyendo el tamaño de fuente, el margen y la negrita. Se define una función llamada makeRow que crea una fila de la leyenda. Cada fila consta de un cuadro de color y una etiqueta de nombre. En un bucle, se crea una fila para cada clase de pendiente utilizando la función makeRow() y se agrega al panel de la leyenda. Se utiliza la paleta de colores slope_palette y las etiquetas de nombres names definidas previamente. Finalmente, la leyenda personalizada se agrega al mapa. ¿Que hace el código? Resultado ee.Image(1): En primer lugar, se crea una nueva imagen en GEE con todos sus píxeles inicializados en el valor 1. Esta será la imagen resultante de la reclassificación de la pendiente. .where(pendiente.gt(5).and(pendiente.lte(10)), 2): Aquí se utiliza el método where() para reasignar valores en la imagen. Se toma la imagen original de pendiente (pendiente) y se aplica una condición utilizando .gt() (mayor que) y .lte() (menor o igual que). En este caso, se está reasignando todos los píxeles cuyos valores de pendiente estén entre 5 (grados) y 10 (grados) con el valor 2. .where(pendiente.gt(10).and(pendiente.lte(15)), 3): Similar al paso anterior, se reasignan los píxeles cuyos valores de pendiente estén entre 10 (grados) y 15 (grados) con el valor 3. .where(pendiente.gt(15).and(pendiente.lte(20)), 4): Continuando con el patrón, se asignan valores de 4 a los píxeles cuya pendiente está entre 15 y 20 grados. .where(pendiente.gt(20).and(pendiente.lte(25)), 5): Lo mismo ocurre para los valores entre 20 y 25 grados, que se asignan como 5. .where(pendiente.gt(25).and(pendiente.lte(45)), 6): Se siguen asignando valores a intervalos de pendiente más altos, como 25 a 45 grados como 6. .where(pendiente.gt(45).and(pendiente.lte(100)), 7): Finalmente, los valores de pendiente mayores a 45 grados y menores o iguales a 100 grados se asignan como 7. ee.Image.pixelArea(): Esto crea una imagen donde cada píxel representa el área en metros cuadrados. divide(1000 * 1000): Divide todos los valores de píxeles por un millón para convertir el área de metros cuadrados a kilómetros cuadrados. .addBands(sloperclass): Agrega una banda a esta imagen que contiene las clases de pendiente reasignadas (sloperclass). .reduceRegion(): Luego, se aplica una reducción en una región de interés (geometry) para calcular la suma de áreas cubiertas por cada clase de pendiente. Los resultados se agrupan por el valor de la banda de clase de pendiente y se almacenan en la variable area_classified. Se imprime en la consola de GEE el área cubierta por cada clase de pendiente en kilómetros cuadrados. Esto proporciona información cuantitativa sobre la extensión de cada categoría de pendiente en el área de interés. Export.image.toDrive(): Esta funciónexporta la imagen de pendiente reasignada (sloperclass) después de recortarla a la región de interés (geometry) y especifica una descripción para el archivo de salida. scale: 30: Establece la resolución espacial en 30 metros por píxel. maxPixels: 1e12: Controla el número máximo de píxeles permitidos en la exportación para evitar problemas de memoria. Pequeño apendice https://code.earthengine.google.com/86aeb4f4877959682 6baf6db7448402f Código del cálculo https://code.earthengine.google.com/86aeb4f48779596826baf6db7448402f https://code.earthengine.google.com/86aeb4f48779596826baf6db7448402f Pequeño apendice Créditos a Kapil Dev Adhikari, cuyo canal de YouTube profundiza en este cálculo de manera detallada: https://www.youtube.com/watch?v=TrfPLd2ds7I&t=896s Muchas gracias por su atención