S1 missing pixels


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?


5 replies

Hi @rickus7.swanepoel ,

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

Hi @chung.horng

Thanks, looking forward to your reply.

Hi @rickus7.swanepoel ,

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 @chung.horng

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

Appreciate your time.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.

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