como demorei demais, imagino que já deve ter solucionado, mas em
caso contrario
fica alguns comandos para inspirar a solução do problema
########################################################
# tente pegar a lista de arquivos com o comando dir
#arqs <- dir(pattern='*.hdf')
arqs <- c("S20040012004031.hdf", "S20040322004060.hdf")
# d1 <- as.numeric(gsub( 'S2004(...)2004(...)\\.hdf','\\1',
arqs[2] ))
d2 <- as.numeric(gsub( 'S2004(...)2004(...)\\.hdf','\\2',
arqs[2] ))
# descobre qual é o mês correspondente (em numero de 1 a 12)
mes_number <- table((d2 - 30*(1:12)+5>0))[2], sep='')
nome <- paste('mes', '04', sprintf("%02.0f", mes_number),
sep='')
assign( nome, 'alguma coisa a ser salva' )
########################################################
qualquer duvido, escreva com mais detalhes
t+
cleber
Em 30/03/2012 10:51, Humberto Hazin escreveu:
Bom dia Benilton,
Obrigado por responder!
É o seguinte quando baixo a imagem ela já vem com esse número todo
(S20040322004060) onde S=seawifs, em seguida vem o ano 2004032
2004060 significa o periodo da coleta do satélite ou seja 032-60
dias de 2004, ou seja mes 2. Assim para o outro arquivo
S20040012004031 001-31 dias de 2004 ou seja mes 1
Esse arquivos estão em hdf4 porém preciso converter para hdf5 para
poder trabalhar! Então criei uma função no R (hdf4to5) para para
ler um executavel de um programa
(H4H5TOOLS-2.2.1-win764-vs10static) em segundo plano para esse
fim! Uso o pacote Satin para ler o arquivo convertido em hdf5 e
fazer as extrações da área que quero ter esses dados
"satinGet("S20040012004031.hdf5",lats=c(10, -30), lons=c(-20,
-50), itype="oceancolor")" como preciso de quadrantes de 1x1 grau
uso a função "simplifySat(m0401, extent=1)" em seguida criei uma
função no R "extract(m0401)" para extrair tudo em coluna Lat,
Long, Parametro...
hdf4to5("S20040012004031.hdf");m0401 <-
satinGet("S20040012004031.hdf5",lats=c(10, -30), lons=c(-20, -50),
itype="oceancolor")
m0401<-(simplifySat(m0401,
extent=1));m0401<-extract(m0401);m0401<-data.frame(m0401);m0401$mes<-1;
m0401$year<-2004
hdf4to5("S20040322004060.hdf");m0402 <-
satinGet("S20040322004060.hdf5",lats=c(10, -30), lons=c(-20, -50),
itype="oceancolor")
m0402<-(simplifySat(m0402,
extent=1));m0402<-extract(m0402);m0402<-data.frame(m0402);m0402$mes<-2;
m0402$year<-2004
Eu não sei se ficou mais claro agora!
Humberto
Em 3/29/2012 9:25 PM, Benilton Carvalho escreveu:
Sim, alguem pode te ajudar... mas depende muito de
vc ajudar o alguem primeiro.... Qual o truque para sair
de S20040322004060 para "mes 2"? (minha bola de cristal diz que
o ano corresponde aos 4 primeiros digitos apos S, mas isso eh
soh uma hipotese, jah que vc nao disse explicitamente)
b
2012/3/29 Humberto Hazin
<hghazin@hotmail.com>
Prezados,
Venho mais uma vez pedir ajuda a voces para resolver um
problema!
baixei uma série de images de satelite, por ano e mes
(2004 a 2010) totalizando 163 arquivos ate ai tudo bem!
Por termos de comodidade gostaria de criar um loop para
nao ter que digitar essas 163 linhas ou mais para extrair
latitude, longitude e SST. conforme o codigo abaixo:
hdf4to5("S20040012004031.hdf");m0401 <-
satinGet("S20040012004031.hdf5",lats=c(10, -30),
lons=c(-20, -50), itype="oceancolor")
m0401<-(simplifySat(m0401,
extent=1));m0401<-extract(m0401);m0401<-data.frame(m0401);m0401$mes<-1;
m0401$year<-2004
hdf4to5("S20040322004060.hdf");m0402 <-
satinGet("S20040322004060.hdf5",lats=c(10, -30),
lons=c(-20, -50), itype="oceancolor")
m0402<-(simplifySat(m0402,
extent=1));m0402<-extract(m0402);m0402<-data.frame(m0402);m0402$mes<-2;
m0402$year<-2004
Alguem poderia me ajudar!
Nao coloquei o arquivo pois é muito grande quase 36gigas
porém caso precisem posso colocar o parte do codigo para
baixarem um ou mais arquivos e testarem
Humberto