2017-02-13 4 views
0

、我々はreduceRegion()関数を使用してオブジェクトを作成しました:javascript - そのキーを使用してオブジェクトのプロパティにアクセスできませんか? Google Earthのエディタで

var meanValue2015 = ndvi2015.reduceRegion({ 
    reducer: ee.Reducer.mean(), 
    geometry: justEC15.geometry(), 
    crs: 'EPSG:4326', 
    scale: 30, 
}); 

私の問題はmeanValue2015は、オブジェクトのように見えるということです - I入力

print(meanValue2015); 
print(typeof(meanValue2015)); 
print(Object.keys(meanValue2015)); 

とget」オブジェクト(1プロパティ) - NDVI:0.3177 ... "、"オブジェクト "、" [] "そして

print(meanValue2015.NDVI); 
print(meanValue2015['NDVI']); 

は未定義ですか?私はここで間違っている何か明白ですか?

+0

'プリント(meanValue2015(「NDVI」);'あなたは角括弧に –

+0

を使用する必要があるプロパティにアクセスするための@AlexanderDerck申し訳ありませんそれは私が何を意味するかだが、上記の編集 – Conor

+0

で未定義の取得、間違ったでそれを入力しましたあなたは 'meanValue2015'がオブジェクトになることを確信していますか?結局、' typeof [] === 'object'' – dargue3

答えて

0

meanValue2015はEarth Engineオブジェクトです:辞書。 ..だから

var meanValue2015 = ndvi2015.reduceRegion({ 
    reducer: ee.Reducer.mean(), 
    geometry: justEC15.geometry(), 
    crs: 'EPSG:4326', 
    scale: 30, 
}); 

var realValue = ee.Number(meanValue2015.get("ndvi")); 
print("real value (object):", realValue) 

// realValue is a EE object, so you have to use it as is.. 
// this would be easy, but it is wrong.. 
var newValueWrong = realValue + 1 

// this is the right way.. 
var newValueRight = realValue.add(ee.Number(1)) 

print("wrong:", newValueWrong) 
print("right:", newValueRight) 

// there is another way, but it is not recommendable because you'd 
// be wasting EE computing capacity (Google's gift! don't waste it) 

var localValue = realValue.getInfo() + 1 

print("value in the local scope (try to avoid)", localValue) 
+0

ありがとう!申し訳ありませんが、私はしばらくの間積み重ねていませんでしたが、このコメントは間違いありません。 – Conor

関連する問題