Ошибка при создании диаграммы: ни один объект не содержит ненулевых значений "system: time_start - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь создать временные ряды, используя Google Earth Engine. Однако я получаю сообщение об ошибке:

Ошибка при создании диаграммы: ни один объект не содержит ненулевых значений "Система: TIME_START"

Насколько я понял, это происходит из-за того, что переменная time_start теряется, когда я использую маску. Я пытался решить ее, основываясь на предыдущих ответах на сайте, но мне не удалось это сделать. Любая помощь?

var geometry4 = ee.Geometry.Polygon
( [[[75.01429435979423, 36.0604124248592], [76.48646232854423, 35.1583046515728], [76.55238029729423, 36.19351928026619], [75.04725334416923, 36.43254217380418]]]) 
Map.addLayer (geometry4);

var createTimeBand = function(image) { return  image.addBands(image.metadata('system:time_start').divide(1000 * 60 * 60 * 24 * 365)); };

var dataset = ee.ImageCollection("MODIS/006/MOD10A1") .filterBounds(geometry4) 
.map(function(image){return image.clip(geometry4)}) .filter(ee.Filter.date('2005-01-01', '2017-12-28')) .filter(ee.Filter.calendarRange(7, 7,'month')) .map(createTimeBand);

var snowAlbedo= dataset.select('Snow_Albedo_Daily_Tile'); 

var linearFit= dataset.select(['system:time_start', 'Snow_Albedo_Daily_Tile']) 
.reduce(ee.Reducer.linearFit())
.set('system:time_start', dataset.get('system:time_start'));

Map.addLayer(linearFit, {min: 0, max: [-0.9, 8e-5, 1], bands: ['scale', 'offset', 'scale']}, 'fit');

//mask
var snowAlbedo= dataset.select('Snow_Albedo_Daily_Tile');

var mean_albedo= snowAlbedo.reduce(ee.Reducer.mean()); 

var mask= mean_albedo.gt(40); 

Map.addLayer(mask, "", 'mask');

//linear fit2 updated by mask

var linearFit2= linearFit.updateMask(mask) .set('system:time_start', dataset.get('system:time_start'));

print (linearFit2); Map.addLayer(linearFit2, {min: 0, max: [-0.9, 8e-5, 1], bands: ['scale', 'offset', 'scale',]}, 'fit2');

//timeseries

var tempTimeSeries= ui.Chart.image.seriesByRegion( linearFit2, geometry4, ee.Reducer.mean(), "", 250) .setChartType('ScatterChart') 
.setOptions({ 
title: 'Albedo-MODIS', 
vAxis: {title: 'Albedo'}, 
lineWidth:1, 
pointSize:4, 
series:{ 0: {color: 'FF0000'}, }});

print (tempTimeSeries);
...