[R-br] Extração de coordenadas e tempo em múltiplas imagens

Tito Conte tito.conte em gmail.com
Quinta Dezembro 5 11:38:12 BRST 2013


Alexandre,

Fiz isso para imagens de satélite

O procedimento que usei para criar o laço foi com um array de 3 dimensões,
onde as duas primeiras eram o x e o y e coloquei um matriz "a traz" da
outra como se fosse construindo um cubo então tinha um objeto com x,y e t .
O registro do nome de cada figura, eu armazenei em um vetor

Pra ser sincero, não entendi muito bem sua rotina pois não domino algumas
das funções que vc usou mesmo assim mando um exemplo do que fiz, que espero
que te ajude.

# carregar os arquivos de interesse no diretorio
my.dir = dir("/home/tito/tcc/tau",pattern=".nc",full.names=T)

# criar a variável nula do array para não dar problema
TAU =NULL

# loop para ler cada um dos arquivos
for(arquivo in my.dir){

# carregar o arquivo pelo nome
nc = open.ncdf(arquivo)

# extrair variavel de tau em x
taux = get.var.ncdf(arquivo,"x")

# armazenar a variavel em um array segundo as dimenções e o numero da
figura e de acordo com o nome do arquivo
TAU =
array(c(TAU,taux),dim=c(nrow(taux),ncol(tauy),which(my.dir==arquivo))))

}

Espero ter ajudado











Tito Conte



2013/12/4 ASANTOS <alexandresantosbr em yahoo.com.br>

> Caros Membros,
>
>         Estou precisando de ajuda para criar um laço para extrair as
> coordenadas e o tempo (no nome do arquivo) em múltiplas figuras. No meu
> exemplo abaixo e usando apenas a figura 1, tenho uma regiões de pixels de
> interesse em branco e o nome da figura Fig1-0_00_00.png, preciso das
> coordenadas x e y das regiões em branco (Valor digital = 0), representado
> pelo objeto fig.data.pix e juntei ao tempo que é 0:00:00, pois o nome da
> Figura é 0_00_00. Conforme CRM abaixo, fazendo figura por figura esta OK,
> mas gostaria de fazer um laço para extrair essas informações das três
> figuras abaixo e armazená-las em um único objeto, alguém teria alguma
> sugestão?
>
>
>
> #-----------------------------------------------------------
> --------------------
> # Rotina para extração de coordenadas e tempo em imagens
> #-----------------------------------------------------------
> --------------------
>
> # Abertura das imagens
>
> require(RCurl)
>
> #Figura 1 ------------------------------------------------------------
> ----------
> get.dropbox <- function(file, token) {
>          require(RCurl, quietly=TRUE)
>          bin <- getBinaryURL(paste0("https://www.dropbox.com/s/
> 8b99gn9ve1yo7is/Fig1-0_00_00.png", token, "/", file),
>          ssl.verifypeer = FALSE)
>          con <- file(file, open = "wb")
>          writeBin(bin, con)
>          close(con)
>          message(noquote(paste(file, "read into", getwd())))
>     }
> #
> get.dropbox("Fig1-0_00_00.png", "Fig1-0_00_00.png")
>
> #Figura 2 ------------------------------------------------------------
> ----------
> get.dropbox <- function(file, token) {
>          require(RCurl, quietly=TRUE)
>          bin <- getBinaryURL(paste0("https://www.dropbox.com/s/
> 8b99gn9ve1yo7is/Fig2-0_20_00.png", token, "/", file),
>          ssl.verifypeer = FALSE)
>          con <- file(file, open = "wb")
>          writeBin(bin, con)
>          close(con)
>          message(noquote(paste(file, "read into", getwd())))
>     }
> #
> get.dropbox("Fig2-0_20_00.png", "Fig2-0_20_00.png")
>
> #Figura 3 ------------------------------------------------------------
> ---------
> get.dropbox <- function(file, token) {
>          require(RCurl, quietly=TRUE)
>          bin <- getBinaryURL(paste0("https://www.dropbox.com/s/
> bo6gbt3ca6xwxm0/Fig3-0_40_00.png", token, "/", file),
>          ssl.verifypeer = FALSE)
>          con <- file(file, open = "wb")
>          writeBin(bin, con)
>          close(con)
>          message(noquote(paste(file, "read into", getwd())))
>     }
> #
> get.dropbox("Fig3-0_40_00.png", "Fig3-0_40_00.png")
>
> # Extraido as coordenadas dos pixels para figura 1
> -----------------------------
>
> require(raster)
> r <- raster("Fig1-0_00_00.png")
> image(r)
> r2<-as.data.frame(r)
>
> # Cria as coordenadas ------------------------------
> ----------------------------
> grid0 <- expand.grid(x=seq(0,length.out=r em nrows),
>                      y=seq(0,length.out=r em ncols))
>
> # Coordenadas + valor dos pixels
>
> fig.data<-cbind(grid0,r2)
>
> # Região de interesse - Número digital = 0
>
> fig.data.pix<-fig.data[fig.data[,3]==0,]
>
> # Extrai o tempo do nome do arquivo
> tempo2<-r em data@names
> tempo1<-gsub("Fig1.", "", tempo2)
> tempo<-gsub("_", ":", tempo1)
>
> # Cria o arquivo final
>
> dados<-cbind(fig.data.pix[,1:2],rep(tempo))
>
> head(dados)
>
> #-----------------------------------------------------------
> --------------------
>
> Obrigado,
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
> e-mails:alexandresantosbr em yahoo.com.br
>         alexandre.santos em cas.ifmt.edu.br
> Lattes: http://lattes.cnpq.br/1360403201088680
> ======================================================================
>
> _______________________________________________
> 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20131205/faa761e9/attachment.html>


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