0

In the below code, Tasseled Cap algorithm computed using array based computation but returns error and I don't know how can I solve this:

enter image description here

code link: https://code.earthengine.google.com/7a54500cb06ec88d6ffc6b623965de7c

Map.centerObject(table);
Map.addLayer(table);


var lc8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")
.filterDate('2018-01-01','2020-01-01')
.filterBounds(table)
.filter(ee.Filter.calendarRange(7,9,'month'))
.filter(ee.Filter.lt('CLOUD_COVER',10))
.map(function(img){
  var bands = img.select('B[2-7]').multiply(0.0001).clip(table);
  return bands.copyProperties(img,['system:time_start','system:time_end',
  'system:index'])
}).median();


print(lc8);

Map.addLayer(lc8,{bands:['B5','B4','B3']},'lc8',false);


var coefficients = [
  [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
  [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
  [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
  [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
  [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
  [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252]];
  

var bands = ['B2','B3','B4','B5','B6','B7'];

var arrayImage1D = lc8.select(bands).toArray();

print(arrayImage1D)

var arrayImage2D = arrayImage1D.toArray(1);

var componentImages = ee.Image(coefficients)
.matrixMultiply(arrayImage2D)
.arrayProject([0])
.arrayFlatten(
  [['brightness','greenness','wetness','forth','fifth','sixth']]);
  
  print(componentImages);
  
  
  Map.addLayer(componentImages,[],'TC',false);
  

1 Answer 1

0

Coefficients variable should be rewrite with ee.Array:

var coefficients = ee.Array([
  [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
  [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
  [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
  [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
  [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
  [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252]]);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.