Estoy tratando de traducir el siguiente JavaScript a R pero tengo problemas:
/* Author of the script: Carlos Bentes */ // Normalized Difference Vegetation Index var ndvi = (B08-B04)/(B08+B04); // Threshold for vegetation var veg_th = 0.4; // Simple RGB var R = 2.5*B04; var G = 2.5*B03; var B = 2.5*B02; // Transform to Black and White var Y = 0.2*R + 0.7*G + 0.1*B; var pixel = [Y, Y, Y]; // Change vegetation color if(ndvi >= veg_th) pixel = [0.1*Y, 1.8*Y, 0.1*Y]; return pixel;Este es el Green City Index, que forma parte deldepósito de scripts personalizados que se pueden utilizar con los servicios de Sentinel-Hub.
Específicamente estoy teniendo problemas con:
var pixel = [Y, Y, Y];Y
if(ndvi >= veg_th) pixel = [0.1*Y, 1.8*Y, 0.1*Y]; return pixel; Creo que var pixel = [Y, Y, Y]; es lo mismo que pixel <- c(Y, Y, Y) ? Lo que significa que en la declaración if tendría:
if(ndvi >= veg_th){ pixel <- c(0.1*Y, 1.8*Y, 0.1*Y) return(pixel) }Pero estoy recibiendo un error:
Error en
if (ndvi >= veg_th) {: el argumento no se puede interpretar como lógico
Algunas notas sobre las partes que entiendo para aquellos que no están familiarizados con Sentinel:
B04 y B08 son bandas de trama de Sentinel, por lo quendvi es un ráster (índice de vegetación de diferencia normalizada)veg_th es un valor establecido como umbral para interpretar los resultados de ndviR , G y B están creando una composición de color a partir de los rásteres centinela