<div dir="ltr">Alexandre,<div><br></div><div>A melhor forma de você atacar esse problema é usar as facilidades de depuração do R:</div><div><br></div><div>> ?debug</div><div><br></div><div>para ver a documentação do depurador padrão.</div><div><br></div><div>Um tutorialzinho sobre seu uso pode ser encontrado aqui: <a href="http://www.biostat.jhsph.edu/~rpeng/docs/R-debug-tools.pdf">http://www.biostat.jhsph.edu/~rpeng/docs/R-debug-tools.pdf</a><br><br>HTH</div><div>--</div><div>Cesar Rabak</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-15 18:47 GMT-02:00 ASANTOS <span dir="ltr"><<a href="mailto:alexandresantosbr@yahoo.com.br" target="_blank">alexandresantosbr@yahoo.com.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Caros Listeiros,<br>
<br>
<br>
         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?<br>
<br>
require(raster)<br>
require(sp)<br>
<br>
# RasterLayer inventado<br>
r <- raster(nrows=10, ncols=10)<br>
r <- setValues(r, 1:ncell(r))<br>
plot(r)<br>
<br>
band2<- as(r, 'SpatialGridDataFrame')  ### transforma em SpatialGridDataFrame<br>
<br>
<br>
<br>
##Função para conversão DN para reflectância<br>
radconvL<-function(x, band = 2)<br>
{<br>
    BAND <- c("2", "3", "4", "5")<br>
    band <- pmatch(band, BAND)<br>
    Lmin = 0<br>
    Qmax = 127<br>
<br>
    if (<a href="http://is.na" rel="noreferrer" target="_blank">is.na</a>(band))<br>
        stop("invalid band")<br>
<br>
    if (band == 2) {<br>
    Lmax = 120.64<br>
    results <- x<br>
    x <- as.vector(as.matrix(x))<br>
    x <- Lmin + ((Lmax-Lmin)*x)/Qmax<br>
    if (class(results) == "SpatialGridDataFrame")<br>
        results@data[, 1] <- x<br>
    else if (is.data.frame(x))<br>
        results <- data.frame(matrix(x, nrow = nrow(results),<br>
            ncol = ncol(results)))<br>
    else results <- x<br>
    results<br>
    }<br>
    else if (band == 3) {<br>
    Lmax = 151.31<br>
    results <- x<br>
    x <- as.vector(as.matrix(x))<br>
    x <- Lmin + ((Lmax-Lmin)*x)/Qmax<br>
    if (class(results) == "SpatialGridDataFrame")<br>
        results@data[, 1] <- x<br>
    else if (is.data.frame(x))<br>
        results <- data.frame(matrix(x, nrow = nrow(results),<br>
            ncol = ncol(results)))<br>
    else results <- x<br>
    results<br>
    }<br>
    else if (band == 4) {<br>
    Lmax = 157.57<br>
    results <- x<br>
    x <- as.vector(as.matrix(x))<br>
    x <- Lmin + ((Lmax-Lmin)*x)/Qmax<br>
    if (class(results) == "SpatialGridDataFrame")<br>
        results@data[, 1] <- x<br>
    else if (is.data.frame(x))<br>
        results <- data.frame(matrix(x, nrow = nrow(results),<br>
            ncol = ncol(results)))<br>
    else results <- x<br>
    results<br>
    }<br>
    else if(band == 5) {<br>
    Lmax = 69.03<br>
    results <- x<br>
    x <- as.vector(as.matrix(x))<br>
    x <- Lmin + ((Lmax-Lmin)*x)/Qmax<br>
    if (class(results) == "SpatialGridDataFrame")<br>
        results@data[, 1] <- x<br>
    else if (is.data.frame(x))<br>
        results <- data.frame(matrix(x, nrow = nrow(results),<br>
            ncol = ncol(results)))<br>
    else results <- x<br>
    results<br>
    }<br>
}<br>
######<br>
teste<-radconvL(band2, band=2) ## Aqui não funciona e não sei porque<br>
teste<br>
<br>
<br>
Muito obrigado,<br>
<br>
-- <br>
======================================================================<br>
Alexandre dos Santos<br>
Proteção Florestal<br>
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso<br>
Campus Cáceres<br>
Caixa Postal 244<br>
Avenida dos Ramires, s/n<br>
Bairro: Distrito Industrial<br>
Cáceres - MT                      CEP: 78.200-000<br>
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)<br>
<a href="mailto:e-mails%3Aalexandresantosbr@yahoo.com.br" target="_blank">e-mails:alexandresantosbr@yahoo.com.br</a><br>
        <a href="mailto:alexandre.santos@cas.ifmt.edu.br" target="_blank">alexandre.santos@cas.ifmt.edu.br</a><br>
Lattes: <a href="http://lattes.cnpq.br/1360403201088680" rel="noreferrer" target="_blank">http://lattes.cnpq.br/1360403201088680</a><br>
======================================================================<br>
<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e fornea cdigo mnimo reproduzvel.</blockquote></div><br></div>