使用 Google Earth Engine - Sentinel-5p 计算无云天数
Counting cloudless days using Google Earth Enigne - Sentinel-5p
我使用 Google Earth Engine 对 Sentinel-5P 数据进行了一些分析。我想知道每个像素在一个月内有多少天。我正在使用下面的代码并且它有效。问题是 Sentinel-5P 图像一天要拍摄几次,所以我的结果是无云图像的数量而不是无云天数。
//Poland's border
var polska = ee.FeatureCollection('users/patrykgrzybowski1991/POL_adm1');
//upload collection
var collection_january_19 = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_NO2')//('COPERNICUS/S5P/NRTI/L3_NO2')
//filters
.filterBounds(ee.FeatureCollection('users/patrykgrzybowski1991/POL_adm0'))
.filterDate('2019-01-01', '2019-02-01')
.map(function(img){return ee.Image(img.select('tropospheric_NO2_column_number_density')).updateMask(img.select('cloud_fraction').lt(0.4))})
//cludless images - count
var count_january_19 = collection_january_19.count();
当有多个图像时,无云天数的定义有点不明确,但如果你的意思是“none 一天的图像中有云”,那么你可能需要合成这些图像按计算前的天数:
var start = ee.Date('2019-01-01')
var daysAsList = ee.List.sequence(0, 31).map(function(n) {
n = ee.Number(n)
var begin = start.advance(n, 'day')
var end = begin.advance(1, 'day')
return collection_january_19.filterDate(begin, end).mosaic()
})
var days = ee.ImageCollection.fromImages(daysAsList).count()
我使用 Google Earth Engine 对 Sentinel-5P 数据进行了一些分析。我想知道每个像素在一个月内有多少天。我正在使用下面的代码并且它有效。问题是 Sentinel-5P 图像一天要拍摄几次,所以我的结果是无云图像的数量而不是无云天数。
//Poland's border
var polska = ee.FeatureCollection('users/patrykgrzybowski1991/POL_adm1');
//upload collection
var collection_january_19 = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_NO2')//('COPERNICUS/S5P/NRTI/L3_NO2')
//filters
.filterBounds(ee.FeatureCollection('users/patrykgrzybowski1991/POL_adm0'))
.filterDate('2019-01-01', '2019-02-01')
.map(function(img){return ee.Image(img.select('tropospheric_NO2_column_number_density')).updateMask(img.select('cloud_fraction').lt(0.4))})
//cludless images - count
var count_january_19 = collection_january_19.count();
当有多个图像时,无云天数的定义有点不明确,但如果你的意思是“none 一天的图像中有云”,那么你可能需要合成这些图像按计算前的天数:
var start = ee.Date('2019-01-01')
var daysAsList = ee.List.sequence(0, 31).map(function(n) {
n = ee.Number(n)
var begin = start.advance(n, 'day')
var end = begin.advance(1, 'day')
return collection_january_19.filterDate(begin, end).mosaic()
})
var days = ee.ImageCollection.fromImages(daysAsList).count()