4

There are a few ways to search or filter for cloud-free imagery over a date range. For some products (including Sentinel-2), there is a cloud_fraction property that can be used to filter out cloudy Scenes. The start_datetime and end_datetime arguments can be used to filter by the date the imagery was acquired. Using dl.scenes.search, you will want to modify ...


3

The problem with the approach you tried is that image1.add(image2), a math operation on exactly two images, is only defined/unmasked where both input images are unmasked. Also notice that even if it produced pixels wherever either image is unpacked, you'd end up with the sum of 1, 2, or 3 images, always divided by 3, which is not what you want because it's a ...


2

In GEE you can only export single ee.Images and not entire ImageCollections. To get around this, you can use reducers on the ImageCollection. You can for example call .first() or .toBands() on your ImageCollection dataset. Like this: Export.image.toDrive({ image:dataset.toBands(), description: '2015_CLOUDFREE', folder: 'users/emilywest2', ...


2

I haven't actually worked with MODIS, but it looks like most other image collections in EE. The images contains a QA band, StateQA, with data about clouds/shadow/etc. The catalog contains a description of which bits contains which information: Bits 0-1: Cloud state 0: Clear 1: Cloudy 2: Mixed 3: Not set, assumed clear Bit 2: Cloud shadow ...


1

Im not sure for GEE , try this https://www.researchgate.net/post/atmospheric_correction_in_sentinel-2_images From doing it off GEE: see https://labo.obs-mip.fr/multitemp/theias-sentinel-2-l3a-monthly-cloud-free-syntheses/ Maybe one can implement the L3A Weighted Averaging Method in GEE: For each pixel, and each band, WASP almost simply averages the cloud ...


1

You should use as.integer(intToBits(x)) In your example as.integer(intToBits(388)) #> [1] 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 This is the binary in reverse order. In the results your bits 2, 7 and 8 area active (starts with bit 0). This indicates that this pixel is a Water area (bit 2 active), with medium cloud confidence (...


1

You can apply a cloud mask directly to a stack of pixel values before compositing the scenes together. There is a basic derived band computed on all products with red, green, and blue bands called derived:visual_cloud_mask but for Sentinel-2:L1C there is also a separate "DLCloud" product that provides a variety of cloud mask types that are of ...


1

Update It is inappropriate to interpolate over a large area, such as a cloud area. Since you have time series data, the data in the mask area is calculated and replaced in the previous image. And then ou can use RASTERIO on google colab to handle raster image. If you need to interpolate some areas, you can use the module below. https://rasterio.readthedocs....


1

To get to your end goal of filtering your clipped image collection by 10% or less cloud cover, I would write a function that: counts the number of unmasked pixels in the image counts the number of pixels in the unmasked image calculates the percentage of masked pixels and sets this as a metadata property I would then map this onto your image collection and ...


1

You can use the image collection as it is, and chart the CLOUD_COVERAGE_ASSESSMENT property directly: var ROI = Map.getBounds(true) var sentinel2 = ee.ImageCollection("COPERNICUS/S2") .filterBounds(ROI) .filterDate('2017-06-01','2018-06-01') var chart = ui.Chart.feature.byFeature({ features: sentinel2, yProperties: ['CLOUD_COVERAGE_ASSESSMENT'] ...


Only top voted, non community-wiki answers of a minimum length are eligible