Для временных рядов температуры (MYD11A2) за год, как определить дату, когда температура впервые превысит пороговое значение?

Цель состоит в том, чтобы ежегодно определять начало вегетационного периода для риса в холодном регионе (в качестве примера взят 2019 год) с использованием набора температурных данных MODIS Terra, который определяется как ночная температура выше 278,15 градусов по Кельвину (5 градусов по Цельсию) для первого время. Заранее спасибо за любые подсказки.

// MODIS LST product
var LST = ee.ImageCollection("MODIS/006/MYD11A2")
  .select("LST_Night_1km") // Night temperature in kelvin
  .filterDate("2019", "2020");

person Nick Carraway    schedule 12.07.2020    source источник


Ответы (1)


Основная идея такова:

  1. поверните дату изображения на ee.Image, замаскированный температурной маской.
  2. получить минимальное значение в стеке изображений даты.
var date2img = function(img){
  img = ee.Image(img);
  var date = img.date().getRelative('day', 'year'); // date in Day-of-Year format
  var scaleFactor = 0.02          // the scale factor for the temperature band is 0.02
  var mask = img.gt(278.15/scaleFactor )   // high temperature mask
  return ee.Image(date).toFloat().updateMask(mask);  
};

var start = LST.map(date2img).min();  // determine the first day of growing season
person Nick Carraway    schedule 13.07.2020