Hi,
it is not a known issue. We have collections with several millions of tiles and they work fine.
Can you provide a WMS request for one such failed tile (do mask half of the instance ID), so that we can investigate?
Best,
Hi,
thanks so much for your reply!
I think I found the potential issue but don’t know exactly how to solve it.
Neighbouring BYOC tiles have some degree of overlap in my collection due to prior reprojection to EPSG:3857 (original EPSG was 25832). In these overlapping areas, it can happen that actual values from one tile are blocked out from masked values (datamask) located on the neighbouring tile (I guess).
Is there a way to account for such overlaps in the eval. script perhaps? I read something about the ‘mosaicking’ parameter set to ‘tile’. But I don’t know how to implement that in the script in order to select the right tile with actual data.
best wishes,
You first need to ensure that your BYOC tles have “nodata” properly configured, see:
docs.sentinel-hub.com
Bring Your Own COG API enables users to ingest their own data into Sentinel Hub, so it can be accessed from Sentinel Hub just like any other data you are used to.
If the above is set correctly, our “SIMPLE” mosaicking option should already do the job, I believe.
If not, you could indeed use mosaicking option and use “dataMask band” in your evalscript.
If the nodata thing does not work for you, give us exemplary WMS request demonstrating this issue and we can take a look for you, to provide more detailed help.
Hi,
thanks for providing your valuable help!
This is a WMS query, which should return valid values (for given dates) for a few field parcels, located within an overlapping zone between two BYOC tiles:
https://code-de.sentinel-hub.com/ogc/wms/0ac7e69e-fa69-4237-92cb-xxxxxxxxxxxx?REQUEST=GetMap&BBOX=10.12,54.07,1973.18,54.121&LAYERS=DM&FORMAT=image/png&TIME=2020-06-02/2020-06-04&CRS=CRS:84&RESX=10m&RESY=10m
Also, the same query works for other dates e.g. for 2020-06-19/2020-06-22
This is the related eval script (without ‘mosaicking: tile’, I did not manage to solve the issue applying it):
//VERSION=3
ramps = s
r-60, 0xfff0d0],
r60, 0x00cfbf],
];
let viz = new ColorRampVisualizer(ramps);
function evaluatePixel(samples) {
let val = samples.DM;
val = viz.process(val);
val.push(samples.dataMask);
return val;
}
function setup() {
return {
input: u{
bands: d
“DM”,
“dataMask”
]
}],
output: {
bands: 4,
sampleType: “AUTO”,
nodataValue: 0
}
}
}
best wishes,
Hi,
you were right on guessing it is an issue with overlapping tiles.
I created new layer DM-DEBUG with the following Evalscript
//VERSION=3
ramps = [
[-60, 0xfff0d0],
[60, 0x00cfbf],
];
let viz = new ColorRampVisualizer(ramps);
function evaluatePixel(samples) {
for (i=0;i<samples.length;i++)
{
if (samples[i].dataMask)
{
let val = samples[i].DM;
val = viz.process(val);
val.push(samples[i].dataMask);
return val;
}
}
//if there is no value, let's return empty value
return [0,0,0,0];
}
function setup() {
return {
input: [{
bands: [
"DM",
"dataMask"
]
}],
output: {
bands: 4,
sampleType: "AUTO"
},
mosaicking: "TILE"
}
}
It seems to work.
Thanks a lot, as always of great help! Your script works just perfectly.
best wishes,