Skip to main content

Hello,

I’m interested to use Landsat 8 images level 2 (surface reflectance).
The problem is that it seems like this data collection is not available in WMS:

for collection in DataCollection.get_available_collections():
print(collection)
...
DataCollection.LANDSAT8

When I print information about this data collection seems like only level 1 is available :

DataCollection.LANDSAT8

>>> <DataCollection.LANDSAT8: DataCollectionDefinition(
api_id: L8L1C
catalog_id: landsat-8-l1c
wfs_id: DSS6
service_url: :https://services-uswest2.sentinel-hub.com](https://services-uswest2.sentinel-hub.com/)
collection_type: Landsat 8
processing_level: L1C bands: ('B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B09', 'B10', 'B11')
is_timeless: False
has_cloud_coverage: True )>

In additon to that, when I try to create new Landsat 8 level 2 layer, it seems like not all the bands are available:
image

How can I access this data collection?

Best regards 🙂
 

Hi.

let me try to answer all your questions.

  • landsat-8-l1c is an old, now deprecated, Landsat Collection 1, which will cease to exist end of June, see forum post.
  • for Collection 2 you should use landsat-ot-l1 and landsat-ot-l2
  • WFS ids are DSS12 for Level 1 and DSS13 for Level 2 (see info)
  • It might be that sentinelhub-py is not yet supporting this collection, but it should be straightforward to add it on your side (pull requests are welcome as well!)
  • the “Base products” In configuration utility are just the most commonly used composites. You can easily configure a new composite by following these instructions. You will find a list of available bands here.

So… Landsat 8 Collection 2 is for sure supported by WMS.


The DataCollection for Landsat Collection are not yet (pre)defined in sh-py, but following the rules in example it is possible to do it yourself.


The code for LandSat8, Level1 product from Collection 2 is thus:


landsat8_l1 = DataCollection.define(
name = 'L8_C2_L1',
api_id = 'LOTL1',
catalog_id = 'landsat-ot-l1',
wfs_id = 'DSS12',
service_url = ServiceUrl.USWEST,
collection_type = 'Landsat Collection 2',
processing_level = 'L1',
bands = ('B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B09', 'B10', 'B11', 'BQA'),
has_cloud_coverage = True
)

Hi  I get the name error from your script:

NameError: name ‘ServiceUrl’ is not defined


The ServiceUrl enum is defined in data_collections.py, so you need to import it first:


from sentinelhub.data_collections import ServiceUrl
ServiceUrl.USWEST
> 'https://services-uswest2.sentinel-hub.com'

The other possibility is to add url to the landsat8_l1 definition as


...
service_url = 'https://services-uswest2.sentinel-hub.com',
...

Thank you!
is there option to do the same for the level 2 data? Where can I get the parameters values to acess similarly the level 2 images?

Thank you very much 🙂


New version of sentinelhub-py was released yesterday, and these collections are now predefined.

Best of luck,
 


Thank you for your answer,

I experience unexcpected behavior, when I pront the available data collection it doesn’t show all the time the level two data:


for collection in DataCollection.get_available_collections():
print(collection)


DataCollection.SENTINEL2_L1C

DataCollection.SENTINEL2_L2A

DataCollection.SENTINEL1

DataCollection.SENTINEL1_IW

DataCollection.SENTINEL1_IW_ASC

DataCollection.SENTINEL1_IW_DES

DataCollection.SENTINEL1_EW

DataCollection.SENTINEL1_EW_ASC

DataCollection.SENTINEL1_EW_DES

DataCollection.SENTINEL1_EW_SH

DataCollection.SENTINEL1_EW_SH_ASC

DataCollection.SENTINEL1_EW_SH_DES

DataCollection.DEM

DataCollection.DEM_MAPZEN

DataCollection.DEM_COPERNICUS_30

DataCollection.DEM_COPERNICUS_90

DataCollection.MODIS

DataCollection.LANDSAT8

DataCollection.SENTINEL5P

DataCollection.SENTINEL3_OLCI

DataCollection.SENTINEL3_SLSTR



I suggest checking if you are using the correct version of the package. You can do that in the code with:


import sentinelhub

print(sentinelhub.__version__)

The new version is 3.3.1.


Reply