Я пытаюсь создать временные ряды, используя 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);