Forwarded from Заметки инженера - исследователя
Вновь финансовые космические новости.
Белый дом запросил $27,2 млрд. для НАСА в 2024 году. Это на $1,8 млрд. больше, чем выделено в 2023.
Портал Payload обращает внимание на следующие статьи, по которым произошло увеличение расходов.
Программа "Артемида".
Запрошено $8,1 млрд., что на $500 илн больше, чем в 2023.
Доставка на Землю образцов грунта с Марса.
$949 млн.
Буксир для затопления МКС.
На это планируется потратить $180 млн. Само затопление запланировано на 2030.
Насколько я знаю, раньше всегда предполагалось, что вывод МКС с орбиты и затопление будет обеспечивать Россия. Хотя бы потому, что США нечем решать эту задачу. Почему США решили взяться за эту задачу сами? Какие сценарии будущего они рассматривают?
Для сравнения - годовой бюджет Роскосмоса порядка 200 млрд. рублей - около половины финансирования американского лунного проекта.
Белый дом запросил $27,2 млрд. для НАСА в 2024 году. Это на $1,8 млрд. больше, чем выделено в 2023.
Портал Payload обращает внимание на следующие статьи, по которым произошло увеличение расходов.
Программа "Артемида".
Запрошено $8,1 млрд., что на $500 илн больше, чем в 2023.
Доставка на Землю образцов грунта с Марса.
$949 млн.
Буксир для затопления МКС.
На это планируется потратить $180 млн. Само затопление запланировано на 2030.
Насколько я знаю, раньше всегда предполагалось, что вывод МКС с орбиты и затопление будет обеспечивать Россия. Хотя бы потому, что США нечем решать эту задачу. Почему США решили взяться за эту задачу сами? Какие сценарии будущего они рассматривают?
Для сравнения - годовой бюджет Роскосмоса порядка 200 млрд. рублей - около половины финансирования американского лунного проекта.
GEE-20. Landsat Cloudscore
Продолжим тему маскирования облаков, начатую здесь и здесь. Сегодня маскируем облака на снимках Landsat. В объективе — Париж.
У Landsat есть тепловой сенсор, поэтому маскировать облака для него проще, чем для Sentinel-2. Облака довольно холодные, их отражательная способность в тепловом диапазоне низкая, что позволяет отличать их от других природных объектов. С маскированием облаков вполне качественно справляется “родная” маска Landsat:
Облака и тени определяются по маске качества пикселей
Мы уже имели дело с битовыми масками, но тогда обрабатывали их по-другому. Сейчас мы используем битовый сдвиг (
Кроме того, мы используем маску радиометрического насыщения
Подробности алгоритма маскирования облачности Landsat Collection 2 смотрите в главе 4.4.18 Landsat 8-9 OLI/TIRS Calibration / Validation Algorithm Description Document.
А сейчас рассмотрим еще одну очень полезную функцию. До сих пор мы подбирали снимки, исходя из доли площади снимка, покрытой облаками. А что если район наблюдения сравнительно невелик, и окажется чистым даже на заполненном облаками снимке? Значит нужно подбирать снимки, опираясь на покрытие облаками именно района интереса (ROI), а не всего снимка. Этим мы и займемся.
Идея состоит в следующем. Нужна простая маска облаков, которая будет сравнительно быстро считаться и давать неплохую оценку облачности. Вычислив среднее значение такой маски в ROI, мы получим долю площади ROI, покрытую облаками. Сказано — сделано:
Мы немного схитрили, использовав обычную маску Landsat для оценки доли облачного покрытия района (cloud score). Но она уже готова, так что расчет выполняется быстро. Если нужно, есть cloud score по более простой маске — ee.Algorithms.Landsat.simpleCloudScore.
Важно, что таким же способом мы можем поступать и со снимками Sentinel-2: отбирать малооблачные снимки для ROI, опираясь на маски `MSK_CLDPRB` и `SCL`, а затем маскировать облака с помощью s2cloudless.
Код примера: https://code.earthengine.google.com/6427f178979fe1ac6f816d13f609bd55
#GEE
Продолжим тему маскирования облаков, начатую здесь и здесь. Сегодня маскируем облака на снимках Landsat. В объективе — Париж.
У Landsat есть тепловой сенсор, поэтому маскировать облака для него проще, чем для Sentinel-2. Облака довольно холодные, их отражательная способность в тепловом диапазоне низкая, что позволяет отличать их от других природных объектов. С маскированием облаков вполне качественно справляется “родная” маска Landsat:
function maskL8sr(image) {
// Маска качества пикселей QA_PIXEL.
var qa = image.select('QA_PIXEL');
// Биты 3 и 4 - признаки облаков и теней облаков.
var cloudsBitMask = 1 << 3;
var cloudShadowBitMask = 1 << 4;
var cloud = qa.bitwiseAnd(cloudsBitMask);
var cloudShadow = qa.bitwiseAnd(cloudShadowBitMask);
var qaMask = cloud.eq(0).and(cloudShadow.eq(0)).copyProperties(image, ['system:time_start']);
var saturationMask = image.select('QA_RADSAT').eq(0).copyProperties(image, ['system:time_start']);
return image.updateMask(qaMask)
.updateMask(saturationMask);
}
Облака и тени определяются по маске качества пикселей
QA_PIXEL
. В ней бит 3 отвечает за облака, а бит 4 — за их тени. Если бит равен 1, значит в соответствующем пикселе изображения присутствует облако или его тень. Равенство нулю обоих битов означает отсутствие облаков и теней облаков.Мы уже имели дело с битовыми масками, но тогда обрабатывали их по-другому. Сейчас мы используем битовый сдвиг (
<<
). На пальцах эта операция описана здесь. Пишите в бот, если будут вопросы.Кроме того, мы используем маску радиометрического насыщения
QA_RADSAT
. Насыщение означает, что полученный в данном пикселе сигнал настолько силен, что превышает максимальный сигнал, который способен измерить наш сенсор. В результате насыщения мы получим искаженное значение измеряемой величины. Равенство нулю пикселей маски QA_RADSAT
означает отсутствие насыщения.Подробности алгоритма маскирования облачности Landsat Collection 2 смотрите в главе 4.4.18 Landsat 8-9 OLI/TIRS Calibration / Validation Algorithm Description Document.
А сейчас рассмотрим еще одну очень полезную функцию. До сих пор мы подбирали снимки, исходя из доли площади снимка, покрытой облаками. А что если район наблюдения сравнительно невелик, и окажется чистым даже на заполненном облаками снимке? Значит нужно подбирать снимки, опираясь на покрытие облаками именно района интереса (ROI), а не всего снимка. Этим мы и займемся.
Идея состоит в следующем. Нужна простая маска облаков, которая будет сравнительно быстро считаться и давать неплохую оценку облачности. Вычислив среднее значение такой маски в ROI, мы получим долю площади ROI, покрытую облаками. Сказано — сделано:
function getCloudScore(image) {
var qa = image.select('QA_PIXEL').rename('cloud');
var mask = qa.bitwiseAnd(1 << 3)
.or(qa.bitwiseAnd(1 << 4));
var cloudiness = mask.reduceRegion({
reducer: 'mean',
geometry: ROI,
scale: 30,
});
return image.set(cloudiness);
}
Мы немного схитрили, использовав обычную маску Landsat для оценки доли облачного покрытия района (cloud score). Но она уже готова, так что расчет выполняется быстро. Если нужно, есть cloud score по более простой маске — ee.Algorithms.Landsat.simpleCloudScore.
Важно, что таким же способом мы можем поступать и со снимками Sentinel-2: отбирать малооблачные снимки для ROI, опираясь на маски `MSK_CLDPRB` и `SCL`, а затем маскировать облака с помощью s2cloudless.
Код примера: https://code.earthengine.google.com/6427f178979fe1ac6f816d13f609bd55
#GEE
Вверху и снизу слева: снимок Парижа (RGB, естественные цвета) и температура земной поверхности 13.08.2022.
Внизу справа: погрешность (uncertainity) определения температуры. Она находится в канале ST_QA снимка.
Было бы интересно посмотреть, что расположено в точках “красной сыпи”, где получены самые большие погрешности измерения температуры.
Внизу справа: погрешность (uncertainity) определения температуры. Она находится в канале ST_QA снимка.
Было бы интересно посмотреть, что расположено в точках “красной сыпи”, где получены самые большие погрешности измерения температуры.
Когда воздух обтекает объекты на своем пути, могут образовываться спиралевидные вихри, известные как вихревые дорожки фон Кармана. Вихри на этом снимке образовались, когда преобладающие ветры, дующие с востока через северную часть Тихого океана, столкнулись с Алеутскими островами у побережья Аляски.
Источник
Источник
Государственные расходы на космические программы в 2022 году
По данным Statista, в 2022 году мировые государственные расходы на космические программы должны были достигнуть рекордного уровня — около 103 миллиардов долларов. Лидером являются США, чьи государственные расходы на космос составляют почти 62 миллиарда долларов (из них 24 миллиарда — бюджет NASA). За США следует Китай с государственными расходами в размере почти 12 миллиардов долларов.
Государственные расходы России оценены в 3.42 миллиарда долларов, что не слишком сходится с заявленным бюджетом Роскосмоса (210.22 миллиардов рублей) даже при самом оптимистичном курсе доллара.
По данным Statista, в 2022 году мировые государственные расходы на космические программы должны были достигнуть рекордного уровня — около 103 миллиардов долларов. Лидером являются США, чьи государственные расходы на космос составляют почти 62 миллиарда долларов (из них 24 миллиарда — бюджет NASA). За США следует Китай с государственными расходами в размере почти 12 миллиардов долларов.
Государственные расходы России оценены в 3.42 миллиарда долларов, что не слишком сходится с заявленным бюджетом Роскосмоса (210.22 миллиардов рублей) даже при самом оптимистичном курсе доллара.
Astronomy Picture of the Day
Astronomy Picture of the Day — это классическое NASA из 1990-х годов: минималистичное оформление и прекрасные снимки. Проект запущен 16 июня 1995 года, больше 27 лет назад!
На канале Спутник ДЗЗ мы хоть и смотрим чаще вниз, на Землю, чем вверх — в космос, и то заглядываем на APOD, чтобы вдохновится перед или отдохнуть после работы. Вот, например, что показывал APOD 8 марта…
Astronomy Picture of the Day — это классическое NASA из 1990-х годов: минималистичное оформление и прекрасные снимки. Проект запущен 16 июня 1995 года, больше 27 лет назад!
На канале Спутник ДЗЗ мы хоть и смотрим чаще вниз, на Землю, чем вверх — в космос, и то заглядываем на APOD, чтобы вдохновится перед или отдохнуть после работы. Вот, например, что показывал APOD 8 марта…
Во многих крупных городах на ночном небе видно лишь небольшое число планет и ярких звезд. Причиной является искусственный свет, отражающийся от молекул и аэрозолей в атмосфере, который создает так называемое световое загрязнение. На представленной карте показано относительное количество светового загрязнения, которое наблюдается на всей Земле. Например, части восточного побережья США и Западной Европы, окрашенные в красный цвет, имеют искусственное свечение ночного неба в десять раз превышающее естественное. В областях, окрашенных в оранжевый или красный цвет, не видно центральной полосы нашей галактики — Млечного Пути.
#снимки
#снимки
Первый снимок “Электро-Л” № 4
10 марта был получен первый снимок со спутника “Электро-Л” № 4, запущенного 5 февраля этого года.
Метеоспутник “Электро-Л” № 4 находится на геостационарной орбите в точке стояния 165.8° восточной долготы над Тихим океаном. Существующая орбитальная группировка из трех геостационарных аппаратов “Электро-Л” №2, №3, №4 позволяет получать с частотой до 15 минут бесшовные многоспектральные снимки России и прилегающих территорий.
Источник
#ГСО
10 марта был получен первый снимок со спутника “Электро-Л” № 4, запущенного 5 февраля этого года.
Метеоспутник “Электро-Л” № 4 находится на геостационарной орбите в точке стояния 165.8° восточной долготы над Тихим океаном. Существующая орбитальная группировка из трех геостационарных аппаратов “Электро-Л” №2, №3, №4 позволяет получать с частотой до 15 минут бесшовные многоспектральные снимки России и прилегающих территорий.
Источник
#ГСО
GEE-21. Температура земной поверхности по данным MODIS. Автоматический подбор диапазона значений на карте
План такой:
1. Возьмем коллекцию данных MODIS.
2. Отмаскируем некачественные фрагменты данных.
3. Сделаем карту средней температуры земной поверхности.
4. Для сравнения, сделаем то же самое без маскирования. Оценим среднюю разность температур и построим карту этой разности.
5. Плюс, будет еще одна фишка, о которой сказано в заголовке.
Код примера: https://code.earthengine.google.com/488132bd7f12eb4b0bb01a21282e0b13
Для расчета температуры земной поверхности возьмем MOD11A2.061 Terra Land Surface Temperature and Emissivity 8-Day Global 1km. Это восьмидневные композиты температуры земной поверхности, рассчитанные по данным MODIS. Продукт называется MOD11A2, его версия — 6.1. В данных содержится дневная и ночная температуры поверхности с пространственным разрешением 1 км (слои
Поскольку данные являются композитами снимков, сделанных за 8 суток, ошибок ожидается немного. Но все же они будут. Чтобы контролировать ошибки, воспользуемся масками качества. Основных масок две:
Как и у других продуктов MODIS, маски качества MOD11A2 — битовые (значения битов приведены здесь). Работа с битовой маской состоит из двух этапов: 1) извлечение нужных битов; 2) построение маски на их основе.
Извлекает биты функция
Из маски качества
Рассмотрим температуру поверхности в Ираке, в феврале-марта 2022.
Импортируем коллекцию данных MOD11A2, маскируем их, и рассчитываем среднюю (точнее, медианную) температуру поверхности за рассматриваемый период
#GEE
План такой:
1. Возьмем коллекцию данных MODIS.
2. Отмаскируем некачественные фрагменты данных.
3. Сделаем карту средней температуры земной поверхности.
4. Для сравнения, сделаем то же самое без маскирования. Оценим среднюю разность температур и построим карту этой разности.
5. Плюс, будет еще одна фишка, о которой сказано в заголовке.
Код примера: https://code.earthengine.google.com/488132bd7f12eb4b0bb01a21282e0b13
Для расчета температуры земной поверхности возьмем MOD11A2.061 Terra Land Surface Temperature and Emissivity 8-Day Global 1km. Это восьмидневные композиты температуры земной поверхности, рассчитанные по данным MODIS. Продукт называется MOD11A2, его версия — 6.1. В данных содержится дневная и ночная температуры поверхности с пространственным разрешением 1 км (слои
LST_Day_1km
, LST_Night_1km
).Поскольку данные являются композитами снимков, сделанных за 8 суток, ошибок ожидается немного. Но все же они будут. Чтобы контролировать ошибки, воспользуемся масками качества. Основных масок две:
QC_Day
, QC_Night
. Они однотипны, так что мы ограничимся дневной температурой поверхности и соответствующей маской.Как и у других продуктов MODIS, маски качества MOD11A2 — битовые (значения битов приведены здесь). Работа с битовой маской состоит из двух этапов: 1) извлечение нужных битов; 2) построение маски на их основе.
Извлекает биты функция
getQABits
. Мы не будем разбирать как она устроена, так как это вспомогательная функция. Она есть в коде примера, и в сети есть разные варианты ее реализации (например, такой). Входными параметрами getQABits
являются: маска качества, нижний и верхний извлекаемые биты, а также имя созданного слоя на выходе из getQABits
.Из маски качества
QC_Day
мы создадим бинарную маску, указав нужные параметры качества и их значения. Допустим мы хотим, чтобы ошибка излучательной способности (emissivity) не превышала 0.02. Это возможно, когда в битах 4 и 5 QC_Day
записано число, меньшее или равное 1. Если требуется, чтобы ошибка вычисления температуры поверхности составляла не более 2К, нужно чтобы в битах 6 и 7 значение не превышало 1. Собирая такие условия вместе, получим обычную бинарную маску mask
, которую и применим к данным о температуре.var qualityDay = function(img) {
var lstDay = img.select('LST_Day_1km');
var qcDay = img.select('QC_Day');
// Ошибка излучательной способности <= 0.02
var emissivityMask = getQABits(qcDay, 4, 5, 'emissivityMask').lte(1);
// Ошибка LST <= 2K
var lstErrorMask = getQABits(qcDay, 6, 7, 'lstErrorMask').lte(1);
var mask = emissivityMask.and(lstErrorMask);
return lstDay.updateMask(mask);
};
Рассмотрим температуру поверхности в Ираке, в феврале-марта 2022.
Импортируем коллекцию данных MOD11A2, маскируем их, и рассчитываем среднюю (точнее, медианную) температуру поверхности за рассматриваемый период
dateRange
.var modLST = ee.ImageCollection('MODIS/061/MOD11A2')
.filterDate(dateRange);
var image = modLST.map(qualityDay)
.select('LST_Day_1km')
// Перевод из Кельвинов в градусы Цельсия.
.map(kelvin2Celsius)
.median().clip(ROI);
#GEE
А вот и обещанная фишка. Чтобы не подбирать вручную границы температуры, отображаемой на карте, мы рассчитаем их:
Сначала, с помощью редьюсера
После проделываем расчет температуры поверхности без маскирования (
Как и ожидалось, маскировать данные нужно. Даже если это композиты и даже если рассматривается относительно малооблачный период.
Код примера: https://code.earthengine.google.com/488132bd7f12eb4b0bb01a21282e0b13
#GEE
// Расчет min/max-значений на снимке.
var minMax = image.reduceRegion({reducer: ee.Reducer.minMax(),
geometry: ROI,
scale: 1000,
bestEffort: true,
maxPixels: 1e9});
// Переименуем ключи словаря.
var minMax = minMax.rename(minMax.keys(), ['max','min']);
// Извлечем из словаря значения минимума и максимума.
var min = minMax.get('min').getInfo();
var max = minMax.get('max').getInfo();
print('Min LST, C:', min);
print('Max LST, C:', max);
// Добавим min/max в параметры визуализации.
var visLST = {min: min, max: max, palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']};
Map.addLayer(image, visLST, 'LST');
Сначала, с помощью редьюсера
ee.Reducer.minMax()
, вычисляются минимальное и максимальное значения температуры на нужном фрагменте снимка (ROI). Затем из полученного словаря извлекаются значения минимума и максимума. getInfo()
понадобился для перехода от серверных объектов к локальным: минимумы/максимумы считались на сервере, а карты строятся на локальной машине.После проделываем расчет температуры поверхности без маскирования (
image2
) и строим карту разности результатов:var dLST = image2.select('LST_Day_1km').subtract(image.select('LST_Day_1km'));
Map.addLayer(dLST, {min: -2, max: 2, palette: ['blue','white','red']}, 'Difference LST');
Как и ожидалось, маскировать данные нужно. Даже если это композиты и даже если рассматривается относительно малооблачный период.
Код примера: https://code.earthengine.google.com/488132bd7f12eb4b0bb01a21282e0b13
#GEE
Температура земной поверхности после применения маски качества (вверху), без применения маски (внизу слева), разность температур (внизу справа).
Наш учебник по Google Earth Engine понемногу подходит к завершению первой части — про данные оптических сенсоров. Осталось несколько уроков. Дальше будет часть, посвященная радарам.
Спасибо всем, кто нас читает!
Спасибо всем, кто нас читает!
Бюджетный запрос на 2024 год для Космических сил США составил 30 млрд долларов
Как сообщает Spacenews, бюджетный запрос для Министерства обороны США на 2024 финансовый год, который начнется 1 октября, составляет 842 млрд долларов. На Космические силы США планируется выделить 30 млрд долларов, что на 3.7 млрд больше, чем сумма, выделенная в 2023 году.
Бюджеты Космических сил неуклонно растут с момента создания службы три года назад. Первый бюджет в 2021 финансовом году составил 15.3 млрд долларов. В 2022 году он вырос до 18 млрд долларов, в 2023 году — до 26.3 млрд долларов.
Бюджетный запрос для Космических сил в 30 млрд долларов включает в себя:
* 19.2 млрд на исследования, разработки, испытания и проектирование (research, development, testing and engineering, RDT&E);
* 4.7 млрд долларов на закупки;
* 4.9 млрд на эксплуатацию и техническое обслуживание;
* 1.2 млрд на военный персонал.
Самое значительное увеличение приходится на RDT&E. Финансирование спутников предупреждения о ракетном нападении на низкой и средней орбите почти удваивается — с 1.2 млрд в 2023 году до 2.3 млрд в 2024 году. Space Development Agency (SDA) на создание группировки ретрансляторов данных на низкой околоземной орбите получит $2.1 млрд, что более чем в два раза превышает финансирование 2023 года.
В категории закупок речь идет о запуске спутников. Министерство обороны запрашивает 2.6 млрд долларов на услуги по запуску для 15 миссий, по сравнению с прошлогодними 1.7 млрд долларов — на 10 миссий. Сумма в 2.6 млрд включает 2.1 млрд на 10 традиционных геостационарных и среднеорбитальных миссий National Security Space Launch (NSSL) и 5 запусков на низкую околоземную орбиту, для группировки создаваемой SDA.
Фрэнк Кендалл, главный гражданский руководитель ВВС и Космических сил, сказал, что бюджет на 2024 год "сфокусирован на попытке опередить угрозу". "Больше всего нас беспокоит проблема опережения со стороны Китая и его программы военной модернизации", — сказал Кендалл журналистам. В частности, в космической сфере, сказал Кендалл, бюджет на 2024 год начинает переход к более диверсифицированной спутниковой архитектуре.
Фрэнк Калвелли, помощник министра ВВС по закупкам и интеграции космической техники, дал указание использовать небольшие спутники, которые могут быть построены быстрее и дешевле, чем традиционные большие спутники.
"Мы движемся в этом направлении", — сказал Кендалл. Два очевидных примера — это группировки SDA по предупреждению о ракетном нападении и по передаче данных", — сказал он. Между тем, "мы все еще решаем, каким будет наше будущее в таких программах, как GPS и некоторые другие системы связи".
#война
Как сообщает Spacenews, бюджетный запрос для Министерства обороны США на 2024 финансовый год, который начнется 1 октября, составляет 842 млрд долларов. На Космические силы США планируется выделить 30 млрд долларов, что на 3.7 млрд больше, чем сумма, выделенная в 2023 году.
Бюджеты Космических сил неуклонно растут с момента создания службы три года назад. Первый бюджет в 2021 финансовом году составил 15.3 млрд долларов. В 2022 году он вырос до 18 млрд долларов, в 2023 году — до 26.3 млрд долларов.
Бюджетный запрос для Космических сил в 30 млрд долларов включает в себя:
* 19.2 млрд на исследования, разработки, испытания и проектирование (research, development, testing and engineering, RDT&E);
* 4.7 млрд долларов на закупки;
* 4.9 млрд на эксплуатацию и техническое обслуживание;
* 1.2 млрд на военный персонал.
Самое значительное увеличение приходится на RDT&E. Финансирование спутников предупреждения о ракетном нападении на низкой и средней орбите почти удваивается — с 1.2 млрд в 2023 году до 2.3 млрд в 2024 году. Space Development Agency (SDA) на создание группировки ретрансляторов данных на низкой околоземной орбите получит $2.1 млрд, что более чем в два раза превышает финансирование 2023 года.
В категории закупок речь идет о запуске спутников. Министерство обороны запрашивает 2.6 млрд долларов на услуги по запуску для 15 миссий, по сравнению с прошлогодними 1.7 млрд долларов — на 10 миссий. Сумма в 2.6 млрд включает 2.1 млрд на 10 традиционных геостационарных и среднеорбитальных миссий National Security Space Launch (NSSL) и 5 запусков на низкую околоземную орбиту, для группировки создаваемой SDA.
Фрэнк Кендалл, главный гражданский руководитель ВВС и Космических сил, сказал, что бюджет на 2024 год "сфокусирован на попытке опередить угрозу". "Больше всего нас беспокоит проблема опережения со стороны Китая и его программы военной модернизации", — сказал Кендалл журналистам. В частности, в космической сфере, сказал Кендалл, бюджет на 2024 год начинает переход к более диверсифицированной спутниковой архитектуре.
Фрэнк Калвелли, помощник министра ВВС по закупкам и интеграции космической техники, дал указание использовать небольшие спутники, которые могут быть построены быстрее и дешевле, чем традиционные большие спутники.
"Мы движемся в этом направлении", — сказал Кендалл. Два очевидных примера — это группировки SDA по предупреждению о ракетном нападении и по передаче данных", — сказал он. Между тем, "мы все еще решаем, каким будет наше будущее в таких программах, как GPS и некоторые другие системы связи".
#война
GEE-22. Маскирование облаков на снимках MODIS
Сегодня удалим облака со снимков MODIS и сделаем из очищенных снимков безоблачный композит.
Импортируем июльскую коллекцию ежедневных данных MOD09GA и создадим на нее основе две коллекции — с облаками и без:
Извлекает биты из маски качества уже знакомая нам функция
Код примера: https://code.earthengine.google.com/e280c59a82bf37ec379c98943fedee0e
Результат работы скрипта показан ниже.
#GEE
Сегодня удалим облака со снимков MODIS и сделаем из очищенных снимков безоблачный композит.
Импортируем июльскую коллекцию ежедневных данных MOD09GA и создадим на нее основе две коллекции — с облаками и без:
var mod09ga = ee.ImageCollection('MODIS/061/MOD09GA')Для удобства обращения, мы предварительно переименовали основные каналы данных:
.filter(ee.Filter.date('2022-07-01', '2022-07-30'))
.select(modisBands,lsBands);
var Cloud = mod09ga.select(['red', 'green', 'blue']);
var noCloud = mod09ga.map(qualityMask)
.select(['red', 'green', 'blue']);
var modisBands = ['sur_refl_b03','sur_refl_b04','sur_refl_b01','sur_refl_b02','sur_refl_b06','sur_refl_b07','state_1km'];Маскирование облаков выполняет функция
var lsBands = ['blue','green','red','nir','swir1','swir2','state_1km'];
qualityMask
:function qualityMask(image) {Из снимка выбирается маска качества
var QA = image.select('state_1km');
var internalQuality = getQABits(QA, 8, 13, 'internal_quality_flag');
return image.updateMask(internalQuality.eq(0));
}
state_1km
. Из маски качества извлекаются биты с 8 по 13 (описание маски), связанные со всеми видами облачности (а также со снегом и очагами пожаров). По извлеченным битам строится бинарная маска, состоящая только из чистых пикселей. Маска очень требовательная, убирает она много. Зато так проще будет построить безоблачный композит.Извлекает биты из маски качества уже знакомая нам функция
getQABits
. Код примера: https://code.earthengine.google.com/e280c59a82bf37ec379c98943fedee0e
Результат работы скрипта показан ниже.
#GEE
Снимок за 1 июля 2022 года (вверху) покрыт облаками. Ниже показаны результаты маскирования облачности.
Безоблачный композит, построенный по июльским данным MOD09GA (вверху). Как видно, даже данных целого месяца не хватило для полной безоблачности: на снимке есть небольшие пропуски.
Зато этот результат точно лучше композита, построенного без удаления облаков (внизу).
Зато этот результат точно лучше композита, построенного без удаления облаков (внизу).