[R-br] Como listar arquivos faltantes usando R
Elias Teixeira Krainski
eliaskrainski em yahoo.com.br
Terça Março 19 19:38:33 BRT 2013
E a partir do vetor retornado pelo dir,
substr() quebra string nas posicoes
especificadas e o resultado e' tabulado.
## CMR:
a <- c("MCD12Q1.A2001.h10v08.hdf", "MCD12Q1.A2001.h10v09.hdf",
"MCD12Q1.A2001.h10v10.hdf", "MCD12Q1.A2001.h10v11.hdf",
"MCD12Q1.A2001.h11v08.hdf", "MCD12Q1.A2001.h11v09.hdf")
table(substr(a, 10, 13))
table(substr(a, 16, 17))
table(substr(a, 10, 13), substr(a, 16, 17))
On Tue, 2013-03-19 at 19:16 -0300, Leandro Marino wrote:
> Thiago
>
> A função dir lista todos os arquivos de um diretório. Logo vc pode
> montar um vetor com os nomes de todos os arquivos e chegar com o
> dir(). O que estiver no primeiro e não estiver no segundo é o que você
> precisa baixar
>
> Enviado de um dispositivo móvel.
> Sent from a mobile device.
>
> Em 19/03/2013 18:51, "Thiago V. dos Santos" <thi_veloso em yahoo.com.br>
> escreveu:
> Elias,
>
> Obrigado pela dica, mas... Você poderia elaborá-la, por favor?
>
> Obrigado,
> Thiago.
>
>
> ----- Original Message -----
> From: Elias Teixeira Krainski <eliaskrainski em yahoo.com.br>
> To: r-br em listas.c3sl.ufpr.br
> Cc:
> Sent: Tuesday, March 19, 2013 4:07 PM
> Subject: Re: [R-br] Como listar arquivos faltantes usando R
>
> Em problema similar ao seu eu faço uma tabela
> em R com ano nas linhas e meses nas colunas
>
> Exemplo (no seu caso nao sei a posicao de mes):
> a <- dir('diretorioDosArquivos')
> table(substr(a, 10, 13)) ### anos
>
>
>
> On Tue, 2013-03-19 at 13:53 -0700, Thiago V. dos Santos wrote:
> > Olá pessoal,
> >
> > Baixei centenas de imagens de satélite e agora devo conferir
> se tenho todas que realmente vou precisar. A nomenclatura das
> imagens segue o padrão:
> >
> > MCD12Q1.A2001.h10v08.hdf
> > MCD12Q1.A2001.h10v09.hdf
> >
> > MCD12Q1.A2001.h10v10.hdf
> >
> > MCD12Q1.A2001.h10v11.hdf
> >
> >
> > MCD12Q1.A2001.h11v08.hdf
> >
> > MCD12Q1.A2001.h11v09.hdf
> >
> > MCD12Q1.A2001.h11v10.hdf
> >
> > MCD12Q1.A2001.h11v11.hdf
> >
> > MCD12Q1.A2001.h11v12.hdf
> >
> > MCD12Q1.A2001.h11v13.hdf
> >
> > e assim por diante
> >
> > onde 2001 é o ano e vai de 2001 a 2011.
> > h10 é um componente horizontal da imagem e vai de a 10 a 14.
> > v08 é um componente vertical da imagem e vai de a 08 a 13.
> >
> > O que preciso fazer é o seguinte: varrer uma lista de todas
> as imagens possíveis, que vão de 2001 a 2011, h10 a h14 e v08
> a v13, e testar se tem alguma que está faltando. Para isso eu
> uso a função "file.exists" dentro de três loops: "ano", "h" e
> "v".
> >
> > No final da mensagem estou colando o código que usei para
> fazer isso. Ele até funciona, mas não salva a lista inteira, e
> sim somente o último nome. Estou fazendo alguma coisa errada
> no loop. Acredito também que fazer três loops não é a maneira
> mais otimizada de fazer isso, porém foi a primeira que veio na
> minha cabeça.
> >
> > Alguém pode ajudar, criticando o código?
> >
> > Obrigado desde já,
> > Thiago.
> >
> >
> >
> ##################################################################
> > # Gather all files
> > dir <- ('/Users/dossa013/data/MODIS/MCD12Q1/original')
> > files <- list.files(dir, pattern='hdf', full.names=T)
> >
> > # Set beginning and ending years
> > byear <- 2001
> > eyear <- 2011
> >
> > # Set tiles
> > h1 <- 10
> > h2 <- 14
> > v1 <- 08
> > v2 <- 13
> >
> > # Loop over year and then over tiles
> > for (x in byear:eyear) {
> > for (y in h1:h2) {
> > for (z in v1:v2) {
> > name <-
> paste('/Users/dossa013/data/MODIS/MCD12Q1/original/MCD12Q1.A',x,'.h',y,'v',z,'.hdf', sep='')
> > if (file.exists(name)==F)
> >
> > missing <- name
> >
> > } # end of v
> > } # end of h
> > } # end of year
> > > missing
> > [1]
> "/Users/dossa013/data/MODIS/MCD12Q1/original/MCD12Q1.A2011.h14v9.hdf"
> > _______________________________________________
> > R-br mailing list
> > R-br em listas.c3sl.ufpr.br
> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
> forneça código mínimo reproduzível.
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
> forneça código mínimo reproduzível.
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
> forneça código mínimo reproduzível.
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
Mais detalhes sobre a lista de discussão R-br