Skip to contents

Introducción

Comprender las variaciones de temperatura dentro de los entornos urbanos es crucial para la investigación climática, particularmente cuando se examinan las Islas de Calor Urbanas (UHI). El paquete LCZ4r ofrece potentes funciones para crear mapas interpolados y análisis de anomalías térmicas dentro de zonas climáticas locales (LCZ). El lcz_interp_map() y lcz_anomaly_map() Las funciones se pueden aplicar para generar representaciones espaciales detalladas de la temperatura del aire, lo que permite a los investigadores analizar la influencia de las estructuras urbanas y el uso del suelo en los climas locales.

En esta guía, demostraremos cómo utilizar estas funciones para modelar datos de temperatura en la LCZ de Berlín, y cubriremos:

  • Interpolación espacial de la temperatura del aire usando clases LCZ
  • Mapeo de anomalías térmicas para identificar puntos calientes y fríos
  • Análisis temporal en diferentes escalas de tiempo
  • Opciones de personalización para resolución espacial y visualización
library(LCZ4r)

# Obtén el mapa de la ZLC de tu ciudad.
lcz_map <- lcz_get_map_euro(city = "Berlin")

# Cargar datos de muestra desde LCZ4r
data("lcz_data")

Comprensión de la interpolación espacial con LCZ:

Las funciones de interpolación en LCZ4r utilizan Kriging, una técnica geoestadística que considera la autocorrelación espacial para estimar temperaturas en ubicaciones no medidas. Al integrar las clases LCZ, la interpolación tiene en cuenta las características térmicas de diferentes formas urbanas, lo que da como resultado distribuciones de temperatura más realistas.

Parámetros clave: - sp.res: Resolución espacial en metros (predeterminado: 100 m) - tp.res: Frecuencia de agregación temporal (hora, día, mes) - por: divide el análisis por variables temporales o categóricas

Interpolación de la temperatura del aire

El lcz_interp_map() La función genera mapas interpolados de temperatura del aire basados ​​en clases LCZ. Estas funciones aplican técnicas de interpolación para estimar temperaturas en el área de estudio.

Interpolación de mapas de una sola hora

El siguiente ejemplo demuestra cómo generar un mapa de temperatura para una fecha y hora específicas.

# Mapeo de las temperaturas del aire para febrero 6, 2019 en 05:00h
my_interp_map <- lcz_interp_map(lcz_map,
                                data_frame = lcz_data, 
                                var = "airT", 
                                station_id = "station",
                                sp.res = 100, 
                                tp.res = "hour",
                                year = 2019, month = 2, day = 6, hour = 5)

# Personaliza la trama con títulos y etiquetas
lcz_plot_interp(my_interp_map, 
                title = "LCZ Air Temperature Distribution", 
                subtitle = "Berlin - February 6, 2019 at 05:00",
                caption = "Source: LCZ4r, 2024",
                fill = "Temperature [°C]")
Single-hour temperature interpolation map for Berlin

Interpolación espacial de la temperatura del aire en Berlín a las 05:00 del 6 de febrero de 2019. El mapa revela variaciones de temperatura entre diferentes clases de LCZ, y las áreas más cálidas suelen corresponder a zonas construidas compactas.

Interpolación horaria durante un día

El by = "hour" El argumento le permite generar una secuencia de mapas de temperatura por horas para un día específico, con cada hora representada como una capa ráster individual.

# Generar mapas de temperatura por hora para todo el día
my_interp_map <- lcz_interp_map(lcz_map,
                                data_frame = lcz_data, 
                                var = "airT", 
                                station_id = "station",
                                sp.res = 100, 
                                tp.res = "hour",
                                year = 2019, month = 2, day = 6,
                                by = "hour")

# Cambie el nombre de las capas ráster con números de hora
names(my_interp_map) <- paste0("Hour ", 1:24)

# Visualiza todos los mapas por hora
lcz_plot_interp(my_interp_map, 
                title = "Hourly LCZ Air Temperature Patterns", 
                subtitle = "Berlin - February 6, 2019",
                caption = "Source: LCZ4r, 2024",
                fill = "Temperature [°C]")
Hourly temperature interpolation sequence showing diurnal patterns

Secuencia de interpolación de temperatura horaria para el 6 de febrero de 2019, que muestra la evolución diurna de los patrones de temperatura en las clases LCZ de Berlín.

Interpolación de anomalías térmicas

