1 votos

Error de capa: Image.rename: El número de nombres (2) debe coincidir con el número de bandas (12)

Estoy usando datos crudos de Landsat 9 y realizo alguna corrección topográfica antes, para el mapeo de la densidad del dosel, después de ingresar todas las bandas en la ecuación para FCD aparece un mensaje de error, que dice "Error de capa: Image.rename: El número de nombres (2) debe coincidir con el número de bandas (12)".

Aquí está el código que he usado:

https://code.earthengine.google.com/3ca63e3bbeda2d1fd66a076f1f3d3275

y la primera parte del código (línea 161) donde aparece el método de renombrar.

// Subconjunto del SWIR1 y IL. En el reductor de regresión,
// las variables independientes van primero seguidas de las variables dependientes.
// En este caso, IL es la variable independiente y
//  B6 (SWIR1) es la variable dependiente.
var imgRegress6 = illumination.select('slope')
  .addBands(ref.select('SR_B6'))
  .rename(['IL', 'l9_swir1']);

0voto

Yada Puntos 9489

Su código tiene 767 líneas (incluyendo comentarios) y creo que es demasiado largo para considerar todo. Por lo tanto, solo consideré depurar el primer tercio. Los problemas aparecen principalmente en bloques como el siguiente donde renombras de manera inapropiada.

// Subset the SWIR1 and IL. In the regression reducer, independent
// variables come first followed by the dependent variables. 
//In this case, IL is the independent variable and 
//B6 (SWIR1) is the dependent variable.
var imgRegress6 = illumination.select('slope')
  .addBands(ref.select('SR_B6'))
  .rename(['IL', 'l9_swir1']);
.
.
.
var imgRegress5 = illumination.select('slope')
  .addBands(ref.select('SR_B5'))
  .rename(['IL', 'l9_NIR']);

Una sintaxis más apropiada sería la siguiente:

var illumination = (slope_rad.cos().multiply(SZA_rad.cos()))
           .add(slope_rad.sin().multiply(SZA_rad.sin())
           .multiply(SAA_rad.cos().subtract(aspect_rad).cos()))
           .rename('IL');
.
.
.
var imgRegress6 = illumination
  .addBands(ref.select('SR_B6').rename('l9_swir1'));
.
.
.
var imgRegress5 = illumination
  .addBands(ref.select('SR_B5').rename('l9_NIR'));

Sin embargo, cuando intentas exportar a activos o Google Drive aparecen otros problemas y pueden resolverse con el parámetro bestEffort dentro del método reduceRegion. Suponiendo que la geometría geomet es similar a map_area, el código de depuración produce el resultado de la imagen siguiente:

enter image description here

En la imagen anterior, las capas y objetos impresos (Tab Console) se produjeron sin ningún error. También se puede observar que las capas B5L9corectopo y B6L9corectopo se exportaron sin problemas (con tu código original no era posible).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X