
BAND <- c("2", "3", "4", "5"); band = 2; pmatch(band, BAND) ?pmatch Value An integer vector (possibly including NA if nomatch = NA) of the same length asx, *giving the indices of the elements* in table which matched, or nomatch. alternativa: band <- as.integer(BAND[pmatch(band, BAND)]) 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.
-- ############################################################### ## Jônatan Dupont Tatsch ## Professor do Departamento de Física ## Coordenador Substituto do Programa de Pós-Graduação em Meteorologia (PPGMET) ## Centro de Ciências Exatas e Naturais (CCNE) ## Universidade Federal de Santa Maria - UFSM ## Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900 ## Telefone: +55(55)33012083 ## www.ufsm.br/meteorologia ###############################################################