El lcz_anomaly_map() La función resalta las anomalías de temperatura en relación con las condiciones promedio en las LCZ. Los mapas de anomalías son particularmente útiles para identificar áreas donde las temperaturas difieren significativamente de los valores típicos, como puntos críticos de calor dentro de áreas urbanas.

Interpolación de mapas de un solo día

# Generar un mapa de anomalías térmicas para un día específico
my_anomaly_map <- lcz_anomaly_map(lcz_map,
                                  data_frame = lcz_data,
                                  var = "airT", 
                                  station_id = "station",
                                  sp.res = 100, 
                                  tp.res = "day",
                                  year = 2019, month = 2, day = 6)

# Trazar el mapa de anomalías térmicas
lcz_plot_interp(my_anomaly_map,
                title = "LCZ Temperature Anomalies",
                subtitle = "Berlin - Daily Anomalies on February 6, 2019",
                caption = "Source: LCZ4r, 2024",
                fill = "Temperature Anomaly [°C]",
                palette = "bl_yl_rd")
Daily thermal anomaly map for Berlin

Mapa de anomalías térmicas de Berlín el 6 de febrero de 2019. Las áreas rojas indican temperaturas por encima del promedio urbano (puntos calientes), mientras que las áreas azules indican temperaturas por debajo del promedio (puntos fríos).

Anomalías diurnas y nocturnas

Usando el by = "daylight" El argumento divide el análisis en períodos diurnos y nocturnos, revelando cómo los patrones térmicos cambian entre los ciclos diurnos.

# Separe las anomalías en diurnas y nocturnas
my_anomaly_map <- lcz_anomaly_map(lcz_map,
                                  data_frame = lcz_data,
                                  var = "airT", 
                                  station_id = "station",
                                  sp.res = 100, 
                                  tp.res = "hour",
                                  year = 2019, month = 2, day = 6,
                                  by = "daylight")

# Cambie el nombre de las capas ráster para mayor claridad
names(my_anomaly_map) <- c("Daytime", "Nighttime")

# Graficar los mapas de anomalías térmicas para el día y la noche
lcz_plot_interp(my_anomaly_map,
                title = "LCZ Temperature Anomalies",
                subtitle = "Berlin - Diurnal Cycle on February 6, 2019",
                caption = "Source: LCZ4r, 2024",
                fill = "Temperature Anomaly [°C]",
                palette = "bl_yl_rd")
Comparison of daytime and nighttime thermal anomalies

Comparación de las anomalías térmicas diurnas y nocturnas el 6 de febrero de 2019. Esto revela cómo los patrones térmicos urbanos difieren entre el día y la noche, y el UHI generalmente se fortalece después del atardecer.

Opciones avanzadas de modelado

Patrones de temperatura estacionales

Puede generar mapas de temperatura para diferentes estaciones para comprender las variaciones estacionales:

# Generar mapas de temperatura estacionales para 2019
seasonal_maps <- lcz_interp_map(lcz_map,
                                data_frame = lcz_data, 
                                var = "airT", 
                                station_id = "station",
                                sp.res = 100, 
                                tp.res = "day",
                                year = 2019,
                                by = "season")

# Visualice los patrones estacionales
lcz_plot_interp(seasonal_maps,
                title = "Seasonal LCZ Air Temperature Patterns",
                subtitle = "Berlin - 2019",
                caption = "Source: LCZ4r, 2024",
                fill = "Temperature [°C]")

Resolución espacial personalizada

Ajuste la resolución espacial para que coincida con sus necesidades de análisis:

# Resolución alta (50 m) para un análisis detallado
high_res_map <- lcz_interp_map(lcz_map,
                               data_frame = lcz_data, 
                               var = "airT", 
                               station_id = "station",
                               sp.res = 50,  # Higher resolution
                               tp.res = "hour",
                               year = 2019, month = 7, day = 15, hour = 14)

# Menor resolución (500 m) para una visión general regional
low_res_map <- lcz_interp_map(lcz_map,
                              data_frame = lcz_data, 
                              var = "airT", 
                              station_id = "station",
                              sp.res = 500,  # Lower resolution
                              tp.res = "hour",
                              year = 2019, month = 7, day = 15, hour = 14)

Consejo: Una resolución espacial más alta (valores sp.res más bajos) produce mapas más detallados pero requiere más recursos computacionales. Comience con la resolución predeterminada de 100 my ajústela según sus necesidades específicas y la potencia informática disponible.

