I am trying to follow the instructions in- Sentinel-2 L2A and scripts from- Examples for S2L2A but these codes do not have an option to download S2 images with an option of cloud cover. I want to download time series S2 image over a bounding box but the images that are used to clip over bb should not have a cloud cover % more than 5. How do I include cloud cover condition before download?
Hi, it is very simple to add a cloud cover filter to your request payload. If you are working with Python you can add a cloud cover % (calculated for the full tile) like this:
request = SentinelHubRequest(
evalscript=evalscript,
input_data=[
SentinelHubRequest.input_data(
data_collection=DataCollection.SENTINEL2_L2A,
time_interval=('2023-05-14', '2023-06-14'),
other_args={"dataFilter": {"maxCloudCoverage": 50}}
)
As you can see it is inserted in other_args
. As you also mentioned downloading multiple dates in your request, I would recommend reading this material about how to do this in evalscripts using the preProcessScenes
function in our documention.
For example, you can use it to request a time series of values for a single band like in the below example:
//VERSION=3
// Script to extract a time series of Band 5 values using
// Sentinel 2 Level 2A data and metadata file.
function setup() {
return {
input: [{
bands: ["B05"],
units: "DN"
}],
output: {
id: "S2_L2A",
bands: 1,
sampleType: SampleType.UINT16
},
mosaicking: Mosaicking.ORBIT
}
}
// The following function is designed to update the number of
// output bands without knowing beforehand how many there are
function updateOutput(outputs, collection) {
Object.values(outputs).forEach((output) => {
output.bands = collection.scenes.length;
});
}
function evaluatePixel(samples) {
// Precompute an array to contain B05 observations
var n_observations = samples.length;
let band_05 = new Array(n_observations).fill(0);
// Fill the array
samples.forEach((sample, index) => {
band_05[index] = sample.B05;
});
return band_05;
}
Hope that this information helps you out 🙂
Hey, what is the difference between- If mosaicking is ORBIT: and If mosaicking is TILE: taking above codes as an example.
To put it very simply;
TILE will use every acquisition in the time period you requested whereas ORBIT will only select one acquisition from each Orbit. This is explained in more detail here.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.