Skip to contents

Primeiros Passos

A anomalia térmica é uma ótima maneira de avaliar as diferenças intraurbanas de temperatura do ar. Em cada estação LCZ, a anomalia térmica é definida como a diferença entre sua temperatura e a temperatura média geral de todas as estações LCZ. Por exemplo, uma anomalia térmica positiva indica que uma determinada LCZ está mais quente em comparação com todas as outras LCZs.

A função lcz_anomaly() tem as mesmas utilidades que a lcz_ts() em relação à flexibilidade de seleção de tempo e divisão da série temporal LCZ por janela temporal ou local.

library(LCZ4r)

# Get the LCZ map for your city
lcz_map <- lcz_get_map_euro(city = "Berlin")

# Load sample data from LCZ4r
data("lcz_data")

::: {.callout .callout-note} ::: {.callout .callout-note} Entendendo Anomalias Térmicas:

  • Anomalia positiva (cores vermelhas/quentes): Estação está mais quente que a média urbana
  • Anomalia negativa (cores azuis/frias): Estação está mais fria que a média urbana
  • Anomalia zero: Temperatura da estação igual à média urbana

Esta métrica ajuda a identificar ilhas de calor urbanas e pontos frios dentro da cidade. :::

Opções de Visualização com plot_type

O argumento plot_type na função lcz_anomaly() oferece várias visualizações:

  • “diverging_bar”: Um gráfico de barras horizontais que diverge do centro (zero), com anomalias positivas se estendendo para a direita e anomalias negativas para a esquerda
  • “bar”: Um gráfico de barras mostrando a magnitude da anomalia para cada estação, colorido conforme a anomalia seja positiva ou negativa
  • “dot”: Um gráfico de pontos que exibe tanto os valores médios de temperatura quanto os valores de referência, com linhas conectando-os
  • “lollipop”: Um gráfico de pirulito onde cada “haste” representa um valor de anomalia e os pontos no topo representam o tamanho da anomalia

Abaixo estão exemplos usando cada tipo de visualização.

1. Gráfico de Barras Divergentes

# Thermal anomalies for February 6, 2019 at 05:00h
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 2, day = 6, hour = 5,
            plot_type = "diverging_bar",
            ylab = "Air temperature [°C]",
            xlab = "Stations",
            title = "LCZ Thermal Anomalies",
            caption = "Source: LCZ4r, 2024")
Diverging bar plot showing thermal anomalies across LCZ stations

Gráfico de barras divergentes mostrando anomalias térmicas nas estações LCZ em Berlim (6 de fevereiro de 2019, 05:00h). Anomalias positivas (vermelho) indicam estações mais quentes, anomalias negativas (azul) indicam estações mais frias.

2. Bar Plot

# Bar plot for February 6, 2019 at 05:00h
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 2, day = 6, hour = 5,
            plot_type = "bar")
Bar plot showing magnitude of thermal anomalies

Gráfico de barras mostrando a magnitude das anomalias térmicas para cada estação. Barras acima de zero indicam anomalias positivas (mais quentes), abaixo de zero indicam anomalias negativas (mais frias).

3. Dot Plot

# Dot plot for February 6, 2019 at 05:00h
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 2, day = 6, hour = 5,
            plot_type = "dot")
Dot plot comparing station temperatures to urban average

Gráfico de pontos mostrando as temperaturas individuais das estações (pontos coloridos) em comparação com a média urbana (linha vertical tracejada). A distância da linha representa a magnitude da anomalia térmica.

4. Lollipop Plot

# Lollipop plot for February 6, 2019 at 05:00h
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 2, day = 6, hour = 5,
            plot_type = "lollipop")
Lollipop plot emphasizing anomaly magnitude

Gráfico de pirulito enfatizando a magnitude e a direção das anomalias térmicas. O comprimento de cada ‘haste’ representa o valor da anomalia, com o tamanho do ponto indicando a magnitude.

Dividindo Anomalias com o Argumento “by”

Comparação Diurno vs. Noturno

# Calculate anomalies for nighttime and daytime on February 6, 2019
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 2, day = 6, 
            plot_type = "diverging_bar",
            by = "daylight")
Comparação de anomalias térmicas entre diurno e noturno

Comparação de anomalias térmicas entre diurno e noturno em 6 de fevereiro de 2019. Isso revela como os padrões térmicos urbanos variam entre os períodos diurnos.

Combinando Diurno com Meses

# Calculate monthly mean anomalies for February and August 2019
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = c(2, 8), 
            plot_type = "bar",
            by = c("daylight", "month"))