Múltiples pasos de tiempo

Genere mapas para múltiples fechas para analizar cambios temporales:

# Generar mapas para fechas específicas a lo largo del año
selected_dates <- lcz_interp_map(lcz_map,
                                 data_frame = lcz_data, 
                                 var = "airT", 
                                 station_id = "station",
                                 sp.res = 100, 
                                 tp.res = "day",
                                 year = 2019, 
                                 month = c(1, 4, 7, 10), 
                                 day = 15)

# Visualiza la progresión estacional
lcz_plot_interp(selected_dates,
                title = "Seasonal Temperature Progression",
                subtitle = "Berlin - 2019 (15th of Jan, Apr, Jul, Oct)",
                caption = "Source: LCZ4r, 2024",
                fill = "Temperature [°C]")

Trabajar con salidas ráster

Las funciones de interpolación devuelven objetos ráster que pueden analizarse más a fondo:

Acceso a valores ráster

# Extraer datos ráster para análisis estadístico
library(raster)

# Obtenga los valores de temperatura para una ubicación específica
temperature_at_point <- extract(my_interp_map, 
                                cbind(longitude, latitude))

# Calcular estadísticas descriptivas para el área de estudio
mean_temperature <- cellStats(my_interp_map, stat = "mean")
max_temperature <- cellStats(my_interp_map, stat = "max")
min_temperature <- cellStats(my_interp_map, stat = "min")

# Calcular la temperatura por clase LCZ
lcz_values <- extract(my_interp_map, lcz_map)

Exportación de rásteres

# Guarda el ráster como GeoTIFF para usarlo en otro software
writeRaster(my_interp_map, 
            filename = "berlin_temperature_20190206_05h.tif", 
            format = "GTiff",
            overwrite = TRUE)

# Guarda varios rásteres en una pila
writeRaster(my_interp_map, 
            filename = "berlin_hourly_temperatures.tif", 
            bylayer = TRUE,
            suffix = "names",
            format = "GTiff")

Aplicaciones prácticas

El modelado de temperatura con LCZ tiene numerosas aplicaciones prácticas:

1. Evaluación de la isla de calor urbana

Identificar áreas con altas temperaturas persistentes para priorizar las intervenciones de enfriamiento urbano.

2. Alerta temprana de olas de calor

Utilice mapas de temperatura interpolados para predecir áreas de mayor riesgo durante eventos de calor extremo.

3. Apoyo a la planificación urbana

Informar las decisiones sobre la ubicación de infraestructura verde, la densidad de construcción y el diseño urbano.

4. Planificación de la adaptación climática

Modelar escenarios futuros para evaluar la efectividad de las estrategias de mitigación propuestas.

5. Análisis de salud pública

Identificar poblaciones vulnerables en puntos críticos de temperatura para intervenciones de salud específicas.

Resumen de parámetros

A continuación se ofrece una referencia rápida de los principales parámetros utilizados en las funciones de interpolación:

Parámetro Descripción Opciones
sp.res Resolución espacial en metros Numérico (por ejemplo, 100, 250, 500)
tp.res Frecuencia de agregación temporal “hora”, “día”, “mes”, “año”
by Método de división de datos “hora”, “estación”, “mes”, “luz del día”, etc.
palette Paleta de colores para visualización “bl_yl_rd”, “viridis”, “magma”, etc.
fill Etiqueta de barra de color Descripción del texto
title Título de la trama Texto
subtitle Subtítulo de la trama Texto
caption Título de la trama Texto

Consideraciones de rendimiento

Notas importantes:

  • Recursos computacionales: los mapas de alta resolución (sp.res < 50 m) requieren memoria y tiempo de procesamiento significativos
  • Densidad de datos: La precisión de la interpolación depende del número y la distribución de las estaciones de monitoreo
  • Resolución temporal: los mapas horarios para períodos prolongados pueden generar archivos de gran tamaño
  • Representación LCZ: asegúrese de que su área de estudio tenga una representación adecuada de todas las clases LCZ para una interpolación precisa

¿Tiene comentarios o sugerencias?

¿Tiene una idea para mejorar o detectó un error? ¡Nos encantaría saber de usted! Haga clic en el botón a continuación para crear una nueva edición (GitHub) y compartir sus comentarios o sugerencias directamente con nosotros.

Abrir incidencia en GitHub