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:
How can I access this data collection?
Best regards
Reut
gmilcinski
(Grega Milcinski)
June 6, 2021, 4:28pm
#2
Hi @reutkeller ,
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.
1 Like
batic
(Matej Batič)
June 7, 2021, 5:13am
#3
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
)
1 Like
Hi @batic , I get the name error from your script:
NameError: name ‘ServiceUrl’ is not defined
batic
(Matej Batič)
June 13, 2021, 1:01pm
#5
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',
...
1 Like
reutkeller
(Reut Keller)
June 16, 2021, 10:49am
#6
@batic 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
batic
(Matej Batič)
June 16, 2021, 11:05am
#7
New version of sentinelhub-py was released yesterday, and these collections are now predefined.
Best of luck,
Matej
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
.
2 Likes