S1 missing pixels

  • 26 April 2024
  • 4 replies
  • 48 views

I am trying to download S1-GRD images for a specific Bounding Box but there are missing pixels and the error is consistent across multiple dates see below an example of the missing pixels:

See also below an example of a single date request, I have also been able to replicate the error using the Request Builder.

{
    "request": {
        "headers": {
            "accept": "image/tiff",
            "content-type": "application/json"
        },
        "payload": {
            "evalscript": "\n//VERSION=3\n\nfunction setup() {\n    return {\n        input: [\n        {\n            bands: [\"VV\",\"VH\"],                  \n        }\n        ],\n        output: [\n        {\n            id: \"default\",\n            bands: 2,\n            sampleType: \"FLOAT32\",        \n            noDataValue: 0,\n        },    \n        ],\n        mosaicking: \"Simple\",\n    };\n    }\n\n\n    function evaluatePixel(samples) {\n        // Your javascript code here\n        return {\n        default:[samples.VV, samples.VH],\n        };\n    }\n\n    function updateOutputMetadata(scenes, inputMetadata, outputMetadata) {\n    // Write your code here\n    }\n    function preProcessScenes(collections) {\n    return collections;\n    }\n",
            "input": {
                "bounds": {
                    "bbox": [
                        622200.0,
                        6994940.0,
                        649720.0,
                        7035720.0
                    ],
                    "properties": {
                        "crs": "http://www.opengis.net/def/crs/EPSG/0/32735"
                    }
                },
                "data": [
                    {
                        "dataFilter": {
                            "acquisitionMode": "IW",
                            "mosaickingOrder": "mostRecent",
                            "orbitDirection": "ASCENDING",
                            "polarization": "DV",
                            "resolution": "HIGH",
                            "timeRange": {
                                "from": "2022-01-14T00:00:00Z",
                                "to": "2022-01-25T23:59:59Z"
                            }
                        },
                        "processing": {
                            "demInstance": "COPERNICUS",
                            "orthorectify": true,
                            "upsampling": "NEAREST"
                        },
                        "type": "sentinel-1-grd"
                    }
                ]
            },
            "output": {
                "responses": [
                    {
                        "format": {
                            "type": "image/tiff"
                        },
                        "identifier": "default"
                    }
                ],
                "resx": 20,
                "resy": 20
            }
        },
        "timestamp": "2023-02-06T09:12:27.448205",
        "url": "https://services.sentinel-hub.com/api/v1/process"
    },
    "response": {
        "elapsed": 6.285996,
        "headers": {
            "Connection": "keep-alive",
            "Content-Type": "image/tiff",
            "Date": "Mon, 06 Feb 2023 07:00:33 GMT",
            "Transfer-Encoding": "chunked",
            "access-control-allow-credentials": "true",
            "access-control-allow-headers": "origin,content-type,accept,accept-crs,authorization,cache-control",
            "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH",
            "access-control-allow-origin": "*",
            "access-control-max-age": "3600",
            "x-processingunits-spent": "14.270345477372757"
        },
        "status_code": 200
    }
}

Can someone please advise as to how I can solve the missing pixel issue?


4 replies

Hi,

Thank you for reporting the issue. We’re investigating the issue and will keep you up to date if we find anything.

Hi,

Thanks, looking forward to your reply.

Hi,

This effect comes from mosaicking different orbits, which is quite normal. A workaround would be using orbit mosaicking and manually selecting the data for each pixel to “stitch” the images. Below is the example evalscript:

//VERSION=3

function setup() {
return {
input: [
{
bands: ["VV","VH", "dataMask"],
}
],
output: [
{
id: "default",
bands: 3,
sampleType: "FLOAT32",
noDataValue: 0,
},
],
mosaicking: "ORBIT"
};
}


function evaluatePixel(samples) {
// initial variables as the noDataValue
let mosaic_vv = 0;
let mosaic_vh = 0;

// initial self-defined dataMask as 0 which means no data
let mosaic_dataMask = 0;

// for each pixel we check all available acquisitions and select the one having data
for (let i = 0; i < samples.length; i++) {
if (samples[i].dataMask === 1) {
mosaic_vv = samples[i].VV;
mosaic_vh = samples[i].VH;
mosaic_dataMask = 1;
}
}
return {
default:[mosaic_vv, mosaic_vh, mosaic_dataMask],
};
}

Hi,

Thanks for the reply and the example evalscript, this has resolved the issues I have been having.

Appreciate your time.

Reply


Planet Monitoring
Investors

© 2024 Planet Labs PBC. All rights reserved.
| Privacy Policy | California Privacy Notice | California Do Not Sell
Your Privacy Choices | Cookie Notice | Terms of Use