Gostaria de ajudar?
Mostrando postagens com marcador dados. Mostrar todas as postagens
Mostrando postagens com marcador dados. Mostrar todas as postagens

domingo, 23 de outubro de 2016

Formato de Dados Meteorológicos


Existe alguns tipos de dados que são facilmente encontrados no dia a dia dos estudos Meteorológicos, entre eles destacam-se: GRIB, netCDF e HDF. Duas características importante comuns a estes dados é que eles são portáteis e auto-descritivos. Portáteis pois podem ser manipulados em qualquer máquina (AMD, Intel, ...) e em qualquer sistema (Windows, Linux, ...). Auto-descritivos pois podem ser examinados e lidos por qualquer software (apropriado) sem que o usuário saiba detalhes estruturais do arquivo. Além disso, informações adicionais sobre os dados, chamada de “metadado (dado sobre dado)” pode ser incluída no arquivo. Metadados típicos podem incluir informações textuais sobre o conteúdo e sobre as unidades de cada variável (ex., “Temperatura” e "C") ou informações numéricas que descrevem as coordenadas (p.e., tempo, nível de altura, latitude e longitude) que se aplicam as variáveis.

O formato destes dados tem evoluído ao longo do tempo com o objetivo de atender as necessidades da comunidade científica e civil. Por isso, alguns formatos possuem várias versões anteriores. Infelizmente para as pessoas que utilizam estes dados, as versões mais recentes nem sempre são compatíveis com as versões anteriores, apesar de fazer parte do mesmo formato de dado (e com mesma nomenclatura). Esta característica tem gerado confusão e críticas por parte dos usuários, pois a cada versão lançada exige uma adaptação necessária.

Os dados mais conhecidos são:

GRIB1:          GRIdded Binary (Edition 1), World Meteorological Organization

GRIB2:          GRIdded Binary (Edition 2), World Meteorological Organization

netCDF3:       Network Common Data Form, (Version 3.x), Unidata (UCAR/NCAR)

