Obrigado Thiago, mas isso eu havia recebido, mas não entendi porque ele não lê band=2, mas lê band=3, band=4 e band=5!!!!


Caros Listeiros,

      A um mês atrás eu consegui criar a função abaixo com a ajuda de vocês, no entanto, descobri que ela funciona quando seleciono band=3, 4 ou 5, mas para band=2 que é a primeira condição da função não funciona (Error in radconvL(band2, band = 2) : object 'Lmax' not found ), alguém poderia me ajudar?

Segue CRM:

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 radiância - LISS III ---------------------------
radconvL<-function(x, band = 2)
{
     BAND <- c("2", "3", "4", "5")
     band <- pmatch(band, BAND)

     if (is.na(band))
         stop("invalid band")

     Lmin = 0
     Qmax = 127
     x <- as.vector(as.matrix(x))
     results <- x

     if(band == 2) {
     Lmax <- 120.64
     } else if(band == 3) {
     Lmax <- 151.31
     } else if(band == 4) {
     Lmax <- 157.57
     } else if(band == 5) {
     Lmax <- 69.03
     }


     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
}
######--

teste2<-radconvL(band2, band = 2)
teste2

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
OrcID: orcid.org/0000-0001-8232-6722 
Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10                       
LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
======================================================================
Em 03/02/2016 17:10, Thiago Serafim escreveu:
Lendo a mensagem de erro, vemos que Lmax não foi definido.
Olhando seu programa, Lmax só é definido quando band é 2, ou 3, ou 4 ou 5.
Conclui-se que, na sua chamada de função,  band não é igual a nenhum desses valores.

Quando a linha  x <- Lmin + ((Lmax-Lmin)*x)/Qmax é executada, acontece o erro.


2016-02-03 17:44 GMT-02:00 ASANTOS <alexandresantosbr@yahoo.com.br>:
Caros Listeiros,

      A um mês atrás eu consegui criar a função abaixo com a ajuda de vocês, no entanto, descobri que ela funciona quando seleciono band=3, 4 ou 5, mas para band=2 que é a primeira condição da função não funciona (Error in radconvL(band2, band = 2) : object 'Lmax' not found ), alguém poderia me ajudar?

Segue CRM:

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 radiância - LISS III ---------------------------
radconvL<-function(x, band = 2)
{
     BAND <- c("2", "3", "4", "5")
     band <- pmatch(band, BAND)

     if (is.na(band))
         stop("invalid band")

     Lmin = 0
     Qmax = 127
     x <- as.vector(as.matrix(x))
     results <- x

     if(band == 2) {
     Lmax <- 120.64
     } else if(band == 3) {
     Lmax <- 151.31
     } else if(band == 4) {
     Lmax <- 157.57
     } else if(band == 5) {
     Lmax <- 69.03
     }


     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
}
######--

teste2<-radconvL(band2, band = 2)
teste2

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
OrcID: orcid.org/0000-0001-8232-6722 
Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10                       
LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
======================================================================
Em 28/12/2015 16:22, ASANTOS escreveu:
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 radiância - LISS III ---------------------------
radconvL<-function(x, band = 2)
{
     BAND <- c("2", "3", "4", "5")
     band <- pmatch(band, BAND)

     if (is.na(band))
         stop("invalid band")

     Lmin = 0
     Qmax = 127
     x <- as.vector(as.matrix(x))
     results <- x

     if(band == 2) {
     Lmax <- 120.64
     } else if(band == 3) {
     Lmax <- 151.31
     } else if(band == 4) {
     Lmax <- 157.57
     } else if(band == 5) {
     Lmax <- 69.03
     }


     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 = 4)
teste


_______________________________________________
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 forneça código mínimo reproduzível.



_______________________________________________
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 forne�a c�digo m�nimo reproduz�vel.