Padrões sazonais e diurnos de anomalias térmicas

Padrões sazonais e diurnos de anomalias térmicas: comparando inverno (fevereiro) e verão (agosto) entre períodos diurnos e noturnos.

Opções Avançadas de Análise

Agregação Temporal

Você pode agregar anomalias em diferentes frequências temporais:

# Calculate daily mean anomalies for February 2019
daily_anomalies <- lcz_anomaly(lcz_map, 
                               data_frame = lcz_data, 
                               var = "airT", 
                               station_id = "station", 
                               time.freq = "day", 
                               year = 2019, month = 2,
                               plot_type = "bar",
                               iplot = FALSE)

# Calculate monthly mean anomalies for 2019
monthly_anomalies <- lcz_anomaly(lcz_map, 
                                 data_frame = lcz_data, 
                                 var = "airT", 
                                 station_id = "station", 
                                 time.freq = "month", 
                                 year = 2019,
                                 plot_type = "bar",
                                 iplot = FALSE)

Personalizando a Aparência Visual

# Customized diverging bar plot with specific colors and labels
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 7, day = 15, hour = 14,  # Summer afternoon
            plot_type = "diverging_bar",
            ylab = "Temperature Anomaly [°C]",
            xlab = "LCZ Classes",
            title = "Summer Afternoon Thermal Anomalies",
            subtitle = "July 15, 2019 - 14:00h",
            caption = "Source: LCZ4r, 2024")

Retornar um Dataframe como Resultado

Para salvar o resultado no R, defina iplot = FALSE e crie um objeto.

# Return dataframe with thermal anomalies for February and August 2019
my_output <- lcz_anomaly(lcz_map, 
                         data_frame = lcz_data, 
                         var = "airT", 
                         station_id = "station", 
                         time.freq = "hour", 
                         year = 2019, month = c(2, 8), 
                         plot_type = "bar",
                         by = c("daylight", "month"),
                         iplot = FALSE)

# View the structure of the returned dataframe
str(my_output)

# View first few rows
head(my_output)

Salvar Gráficos

Para salvar um gráfico em seu computador, defina isave = TRUE e especifique o tipo de arquivo com save_extension (por exemplo, “png”, “jpeg”, “svg”, “pdf”).

# Save thermal anomalies plot to PC
lcz_anomaly(lcz_map, 
            data_frame = lcz_data, 
            var = "airT", 
            station_id = "station", 
            time.freq = "hour", 
            year = 2019, month = 7, day = 15, hour = 14,
            plot_type = "diverging_bar",
            by = "daylight",
            isave = TRUE,
            save_extension = "png")

Dica: Os gráficos salvos serão automaticamente organizados na pasta LCZ4r_output com nomes de arquivo timestampados para fácil referência. A pasta é criada no seu diretório de trabalho atual.

Resumo dos Parâmetros

Aqui está uma referência rápida para os principais parâmetros usados em lcz_anomaly():

Parâmetro Descrição Opções
time.freq Frequência de agregação temporal “hour”, “day”, “month”, “year”
plot_type Tipo de visualização “diverging_bar”, “bar”, “dot”, “lollipop”
by Método de divisão dos dados “daylight”, “month”, “season”, “weekday”, etc.
isave Salvar saída no PC TRUE/FALSE
iplot Exibir gráfico TRUE/FALSE
var Variável a analisar Nome da coluna com dados de temperatura
station_id Coluna identificadora da estação Nome da coluna com IDs das estações

Interpretando Anomalias Térmicas

Compreender os padrões nas anomalias térmicas pode fornecer insights valiosos:

  • LCZs compactas construídas tipicamente mostram anomalias positivas durante o dia
  • LCZs abertas de baixa elevação frequentemente exibem anomalias negativas devido à melhor ventilação
  • Áreas industriais frequentemente apresentam fortes anomalias positivas
  • LCZs vegetadas geralmente mostram anomalias negativas, especialmente durante o dia
  • Corpos d’água podem criar ilhas frias com anomalias negativas persistentes

Exemplo de Aplicação: Planejadores urbanos podem usar mapas de anomalia térmica para identificar áreas vulneráveis ao calor e priorizar intervenções como infraestrutura verde ou materiais frios em locais com anomalias positivas persistentes.


Tem sugestões ou feedback?

Você tem uma ideia para melhoria ou encontrou um erro? Adoraríamos saber! Clique no botão abaixo para criar uma nova issue (GitHub) e compartilhar seu feedback ou sugestões diretamente conosco.

Open GitHub issue