Introdução às Funções Locais
Max Anjos
April 08, 2026
Source:vignettes/Introd_local_LCZ4r.Rmd
Introd_local_LCZ4r.RmdAs funções locais do LCZ4r são ferramentas especializadas projetadas para analisar grandes conjuntos de dados, como leituras horárias de temperatura do ar. Este tutorial foca no uso de dados de Berlim, coletados em 23 estações meteorológicas como parte do Observatório de Clima Urbano (UCO).
Visão Geral
As funções locais no LCZ4r oferecem
ferramentas poderosas para manipular e analisar dados de clima urbano.
Elas permitem análise de séries temporais, mapeamento de anomalias
térmicas, interpolação espacial e muito mais. Abaixo está um resumo
dessas funções:
| Função | Descrição | Dados Necessários | Acesso à Internet Necessário |
|---|---|---|---|
lcz_ts() |
Analisar Séries Temporais LCZ | Sim | Não necessário |
lcz_anomaly() |
Calcular Anomalias Térmicas LCZ | Sim | Não necessário |
lcz_anomaly_map() |
Mapear Anomalias Térmicas LCZ | Sim | Não necessário |
lcz_interp_map() |
Realizar Interpolação LCZ | Sim | Não necessário |
lcz_plot_interp() |
Visualizar Interpolação LCZ | Sim | Não necessário |
lcz_interp_eval() |
Avaliar Interpolação LCZ | Sim | Não necessário |
lcz_uhi_intensity() |
Avaliar Intensidade da Ilha de Calor Urbana para LCZ | Sim | Não necessário |
💡 Dicas:
Utilize a função
help(lcz_*)para acessar a documentação detalhada de cada função do LCZ4r. Por exemplo, para aprender sobre a funçãolcz_ts, digitehelp("lcz_ts")no console.Cada função do LCZ4r suporta imputação para tratar valores ausentes nos data frames. Para mais informações sobre métodos de imputação, consulte o argumento “impute” na documentação de cada função.
Requisitos de entrada de dados
Para garantir o funcionamento adequado das funções locais, os dados de entrada devem ser estruturados como um data frame com as seguintes colunas:
date: Esta coluna deve conter informações de data e hora. Esta coluna deve ser rotulada como “date”, “time”, “timestamp” ou “datetime”. Certifique-se de que o formato de data e hora esteja alinhado com as convenções do R (por exemplo, AAAA-MM-DD HH:MM:SS). Formatos aceitáveis incluem “1999-02-01”. Para mais detalhes, consulte formatação de datas e horas no pacote openair.
Identificador da Estação: Uma coluna para identificar as estações meteorológicas.
Temperatura do Ar ou outra variável: Pelo menos uma coluna representando a temperatura do ar ou qualquer outra variável alvo.
Latitude e Longitude: Duas colunas para as coordenadas geográficas de cada estação. Certifique-se de que a coluna seja nomeada como “lat” ou “latitude” e “lon”, “long” ou “longitude”.
Para simplificar esta configuração, o LCZ4r fornece um data frame de exemplo, que você pode carregar com o seguinte comando:
library(LCZ4r)
# Carregue os dados do pacote LCZ4r
data("lcz_data")
# Verifique a estrutura dos dados
str(lcz_data)
Estrutura do conjunto de dados de exemplo LCZ mostrando colunas de data, estação, temperatura e coordenadas
Importar seus dados
if(!require(data.table)) install.packages("data.table")
# Substitua o caminho pelo caminho real do seu arquivo CSV
my_data <- data.table::fread("PC/caminho/arquivo.csv")
head(my_data)Personalizando as Funções Locais no LCZ4r
Você pode personalizar ainda mais as Funções Locais para atender às necessidades específicas de análise:
1. Seleção flexível de tempo
As Funções Locais possuem um argumento ... que oferece
opções para filtrar dados por anos, meses, dias e horas específicos para
restringir seu período de análise. Exemplos de como usar esses
argumentos incluem:
Ano(s): Valor(es) numérico(s) especificando o(s) ano(s) a serem selecionados. Por exemplo,
year = 1998:2004seleciona todos os anos entre 1998 e 2004 (inclusive), enquantoyear = c(1998, 2004)seleciona apenas os anos 1998 e 2004.Mês(es): Valor(es) numérico(s) ou de caractere(s) especificando o(s) mês(es) a serem selecionados. Exemplos numéricos:
month = 1:6(janeiro a junho), ou exemplos com caracteres:month = c("January", "December").Dia(s): Valor(es) numérico(s) especificando o(s) dia(s) a serem selecionados. Por exemplo,
day = 1:30seleciona os dias de 1 a 30, ouday = 15seleciona apenas o dia 15 do mês.Hora(s): Valor(es) numérico(s) especificando a(s) hora(s) a serem selecionadas. Por exemplo,
hour = 0:23seleciona todas as horas do dia, enquantohour = 9seleciona apenas a nona hora.Data inicial: Uma string especificando a data de início nos formatos
start = "DD/MM/AAAA"(por exemplo, “1/2/1999”) ou “AAAA-mm-dd” (por exemplo, “1999-02-01”).Data final: Uma string especificando a data de término nos formatos
end = "DD/MM/AAAA"(por exemplo, “1/2/1999”) ou “AAAA-mm-dd” (por exemplo, “1999-02-01”).
Exemplos
# Selecione um intervalo de anos (por exemplo, 1998:2004) ou anos específicos (por exemplo, c(1998, 2004))
lcz_ts(
lcz_map,
year = 1998:2004
)
# Filtre por mês, seja por valores numéricos (por exemplo, 1:6 para janeiro a junho) ou por nomes
lcz_anomaly(
lcz_map,
year = 2012, month = 9
)
# Selecione uma data específica, como 1º de setembro de 2019
lcz_interp_map(
lcz_map,
year = 2012, month = 9, day = 1
)
# Para uma hora específica
lcz_anomaly_map(
lcz_map,
year = 2012, month = 9, day = 1, hour = 5
)
# Selecione um período específico usando datas de início e fim
lcz_uhi_intensity(
lcz_map,
var = "airT",
station_id = "station",
start = "1/9/2019", end = "30/10/2019"
)
::: {.callout .callout-note}
Para mais informações, consulte as [funções utilitárias do pacote openair](https://bookdown.org/david_carslaw/openair/sections/utilities/utility-functions.html#sec-selectByDate).
:::
### 2. Divisão da série temporal LCZ por janela temporal ou local
Você pode segmentar os dados da série temporal LCZ usando o argumento `by`, permitindo a análise em diferentes janelas temporais ou locais. As opções de divisão disponíveis incluem:
1. **Segmentos temporais**: "year", "season", "seasonyear", "month", "monthyear", "weekday", "weekend".
2. **Divisão por luz do dia**: "daylight", que divide os dados em períodos diurnos e noturnos. Observe que a **opção Daylight pode resultar em horas diurnas e noturnas representadas em UTC**. Consulte [NOAA](https://gml.noaa.gov/grad/solcalc/) e o argumento `type` no [pacote openair](https://openair-project.github.io/book/sections/intro/openair-package.html#the-type-option).
3. **Combinações**: Você também pode usar combinações como `c("daylight", "month")` ou `c("daylight", "season")`.# Divisão por mês
lcz_ts(lcz_map, by = "month")
# Divisão por estação
lcz_ts(lcz_map, by = "season")
# Divisão por horas de luz do dia
lcz_anomaly(lcz_map, by = "daylight")
# Combine múltiplas divisões
lcz_anomaly(lcz_map, by = c("daylight", "season"))
::: {.callout .callout-note}
ara mais detalhes, consulte o [tipo (type) no pacote openair](https://bookdown.org/david_carslaw/openair/sections/intro/openair-package.html#the-type-option).
:::
## Exemplos de fluxos de trabalho
Aqui estão alguns exemplos práticos de como usar as funções locais:
### Análise de série temporal# Série temporal básica para um ano específico
lcz_ts(
lcz_map,
var = "airT",
station_id = "station",
year = 2020
)
<div class="figure" style="text-align: center">
<img src="https://raw.githubusercontent.com/ByMaxAnjos/LCZ4r/main/inst/figures/fig_local_ts.png" alt="LCZ time series analysis showing temperature variations across different LCZ classes" width="80%" />
<p class="caption">Análise de série temporal LCZ mostrando variações de temperatura em diferentes classes LCZ</p>
</div>
### Mapeamento de anomalias térmicas# Mapeie anomalias térmicas para os meses de verão
lcz_anomaly_map(
lcz_map,
var = "airT",
station_id = "station",
month = 6:8,
year = 2020
)
<div class="figure" style="text-align: center">
<img src="https://raw.githubusercontent.com/ByMaxAnjos/LCZ4r/main/inst/figures/fig_local_anomaly.png" alt="Thermal anomaly map showing temperature differences across urban zones" width="80%" />
<p class="caption">Mapa de anomalia térmica mostrando diferenças de temperatura entre zonas urbanas</p>
</div>
### Interpolação espacial# Interpole a temperatura para uma data específica
lcz_interp_map(
lcz_map,
var = "airT",
station_id = "station",
year = 2020, month = 7, day = 15, hour = 12
)
<div class="figure" style="text-align: center">
<img src="https://raw.githubusercontent.com/ByMaxAnjos/LCZ4r/main/inst/figures/fig_local_interp.png" alt="Spatial interpolation of air temperature across the study area" width="80%" />
<p class="caption">Interpolação espacial da temperatura do ar em toda a área de estudo</p>
</div>
---
## 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.
```{=html}
<a href='https://github.com/ByMaxAnjos/LCZ4r/issues/new' class="github-feedback-btn">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"/>
</svg>
Open GitHub issue
</a>