Anomalias Térmicas
Max Anjos
April 08, 2026
Source:vignettes/local_func_anomaly.Rmd
local_func_anomaly.RmdPrimeiros 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")
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")
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")
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")
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 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: 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