´metdown´ é uma biblioteca Python para download, processamento e visualização de dados meteorológicos de superfície do repositório UCAR (University Corporation for Atmospheric Research) no formato Little-R.
Fonte dos Dados: https://rda.ucar.edu/datasets/d461000/
A biblioteca oferece múltiplas funcionalidades:
- Download automático de observações meteorológicas de superfície do dataset UCAR RDA ds461.0
- Filtragem geográfica por coordenadas
- Interpolação espacial com múltiplos métodos (linear, cúbica, nearest, métodos especializados via MetPy)
- Exportação para diversos formatos geoespaciais (NetCDF, GeoJSON, GeoPackage, Shapefile)
- Manipulação de dados temporais com agregação horária
- Controle de qualidade e limpeza de dados
Esta biblioteca utiliza o dataset NCAR/UCAR Research Data Archive (RDA) ds461.0 Os dados são obtidos diretamente do servidor da UCAR em:
- URL Base: https://rda.ucar.edu/datasets/d461000/
- Formato: Little-R (formato usado em modelos meteorológicos)
- Cobertura Temporal: Dados históricos e em tempo quase real
- Cobertura Espacial: Global
- Resolução Temporal: Horários sinóticos (00:00, 06:00, 12:00, 18:00 UTC)
- Tipo de Dados: Observações de superfície e altitude de estações meteorológicas
NCAR/UCAR Research Data Archive. Integrated Global Radiosonde Archive (IGRA) and Other Upper-Air Data.
Dataset ID: ds461.0
URL: https://rda.ucar.edu/datasets/d461000/
- Python 3.8 ou superior
- Bibliotecas dependentes (instaladas automaticamente)
-
Clone o repositório
git clone https://github.com/helvecioneto/metdown/ cd metdown -
Crie um ambiente virtual (recomendado)
python -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate
-
Instale as dependências
pip install -r requirements.txt
# Download básico com formato padrão (CSV)
python -m metdown -t "2023-01-01 00:00:00" -o ./output# Download para região do Brasil com saída em Shapefile
python -m metdown -t "2023-01-01 00:00:00" -o ./output \
-lat_min -45 -lat_max 13 -lon_min -82 -lon_max -30 \
-file_type shapefile3. Exemplo com Dados Raster (NetCDF com Interpolação MetPy usando método Cressman com raio de 300 km)
# Download para região do Brasil com interpolação MetPy (Cressman)
python -m metdown -t "2023-01-01 00:00:00" -o ./output \
-lat_min -45 -lat_max 13 -lon_min -82 -lon_max -30 \
-grid 0.5 0.5 -file_type netcdf \
-i metpy --metpy-interp cressman --metpy-radius 300000# Processamento para os quatro horários sinóticos
for hour in 00 06 12 18; do
python -m metdown -t "2023-01-01 $hour:00:00" -o ./output -file_type netcdf -grid 0.5 0.5
done| Parâmetro | Descrição | Padrão |
|---|---|---|
-t, --timestamp |
Horário para download (formato: YYYY-MM-DD HH:MM:SS) | 24h atrás da hora atual |
-o, --output |
Diretório de saída | ./output |
| Parâmetro | Descrição | Padrão |
|---|---|---|
-lat_min |
Latitude mínima | -90 |
-lat_max |
Latitude máxima | 90 |
-lon_min |
Longitude mínima | -180 |
-lon_max |
Longitude máxima | 180 |
| Parâmetro | Descrição | Padrão |
|---|---|---|
-grid, --grid_resolution |
Resolução da grade em graus [lon_res lat_res] | 1 1 (graus) |
-file_type |
Tipo de arquivo de saída (csv, netcdf, geojson, gpkg, shapefile) | csv |
-i, --interpolation |
Método de interpolação (linear, cubic, nearest, metpy) | linear |
| Parâmetro | Descrição | Padrão |
|---|---|---|
--metpy-interp |
Tipo de interpolação MetPy (rbf, cressman, barnes, natural_neighbor, linear) | rbf |
--metpy-radius |
Raio de busca em metros | 100000 |
--metpy-neighbors |
Número mínimo de vizinhos | 1 |
--metpy-gamma |
Parâmetro gamma para Barnes | 0.25 |
--metpy-kappa-star |
Parâmetro kappa_star para Barnes | 5.052 |
--rbf-func |
Função RBF para interpolação (multiquadric, inverse, gaussian, linear, cubic, quintic, thin_plate) | linear |
--rbf-smooth |
Fator de suavização para RBF | 0.1 |
A biblioteca suporta os seguintes formatos de saída (configurados com -file_type):
- csv - Arquivo CSV com dados pontuais
- netcdf - Arquivo NetCDF com dados interpolados em grade (requer
-grid) - geojson - Arquivo GeoJSON com pontos georreferenciados
- gpkg - Arquivo GeoPackage com pontos georreferenciados
- shapefile - Arquivo Shapefile ESRI com pontos georreferenciados
# Interpolação MetPy com RBF (alta resolução)
python -m metdown -t "2023-07-15 12:00:00" -o ./output -lat_min -10 -lat_max 10 -lon_min -70 -lon_max -45 -grid 0.1 0.1 -i metpy --metpy-interp rbf --metpy-radius 50000
# Exportar como shapefile
python -m metdown -t "2023-01-01 00:00:00" -o ./output -lat_min -45 -lat_max 13 -lon_min -82 -lon_max -30 -file_type shapefileBash:
for hour in 00 06 12 18; do
python -m metdown -t "2023-01-01 $hour:00:00" -o ./output -grid 0.5 0.5 -file_type netcdf
donePowerShell:
@("00", "06", "12", "18") | ForEach-Object {
python -m metdown -t "2023-01-01 $_:00:00" -o ./output -grid 0.5 0.5 -file_type netcdf
}A biblioteca processa as seguintes variáveis:
| Variável | Unidade | Limites Padrão |
|---|---|---|
| Pressure | Pa | 0-100000 |
| Height | m | 0-5000 |
| Temperature | K | 270-300 |
| Dew point | K | 0-400 |
| Wind speed | m/s | 0-100 |
| Wind direction | deg | 0-360 |
| Wind U | m/s | -100-100 |
| Wind V | m/s | -100-100 |
| Relative humidity | % | 0-100 |
| Thickness | m | 0-10000 |
| Precip | mm | 0-1000 |
Os arquivos NetCDF gerados incluem:
- Dimensões: latitude, longitude, tempo (se dados agregados)
- Variáveis: todas as variáveis meteorológicas disponíveis
- Atributos: unidades, descrição, limites válidos, método de interpolação
- Metadados: fonte dos dados, data de criação, autor
Exemplo de estrutura:
Dimensions:
- lat: XX
- lon: YY
- time: Z (opcional)
Variables:
- TEMPERATURE (K)
- PRESSURE (Pa)
- ...
Os formatos GeoJSON, GeoPackage e Shapefile incluem:
- Geometria do tipo ponto para cada observação
- Tabela de atributos com todas as variáveis meteorológicas
- Coordenadas em WGS84 (EPSG:4326)
A biblioteca oferece quatro métodos principais de interpolação:
- linear - Interpolação linear (triangulação Delaunay)
- cubic - Interpolação cúbica para superfícies mais suaves
- nearest - Vizinho mais próximo para manter valores originais
- metpy - Métodos meteorológicos específicos:
- rbf - Funções de base radial (várias opções)
- cressman - Método de Cressman para análise meteorológica
- barnes - Método de Barnes para análise sinótica
- natural_neighbor - Interpolação por vizinhos naturais
Para dados meteorológicos, recomenda-se o uso de -i metpy combinado com o parâmetro --metpy-interp apropriado.
Arquivo não existe: https://data.rda.ucar.edu/ds461.0/little_r/...
Solução: Apenas horários sinóticos (00:00, 06:00, 12:00, 18:00 UTC) estão disponíveis. Verifique o horário informado.
Erro de compatibilidade SQLite/GDAL ao salvar GPKG: undefined symbol: sqlite3_total_changes64
Solução: Há uma incompatibilidade entre as versões de SQLite e GDAL. A biblioteca tenta automaticamente salvar em GeoJSON como alternativa.
Aviso: MetPy não está instalado. Para usar interpolação meteorológica avançada, instale com: pip install metpy
Solução: Instale MetPy conforme indicado: pip install metpy
Nenhuma variável pôde ser interpolada com sucesso
Solução: Verifique se existem dados na região e horário selecionados. Tente expandir os limites geográficos ou escolher outro horário.
- Horários disponíveis: Apenas 00:00, 06:00, 12:00 e 18:00 UTC
- Memória: Áreas muito grandes ou resoluções muito altas podem causar problemas de memória
- Interpolação: Regiões com poucos pontos podem gerar artefatos na interpolação
- Internet: Necessária conexão estável para download dos dados
Os dados processados pela biblioteca podem ser facilmente utilizados em:
- Python: Análises com xarray, pandas, matplotlib
- GIS: Importação em QGIS, ArcGIS, gvSIG
- Meteorologia: Modelos numéricos, validação de previsões
- Visualização: Dashboards com PyViz, Matplotlib, Plotly
Neto, H. (2024). metdown: Processamento de Dados Little-R da UCAR.
Email: [email protected]
NCAR/UCAR Research Data Archive. Integrated Global Radiosonde Archive (IGRA) and Other Upper-Air Data.
Dataset ID: ds461.0. Disponível em: https://rda.ucar.edu/datasets/d461000/
Os dados meteorológicos utilizados neste trabalho foram obtidos do NCAR/UCAR Research Data Archive
(RDA) dataset ds461.0 (https://rda.ucar.edu/datasets/d461000/) e processados utilizando a biblioteca
metdown (Neto, H., 2024).
Este código é disponibilizado para uso acadêmico e de pesquisa.
Para questões, sugestões ou contribuições: Helvecio Neto - [email protected]