Open-EO / Open-EO/openeo-python-driver

Wrong media type for COGs

Open
#302 2 comments 0 reactions 1 assignee View on GitHub

@ElienVandermaesenVITO is already working on this.

Since May 18, 2026.

  • #502 by @copilot-swe-agent — open
Dominant language
Python
Stars
12
Forks
8
Avg merge
6d 3h
Merged PRs (30d)
4

Description

I have a Batch job result which points to a valid COG (checked with rio-cogeo), but the media type is set to a "regular" GeoTiff. This means that the Web Editor, STAC Browser, etc. often avoid loading the data as it assumes it's too large for memory.

If you expose a COG (great!) then the media type should be image/tiff; application=geotiff; profile=cloud-optimized instead of image/tiff; application=geotiff.

Example:

{
  "assets":{
    "openEO.tif":{
      "file:size":108814041,
      "href":"https://openeo.vito.be/openeo/1.1/jobs/j-240724b6b3564cb6bf5ab810d0cbdc80/results/assets/MjUyNTRjNGRiMTkzMGNhNzQwNjg0OTJmM2NhOWIyZjM0N2JhMWU3ZTI0ZTAzY2U0OTMzOTlmZWE1NmVhOTQzN0BlZ2kuZXU=/bba518f751735c8c7519ddce3280a5e7/openEO.tif?expires=1722459029",
      "proj:bbox":[
        614210.0,
        4222270.0,
        665170.0,
        4269040.0
      ],
      "proj:epsg":32629,
      "proj:shape":[
        4677,
        5096
      ],
      "raster:bands":[
        {
          "name":"1",
          "statistics":{
            "maximum":35012.51171875,
            "mean":59.429729521316,
            "minimum":0.013798367232084,
            "stddev":50.635991559311,
            "valid_percent":99.71
          }
        }
      ],
      "roles":[
        "data"
      ],
      "title":"openEO.tif",
      "type":"image/tiff; application=geotiff"
    }
  },
  "description":"Results for batch job j-240724b6b3564cb6bf5ab810d0cbdc80",
  "extent":{
    "spatial":{
      "bbox":[
        [
          -7.689248,
          38.141037,
          -7.115289,
          38.554609
        ]
      ]
    },
    "temporal":{
      "interval":[
        [
          "2019-06-27T00:00:00Z",
          "2019-07-04T00:00:00Z"
        ]
      ]
    }
  },
  "id":"j-240724b6b3564cb6bf5ab810d0cbdc80",
  "license":"proprietary",
  "links":[
    {
      "href":"urn:eop:VITO:TERRASCOPE_S2_TOC_V2:S2A_20190701T110621_29SPC_TOC_V210",
      "rel":"derived_from",
      "title":"Derived from urn:eop:VITO:TERRASCOPE_S2_TOC_V2:S2A_20190701T110621_29SPC_TOC_V210",
      "type":"application/json"
    },
    {
      "href":"urn:eop:VITO:TERRASCOPE_S2_TOC_V2:S2B_20190629T112119_29SPC_TOC_V210",
      "rel":"derived_from",
      "title":"Derived from urn:eop:VITO:TERRASCOPE_S2_TOC_V2:S2B_20190629T112119_29SPC_TOC_V210",
      "type":"application/json"
    },
    {
      "href":"https://openeo.vito.be/openeo/1.1/jobs/j-240724b6b3564cb6bf5ab810d0cbdc80/results",
      "rel":"self",
      "type":"application/json"
    },
    {
      "href":"https://openeo.vito.be/openeo/1.1/jobs/j-240724b6b3564cb6bf5ab810d0cbdc80/results/MjUyNTRjNGRiMTkzMGNhNzQwNjg0OTJmM2NhOWIyZjM0N2JhMWU3ZTI0ZTAzY2U0OTMzOTlmZWE1NmVhOTQzN0BlZ2kuZXU=/dd43d087e21bf7512d787277797ec1b5?expires=1722459029",
      "rel":"canonical",
      "type":"application/json"
    },
    {
      "href":"http://ceos.org/ard/files/PFS/SR/v5.0/CARD4L_Product_Family_Specification_Surface_Reflectance-v5.0.pdf",
      "rel":"card4l-document",
      "type":"application/pdf"
    },
    {
      "href":"https://openeo.vito.be/openeo/1.1/jobs/j-240724b6b3564cb6bf5ab810d0cbdc80/results/items/MjUyNTRjNGRiMTkzMGNhNzQwNjg0OTJmM2NhOWIyZjM0N2JhMWU3ZTI0ZTAzY2U0OTMzOTlmZWE1NmVhOTQzN0BlZ2kuZXU=/bba518f751735c8c7519ddce3280a5e7/openEO.tif?expires=1722459029",
      "rel":"item",
      "type":"application/geo+json"
    }
  ],
  "openeo:status":"finished",
  "providers":[
    {
      "description":"This data was processed on an openEO backend maintained by VITO.",
      "name":"VITO",
      "processing:expression":{
        "expression":{
          "load1":{
            "arguments":{
              "bands":[
                "B01",
                "B02",
                "B03",
                "B04"
              ],
              "id":"SENTINEL2_L2A",
              "spatial_extent":{
                "coordinates":[
                  [
                    [
                      -7.664532,
                      38.543869
                    ],
                    [
                      -7.689248,
                      38.141037
                    ],
                    [
                      -7.159228,
                      38.151837
                    ],
                    [
                      -7.115289,
                      38.554609
                    ],
                    [
                      -7.664532,
                      38.543869
                    ]
                  ]
                ],
                "type":"Polygon"
              },
              "temporal_extent":[
                "2019-06-27T00:00:00Z",
                "2019-07-04T00:00:00Z"
              ]
            },
            "process_id":"load_collection"
          },
          "reduce2":{
            "arguments":{
              "data":{
                "from_node":"load1"
              },
              "dimension":"t",
              "reducer":{
                "process_graph":{
                  "divide1":{
                    "arguments":{
                      "x":{
                        "from_node":"mean1"
                      },
                      "y":10000
                    },
                    "process_id":"divide",
                    "result":true
                  },
                  "mean1":{
                    "arguments":{
                      "data":{
                        "from_parameter":"data"
                      }
                    },
                    "process_id":"mean"
                  }
                }
              }
            },
            "process_id":"reduce_dimension"
          },
          "reduce4":{
            "arguments":{
              "data":{
                "from_node":"reduce2"
              },
              "dimension":"bands",
              "reducer":{
                "process_graph":{
                  "0cng0nfg4":{
                    "arguments":{
                      "data":{
                        "from_parameter":"data"
                      },
                      "label":"B01"
                    },
                    "process_id":"array_element"
                  },
                  "48gn5n3mi":{
                    "arguments":{
                      "base":{
                        "from_node":"r3q22kk62"
                      },
                      "p":3.94
                    },
                    "process_id":"power"
                  },
                  "ifzfq42ka":{
                    "arguments":{
                      "x":4.26,
                      "y":{
                        "from_node":"48gn5n3mi"
                      }
                    },
                    "process_id":"multiply",
                    "result":true
                  },
                  "k8qp5ohv5":{
                    "arguments":{
                      "data":{
                        "from_parameter":"data"
                      },
                      "label":"B03"
                    },
                    "process_id":"array_element"
                  },
                  "r3q22kk62":{
                    "arguments":{
                      "x":{
                        "from_node":"k8qp5ohv5"
                      },
                      "y":{
                        "from_node":"0cng0nfg4"
                      }
                    },
                    "process_id":"divide"
                  }
                }
              }
            },
            "description":"Concentration of Chlorophyll a",
            "process_id":"reduce_dimension"
          },
          "save5":{
            "arguments":{
              "data":{
                "from_node":"reduce4"
              },
              "format":"GTIFF"
            },
            "description":"Concentration of Chlorophyll a",
            "process_id":"save_result",
            "result":true
          }
        },
        "format":"openeo"
      },
      "processing:facility":"openEO Geotrellis backend",
      "processing:software":{
        "Geotrellis backend":"0.38.6a1"
      },
      "roles":[
        "processor"
      ]
    }
  ],
  "stac_extensions":[
    "https://stac-extensions.github.io/eo/v1.1.0/schema.json",
    "https://stac-extensions.github.io/file/v2.1.0/schema.json",
    "https://stac-extensions.github.io/processing/v1.1.0/schema.json",
    "https://stac-extensions.github.io/projection/v1.1.0/schema.json"
  ],
  "stac_version":"1.0.0",
  "summaries":{
    "instruments":[
      "MSI"
    ]
  },
  "title":"Chlorophyll a",
  "type":"Collection"
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.