[R-br] loops no R

Cleber N.Borges klebyn em yahoo.com.br
Sexta Março 30 12:05:07 BRT 2012


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 em hotmail.com 
>> <mailto:hghazin em 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
>>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120330/a121ce4f/attachment.html>


Mais detalhes sobre a lista de discussão R-br