
Alexandre, A melhor forma de você atacar esse problema é usar as facilidades de depuração do R:
?debug
para ver a documentação do depurador padrão. Um tutorialzinho sobre seu uso pode ser encontrado aqui: http://www.biostat.jhsph.edu/~rpeng/docs/R-debug-tools.pdf HTH -- Cesar Rabak 2015-12-15 18:47 GMT-02:00 ASANTOS <alexandresantosbr@yahoo.com.br>:
Caros Listeiros,
Estou tentando criar uma função abaixo para converter um SpatialGridDataFrame originado de uma imagem de satélite para reflectância, mas a função que eu criei (radconvL()) pelo excesso de else if não esta funcionando. Meu problema é que não dá erro, o que normalmente ajuda a detectar o problema, mas no meu caso a função nem funciona, segue meu CRM abaixo, alguém poderia me ajudar?
require(raster) require(sp)
# RasterLayer inventado r <- raster(nrows=10, ncols=10) r <- setValues(r, 1:ncell(r)) plot(r)
band2<- as(r, 'SpatialGridDataFrame') ### transforma em SpatialGridDataFrame
##Função para conversão DN para reflectância radconvL<-function(x, band = 2) { BAND <- c("2", "3", "4", "5") band <- pmatch(band, BAND) Lmin = 0 Qmax = 127
if (is.na(band)) stop("invalid band")
if (band == 2) { Lmax = 120.64 results <- x x <- as.vector(as.matrix(x)) x <- Lmin + ((Lmax-Lmin)*x)/Qmax if (class(results) == "SpatialGridDataFrame") results@data[, 1] <- x else if (is.data.frame(x)) results <- data.frame(matrix(x, nrow = nrow(results), ncol = ncol(results))) else results <- x results } else if (band == 3) { Lmax = 151.31 results <- x x <- as.vector(as.matrix(x)) x <- Lmin + ((Lmax-Lmin)*x)/Qmax if (class(results) == "SpatialGridDataFrame") results@data[, 1] <- x else if (is.data.frame(x)) results <- data.frame(matrix(x, nrow = nrow(results), ncol = ncol(results))) else results <- x results } else if (band == 4) { Lmax = 157.57 results <- x x <- as.vector(as.matrix(x)) x <- Lmin + ((Lmax-Lmin)*x)/Qmax if (class(results) == "SpatialGridDataFrame") results@data[, 1] <- x else if (is.data.frame(x)) results <- data.frame(matrix(x, nrow = nrow(results), ncol = ncol(results))) else results <- x results } else if(band == 5) { Lmax = 69.03 results <- x x <- as.vector(as.matrix(x)) x <- Lmin + ((Lmax-Lmin)*x)/Qmax if (class(results) == "SpatialGridDataFrame") results@data[, 1] <- x else if (is.data.frame(x)) results <- data.frame(matrix(x, nrow = nrow(results), ncol = ncol(results))) else results <- x results } } ###### teste<-radconvL(band2, band=2) ## Aqui não funciona e não sei porque teste
Muito 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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ R-br mailing list R-br@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 fornea cdigo mnimo reproduzvel.