Получение таблицы ежедневных температур для множества городов с помощью Google Earth Engine - PullRequest
0 голосов
/ 06 мая 2019

У меня нет опыта использования Google Earth Engine (GEE), поэтому я в течение прошлой недели бился головой о стену, пытаясь понять, как это сделать. Я пытаюсь экспортировать таблицу со среднесуточными температурами для городов в 3 выбранных штатах, с 1 января 2018 года по 31 декабря 2018 года. Мне удалось получить среднегодовые значения для каждого города, но я действительно хочу получить среднесуточное значение для каждого города. Как я должен думать об этой проблеме? Должен ли я написать цикл?

Я импортировал ресурс под названием города для границ городов, представляющих для меня интерес, в Google Earth Engine. Я написал функцию для применения среднего значения редуктора (для средней температуры) к городским регионам и попытался экспортировать таблицу в мой Google Drive, но получаю сообщение об ошибке: «gridmet18.reduceRegions не является функцией». Другие вещи, которые я пробовал (в комментариях), доступны через кодовую ссылку: https://code.earthengine.google.com/5ae73d83044244229cb655bf4a75a47f.

var prism18 = prism.filterDate('2018-01-01','2018-12-31').select('tmean');
var gridmet18 = gridmet.filterDate('2018-01-01','2018-12-31').select('tmmx','tmmn','pr');


var cityMean = gridmet18.reduceRegions(
{
  'reducer': ee.Reducer.mean(),
  'scale': 4000,
  'collection': cities,
});

// Commented out portion


//var daily_mean = ee.List.sequence(0, 1*1).map(function(n) {
  //var start = ee.Date('2018-01-01').advance(n, 'daily');
  //var end = start.advance(1, 'month');
  //return ee.ImageCollection('OREGONSTATE/PRISM/AN81d').filterDate(start, end).select('tmean').mean();
//});

////////

//var month_mean = ee.List.sequence(0, 1*1).map(function(n) { // .sequence: number of years from starting year to present
  //var start = ee.Date('2018-01-01').advance(n, 'daily'); // Starting date
  //var end = start.advance(1, 'daily'); // Step by each iteration

  //return ee.ImageCollection("IDAHO_EPSCOR/GRIDMET")
    //    .filterDate(start, end)
      //  .mean()
        //.set('system:time_start', start.millis());
//});




///////

//var weatherCollection = ee.ImageCollection('IDAHO_EPSCOR/GRIDMET')
  //                  .select('pr','tmmx','tmmn')   // select  precip band only
    //                .filterDate('2018-01-01', '2018-12-31');

//var weatherDaily = weatherCollection.reduce(ee.Reducer.mean());

//var cityCA = weatherDaily.reduceRegions({
  //collection: CA,
  //reducer: ee.Reducer.mean(),
  //scale: 4000 // the resolution of the GRIDMET dataset
//});


// ***

//var polyOut = cityCA.select(['.*'],null,false);

// add a new column for year to each feature in the feature collection
//polyOut = polyOut.map(function(feature){
//return feature.set('Day',2018-01-01);
//});

// Table to Drive Export Example

Export.table.toDrive({
  collection: polyOut,
  description: 'GRIDMET_annual_precip_by_city',
  fileFormat: 'CSV'
});   

Что я действительно хочу, так это среднесуточная температура для каждого отдельного города в шейп-файле актива «города» (загруженного в Google Earth Engine) за каждый день с 1 января 2018 года по 31 декабря 2018 года. достичь с помощью закомментированного кода были среднегодовые показатели для каждого города. Я подозреваю, что мне нужно что-то делать с «системой: время начала», но я не знаю, где и как поместить этот код. Буду очень признателен за любые предложения или советы, поскольку у меня ограниченный опыт работы в GEE. Спасибо!

...