netCDF4:       Network Common Data Format, (Version 4.x), Unidata (UCAR/NCAR

HDF4:            Hierarchical Data Format, (Version 4.x),  NCSA/NASA

HDF4-EOS2: HDF4-Earth Obseving System, (Version 2; georeferenced data)

HDF5:            Hierarchical Data Format, (Version 5.x),  NCSA/NASA

HDF5-EOS5: HDF5-Earth Obseving System, (Version 5; georeferenced data)

GeoTIFF:       Georeferenced raster imagery

Existe uma pequena diferença entre netCDF/HDF/HDF-EOS e GRIB, no caso do primeiro conjunto de dados estamos falando de formatos de arquivos de dados enquanto que no caso do GRIB é um formato específico de gravação de dados. Os tipos de arquivos netCDF/HDF/HDF-EOS são formatos de arquivos que possuem regras sobre o conteúdo de cada arquivo. Por exemplo, no caso dos arquivos NetCDF uma regra existente é que todos os nomes das variáveis devem ser exclusivas (isto é uma regra). No caso do HDF ele permite que multiplas variáveis possuam mesmo nome, porém as variáveis devem estar em diferentes “grupos” de variáveis. Esses “grupos” podem ser complicados, mas de forma simples pode ser comparado ao sistema de diretório do Linux (ou pastas do Windows). No caso dos dados tipo GRIB, cada registro do GRIB-1 (aka, 'message') contém informações para duas dimensões horizontais (p.e., Latitude e Longitude) para um tempo e um nível. Já os arquivos GRIB-2 permite que cada “registro” contenha várias grades e níveis para cada tempo. Portanto, um conjunto de “registros GRIB” é chamado de “arquivo GRIB”. Diferente dos arquivos netCDF/HDF/HDF-EOS os arquivos GRIB não possuem regras que determinem a ordem deste conjunto de “registros GRIB” (p.e., estes registros podem estar em ordem cronológica aleatório).

Um exemplo da estrutura de grupos que contém um arquivo HDF.


NetCDFType


Segue uma lista de exemplos de como ler e escrever estes tipos de dados utilizando o NCL.

Neste link você pode ver outro conjunto de scripts NCL para ler alguns dados específicos.

Mais detalhes:


  • netCDF
  • HDF
  • GRIB
  • Binary
  • Arquivo Texto (ASCII)


Fonte: NCAR.

Boa Sorte e Bom Trabalho a Todos!

segunda-feira, 11 de novembro de 2013

Script Download Dados ECMWF/ERA-Interin - Parte 1


Quando eu atualizei o link do "novo" servidor de download de dados da Reanalise do Era-Interim o Helber comentou de um script que possibilitava o download. Segue como fazer:

PS. Para entender os parâmetros e como modificá-los não esqueça de lê o segundo artigo (Script Download Dados ECMWF/ERA-Interim - Parte 2), link no final deste post.

O ECMWF está disponibilizando uma API (Aplication Programming Interface) nas linguagens (Python, Perl e Java) para acesso/download dos seus dados via script/terminal. É uma ferramenta extremamente útil para quem esta familiarizado com este tipo de sistema e não quer baixar os dados via site. Eu recomendo!

Eu irei tentar ensinar como usar a API desenvolvida em Python, escolha a linguagem que você melhor trabalha. Todas estas informações estão disponíveis no site da API no ECMWF.

Para instalar a biblioteca (ecmwfapi) você precisará primeiro instalar o programa pip.

O programa pip é uma excelente alternativa para instalar bibliotecas desenvolvidas em python de maneira fácil, através do terminal. Para instalar o pip no Ubuntu execute no terminal os seguintes comandos:

> sudo apt-get install python-pip python-dev build-essential 
> sudo pip install --upgrade pip 

Agora com o pip instalado execute no terminal: (tudo junto separado por espaço)

> sudo pip install https://software.ecmwf.int/wiki/download/attachments/23694554/ecmwf-api-client-python.tgz

Este comando irá instalar a biblioteca, você pode verificar ela instalada no diretório:

/usr/local/lib/python2.7/dist-packages/

Feito isso, agora você irá precisar criar a sua chave de acesso. Quando precisávamos baixar os dados da reanálise do ECMWF assim que escolhíamos os dados o site solicitava os dados pessoais (Nome a Instituição e o email), agora com essa API você gera uma chave, insere no script, e não precisará fazer esta autorização sempre que for baixar, agora ela feita automaticamente via API.

Para criar a chave você precisa se cadastrar no site:

http://apps.ecmwf.int/registration/

Um email de conformação será enviado com seu login e senha, confirme clicando no link. Ao fazer login na pagina abaixo será disponibilizado sua chave de acesso:

https://apps.ecmwf.int/auth/login/

Agora que sua chave já esta disponível é preciso criar um arquivo com o nome (.ecmwfapirc) no seu /home/usuario para o acesso ser automático, Obs: o nome do arquivo é .ecmwfapirc com (.) para ficar oculto e sem extensão.

Neste arquivo você irá inserir:

{
    "url"   : "https://api.ecmwf.int/v1",
    "key"   : "XXXXXXXXXXXXXXXXXXXXXX",
    "email" : "john.smith@example.com"
}

,onde vocé irá substituir XXXXXXXXXXXXXXXXXXXXXX pela sua chave e john.smith@example.com pelo email que você utilizou para efetuar o cadastro.

Feito isso você já pode baixar os dados. O ecmwf disponibiliza um script exemplo para teste. Portanto, crie um script em PYTHON e dentro dele insira as linhas: eu chamei o meu script de exemplo.py


#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer

server = ECMWFDataServer()

server.retrieve({
    'dataset' : "tigge",
    'step'    : "24/to/120/by/24",
    'number'  : "all",
    'levtype' : "sl",
    'date'    : "20071001/to/20071003",
    'time'    : "00/12",
    'origin'  : "all",
    'type'    : "pf",
    'param'   : "tp",
    'area'    : "70/-130/30/-60",
    'grid'    : "2/2",
    'target'  : "data.grib"
    })

Salve e dê permissão de execução:

> chmod +x exemplo.py 

Ao executar este script:

>./exemplo.py

Aparecerá uma série de informações no terminal sobre o sistema, dado e o andamento do Download.

Script Download Dados ECMWF/ERA-Interim - Parte 2

Boa Sorte e Bom Trabalho a Todos.

Script Download Dados ECMWF/ERA-Interin - Parte 2

Agora que já sabemos como instalar a API do ECMWF e já fizemos o teste do download vamos explicar o que cada parâmetro do script (exemplo.py) significa e principalmente se eu precisar baixar um dado onde devo modificar, o que modificar?

No script (exemplo.py) do post anterior:

#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer

server = ECMWFDataServer()

server.retrieve({
    'dataset' : "tigge",
    'step'    : "24/to/120/by/24",
    'number'  : "all",
    'levtype' : "sl",
    'date'    : "20071001/to/20071003",
    'time'    : "00/12",
    'origin'  : "all",
    'type'    : "pf",
    'param'   : "tp",
    'area'    : "70/-130/30/-60",
    'grid'    : "2/2",
    'target'  : "data.grib"
    })

dataset = servidor de dado. O ERA-interim se chama interim (independente se for superfície ou níveis de pressão);
step = time step. Neste exemplo tigge são dados de modelo;
number = número de arquivos;
levtype = nível: sl = surface level e pl = pressure level;
date = intevalo dos dados que você irá baixar;
time = pode ser 00, 06, 12, 18 horas;
origin = este parâmetro se refere ao tigge (qual modelo você irá baixar);
type = dado: an = análise e pf = previsão;
param = variável;
area = para os dados do tigge você pode escolher a área para os dados do ERA-Interim você baixa para o globo todo;
grid = espaçamento de grade;
target = nome do arquivo que será salvo. (Sempre com a extensão .grib o sistema ainda não possibilita baixar em outra extensão, mas esta em fase de construção baixar em Netcdf por exemplo);

Quando eu cheguei neste ponto eu decidi testar este script para baixar os dados de vento zonal para um determinado período e não consegui encontrar o nome exato para o param(variável) foi ai que encontrei esta informação diretamente no site do ECMWF.

Quando você for no site para download do ERA-Interim (aqui) escolha o período, nível (se for o caso), variável e etc exatamente como fazia anteriormente. No entanto, quando você for clicar para fazer o download (Retrieve Grib ou Retrieve Netcdf) você deverá clicar em Views the MARS request e as informações dos seus dados necessárias para você modificar o seu script aparecerão ai é só modificar e sair para o abraço.

Eu fiz um teste para os seguintes dados:

Eu primeiro escolhi no site Pressure Level;
Escolhi janeiro e fevereiro de 2013;
No Select time escolhi (00:00:00, 06:00:00, 12:00:00, 18:00:00)
No Select Level e parameter escolhi U component of wind e level 850
Depois cliquei em Views the MARS request e apareceu o seguinte:

request (desconsidere)

Estimated number of fields: 472 (desconsidere)

retrieve, (desconsidere)
levelist=850,
stream=oper,
levtype=pl,
param=131.128,
dataset=interim,
step=0,
grid=0.75/0.75,
time=00/06/12/18,
date=2013-01-01/to/2013-02-28,
type=an,
class=ei

E o meu script atualizado ficou assim:


#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer


server = ECMWFDataServer()

server.retrieve({
    'dataset' : "interim", (modificado)
    'step'    : "0", (modificado)
    'levelist' : "850", (inserido)
    'stream' : "oper", (inserido)
    'number'  : "all", (removi)
    'levtype' : "pl", (modificado)
    'date'    : "2013-01-01/to/2013-02-28", (modificado)
    'time'    : "00/06/12/18", (modificado)
    'origin'  : "all", (removi)
    'type'    : "an", (modificado)
    'class'    : "ei", (inserido)
    'param'   : "131.128", (modificado)
    'area'    : "70/-130/30/-60", (removi)
    'grid'    : "0.75/0.75", (modificado)
    'target'  : "uwnd.01012013.01022013.grib" (modificado)
    })

No levelist você pode inserir os níveis que precisar. Espero que tenham entendido e principalmente que funcione.

Boa Sorte e Bom Trabalho a Todos.

terça-feira, 2 de outubro de 2012

Lista de Links para Download de Dados Meteorológicos

Irei criar neste espaço uma lista de links/sites/ftp para downloads de dados meteorológicos. Sem mais delongas, segue:

PS. lembrando que com o tempo o link pode mudar, caso isto ocorra me avise.

Dados do GFS:

ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/

Precipitação CPC:

ftp://ftp.cpc.ncep.noaa.gov/precip/CPC_UNI_PRCP/GAUGE_GLB/RT/2012/

Temperatura de Superficie do Mar (TSM) Smith e Reynolds Versão 3:

ftp://ftp.ncdc.noaa.gov/pub/data/cmb/ersst/v3b/netcdf/

Dados de TSM do OPeNDAP (AVHRR)

readdods

GrADS*

ferret

matlab 

Dados Atmosféricos da Universidade de Washington (JISAO):

http://jisao.washington.edu/data/

Radiação de Onda Longa Interpolada/NCEP:

http://www.esrl.noaa.gov/psd/data/gridded/data.interp_OLR.html

Reanalise 1 NCEP:
http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html

Precipitação TRMM:

http://disc.sci.gsfc.nasa.gov/gesNews/version_7_tmpa-rt_release

Precipitação TRMM Tempo Real

ftp://trmmopen.gsfc.nasa.gov/pub/merged/3B42RT/

Precipitação CMAP:

http://www.esrl.noaa.gov/psd/data/gridded/data.cmap.html

Estações automáticas do INMET:

http://www.inmet.gov.br/sonabra/maps/automaticas.php

Era Interim Diário:

http://apps.ecmwf.int/datasets/data/interim-full-daily/

Reanalise 3 MERRA:

http://disc.sci.gsfc.nasa.gov/daac-bin/FTPSubset.pl

Dados de Temperatura de Superficie do Mar (TSM) de Alta Resolução (0.25º) Smitth e Reynolds Versão 2.

http://www.esrl.noaa.gov/psd/data/gridded/data.noaa.oisst.v2.highres.html

Dados de Previsão Temperatura de Superficie do Mar (TSM)

http://nomads.ncep.noaa.gov/pub/data/nccf/com/rtofs/prod/

Sugestões?

Boa Sorte e Bom Trabalho a Todos!