<div dir="ltr"><div class="gmail_default" style="font-family:times new roman,serif"><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Pessoal</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Bom Dia!</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Estou com uma demanda aqui e não estou consigo enxergar onde estou errando. </div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Preciso comparar 2 rasterbricks usando a função de dissimilaridade
CorDistance do pacote TSdist.</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">No entanto ela não funciona com NA's. </div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Eu tentei remover ou ignorar os NA's sem sucesso.</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Alguém poderia me dar uma luz sobre como proceder?</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Abaixo está uma cópia do código que estou trabalhando.</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Saudações,</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">Jackson</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">###################</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">library(raster)<br>library(TSdist)<br><br>set.seed(12)<br>r <- raster(nrow=10, ncol=10)<br>s <- lapply(1:200, function(i) setValues(r, rnorm(ncell(r),<br> <a href="http://sample.int/" target="_blank">sample.int</a>(5,1), 0.5)))<br>s <- stack(s)<br>s[s < 0] <- NA<br>s2<-s^2<br><br># Visualizando que alguns pixels são NA<br>hasna <- stackApply(s, indices = 1, fun = function(x, na.rm){anyNA(x)})<br>hasna2 <- stackApply(s2, indices = 1, fun = function(x, na.rm){anyNA(x)})<br><br>par(mfrow=c(1,2))<br>plot(hasna);plot(hasna2)<br><br># CorDistancenão funciona com NA<br>CorDistance(as.vector(s[1]),as.vector(s2[1]))<br>[1] 0.2192382<br><br>CorDistance(as.vector(s[2]),as.vector(s2[2]))<br><simpleError in .common.ts.sanity.check(x): NA in the series><br> [1] NA<br><br>fun <- function(x,y){<br> out <- ifelse(anyNA(x) | anyNA(y), #Preciso resolver esta questão<br> yes = NA,<br> no = unname(CorDistance(x,y)))<br> return(out)<br>}<br><br># Aqui funciona<br>fun(as.vector(s[1]),as.vector(s2[1]))<br>[1] 0.2192382<br><br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif"># Aqui não funciona</div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">fun(as.vector(s[2]),as.vector(s2[2]))<br>[1] NA<br><br>new_s1 <- fun(s,s2)<br><simpleError in if (any(<a href="http://is.na/" target="_blank">is.na</a>(x))) { stop("NA in the series")}:<br> argument is not interpretable as logical><br><br># Veja que não funciona com calc<br>new_s2 <- calc(s,s2, fun = fun)<br>Error in .calcTest(x[1:5], fun, na.rm, forcefun, forceapply) :<br> cannot use this function<br><br>plot(s_out)<br></div><div class="gmail_default" style="font-family:Arial,Helvetica,sans-serif">#############</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p style="margin:0cm 0cm 0.0001pt;background-image:initial;background-position:initial;background-repeat:initial"><span style="font-family:Arial,sans-serif"><font size="2">Jackson M. Rodrigues</font></span></p><p style="margin:0cm 0cm 0.0001pt;background-image:initial;background-position:initial;background-repeat:initial"><br></p></div></div></div></div></div></div></div></div></div></div></div>