diff --git a/src/DotNetStac.Test/Extensions/ItemCollectionTests.cs b/src/DotNetStac.Test/Extensions/ItemCollectionTests.cs deleted file mode 100644 index cd4b7616..00000000 --- a/src/DotNetStac.Test/Extensions/ItemCollectionTests.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) by Terradue Srl. All Rights Reserved. -// License under the AGPL, Version 3.0. -// File Name: ItemCollectionTests.cs - -using Stac.Extensions.ItemCollections; -using Xunit; - -namespace Stac.Test.Extensions -{ - public class ItemCollectionTests : TestBase - { - // [Fact] - public void CanDeserializeResto() - { - var json = GetJson("Extensions"); - - ValidateJson(json); - - var stacObject = StacConvert.Deserialize(json); - - Assert.IsAssignableFrom(stacObject); - - ItemCollection itemCollection = stacObject as ItemCollection; - - Assert.Equal("1.0.0", itemCollection.StacVersion); - - Assert.NotEmpty(itemCollection.Features); - - } - - } -} diff --git a/src/DotNetStac.Test/Resources/Extensions/ItemCollectionTests_CanDeserializeResto.json b/src/DotNetStac.Test/Resources/Extensions/ItemCollectionTests_CanDeserializeResto.json deleted file mode 100644 index 22cc64d6..00000000 --- a/src/DotNetStac.Test/Resources/Extensions/ItemCollectionTests_CanDeserializeResto.json +++ /dev/null @@ -1,6939 +0,0 @@ -{ - "type": "FeatureCollection", - "id": "b083c1b2-75b9-59a0-bd76-ce0955f1467c", - "stac_version": "1.0.0", - "context": { - "returned": 20, - "limit": 20, - "matched": 440000, - "exactCount": false, - "startIndex": 1, - "query": { - "inputFilters": { - "q": "#month:01" - }, - "appliedFilters": { - "q": "#month:01" - }, - "processingTime": 32.56619095802307 - } - }, - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/catalogs/classifications/temporal/month/month:01.json?&fields=_all" - }, - { - "rel": "search", - "type": "application/opensearchdescription+xml", - "href": "https://tamn.snapplanet.io/services/osdd" - }, - { - "rel": "next", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/catalogs/classifications/temporal/month/month:01.json?&fields=_all&next=211306015173002329" - } - ], - "features": [ - { - "type": "Feature", - "id": "32d4808b-627a-5888-b05a-e31bc02cb87b", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 172.608145, - 52.338619 - ], - [ - 172.993108, - 52.332663 - ], - [ - 172.952793, - 52.257366 - ], - [ - 172.611713, - 52.338205 - ], - [ - 172.608145, - 52.338619 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59UPT_20210201T011827", - "datetime": "2021-01-31T23:51:46.690000Z", - "start_datetime": "2021-01-31T23:51:46.690000Z", - "end_datetime": "2021-01-31T23:51:46.690000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59UPT", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 27.03, - "coverage": 0.92, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/PT/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:09.907Z", - "s3Ingestion": "2021-02-01T02:17:07.849Z", - "eo:sun_elevation": 69.7446064532251, - "eo:sun_azimuth": 167.619997914823, - "viewZenith": 11.0439323553914, - "view:azimuth": 297.676437469211, - "updated": "2021-02-01T02:17:08.884763Z", - "published": "2021-02-01T02:17:08.884763Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 109.93555, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 172.851992, - 52.30954 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/32d4808b-627a-5888-b05a-e31bc02cb87b" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/32d4808b-627a-5888-b05a-e31bc02cb87b/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/32d4808b-627a-5888-b05a-e31bc02cb87b/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PT/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 172.608145212924, - 52.2573660798308, - 172.993108056175, - 52.3386191897609 - ] - }, - { - "type": "Feature", - "id": "441579b1-15a9-5063-9413-59e718387f68", - "geometry": null, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T58UGD_20210201T011827", - "datetime": "2021-01-31T23:51:46.336000Z", - "start_datetime": "2021-01-31T23:51:46.336000Z", - "end_datetime": "2021-01-31T23:51:46.336000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "58UGD", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 11.35, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/58/U/GD/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:11.806Z", - "s3Ingestion": "2021-02-01T02:16:43.973Z", - "eo:sun_elevation": 71.2688448525249, - "eo:sun_azimuth": 163.205909231337, - "viewZenith": 9.66188157061808, - "view:azimuth": 105.593914657734, - "updated": "2021-02-01T02:16:45.771858Z", - "published": "2021-02-01T02:16:45.771858Z", - "keywords": [ - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1 - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/441579b1-15a9-5063-9413-59e718387f68" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/441579b1-15a9-5063-9413-59e718387f68/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/441579b1-15a9-5063-9413-59e718387f68/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GD/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ] - }, - { - "type": "Feature", - "id": "bcdce118-b082-5b4e-acde-e10c4db4d134", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 168.863983, - 53.230477 - ], - [ - 169.648327, - 53.241954 - ], - [ - 169.659341, - 52.888738 - ], - [ - 169.658543, - 52.889548 - ], - [ - 169.506406, - 52.912827 - ], - [ - 168.810779, - 53.007014 - ], - [ - 168.7938, - 53.010522 - ], - [ - 168.769257, - 53.012774 - ], - [ - 168.863983, - 53.230477 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59ULU_20210201T011827", - "datetime": "2021-01-31T23:51:45.837000Z", - "start_datetime": "2021-01-31T23:51:45.837000Z", - "end_datetime": "2021-01-31T23:51:45.837000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59ULU", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 12.22, - "coverage": 14.85, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/LU/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:10.816Z", - "s3Ingestion": "2021-02-01T02:16:58.145Z", - "eo:sun_elevation": 71.294555053769, - "eo:sun_azimuth": 163.284834906908, - "viewZenith": 9.53533124456668, - "view:azimuth": 105.711509832165, - "updated": "2021-02-01T02:17:00.041303Z", - "published": "2021-02-01T02:17:00.041303Z", - "keywords": [ - { - "id": "ocean:NorthPacificOcean:4030875", - "name": "North Pacific Ocean", - "type": "ocean", - "value": 93.06, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23ocean%3ANorthPacificOcean%3A4030875" - }, - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 6.83, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 1783.50706, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "ocean:NorthPacificOcean:4030875", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 169.265475, - 53.088661 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/bcdce118-b082-5b4e-acde-e10c4db4d134" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/bcdce118-b082-5b4e-acde-e10c4db4d134/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/bcdce118-b082-5b4e-acde-e10c4db4d134/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LU/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 168.769256545929, - 52.8887382170239, - 169.659341170422, - 53.2419543907225 - ] - }, - { - "type": "Feature", - "id": "e9c45bb5-8ffb-55c3-810f-b4be9f591ebd", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 169.500956, - 53.240192 - ], - [ - 171.146262, - 53.249528 - ], - [ - 171.14422, - 52.63991 - ], - [ - 171.139523, - 52.640642 - ], - [ - 171.139528, - 52.642042 - ], - [ - 171.132349, - 52.64205 - ], - [ - 170.908712, - 52.684124 - ], - [ - 170.274018, - 52.793596 - ], - [ - 169.52327, - 52.910191 - ], - [ - 169.51238, - 52.910055 - ], - [ - 169.500956, - 53.240192 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59UMU_20210201T011827", - "datetime": "2021-01-31T23:51:44.308000Z", - "start_datetime": "2021-01-31T23:51:44.308000Z", - "end_datetime": "2021-01-31T23:51:44.308000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59UMU", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 50.89, - "coverage": 47.19, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/MU/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:25.726Z", - "s3Ingestion": "2021-02-01T02:15:31.322Z", - "eo:sun_elevation": 71.0671977054969, - "eo:sun_azimuth": 164.743250184417, - "viewZenith": 4.16172109583659, - "view:azimuth": 108.977400948379, - "updated": "2021-02-01T02:15:35.639375Z", - "published": "2021-02-01T02:15:35.639375Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 78.52, - "gcover": 0.2, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "ocean:NorthPacificOcean:4030875", - "name": "North Pacific Ocean", - "type": "ocean", - "value": 21.48, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23ocean%3ANorthPacificOcean%3A4030875" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 5684.69081, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "ocean:NorthPacificOcean:4030875", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 170.408579, - 53.006683 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/e9c45bb5-8ffb-55c3-810f-b4be9f591ebd" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/e9c45bb5-8ffb-55c3-810f-b4be9f591ebd/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/e9c45bb5-8ffb-55c3-810f-b4be9f591ebd/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MU/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 169.500955705136, - 52.6399099302, - 171.146261854414, - 53.2495277635177 - ] - }, - { - "type": "Feature", - "id": "3cea4878-d3d8-5558-903f-02a065c25dd7", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 170.999715, - 53.249617 - ], - [ - 172.492848, - 53.24027 - ], - [ - 172.643759, - 53.207671 - ], - [ - 172.611326, - 52.338288 - ], - [ - 171.922968, - 52.487266 - ], - [ - 171.223517, - 52.626231 - ], - [ - 171.008295, - 52.665035 - ], - [ - 171.008296, - 52.666397 - ], - [ - 170.999719, - 52.666397 - ], - [ - 170.999715, - 53.249617 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59UNU_20210201T011827", - "datetime": "2021-01-31T23:51:42.270000Z", - "start_datetime": "2021-01-31T23:51:42.270000Z", - "end_datetime": "2021-01-31T23:51:42.270000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59UNU", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 39.29, - "coverage": 74.65, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/NU/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:31.142Z", - "s3Ingestion": "2021-02-01T02:14:50.558Z", - "eo:sun_elevation": 70.8436703859328, - "eo:sun_azimuth": 166.207492787993, - "viewZenith": 5.1314947372972, - "view:azimuth": 268.501062464515, - "updated": "2021-02-01T02:14:56.559895Z", - "published": "2021-02-01T02:14:56.559895Z", - "keywords": [ - { - "id": "continent:NorthAmerica:6255149", - "name": "North America", - "type": "continent", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23continent%3ANorthAmerica%3A6255149" - }, - { - "id": "country:UnitedStatesOfAmerica:6252001", - "name": "United States of America", - "type": "country", - "parentId": "continent:NorthAmerica:6255149", - "value": 0.58, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23country%3AUnitedStatesOfAmerica%3A6252001" - }, - { - "id": "region:West:11887751", - "name": "West", - "type": "region", - "parentId": "country:UnitedStatesOfAmerica:6252001", - "value": 0.57, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23region%3AWest%3A11887751" - }, - { - "id": "state:Alaska:5879092", - "name": "Alaska", - "type": "state", - "parentId": "region:West:11887751", - "value": 0.58, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23state%3AAlaska%3A5879092" - }, - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 99.46, - "gcover": 0.4, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 8933.57992, - "value": 99.59, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "landcover:herbaceous", - "name": "Herbaceous", - "type": "landcover:herbaceous", - "area": 61.72668, - "value": 0.68, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Aherbaceous" - }, - { - "id": "landcover:desert", - "name": "Desert", - "type": "landcover:desert", - "area": 15.62816, - "value": 0.17, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Adesert" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "location:coastal", - "name": "Coastal", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Acoastal" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "continent:NorthAmerica:6255149", - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "location:coastal", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 171.871912, - 52.870142 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/3cea4878-d3d8-5558-903f-02a065c25dd7" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/3cea4878-d3d8-5558-903f-02a065c25dd7/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/3cea4878-d3d8-5558-903f-02a065c25dd7/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NU/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 170.999715239247, - 52.3382882629184, - 172.643759075872, - 53.2496174782598 - ] - }, - { - "type": "Feature", - "id": "566e68c3-edf8-5bb8-9380-31b519e26bb4", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 169.69675, - 53.729373 - ], - [ - 169.624678, - 53.071266 - ], - [ - 168.806983, - 53.100282 - ], - [ - 169.122016, - 53.806343 - ], - [ - 169.412774, - 53.766658 - ], - [ - 169.69675, - 53.729373 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T58UGE_20210201T011827", - "datetime": "2021-01-31T23:51:40.686000Z", - "start_datetime": "2021-01-31T23:51:40.686000Z", - "end_datetime": "2021-01-31T23:51:40.686000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "58UGE", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 12.43, - "coverage": 29.82, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/58/U/GE/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:20.687Z", - "s3Ingestion": "2021-02-01T02:16:18.681Z", - "eo:sun_elevation": 72.1243419752625, - "eo:sun_azimuth": 163.30922647126, - "viewZenith": 10.0654368612105, - "view:azimuth": 105.644581591674, - "updated": "2021-02-01T02:16:21.807412Z", - "published": "2021-02-01T02:16:21.807412Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 69.3, - "gcover": 0.11, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "ocean:NorthPacificOcean:4030875", - "name": "North Pacific Ocean", - "type": "ocean", - "value": 30.6, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23ocean%3ANorthPacificOcean%3A4030875" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 3575.24064, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "ocean:NorthPacificOcean:4030875", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 169.301825, - 53.40875 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/566e68c3-edf8-5bb8-9380-31b519e26bb4" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/566e68c3-edf8-5bb8-9380-31b519e26bb4/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/566e68c3-edf8-5bb8-9380-31b519e26bb4/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/58/U/GE/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 168.806982582281, - 53.0712660676314, - 169.696750016091, - 53.8063430799066 - ] - }, - { - "type": "Feature", - "id": "02a48642-bce5-5d97-91b9-8b4e611bc00e", - "geometry": null, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59UPU_20210201T011827", - "datetime": "2021-01-31T23:51:40.446000Z", - "start_datetime": "2021-01-31T23:51:40.446000Z", - "end_datetime": "2021-01-31T23:51:40.446000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59UPU", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 32.14, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/PU/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:23.635Z", - "s3Ingestion": "2021-02-01T02:16:12.348Z", - "eo:sun_elevation": 70.624235432197, - "eo:sun_azimuth": 167.674990748947, - "viewZenith": 9.85074071979077, - "view:azimuth": 288.855492854153, - "updated": "2021-02-01T02:16:15.527344Z", - "published": "2021-02-01T02:16:15.527344Z", - "keywords": [ - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1 - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/02a48642-bce5-5d97-91b9-8b4e611bc00e" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/02a48642-bce5-5d97-91b9-8b4e611bc00e/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/02a48642-bce5-5d97-91b9-8b4e611bc00e/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/PU/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ] - }, - { - "type": "Feature", - "id": "77cac508-6a47-56ba-a27b-81c2caa78c38", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 169.632461, - 53.737967 - ], - [ - 169.651106, - 53.153544 - ], - [ - 168.824759, - 53.141314 - ], - [ - 169.121629, - 53.806218 - ], - [ - 169.499597, - 53.754944 - ], - [ - 169.632461, - 53.737967 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59ULV_20210201T011827", - "datetime": "2021-01-31T23:51:40.297000Z", - "start_datetime": "2021-01-31T23:51:40.297000Z", - "end_datetime": "2021-01-31T23:51:40.297000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59ULV", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 11.74, - "coverage": 25.85, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/LV/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:24.436Z", - "s3Ingestion": "2021-02-01T02:15:48.861Z", - "eo:sun_elevation": 72.1727746740516, - "eo:sun_azimuth": 163.265392355451, - "viewZenith": 10.1566282124261, - "view:azimuth": 106.150186796944, - "updated": "2021-02-01T02:15:51.302810Z", - "published": "2021-02-01T02:15:51.302810Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 76.53, - "gcover": 0.1, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "ocean:NorthPacificOcean:4030875", - "name": "North Pacific Ocean", - "type": "ocean", - "value": 23.4, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23ocean%3ANorthPacificOcean%3A4030875" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 3104.88928, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "ocean:NorthPacificOcean:4030875", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 169.294038, - 53.436997 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/77cac508-6a47-56ba-a27b-81c2caa78c38" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/77cac508-6a47-56ba-a27b-81c2caa78c38/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/77cac508-6a47-56ba-a27b-81c2caa78c38/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/LV/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 168.824759448456, - 53.1413140116774, - 169.651105539306, - 53.8062175914836 - ] - }, - { - "type": "Feature", - "id": "9ce77bfd-296d-54cc-980f-02f2bd717620", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 171.147122, - 53.499923 - ], - [ - 171.145961, - 53.161093 - ], - [ - 169.504037, - 53.151787 - ], - [ - 169.482598, - 53.757371 - ], - [ - 169.880821, - 53.703685 - ], - [ - 170.553239, - 53.600628 - ], - [ - 171.147122, - 53.499923 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59UMV_20210201T011827", - "datetime": "2021-01-31T23:51:38.267000Z", - "start_datetime": "2021-01-31T23:51:38.267000Z", - "end_datetime": "2021-01-31T23:51:38.267000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59UMV", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 28.33, - "coverage": 48.26, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/MV/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:26.422Z", - "s3Ingestion": "2021-02-01T02:15:17.600Z", - "eo:sun_elevation": 71.9458141124601, - "eo:sun_azimuth": 164.748318031396, - "viewZenith": 5.61760409900246, - "view:azimuth": 102.586954355881, - "updated": "2021-02-01T02:15:21.413892Z", - "published": "2021-02-01T02:15:21.413892Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 99.89, - "gcover": 0.26, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "ocean:NorthPacificOcean:4030875", - "name": "North Pacific Ocean", - "type": "ocean", - "value": 0.16, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23ocean%3ANorthPacificOcean%3A4030875" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 5846.75686, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 170.243035, - 53.40172 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/9ce77bfd-296d-54cc-980f-02f2bd717620" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/9ce77bfd-296d-54cc-980f-02f2bd717620/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/9ce77bfd-296d-54cc-980f-02f2bd717620/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/MV/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 169.482597719027, - 53.1517871616411, - 171.147122207848, - 53.757371210086 - ] - }, - { - "type": "Feature", - "id": "5242f7e0-44c6-5123-bbdb-ae5160f734da", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 172.643759, - 53.207672 - ], - [ - 172.64155, - 53.149869 - ], - [ - 170.999716, - 53.161183 - ], - [ - 170.999713, - 53.525535 - ], - [ - 171.288571, - 53.475184 - ], - [ - 171.313764, - 53.46948 - ], - [ - 171.606867, - 53.415477 - ], - [ - 171.632085, - 53.412112 - ], - [ - 172.327039, - 53.274998 - ], - [ - 172.643759, - 53.207672 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T235129_N0209_R073_T59UNV_20210201T011827", - "datetime": "2021-01-31T23:51:36.377000Z", - "start_datetime": "2021-01-31T23:51:36.377000Z", - "end_datetime": "2021-01-31T23:51:36.377000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59UNV", - "dataTakeId": "GS2B_20210131T235129_020405_N02.09", - "eo:cloud_cover": 17.3, - "coverage": 21.73, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011827_S20210131T235130_N02.09", - "path": "tiles/59/U/NV/2021/1/31/0", - "sciHubIngestion": "2021-02-01T01:58:19.269Z", - "s3Ingestion": "2021-02-01T02:16:34.757Z", - "eo:sun_elevation": 71.7224663414524, - "eo:sun_azimuth": 166.23705737965, - "viewZenith": 3.43186496736798, - "view:azimuth": 219.56672015587, - "updated": "2021-02-01T02:16:37.203538Z", - "published": "2021-02-01T02:16:37.203538Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.11, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 2638.29249, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 171.627856, - 53.283216 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/5242f7e0-44c6-5123-bbdb-ae5160f734da" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/5242f7e0-44c6-5123-bbdb-ae5160f734da/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/5242f7e0-44c6-5123-bbdb-ae5160f734da/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/U/NV/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 170.999713392047, - 53.1498690808361, - 172.643759120848, - 53.5255348747255 - ] - }, - { - "type": "Feature", - "id": "c06d5164-ebf5-5ba7-8d5f-d2bed31b5b38", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 174.310511, - 60.395296 - ], - [ - 174.806733, - 60.382017 - ], - [ - 174.799207, - 60.317462 - ], - [ - 174.787225, - 60.320874 - ], - [ - 174.507019, - 60.366343 - ], - [ - 174.310511, - 60.395296 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T59VPG_20210201T011900", - "datetime": "2021-01-31T23:49:36.867000Z", - "start_datetime": "2021-01-31T23:49:36.867000Z", - "end_datetime": "2021-01-31T23:49:36.867000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59VPG", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.81, - "coverage": 0.78, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/59/V/PG/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:38:09.558Z", - "s3Ingestion": "2021-02-01T02:54:28.949Z", - "eo:sun_elevation": 77.6464281057125, - "eo:sun_azimuth": 168.09720264101, - "viewZenith": 3.78879480183961, - "view:azimuth": 129.400745351259, - "updated": "2021-02-01T02:54:30.183538Z", - "published": "2021-02-01T02:54:30.183538Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 93.79916, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 174.641767, - 60.365525 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/c06d5164-ebf5-5ba7-8d5f-d2bed31b5b38" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/c06d5164-ebf5-5ba7-8d5f-d2bed31b5b38/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/c06d5164-ebf5-5ba7-8d5f-d2bed31b5b38/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PG/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 174.310510609492, - 60.3174621691917, - 174.806732571519, - 60.3952957318506 - ] - }, - { - "type": "Feature", - "id": "b7f02914-0522-5659-b7fc-e1010591c8da", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 174.229619, - 60.407637 - ], - [ - 175.361607, - 60.426376 - ], - [ - 175.37187, - 60.220928 - ], - [ - 174.873021, - 60.306618 - ], - [ - 174.544196, - 60.360238 - ], - [ - 174.229619, - 60.407637 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T60VUM_20210201T011900", - "datetime": "2021-01-31T23:49:35.159000Z", - "start_datetime": "2021-01-31T23:49:35.159000Z", - "end_datetime": "2021-01-31T23:49:35.159000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "60VUM", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.91, - "coverage": 5.82, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/60/V/UM/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:38:11.726Z", - "s3Ingestion": "2021-02-01T03:02:51.230Z", - "eo:sun_elevation": 77.5867141237258, - "eo:sun_azimuth": 168.708457972102, - "viewZenith": 2.58570365478071, - "view:azimuth": 93.9644000472411, - "updated": "2021-02-01T03:02:52.482509Z", - "published": "2021-02-01T03:02:52.482509Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.03, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 698.03382, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 174.993583, - 60.352445 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/b7f02914-0522-5659-b7fc-e1010591c8da" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/b7f02914-0522-5659-b7fc-e1010591c8da/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/b7f02914-0522-5659-b7fc-e1010591c8da/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UM/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 174.229618751865, - 60.2209283291489, - 175.371869921259, - 60.4263758354072 - ] - }, - { - "type": "Feature", - "id": "3a3f9c13-4ed9-5062-b73f-69a2d1600f0a", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 173.037947, - 61.124807 - ], - [ - 173.003579, - 60.580732 - ], - [ - 173.000535, - 60.580777 - ], - [ - 172.73194, - 60.616858 - ], - [ - 172.721971, - 60.616987 - ], - [ - 172.717156, - 60.618383 - ], - [ - 173.037947, - 61.124807 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T59VNH_20210201T011900", - "datetime": "2021-01-31T23:49:34.478000Z", - "start_datetime": "2021-01-31T23:49:34.478000Z", - "end_datetime": "2021-01-31T23:49:34.478000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59VNH", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.94, - "coverage": 3.97, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/59/V/NH/2021/1/31/1", - "sciHubIngestion": "2021-02-01T02:38:10.699Z", - "s3Ingestion": "2021-02-01T03:03:17.263Z", - "eo:sun_elevation": 78.7442639199439, - "eo:sun_azimuth": 166.386424562141, - "viewZenith": 11.4881355706039, - "view:azimuth": 115.969937772772, - "updated": "2021-02-01T03:03:18.269398Z", - "published": "2021-02-01T03:03:18.269398Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.02, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 476.55944, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 172.919617, - 60.774644 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/3a3f9c13-4ed9-5062-b73f-69a2d1600f0a" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/3a3f9c13-4ed9-5062-b73f-69a2d1600f0a/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/3a3f9c13-4ed9-5062-b73f-69a2d1600f0a/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/NH/2021/1/31/1/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 172.717155926524, - 60.5807318460504, - 173.037947297857, - 61.1248073595987 - ] - }, - { - "type": "Feature", - "id": "48081d72-3dce-595e-b8bb-429629726582", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 175.184827, - 60.424084 - ], - [ - 177.177303, - 60.43633 - ], - [ - 177.174274, - 59.869063 - ], - [ - 177.165521, - 59.872014 - ], - [ - 177.025004, - 59.901782 - ], - [ - 176.348736, - 60.039722 - ], - [ - 175.693221, - 60.164726 - ], - [ - 175.310161, - 60.232611 - ], - [ - 175.196279, - 60.249862 - ], - [ - 175.184827, - 60.424084 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T60VVM_20210201T011900", - "datetime": "2021-01-31T23:49:33.328000Z", - "start_datetime": "2021-01-31T23:49:33.328000Z", - "end_datetime": "2021-01-31T23:49:33.328000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "60VVM", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.97, - "coverage": 37.02, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/60/V/VM/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:40:53.762Z", - "s3Ingestion": "2021-02-01T02:58:24.315Z", - "eo:sun_elevation": 77.4490227013943, - "eo:sun_azimuth": 170.432314772807, - "viewZenith": 5.02430045816962, - "view:azimuth": 269.654848941782, - "updated": "2021-02-01T02:58:27.948703Z", - "published": "2021-02-01T02:58:27.948703Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.19, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 4473.90948, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 176.364104, - 60.232313 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/48081d72-3dce-595e-b8bb-429629726582" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/48081d72-3dce-595e-b8bb-429629726582/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/48081d72-3dce-595e-b8bb-429629726582/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VM/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 175.18482667129, - 59.8690633280913, - 177.177302514332, - 60.4363298650668 - ] - }, - { - "type": "Feature", - "id": "75d4ff03-5c8c-5eed-91eb-688f4dfcae64", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 176.999655, - 60.436448 - ], - [ - 178.303759, - 60.430071 - ], - [ - 177.753973, - 59.740285 - ], - [ - 177.314027, - 59.840525 - ], - [ - 177.040005, - 59.898548 - ], - [ - 177.00754, - 59.905078 - ], - [ - 176.99966, - 59.905267 - ], - [ - 176.999655, - 60.436448 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T60VWM_20210201T011900", - "datetime": "2021-01-31T23:49:30.759000Z", - "start_datetime": "2021-01-31T23:49:30.759000Z", - "end_datetime": "2021-01-31T23:49:30.759000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "60VWM", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.99, - "coverage": 33.34, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/60/V/WM/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:41:19.079Z", - "s3Ingestion": "2021-02-01T02:57:21.201Z", - "eo:sun_elevation": 77.3136490306663, - "eo:sun_azimuth": 172.16094476235, - "viewZenith": 9.6958957731721, - "view:azimuth": 292.869393016292, - "updated": "2021-02-01T02:57:24.105845Z", - "published": "2021-02-01T02:57:24.105845Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.17, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 4076.17079, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 177.552843, - 60.149362 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/75d4ff03-5c8c-5eed-91eb-688f4dfcae64" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/75d4ff03-5c8c-5eed-91eb-688f4dfcae64/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/75d4ff03-5c8c-5eed-91eb-688f4dfcae64/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WM/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 176.999654805081, - 59.740285160489, - 178.303759110149, - 60.4364477889322 - ] - }, - { - "type": "Feature", - "id": "86afd2ed-429d-5d6c-a4cb-ae1749c31884", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 173.162256, - 61.317227 - ], - [ - 174.914883, - 61.277972 - ], - [ - 174.79926, - 60.317924 - ], - [ - 174.485604, - 60.369601 - ], - [ - 173.625012, - 60.498254 - ], - [ - 172.898596, - 60.595176 - ], - [ - 172.826368, - 60.603405 - ], - [ - 172.838274, - 60.812523 - ], - [ - 173.162256, - 61.317227 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T59VPH_20210201T011900", - "datetime": "2021-01-31T23:49:29.809000Z", - "start_datetime": "2021-01-31T23:49:29.809000Z", - "end_datetime": "2021-01-31T23:49:29.809000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59VPH", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.99, - "coverage": 81.13, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/59/V/PH/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:41:21.851Z", - "s3Ingestion": "2021-02-01T02:57:05.268Z", - "eo:sun_elevation": 78.5225660890856, - "eo:sun_azimuth": 168.15225103844, - "viewZenith": 7.62396262569761, - "view:azimuth": 109.293965023931, - "updated": "2021-02-01T02:57:10.773109Z", - "published": "2021-02-01T02:57:10.773109Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.43, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 9760.61095, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 173.945654, - 60.869128 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/86afd2ed-429d-5d6c-a4cb-ae1749c31884" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/86afd2ed-429d-5d6c-a4cb-ae1749c31884/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/86afd2ed-429d-5d6c-a4cb-ae1749c31884/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PH/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 172.826367549834, - 60.3179237691473, - 174.914883247728, - 61.3172265906898 - ] - }, - { - "type": "Feature", - "id": "1e11fd5d-74ef-5931-9909-f6e6e3c49468", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 173.269379, - 61.283169 - ], - [ - 175.314943, - 61.323985 - ], - [ - 175.365964, - 60.339515 - ], - [ - 174.716996, - 60.330673 - ], - [ - 174.707299, - 60.333472 - ], - [ - 174.485827, - 60.369388 - ], - [ - 173.720948, - 60.48429 - ], - [ - 173.358041, - 60.532188 - ], - [ - 173.269379, - 61.283169 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T60VUN_20210201T011900", - "datetime": "2021-01-31T23:49:28.971000Z", - "start_datetime": "2021-01-31T23:49:28.971000Z", - "end_datetime": "2021-01-31T23:49:28.971000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "60VUN", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 99.99, - "coverage": 91.6, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/60/V/UN/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:40:50.692Z", - "s3Ingestion": "2021-02-01T02:59:03.946Z", - "eo:sun_elevation": 78.479141016071, - "eo:sun_azimuth": 168.61806421064, - "viewZenith": 5.99238323768834, - "view:azimuth": 108.467323496316, - "updated": "2021-02-01T02:59:09.754632Z", - "published": "2021-02-01T02:59:09.754632Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.49, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 11008.30831, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 174.378009, - 60.852967 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/1e11fd5d-74ef-5931-9909-f6e6e3c49468" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/1e11fd5d-74ef-5931-9909-f6e6e3c49468/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/1e11fd5d-74ef-5931-9909-f6e6e3c49468/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/UN/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 173.269379265337, - 60.3306732080145, - 175.365964263997, - 61.3239852349243 - ] - }, - { - "type": "Feature", - "id": "57e5aaa9-da89-50e9-b75f-87973286bd71", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 175.131267, - 61.321583 - ], - [ - 177.182355, - 61.334311 - ], - [ - 177.176826, - 60.348536 - ], - [ - 175.187893, - 60.33631 - ], - [ - 175.131267, - 61.321583 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T60VVN_20210201T011900", - "datetime": "2021-01-31T23:49:24.541000Z", - "start_datetime": "2021-01-31T23:49:24.541000Z", - "end_datetime": "2021-01-31T23:49:24.541000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "60VVN", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 100, - "coverage": 100, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/60/V/VN/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:40:49.534Z", - "s3Ingestion": "2021-02-01T03:00:06.321Z", - "eo:sun_elevation": 78.341190001131, - "eo:sun_azimuth": 170.384966767179, - "viewZenith": 3.37800372524829, - "view:azimuth": 217.406677699259, - "updated": "2021-02-01T03:00:12.564179Z", - "published": "2021-02-01T03:00:12.564179Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.53, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 12047.30663, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 176.16954, - 60.837712 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/57e5aaa9-da89-50e9-b75f-87973286bd71" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/57e5aaa9-da89-50e9-b75f-87973286bd71/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/57e5aaa9-da89-50e9-b75f-87973286bd71/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/VN/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 175.131267437273, - 60.3363095373745, - 177.182355205504, - 61.3343111743704 - ] - }, - { - "type": "Feature", - "id": "0b4b4978-a770-5b3c-8222-84898ab9116e", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 176.999645, - 61.334434 - ], - [ - 179.043129, - 61.319071 - ], - [ - 178.233259, - 60.342937 - ], - [ - 176.999656, - 60.348654 - ], - [ - 176.999645, - 61.334434 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T60VWN_20210201T011900", - "datetime": "2021-01-31T23:49:18.766000Z", - "start_datetime": "2021-01-31T23:49:18.766000Z", - "end_datetime": "2021-01-31T23:49:18.766000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "60VWN", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 100, - "coverage": 80.82, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/60/V/WN/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:40:39.104Z", - "s3Ingestion": "2021-02-01T03:01:09.085Z", - "eo:sun_elevation": 78.2053385773221, - "eo:sun_azimuth": 172.156768852476, - "viewZenith": 8.5358099067339, - "view:azimuth": 292.024826714413, - "updated": "2021-02-01T03:01:14.083317Z", - "published": "2021-02-01T03:01:14.083317Z", - "keywords": [ - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 100, - "gcover": 0.43, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 9728.48801, - "value": 100, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "sea:BeringSea:4031788", - "landcover:water", - "location:northern", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 177.835023, - 60.876774 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/0b4b4978-a770-5b3c-8222-84898ab9116e" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/0b4b4978-a770-5b3c-8222-84898ab9116e/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/0b4b4978-a770-5b3c-8222-84898ab9116e/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/60/V/WN/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 176.999644967798, - 60.3429372090535, - 179.043129470076, - 61.3344335056374 - ] - }, - { - "type": "Feature", - "id": "d215dc30-1f65-5233-8867-4f66d179dc37", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 173.752767, - 62.204441 - ], - [ - 175.030291, - 62.173151 - ], - [ - 174.903932, - 61.189856 - ], - [ - 173.105584, - 61.229764 - ], - [ - 173.517797, - 61.8505 - ], - [ - 173.752767, - 62.204441 - ] - ] - ] - }, - "properties": { - "productIdentifier": "S2B_MSIL1C_20210131T234819_N0209_R073_T59VPJ_20210201T011900", - "datetime": "2021-01-31T23:49:16.581000Z", - "start_datetime": "2021-01-31T23:49:16.581000Z", - "end_datetime": "2021-01-31T23:49:16.581000Z", - "authority": "ESA", - "productType": "REFLECTANCE", - "processingLevel": "LEVEL1C", - "platform": "S2B", - "instruments": [ - "MSI" - ], - "tileId": "59VPJ", - "dataTakeId": "GS2B_20210131T234819_020405_N02.09", - "eo:cloud_cover": 100, - "coverage": 74.27, - "datastripId": "S2B_OPER_MSI_L1C_DS_EPAE_20210201T011900_S20210131T234846_N02.09", - "path": "tiles/59/V/PJ/2021/1/31/0", - "sciHubIngestion": "2021-02-01T02:40:44.153Z", - "s3Ingestion": "2021-02-01T03:00:31.289Z", - "eo:sun_elevation": 79.3977319993627, - "eo:sun_azimuth": 168.209039531188, - "viewZenith": 8.78970674020856, - "view:azimuth": 110.376479994125, - "updated": "2021-02-01T03:00:36.835204Z", - "published": "2021-02-01T03:00:36.835204Z", - "keywords": [ - { - "id": "continent:Europe:6255148", - "name": "Europe", - "type": "continent", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23continent%3AEurope%3A6255148" - }, - { - "id": "country:Russia:2017370", - "name": "Russia", - "type": "country", - "parentId": "continent:Europe:6255148", - "value": 35.51, - "gcover": 0.01, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23country%3ARussia%3A2017370" - }, - { - "id": "region:FarEastern:11961349", - "name": "Far Eastern", - "type": "region", - "parentId": "country:Russia:2017370", - "value": 35.58, - "gcover": 0.05, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23region%3AFarEastern%3A11961349" - }, - { - "id": "state:Kamchatka:553817", - "name": "Kamchatka", - "type": "state", - "parentId": "region:FarEastern:11961349", - "value": 22.7, - "gcover": 0.43, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23state%3AKamchatka%3A553817" - }, - { - "id": "sea:BeringSea:4031788", - "name": "Bering Sea", - "type": "sea", - "value": 63.7, - "gcover": 0.25, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23sea%3ABeringSea%3A4031788" - }, - { - "id": "landcover:water", - "name": "Water", - "type": "landcover:water", - "area": 5850.97119, - "value": 65.72, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Awater" - }, - { - "id": "landcover:herbaceous", - "name": "Herbaceous", - "type": "landcover:herbaceous", - "area": 2301.18382, - "value": 25.84, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Aherbaceous" - }, - { - "id": "landcover:desert", - "name": "Desert", - "type": "landcover:desert", - "area": 788.83221, - "value": 8.86, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Adesert" - }, - { - "id": "landcover:cultivated", - "name": "Cultivated", - "type": "landcover:cultivated", - "area": 40.74199, - "value": 0.45, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Acultivated" - }, - { - "id": "landcover:forest", - "name": "Forest", - "type": "landcover:forest", - "area": 7.12332, - "value": 0.08, - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23landcover%3Aforest" - }, - { - "id": "location:northern", - "name": "Northern", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Anorthern" - }, - { - "id": "location:coastal", - "name": "Coastal", - "type": "location", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23location%3Acoastal" - }, - { - "id": "season:winter", - "name": "Winter", - "type": "season", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23season%3Awinter" - }, - { - "id": "collection:S2", - "name": "S2", - "type": "collection", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23collection%3AS2" - }, - { - "id": "productType:REFLECTANCE", - "name": "REFLECTANCE", - "type": "productType", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23productType%3AREFLECTANCE" - }, - { - "id": "processingLevel:LEVEL1C", - "name": "LEVEL1C", - "type": "processingLevel", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23processingLevel%3ALEVEL1C" - }, - { - "id": "platform:S2B", - "name": "S2B", - "type": "platform", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23platform%3AS2B" - }, - { - "id": "instrument:MSI", - "name": "MSI", - "type": "instrument", - "parentId": "platform:S2B", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23instrument%3AMSI" - }, - { - "id": "year:2021", - "name": "2021", - "type": "year", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23year%3A2021" - }, - { - "id": "month:01", - "name": "01", - "type": "month", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23month%3A01" - }, - { - "id": "day:31", - "name": "31", - "type": "day", - "href": "https://tamn.snapplanet.io/collections/S2/items?&lang=en&q=%23day%3A31" - } - ], - "hashtags": [ - "continent:Europe:6255148", - "country:Russia:2017370", - "region:FarEastern:11961349", - "state:Kamchatka:553817", - "sea:BeringSea:4031788", - "landcover:water", - "landcover:herbaceous", - "location:northern", - "location:coastal", - "season:winter", - "collection:S2", - "productType:REFLECTANCE", - "processingLevel:LEVEL1C", - "platform:S2B", - "instrument:MSI", - "year:2021", - "month:01", - "day:31" - ], - "likes": 0, - "comments": 0, - "status": 1, - "centroid": [ - 174.186821, - 61.671755 - ] - }, - "collection": "S2", - "links": [ - { - "rel": "self", - "type": "application/geo+json", - "href": "https://tamn.snapplanet.io/collections/S2/items/d215dc30-1f65-5233-8867-4f66d179dc37" - }, - { - "rel": "parent", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "collection", - "type": "application/json", - "title": "S2", - "href": "https://tamn.snapplanet.io/collections/S2" - }, - { - "rel": "root", - "type": "application/json", - "href": "https://tamn.snapplanet.io" - }, - { - "rel": "child", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/d215dc30-1f65-5233-8867-4f66d179dc37/hasSample" - }, - { - "rel": "isSampleOf", - "type": "application/json", - "href": "https://tamn.snapplanet.io/collections/S2/items/d215dc30-1f65-5233-8867-4f66d179dc37/isSampleOf" - }, - { - "rel": "preview", - "type": "image/jpeg", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/preview.jpg" - } - ], - "assets": { - "thumbnail": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/preview.jpg", - "type": "image/jpeg", - "role": "thumbnail" - }, - "metadata": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/metadata.xml", - "type": "text/xml", - "role": "metadata" - }, - "tileInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/tileInfo.json", - "type": "application/json" - }, - "productInfo": { - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/productInfo.json", - "type": "application/json" - }, - "B1": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B1.jp2", - "title": "B1 60m (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ] - }, - "B2": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B2.jp2", - "title": "B2 10m (blue)", - "type": "image/jp2", - "eo:bands": [ - 1 - ] - }, - "B3": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B3.jp2", - "title": "B3 10m (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ] - }, - "B4": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B4.jp2", - "title": "B4 10m (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ] - }, - "B5": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B5.jp2", - "title": "B5 20m", - "type": "image/jp2", - "eo:bands": [ - 4 - ] - }, - "B6": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B6.jp2", - "title": "B6 20m", - "type": "image/jp2", - "eo:bands": [ - 5 - ] - }, - "B7": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B7.jp2", - "title": "B7 20m", - "type": "image/jp2", - "eo:bands": [ - 6 - ] - }, - "B8": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B8.jp2", - "title": "B8 10m (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ] - }, - "B8A": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B8A.jp2", - "title": "B8A 20m", - "type": "image/jp2", - "eo:bands": [ - 8 - ] - }, - "B9": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B9.jp2", - "title": "B9 60m", - "type": "image/jp2", - "eo:bands": [ - 9 - ] - }, - "B10": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B10.jp2", - "title": "B10 60m", - "type": "image/jp2", - "eo:bands": [ - 10 - ] - }, - "B11": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B11.jp2", - "title": "B11 20m (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ] - }, - "B12": { - "href": "s3://sentinel-s2-l1c/tiles/59/V/PJ/2021/1/31/0/B12.jp2", - "title": "B12 20m (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ] - } - }, - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/sat/v1.0.0/schema.json", - "https://stac-extensions.github.io/view/v1.0.0/schema.json", - "https://stac-extensions.github.io/eo/v1.0.0/schema.json" - ], - "bbox": [ - 173.105584055056, - 61.1898559661554, - 175.030290738886, - 62.2044408288778 - ] - } - ] -} \ No newline at end of file diff --git a/src/DotNetStac/Collection/SummaryItemType.cs b/src/DotNetStac/Collection/SummaryItemType.cs index ebe8d9a4..45e24b07 100644 --- a/src/DotNetStac/Collection/SummaryItemType.cs +++ b/src/DotNetStac/Collection/SummaryItemType.cs @@ -9,6 +9,7 @@ namespace Stac.Collection /// public enum SummaryItemType { +#pragma warning disable SA1300 // Element should begin with upper-case letter /// /// Summary Value Set /// @@ -18,5 +19,6 @@ public enum SummaryItemType /// Summary Range Object /// RangeObject, +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Extensions/Alternate/AlternateStacExtension.cs b/src/DotNetStac/Extensions/Alternate/AlternateStacExtension.cs index c8567a6d..4e4361e4 100644 --- a/src/DotNetStac/Extensions/Alternate/AlternateStacExtension.cs +++ b/src/DotNetStac/Extensions/Alternate/AlternateStacExtension.cs @@ -80,6 +80,7 @@ public override IDictionary GetSummaryFunctions() /// The uri of the alternate asset /// The title of the alternate asset /// The description of the alternate asset + /// The alternate asset object public AlternateAssetObject AddAlternate(string key, Uri uri, string title = null, string description = null) { AlternateAssetObject alternateAssetObject = new AlternateAssetObject(uri.ToString(), this.StacAsset.ParentStacObject, title, description); diff --git a/src/DotNetStac/Extensions/Alternate/AlternateStacExtensionExtensions.cs b/src/DotNetStac/Extensions/Alternate/AlternateStacExtensionExtensions.cs index b409486d..fe425a23 100644 --- a/src/DotNetStac/Extensions/Alternate/AlternateStacExtensionExtensions.cs +++ b/src/DotNetStac/Extensions/Alternate/AlternateStacExtensionExtensions.cs @@ -1,6 +1,6 @@ -// Copyright (c) by Terradue Srl. All Rights Reserved. +// Copyright (c) by Terradue Srl. All Rights Reserved. // License under the AGPL, Version 3.0. -// File Name: AlternateStacExtension.cs +// File Name: AlternateStacExtensionExtensions.cs using Stac.Extensions.Storage; @@ -14,6 +14,8 @@ public static class AlternateStacExtensionExtensions /// /// Initilize a AlternateStacExtension class from a STAC asset /// + /// The STAC asset. + /// The AlternateStacExtension class public static AlternateStacExtension AlternateExtension(this StacAsset stacAsset) { return new AlternateStacExtension(stacAsset); @@ -22,6 +24,8 @@ public static AlternateStacExtension AlternateExtension(this StacAsset stacAsset /// /// Initilize a AlternateStacExtension class from an alternate asset /// + /// The alternate asset. + /// The AlternateStacExtension class public static StorageStacExtension StorageExtension(this AlternateAssetObject alternateAssetObject) { return new StorageStacExtension(alternateAssetObject); diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeAxis.cs b/src/DotNetStac/Extensions/Datacube/DatacubeAxis.cs index d12f1c30..d25d99d2 100644 --- a/src/DotNetStac/Extensions/Datacube/DatacubeAxis.cs +++ b/src/DotNetStac/Extensions/Datacube/DatacubeAxis.cs @@ -7,13 +7,22 @@ namespace Stac.Extensions.Datacube { + /// + /// Datacube axis + /// [JsonConverter(typeof(StringEnumConverter))] public enum DatacubeAxis { +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member x, y, z, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimension.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimension.cs index 87842bcb..91feecd0 100644 --- a/src/DotNetStac/Extensions/Datacube/DatacubeDimension.cs +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimension.cs @@ -14,13 +14,16 @@ namespace Stac.Extensions.Datacube [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] public class DatacubeDimension : IStacPropertiesContainer { - protected string type; - protected string description; - protected double[] extent; - protected object values; - protected double? step; + private string _type; + private string _description; + private double[] _extent; + private object _values; + private double? _step; private IDictionary _properties; + /// + /// Initializes a new instance of the class. + /// public DatacubeDimension() { this._properties = new Dictionary(); @@ -33,7 +36,7 @@ public DatacubeDimension() /// Type of the dimension. /// [JsonProperty("type")] - public string Type { get => this.type; set => this.type = value; } + public string Type { get => this._type; set => this._type = value; } /// /// Gets or sets detailed multi-line description to explain the dimension. CommonMark 0.29 syntax MAY be used for rich text representation. @@ -42,7 +45,7 @@ public DatacubeDimension() /// Detailed multi-line description to explain the dimension. CommonMark 0.29 syntax MAY be used for rich text representation. /// [JsonProperty("description")] - public string Description { get => this.description; set => this.description = value; } + public string Description { get => this._description; set => this._description = value; } /// /// Gets or sets extent (lower and upper bounds) of the dimension as two-element array. Open intervals with null are not allowed. @@ -51,7 +54,7 @@ public DatacubeDimension() /// Extent (lower and upper bounds) of the dimension as two-element array. Open intervals with null are not allowed. /// [JsonProperty("extent")] - public double[] Extent { get => this.extent; set => this.extent = value; } + public double[] Extent { get => this._extent; set => this._extent = value; } /// /// Gets or sets optionally, an ordered list of all values. @@ -60,7 +63,7 @@ public DatacubeDimension() /// Optionally, an ordered list of all values. /// [JsonProperty("values")] - public object Values { get => this.values; set => this.values = value; } + public object Values { get => this._values; set => this._values = value; } /// /// Gets or sets the space between the values. Use null for irregularly spaced steps. @@ -69,7 +72,7 @@ public DatacubeDimension() /// The space between the values. Use null for irregularly spaced steps. /// [JsonProperty("step")] - public double? Step { get => this.step; set => this.step = value; } + public double? Step { get => this._step; set => this._step = value; } /// /// Gets or sets additional fields @@ -84,99 +87,4 @@ public DatacubeDimension() [JsonIgnore] public IStacObject StacObjectContainer => null; } - - public class DatacubeDimensionSpatial : DatacubeDimension - { - protected DatacubeAxis? axis; - protected object reference_system; - - public DatacubeDimensionSpatial() - : base() - { - } - - /// - /// Gets or sets axis of the spatial dimension. - /// - /// - /// Axis of the spatial dimension. - /// - [JsonProperty("axis")] - public DatacubeAxis? Axis { get => this.axis; set => this.axis = value; } - - /// - /// Gets or sets the spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. - /// - /// - /// The spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. - /// - [JsonProperty("reference_system")] - public object ReferenceSystem { get => this.reference_system; set => this.reference_system = value; } - } - - public class DatacubeDimensionSpatialHorizontal : DatacubeDimensionSpatial - { - public DatacubeDimensionSpatialHorizontal() - : base() - { - this.axis = DatacubeAxis.x; - } - } - - public class DatacubeDimensionSpatialVertical : DatacubeDimensionSpatial - { - private string _unit; - - public DatacubeDimensionSpatialVertical() - : base() - { - this.axis = DatacubeAxis.z; - } - - /// - /// Gets or sets the unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). - /// - /// - /// The unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). - /// - [JsonProperty("unit")] - public string Unit { get => this._unit; set => this._unit = value; } - } - - public class DatacubeDimensionTemporal : DatacubeDimension - { - public DatacubeDimensionTemporal() - : base() - { - } - } - - public class DatacubeDimensionAdditional : DatacubeDimension - { - protected object reference_system; - private string _unit; - - public DatacubeDimensionAdditional() - : base() - { - } - - /// - /// Gets or sets the unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). - /// - /// - /// The unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). - /// - [JsonProperty("unit")] - public string Unit { get => this._unit; set => this._unit = value; } - - /// - /// Gets or sets the spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. - /// - /// - /// The spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. - /// - [JsonProperty("reference_system")] - public object ReferenceSystem { get => this.reference_system; set => this.reference_system = value; } - } } diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionAdditional.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionAdditional.cs new file mode 100644 index 00000000..34c0caa4 --- /dev/null +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionAdditional.cs @@ -0,0 +1,37 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: DatacubeDimensionAdditional.cs + +using Newtonsoft.Json; + +namespace Stac.Extensions.Datacube +{ + /// + /// Datacube additional dimension + /// + public class DatacubeDimensionAdditional : DatacubeDimension + { + private object _reference_system; + private string _unit; + + /// + /// Initializes a new instance of the class. + /// + public DatacubeDimensionAdditional() + : base() + { + } + + /// + /// Gets or sets the unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). + /// + [JsonProperty("unit")] + public string Unit { get => this._unit; set => this._unit = value; } + + /// + /// Gets or sets the spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. + /// + [JsonProperty("reference_system")] + public object ReferenceSystem { get => this._reference_system; set => this._reference_system = value; } + } +} diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatial.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatial.cs new file mode 100644 index 00000000..d7547663 --- /dev/null +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatial.cs @@ -0,0 +1,43 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: DatacubeDimensionSpatial.cs + +using Newtonsoft.Json; + +namespace Stac.Extensions.Datacube +{ + /// + /// Datacube spatial dimension + /// + public class DatacubeDimensionSpatial : DatacubeDimension + { + private DatacubeAxis? _axis; + private object _reference_system; + + /// + /// Initializes a new instance of the class. + /// + public DatacubeDimensionSpatial() + : base() + { + } + + /// + /// Gets or sets axis of the spatial dimension. + /// + /// + /// Axis of the spatial dimension. + /// + [JsonProperty("axis")] + public DatacubeAxis? Axis { get => this._axis; set => this._axis = value; } + + /// + /// Gets or sets the spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. + /// + /// + /// The spatial reference system for the data, specified as numerical EPSG code, WKT2 (ISO 19162) string or PROJJSON object. Defaults to EPSG code 4326. + /// + [JsonProperty("reference_system")] + public object ReferenceSystem { get => this._reference_system; set => this._reference_system = value; } + } +} diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatialHorizontal.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatialHorizontal.cs new file mode 100644 index 00000000..8ee25ea4 --- /dev/null +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatialHorizontal.cs @@ -0,0 +1,21 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: DatacubeDimensionSpatialHorizontal.cs + +namespace Stac.Extensions.Datacube +{ + /// + /// Datacube horizontal spatial dimension + /// + public class DatacubeDimensionSpatialHorizontal : DatacubeDimensionSpatial + { + /// + /// Initializes a new instance of the class. + /// + public DatacubeDimensionSpatialHorizontal() + : base() + { + this.Axis = DatacubeAxis.x; + } + } +} diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatialVertical.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatialVertical.cs new file mode 100644 index 00000000..d943d21c --- /dev/null +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionSpatialVertical.cs @@ -0,0 +1,34 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: DatacubeDimensionSpatialVertical.cs + +using Newtonsoft.Json; + +namespace Stac.Extensions.Datacube +{ + /// + /// Datacube vertical spatial dimension + /// + public class DatacubeDimensionSpatialVertical : DatacubeDimensionSpatial + { + private string _unit; + + /// + /// Initializes a new instance of the class. + /// + public DatacubeDimensionSpatialVertical() + : base() + { + this.Axis = DatacubeAxis.z; + } + + /// + /// Gets or sets the unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). + /// + /// + /// The unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). + /// + [JsonProperty("unit")] + public string Unit { get => this._unit; set => this._unit = value; } + } +} diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionTemporal.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionTemporal.cs new file mode 100644 index 00000000..769cb54e --- /dev/null +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionTemporal.cs @@ -0,0 +1,20 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: DatacubeDimensionTemporal.cs + +namespace Stac.Extensions.Datacube +{ + /// + /// Datacube temporal dimension + /// + public class DatacubeDimensionTemporal : DatacubeDimension + { + /// + /// Initializes a new instance of the class. + /// + public DatacubeDimensionTemporal() + : base() + { + } + } +} diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionType.cs b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionType.cs index bfeb0323..80fe57a4 100644 --- a/src/DotNetStac/Extensions/Datacube/DatacubeDimensionType.cs +++ b/src/DotNetStac/Extensions/Datacube/DatacubeDimensionType.cs @@ -7,11 +7,20 @@ namespace Stac.Extensions.Datacube { + /// + /// Datacube dimension type + /// [JsonConverter(typeof(StringEnumConverter))] public enum DatacubeDimensionType { +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member spatial, temporal, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeStacExtension.cs b/src/DotNetStac/Extensions/Datacube/DatacubeStacExtension.cs index 49a52b05..d5de6e16 100644 --- a/src/DotNetStac/Extensions/Datacube/DatacubeStacExtension.cs +++ b/src/DotNetStac/Extensions/Datacube/DatacubeStacExtension.cs @@ -9,63 +9,51 @@ namespace Stac.Extensions.Datacube { - /// - /// Extension methods for accessing EO extension - /// - public static class DatacubeStacExtensionExtensions - { - /// - /// Initilize a DatacubeStacExtension class from a STAC asset - /// - public static DatacubeStacExtension DatacubeStacExtension(this StacAsset stacAsset) - { - return new DatacubeStacExtension(stacAsset); - } - - /// - /// Initilize a DatacubeStacExtension class from a STAC item - /// - public static DatacubeStacExtension DatacubeStacExtension(this StacItem stacItem) - { - return new DatacubeStacExtension(stacItem); - } - - /// - /// Initilize a DatacubeStacExtension class from a STAC collection - /// - public static DatacubeStacExtension DatacubeStacExtension(this StacCollection stacCollection) - { - return new DatacubeStacExtension(stacCollection); - } - } - /// /// Helper class to access the fields defined by the Datacube extension /// public class DatacubeStacExtension : StacPropertiesContainerExtension, IStacExtension { - // Extensions identifier and schema url +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member public const string JsonSchemaUrl = "https://stac-extensions.github.io/datacube/v2.1.0/schema.json"; - private readonly IDictionary _itemFields; private const string DimensionField = "cube:dimensions"; private const string VariableField = "cube:variables"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member + private readonly IDictionary _itemFields; + + /// + /// Initializes a new instance of the class. + /// + /// The stac collection. internal DatacubeStacExtension(StacCollection stacCollection) : this((IStacPropertiesContainer)stacCollection) { } + /// + /// Initializes a new instance of the class. + /// + /// The stac asset. internal DatacubeStacExtension(StacAsset stacAsset) : this((IStacPropertiesContainer)stacAsset) { } + /// + /// Initializes a new instance of the class. + /// + /// The stac item. internal DatacubeStacExtension(StacItem stacItem) : this((IStacPropertiesContainer)stacItem) { } + /// + /// Initializes a new instance of the class. + /// + /// The stac properties container. private DatacubeStacExtension(IStacPropertiesContainer stacPropertiesContainer) : base(JsonSchemaUrl, stacPropertiesContainer) { diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeStacExtensionExtensions.cs b/src/DotNetStac/Extensions/Datacube/DatacubeStacExtensionExtensions.cs new file mode 100644 index 00000000..f38b0a7b --- /dev/null +++ b/src/DotNetStac/Extensions/Datacube/DatacubeStacExtensionExtensions.cs @@ -0,0 +1,42 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: DatacubeStacExtensionExtensions.cs + +namespace Stac.Extensions.Datacube +{ + /// + /// Extension methods for accessing EO extension + /// + public static class DatacubeStacExtensionExtensions + { + /// + /// Initilize a DatacubeStacExtension class from a STAC asset + /// + /// The STAC asset. + /// The DatacubeStacExtension class + public static DatacubeStacExtension DatacubeStacExtension(this StacAsset stacAsset) + { + return new DatacubeStacExtension(stacAsset); + } + + /// + /// Initilize a DatacubeStacExtension class from a STAC item + /// + /// The STAC item. + /// The DatacubeStacExtension class + public static DatacubeStacExtension DatacubeStacExtension(this StacItem stacItem) + { + return new DatacubeStacExtension(stacItem); + } + + /// + /// Initilize a DatacubeStacExtension class from a STAC collection + /// + /// The STAC collection. + /// The DatacubeStacExtension class + public static DatacubeStacExtension DatacubeStacExtension(this StacCollection stacCollection) + { + return new DatacubeStacExtension(stacCollection); + } + } +} diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeVariable.cs b/src/DotNetStac/Extensions/Datacube/DatacubeVariable.cs index 1405215d..565cb2a6 100644 --- a/src/DotNetStac/Extensions/Datacube/DatacubeVariable.cs +++ b/src/DotNetStac/Extensions/Datacube/DatacubeVariable.cs @@ -14,14 +14,17 @@ namespace Stac.Extensions.Datacube [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] public class DatacubeVariable : IStacPropertiesContainer { - protected string[] dimensions; - protected DatacubeVariableType? type; - protected string description; - protected double[] extent; - protected string[] values; + private string[] _dimensions; + private DatacubeVariableType? _type; + private string _description; + private double[] _extent; + private string[] _values; private IDictionary _properties; private string _unit; + /// + /// Initializes a new instance of the class. + /// public DatacubeVariable() { this._properties = new Dictionary(); @@ -30,63 +33,42 @@ public DatacubeVariable() /// /// Gets or sets the dimensions of the variable. This should refer to keys in the cube:dimensions object or be an empty list if the variable has no dimensions. /// - /// - /// The dimensions of the variable. This should refer to keys in the cube:dimensions object or be an empty list if the variable has no dimensions. - /// [JsonProperty("dimensions")] - public string[] Dimensions { get => this.dimensions; set => this.dimensions = value; } + public string[] Dimensions { get => this._dimensions; set => this._dimensions = value; } /// /// Gets or sets type of the variable. /// - /// - /// Type of the variable. - /// [JsonProperty("type")] - public DatacubeVariableType? Type { get => this.type; set => this.type = value; } + public DatacubeVariableType? Type { get => this._type; set => this._type = value; } /// /// Gets or sets detailed multi-line description to explain the variable. CommonMark 0.29 syntax MAY be used for rich text representation. /// - /// - /// Detailed multi-line description to explain the variable. CommonMark 0.29 syntax MAY be used for rich text representation. - /// [JsonProperty("description")] - public string Description { get => this.description; set => this.description = value; } + public string Description { get => this._description; set => this._description = value; } /// /// Gets or sets if the variable consists of ordinal values, the extent (lower and upper bounds) of the values as two-element array. Use null for open intervals. /// - /// - /// If the variable consists of ordinal values, the extent (lower and upper bounds) of the values as two-element array. Use null for open intervals. - /// [JsonProperty("extent")] - public double[] Extent { get => this.extent; set => this.extent = value; } + public double[] Extent { get => this._extent; set => this._extent = value; } /// /// Gets or sets an (ordered) list of all values, especially useful for nominal values. /// - /// - /// An (ordered) list of all values, especially useful for nominal values. - /// [JsonProperty("values")] - public string[] Values { get => this.values; set => this.values = value; } + public string[] Values { get => this._values; set => this._values = value; } /// /// Gets or sets the unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). /// - /// - /// The unit of measurement for the data, preferably compliant to UDUNITS-2 units (singular). - /// [JsonProperty("unit")] public string Unit { get => this._unit; set => this._unit = value; } /// /// Gets or sets additional fields /// - /// - /// Additional fields - /// [JsonExtensionData] public IDictionary Properties { get => this._properties; set => this._properties = value; } diff --git a/src/DotNetStac/Extensions/Datacube/DatacubeVariableType.cs b/src/DotNetStac/Extensions/Datacube/DatacubeVariableType.cs index bfb43a6e..662e4113 100644 --- a/src/DotNetStac/Extensions/Datacube/DatacubeVariableType.cs +++ b/src/DotNetStac/Extensions/Datacube/DatacubeVariableType.cs @@ -7,11 +7,24 @@ namespace Stac.Extensions.Datacube { + /// + /// Datacube variable type + /// [JsonConverter(typeof(StringEnumConverter))] public enum DatacubeVariableType { - data, // a variable indicating some measured value, for example "precipitation", "temperature", etc. +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented + /// + /// a variable indicating some measured value, for example "precipitation", "temperature", etc. + /// + data, - auxiliary, // a variable that contains coordinate data, but isn't a dimension in cube:dimensions. For example, the values of the datacube might be provided in the projected coordinate reference system, but the datacube could have a variable lon with dimensions (y, x), giving the longitude at each point. + /// + /// a variable that contains coordinate data, but isn't a dimension in cube:dimensions. For example, the values of the datacube might be provided in the projected coordinate reference system, but the datacube could have a variable lon with dimensions (y, x), giving the longitude at each point. + /// + auxiliary, +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Extensions/Eo/EoBandCommonName.cs b/src/DotNetStac/Extensions/Eo/EoBandCommonName.cs index cc4da9e3..6c350138 100644 --- a/src/DotNetStac/Extensions/Eo/EoBandCommonName.cs +++ b/src/DotNetStac/Extensions/Eo/EoBandCommonName.cs @@ -13,6 +13,9 @@ namespace Stac.Extensions.Eo [JsonConverter(typeof(TolerantEnumConverter))] public enum EoBandCommonName { +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member coastal, blue, green, @@ -29,5 +32,8 @@ public enum EoBandCommonName lwir, lwir11, lwir12, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Extensions/Eo/EoStacExtension.cs b/src/DotNetStac/Extensions/Eo/EoStacExtension.cs index f549629f..dcdc702b 100644 --- a/src/DotNetStac/Extensions/Eo/EoStacExtension.cs +++ b/src/DotNetStac/Extensions/Eo/EoStacExtension.cs @@ -8,58 +8,17 @@ namespace Stac.Extensions.Eo { - /// - /// Extension methods for accessing EO extension - /// - public static class EoStacExtensionExtensions - { - /// - /// Initilize a EoStacExtension class from a STAC item - /// - public static EoStacExtension EoExtension(this StacItem stacItem) - { - return new EoStacExtension(stacItem); - } - - /// - /// Initilize a EoStacExtension class from a STAC asset - /// - public static EoStacExtension EoExtension(this StacAsset stacAsset) - { - return new EoStacExtension(stacAsset); - } - - /// - /// Get a STAC asset from a STAC item by its common name - /// - /// Stac Item - /// common name - public static StacAsset GetAsset(this StacItem stacItem, EoBandCommonName commonName) - { - return stacItem.Assets.Values.Where(a => a.EoExtension().Bands != null).FirstOrDefault(a => a.EoExtension().Bands.Any(b => b.CommonName == commonName)); - } - - /// - /// Get a STAC EO Band object from a STAC item by its common name - /// - /// Stac Item - /// common name - public static EoBandObject GetBandObject(this StacItem stacItem, EoBandCommonName commonName) - { - return stacItem.Assets.Values.Where(a => a.EoExtension().Bands != null).Select(a => a.EoExtension().Bands.FirstOrDefault(b => b.CommonName == commonName)).First(); - } - } - /// /// Helper class to access the fields deined by the EO extension /// public class EoStacExtension : StacPropertiesContainerExtension, IStacExtension { - // Extension identifier and schema url +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member public const string JsonSchemaUrl = "https://stac-extensions.github.io/eo/v1.0.0/schema.json"; private const string BandsField = "eo:bands"; private const string CloudCoverField = "eo:cloud_cover"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member private readonly IDictionary _itemFields; @@ -74,18 +33,15 @@ internal EoStacExtension(IStacPropertiesContainer stacpropertiesContainer) /// /// Gets or sets estimate of cloud cover /// - /// - /// Estimate of cloud cover - /// public double? CloudCover { - get - { - return this.StacPropertiesContainer.GetProperty(CloudCoverField); - } - - set - { + get + { + return this.StacPropertiesContainer.GetProperty(CloudCoverField); + } + + set + { if (value == null) { this.StacPropertiesContainer.RemoveProperty(CloudCoverField); @@ -94,25 +50,22 @@ public double? CloudCover { this.StacPropertiesContainer.SetProperty(CloudCoverField, value); this.DeclareStacExtension(); - } - } + } + } } /// /// Gets or sets an array of available bands where each object is a Band Object. /// - /// - /// An array of available bands where each object is a Band Object. - /// public EoBandObject[] Bands { - get - { - return this.StacPropertiesContainer.GetProperty(BandsField); - } - - set - { + get + { + return this.StacPropertiesContainer.GetProperty(BandsField); + } + + set + { if (value == null || value.Count() == 0) { this.StacPropertiesContainer.RemoveProperty(BandsField); @@ -121,16 +74,13 @@ public EoBandObject[] Bands { this.StacPropertiesContainer.SetProperty(BandsField, value); this.DeclareStacExtension(); - } - } + } + } } /// /// Gets potential fields and their types /// - /// - /// Potential fields and their types - /// public override IDictionary ItemFields => this._itemFields; /// diff --git a/src/DotNetStac/Extensions/Eo/EoStacExtensionExtensions.cs b/src/DotNetStac/Extensions/Eo/EoStacExtensionExtensions.cs new file mode 100644 index 00000000..32ab8035 --- /dev/null +++ b/src/DotNetStac/Extensions/Eo/EoStacExtensionExtensions.cs @@ -0,0 +1,56 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: EoStacExtensionExtensions.cs + +using System.Linq; + +namespace Stac.Extensions.Eo +{ + /// + /// Extension methods for accessing EO extension + /// + public static class EoStacExtensionExtensions + { + /// + /// Initilize a EoStacExtension class from a STAC item + /// + /// Stac Item + /// EoStacExtension class + public static EoStacExtension EoExtension(this StacItem stacItem) + { + return new EoStacExtension(stacItem); + } + + /// + /// Initilize a EoStacExtension class from a STAC asset + /// + /// Stac Asset + /// EoStacExtension class + public static EoStacExtension EoExtension(this StacAsset stacAsset) + { + return new EoStacExtension(stacAsset); + } + + /// + /// Get a STAC asset from a STAC item by its common name + /// + /// Stac Item + /// common name + /// Stac Asset + public static StacAsset GetAsset(this StacItem stacItem, EoBandCommonName commonName) + { + return stacItem.Assets.Values.Where(a => a.EoExtension().Bands != null).FirstOrDefault(a => a.EoExtension().Bands.Any(b => b.CommonName == commonName)); + } + + /// + /// Get a STAC EO Band object from a STAC item by its common name + /// + /// Stac Item + /// common name + /// Stac EO Band object + public static EoBandObject GetBandObject(this StacItem stacItem, EoBandCommonName commonName) + { + return stacItem.Assets.Values.Where(a => a.EoExtension().Bands != null).Select(a => a.EoExtension().Bands.FirstOrDefault(b => b.CommonName == commonName)).First(); + } + } +} diff --git a/src/DotNetStac/Extensions/File/ByteOrder.cs b/src/DotNetStac/Extensions/File/ByteOrder.cs index dfe5d319..35583008 100644 --- a/src/DotNetStac/Extensions/File/ByteOrder.cs +++ b/src/DotNetStac/Extensions/File/ByteOrder.cs @@ -14,6 +14,8 @@ namespace Stac.Extensions.File [JsonConverter(typeof(StringEnumConverter))] public enum ByteOrder { +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented // Big Endian [EnumMember(Value = "big-endian")] BigEndian, @@ -21,5 +23,7 @@ public enum ByteOrder // Little Endian [EnumMember(Value = "little-endian")] LittleEndian, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented } } diff --git a/src/DotNetStac/Extensions/File/FileStacExtension.cs b/src/DotNetStac/Extensions/File/FileStacExtension.cs index a149a5d3..eeecf34c 100644 --- a/src/DotNetStac/Extensions/File/FileStacExtension.cs +++ b/src/DotNetStac/Extensions/File/FileStacExtension.cs @@ -4,93 +4,22 @@ using System; using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; -using Multiformats.Base; using Multiformats.Hash; namespace Stac.Extensions.File { - /// - /// Extension methods for accessing Processing extension - /// - public static class FileStacExtensionExtensions - { - /// - /// Initilize a EoStacExtension class from a STAC item - /// - public static FileStacExtension FileExtension(this StacAsset stacAsset) - { - return new FileStacExtension(stacAsset); - } - - /// - /// Set possibly file extension properties from a FileInfo object: - /// - size - /// - checksum - /// - public static async Task SetFileExtensionProperties( - this FileStacExtension fileStacExtension, - FileInfo file, - HashType hashType = HashType.SHA1, - MultibaseEncoding encoding = MultibaseEncoding.Base16Lower) - { - fileStacExtension.Size = Convert.ToUInt64(file.Length); - await fileStacExtension.SetFileCheckSum(hashType, encoding, uri => file.OpenRead()); - } - - /// - /// Set possibly file extension properties from a FileInfo object: - /// - size - /// - checksum - /// - public static async Task SetFileExtensionProperties( - this FileStacExtension fileStacExtension, - Stream stream, - HashType hashType = HashType.SHA1, - MultibaseEncoding encoding = MultibaseEncoding.Base16Lower) - { - await fileStacExtension.SetFileCheckSum(hashType, encoding, uri => stream); - } - - /// - /// Add the checksum property of the file extension - /// - public static async Task SetFileCheckSum( - this FileStacExtension fileStacExtension, - HashType hashType, - MultibaseEncoding encoding, - Func uriStreamer) - { - Multihash mh = null; - using (var stream = uriStreamer(fileStacExtension.StacAsset.Uri)) - { - byte[] data = null; - using (var mem = new MemoryStream()) - { - await stream.CopyToAsync(mem); - data = mem.ToArray(); - fileStacExtension.Size = Convert.ToUInt64(mem.Length); - } - - mh = Multihash.Sum(hashType, data); - } - - fileStacExtension.Checksum = mh; - } - } - /// /// Helper class to access the fields defined by the File extension /// public class FileStacExtension : StacPropertiesContainerExtension, IStacExtension { - // Extension identifier and schema url +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member public const string JsonSchemaUrl = "https://stac-extensions.github.io/file/v1.0.0/schema.json"; private const string ByteOrderField = "file:byte_order"; private const string ChecksumField = "file:checksum"; private const string HeaderSizeField = "file:header_size"; private const string SizeField = "file:size"; +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member private readonly Dictionary _itemFields; internal FileStacExtension(StacAsset stacAsset) @@ -106,97 +35,79 @@ internal FileStacExtension(StacAsset stacAsset) /// /// Gets or sets the byte order of integer values in the file. One of big-endian or little-endian. /// - /// - /// The byte order of integer values in the file. One of big-endian or little-endian. - /// public ByteOrder ByteOrder { - get - { - return this.StacPropertiesContainer.GetProperty(ByteOrderField); - } - - set - { - this.StacPropertiesContainer.SetProperty(ByteOrderField, value); - this.DeclareStacExtension(); - } + get + { + return this.StacPropertiesContainer.GetProperty(ByteOrderField); + } + + set + { + this.StacPropertiesContainer.SetProperty(ByteOrderField, value); + this.DeclareStacExtension(); + } } /// /// Gets or sets the name commonly used to refer to the processing level to make it easier to search for product level across collections or items. /// - /// - /// The name commonly used to refer to the processing level to make it easier to search for product level across collections or items. - /// public Multihash Checksum { - get - { - return Multihash.Parse(this.StacPropertiesContainer.GetProperty(ChecksumField)); - } - - set - { - this.StacPropertiesContainer.SetProperty(ChecksumField, value.ToString()); - this.DeclareStacExtension(); - } + get + { + return Multihash.Parse(this.StacPropertiesContainer.GetProperty(ChecksumField)); + } + + set + { + this.StacPropertiesContainer.SetProperty(ChecksumField, value.ToString()); + this.DeclareStacExtension(); + } } /// /// Gets or sets the name of the facility that produced the data. /// - /// - /// The name of the facility that produced the data. - /// public uint? HeaderSize { - get - { - return this.StacPropertiesContainer.GetProperty(HeaderSizeField); - } - - set - { - this.StacPropertiesContainer.SetProperty(HeaderSizeField, value); - this.DeclareStacExtension(); - } + get + { + return this.StacPropertiesContainer.GetProperty(HeaderSizeField); + } + + set + { + this.StacPropertiesContainer.SetProperty(HeaderSizeField, value); + this.DeclareStacExtension(); + } } /// /// Gets or sets the name of the facility that produced the data. /// - /// - /// The name of the facility that produced the data. - /// public ulong? Size { - get - { - return this.StacPropertiesContainer.GetProperty(SizeField); - } - - set - { - this.StacPropertiesContainer.SetProperty(SizeField, value); - this.DeclareStacExtension(); - } + get + { + return this.StacPropertiesContainer.GetProperty(SizeField); + } + + set + { + this.StacPropertiesContainer.SetProperty(SizeField, value); + this.DeclareStacExtension(); + } } /// /// Gets potential fields and their types /// - /// - /// Potential fields and their types - /// public override IDictionary ItemFields => this._itemFields; /// /// Gets get the STAC asset /// - /// - /// Get the STAC asset - /// public StacAsset StacAsset => this.StacPropertiesContainer as StacAsset; /// diff --git a/src/DotNetStac/Extensions/File/FileStacExtensionExtensions.cs b/src/DotNetStac/Extensions/File/FileStacExtensionExtensions.cs new file mode 100644 index 00000000..0940bec7 --- /dev/null +++ b/src/DotNetStac/Extensions/File/FileStacExtensionExtensions.cs @@ -0,0 +1,98 @@ +// Copyright (c) by Terradue Srl. All Rights Reserved. +// License under the AGPL, Version 3.0. +// File Name: FileStacExtensionExtensions.cs + +using System; +using System.IO; +using System.Threading.Tasks; +using Multiformats.Base; +using Multiformats.Hash; + +namespace Stac.Extensions.File +{ + /// + /// Extension methods for accessing Processing extension + /// + public static class FileStacExtensionExtensions + { + /// + /// Initilize a EoStacExtension class from a STAC item + /// + /// The STAC asset. + /// The EoStacExtension class + public static FileStacExtension FileExtension(this StacAsset stacAsset) + { + return new FileStacExtension(stacAsset); + } + + /// + /// Set possibly file extension properties from a FileInfo object: + /// - size + /// - checksum + /// + /// The file extension. + /// The file. + /// Type of the hash. + /// The encoding. + /// No object or value is returned by this method when it completes. + public static async Task SetFileExtensionProperties( + this FileStacExtension fileStacExtension, + FileInfo file, + HashType hashType = HashType.SHA1, + MultibaseEncoding encoding = MultibaseEncoding.Base16Lower) + { + fileStacExtension.Size = Convert.ToUInt64(file.Length); + await fileStacExtension.SetFileCheckSum(hashType, encoding, uri => file.OpenRead()); + } + + /// + /// Set possibly file extension properties from a FileInfo object: + /// - size + /// - checksum + /// + /// The file extension. + /// The stream. + /// Type of the hash. + /// The encoding. + /// No object or value is returned by this method when it completes. + public static async Task SetFileExtensionProperties( + this FileStacExtension fileStacExtension, + Stream stream, + HashType hashType = HashType.SHA1, + MultibaseEncoding encoding = MultibaseEncoding.Base16Lower) + { + await fileStacExtension.SetFileCheckSum(hashType, encoding, uri => stream); + } + + /// + /// Add the checksum property of the file extension + /// + /// The file extension. + /// Type of the hash. + /// The encoding. + /// The URI streamer. + /// No object or value is returned by this method when it completes. + public static async Task SetFileCheckSum( + this FileStacExtension fileStacExtension, + HashType hashType, + MultibaseEncoding encoding, + Func uriStreamer) + { + Multihash mh = null; + using (var stream = uriStreamer(fileStacExtension.StacAsset.Uri)) + { + byte[] data = null; + using (var mem = new MemoryStream()) + { + await stream.CopyToAsync(mem); + data = mem.ToArray(); + fileStacExtension.Size = Convert.ToUInt64(mem.Length); + } + + mh = Multihash.Sum(hashType, data); + } + + fileStacExtension.Checksum = mh; + } + } +} diff --git a/src/DotNetStac/Extensions/IStacAssetExtension.cs b/src/DotNetStac/Extensions/IStacAssetExtension.cs index 62616739..0d07e15a 100644 --- a/src/DotNetStac/Extensions/IStacAssetExtension.cs +++ b/src/DotNetStac/Extensions/IStacAssetExtension.cs @@ -4,8 +4,14 @@ namespace Stac.Extensions { + /// + /// Interface for StacAsset extensions + /// public interface IStacAssetExtension { + /// + /// Gets the StacAsset. + /// StacAsset StacAsset { get; } } } diff --git a/src/DotNetStac/Extensions/IStacExtension.cs b/src/DotNetStac/Extensions/IStacExtension.cs index a757d118..de6044a4 100644 --- a/src/DotNetStac/Extensions/IStacExtension.cs +++ b/src/DotNetStac/Extensions/IStacExtension.cs @@ -6,12 +6,20 @@ namespace Stac.Extensions { + /// + /// Interface for Stac extensions + /// public interface IStacExtension { + /// + /// Gets the Stac Extension identifier. + /// string Identifier { get; } - bool IsDeclared { get; } - + /// + /// Gets the Stac Extension summary functions. + /// + /// The Stac Extension summary functions. IDictionary GetSummaryFunctions(); } } diff --git a/src/DotNetStac/Extensions/ISummaryFunction.cs b/src/DotNetStac/Extensions/ISummaryFunction.cs index e91c0279..7e0f06b8 100644 --- a/src/DotNetStac/Extensions/ISummaryFunction.cs +++ b/src/DotNetStac/Extensions/ISummaryFunction.cs @@ -7,12 +7,26 @@ namespace Stac.Extensions { + /// + /// Interface for Stac Extension summary functions + /// public interface ISummaryFunction { + /// + /// Gets the Stac Extension associated to the summary function. + /// IStacExtension Extension { get; } + /// + /// Gets the PropertyName of the summary function. + /// string PropertyName { get; } + /// + /// Summarize the items. + /// + /// The items to summarize. + /// The summary item. IStacSummaryItem Summarize(IEnumerable items); } } diff --git a/src/DotNetStac/Extensions/ItemCollection/ItemCollection.cs b/src/DotNetStac/Extensions/ItemCollection/ItemCollection.cs deleted file mode 100644 index 80470a6a..00000000 --- a/src/DotNetStac/Extensions/ItemCollection/ItemCollection.cs +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright (c) by Terradue Srl. All Rights Reserved. -// License under the AGPL, Version 3.0. -// File Name: ItemCollection.cs - -using System; -using System.Collections.Generic; -using System.IO; -using Newtonsoft.Json; -using Newtonsoft.Json.Schema; -using Stac.Collection; - -namespace Stac.Extensions.ItemCollections -{ - public class ItemCollection : StacCollection, IStacExtension - { - public const string JsonSchemaUrl = "https://stac-extensions.github.io/processing/v1.0.0/schema.json"; - - public ItemCollection( - string id, - string description, - List stacItems) - : base( - id, - description, - null) - { - if (stacItems != null) - { - this.Features = new List(stacItems); - this.Extent = StacExtent.Create(stacItems); - } - } - - /// - /// Gets sTAC type (FeatureCollection) - /// - /// - /// STAC type (FeatureCollection) - /// - [JsonProperty("type")] - public override string Type => "FeatureCollection"; - - [JsonProperty(PropertyName = "features", Required = Required.Always)] - public List Features { get; set; } - - /// - public string Identifier => JsonSchemaUrl; - - /// - public bool IsDeclared => true; - - /// - public IDictionary GetSummaryFunctions() - { - return new Dictionary(); - } - - internal static JSchema GenerateJSchema(string version) - { - JSchema jSchema = new JSchema(); - jSchema.SchemaVersion = new Uri("http://json-schema.org/draft-07/schema#"); - jSchema.Title = "STAC ItemCollection Extension"; - jSchema.Type = JSchemaType.Object; - jSchema.Description = "This object represents the metadata for a set of items in a SpatioTemporal Asset Catalog."; - jSchema.AllowAdditionalProperties = true; - - JSchema featureCollectionRef = new JSchema(); - - featureCollectionRef.Ref = GetSchema(new Uri("https://geojson.org/schema/FeatureCollection.json")); - JSchema fcr = new JSchema(); - fcr.OneOf.Add(featureCollectionRef); - - jSchema.AllOf.Add(fcr); - - JSchema itemSchema = GetSchema(new Uri("https://schemas.stacspec.org/v" + version + "/item-spec/json-schema/item.json")); - JSchema linkSchema = JSchema.Parse(itemSchema.ExtensionData["definitions"]["link"].ToString()); - - jSchema.AllOf.Add(new JSchema() - { - Properties = - { - { - "stac_version", new JSchema() - { - Title = "STAC version", - Type = JSchemaType.String, - } - }, - { - "stac_extensions", new JSchema() - { - Title = "STAC extensions", - Type = JSchemaType.Array, - UniqueItems = true, - Items = { new JSchema { Type = JSchemaType.String, Format = "uri", Title = "Reference to a JSON Schema" } }, - } - }, - { - "features", new JSchema() - { - Title = "ItemCollection features", - Type = JSchemaType.Array, - Items = { new JSchema { Ref = itemSchema } }, - } - }, - { - "links", new JSchema() - { - Title = "Links", - Type = JSchemaType.Array, - Items = { new JSchema { Ref = linkSchema } }, - } - }, - }, - }); - - return jSchema; - } - - private static JSchema GetSchema(Uri schemaUri) - { - JSchemaUrlResolver jSchemaResolver = new JSchemaUrlResolver(); - Stream stream = null; - try - { - stream = jSchemaResolver.GetSchemaResource(null, new SchemaReference() { BaseUri = schemaUri }); - } - catch (Exception e) - { - throw new Exceptions.InvalidStacSchemaException(string.Format("Error getting schema at Uri '{0}'", schemaUri), e); - } - - var sr = new StreamReader(stream); - return JSchema.Parse(sr.ReadToEnd(), jSchemaResolver); - } - } -} diff --git a/src/DotNetStac/Extensions/Raster/RasterSampling.cs b/src/DotNetStac/Extensions/Raster/RasterSampling.cs index 11b8b9b8..27efca30 100644 --- a/src/DotNetStac/Extensions/Raster/RasterSampling.cs +++ b/src/DotNetStac/Extensions/Raster/RasterSampling.cs @@ -10,8 +10,15 @@ namespace Stac.Extensions.Raster [JsonConverter(typeof(StringEnumConverter))] public enum RasterSampling { +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + area, point, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Extensions/Sar/ObservationDirection.cs b/src/DotNetStac/Extensions/Sar/ObservationDirection.cs index 51b56d8c..4243732e 100644 --- a/src/DotNetStac/Extensions/Sar/ObservationDirection.cs +++ b/src/DotNetStac/Extensions/Sar/ObservationDirection.cs @@ -14,12 +14,16 @@ namespace Stac.Extensions.Sar [JsonConverter(typeof(StringEnumConverter))] public enum ObservationDirection { - // left +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + [EnumMember(Value = "left")] Left, - // right [EnumMember(Value = "right")] Right, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member + } } diff --git a/src/DotNetStac/Extensions/Sar/SarCommonFrequencyBandName.cs b/src/DotNetStac/Extensions/Sar/SarCommonFrequencyBandName.cs index 0bb95625..8ae4cbc4 100644 --- a/src/DotNetStac/Extensions/Sar/SarCommonFrequencyBandName.cs +++ b/src/DotNetStac/Extensions/Sar/SarCommonFrequencyBandName.cs @@ -10,6 +10,9 @@ namespace Stac.Extensions.Sar [JsonConverter(typeof(StringEnumConverter))] public enum SarCommonFrequencyBandName { +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member P, L, S, @@ -18,5 +21,8 @@ public enum SarCommonFrequencyBandName Ku, K, Ka, +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Model/ObservableDictionary.cs b/src/DotNetStac/Model/ObservableDictionary.cs index f753f2c2..70050454 100644 --- a/src/DotNetStac/Model/ObservableDictionary.cs +++ b/src/DotNetStac/Model/ObservableDictionary.cs @@ -36,6 +36,10 @@ public ObservableDictionary() this._dictionary = new ConcurrentDictionary(); } + /// + /// Initializes a new instance of the class. + /// + /// public ObservableDictionary(IDictionary init) : this() { diff --git a/src/DotNetStac/Schemas/StacSchemaResolver.cs b/src/DotNetStac/Schemas/StacSchemaResolver.cs index 5358d7a8..fc864a3f 100644 --- a/src/DotNetStac/Schemas/StacSchemaResolver.cs +++ b/src/DotNetStac/Schemas/StacSchemaResolver.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.IO; using Newtonsoft.Json.Schema; -using Stac.Extensions.ItemCollections; namespace Stac.Schemas { @@ -15,10 +14,14 @@ public class StacSchemaResolver public static string[] CoreTypes = new string[] { "item", "catalog", "collection" }; private static readonly IDictionary SchemaMap = new Dictionary(); - + private readonly JSchemaResolver _jSchemaResolver; private readonly IDictionary _schemaCompiled; + /// + /// Initializes a new instance of the class. + /// + /// public StacSchemaResolver(JSchemaResolver jSchemaResolver) { this._jSchemaResolver = jSchemaResolver; @@ -43,10 +46,6 @@ public JSchema LoadSchema(string baseUrl = null, string version = null, string s { schemaUri = new Uri(baseUri, $"{shortcut}-spec/json-schema/{shortcut}.json"); } - else if (shortcut == "item-collection") - { - return ItemCollection.GenerateJSchema(version); - } else if (!string.IsNullOrEmpty(shortcut)) { if (shortcut == "proj") @@ -54,7 +53,7 @@ public JSchema LoadSchema(string baseUrl = null, string version = null, string s // Capture a very common mistake and give a better explanation (see #4) throw new Exception("'stac_extensions' must contain 'projection instead of 'proj'."); } - + schemaUri = new Uri(baseUri, $"extensions/{shortcut}/json-schema/schema.json"); } else @@ -82,7 +81,7 @@ public JSchema LoadSchema(string baseUrl = null, string version = null, string s { throw new Exceptions.InvalidStacSchemaException(string.Format("Error getting schema at Uri '{0}'", schemaUri), e); } - + var sr = new StreamReader(stream); this._schemaCompiled[schemaUri.ToString()] = JSchema.Parse(sr.ReadToEnd(), this._jSchemaResolver); return this._schemaCompiled[schemaUri.ToString()]; diff --git a/src/DotNetStac/Schemas/StacValidator.cs b/src/DotNetStac/Schemas/StacValidator.cs index f797dc12..564d82c9 100644 --- a/src/DotNetStac/Schemas/StacValidator.cs +++ b/src/DotNetStac/Schemas/StacValidator.cs @@ -11,7 +11,6 @@ using Newtonsoft.Json.Linq; using Newtonsoft.Json.Schema; using Stac.Exceptions; -using Stac.Extensions.ItemCollections; namespace Stac.Schemas { @@ -21,13 +20,16 @@ public class StacValidator private readonly Dictionary _stacTypes = new Dictionary(); + /// + /// Initializes a new instance of the class. + /// + /// public StacValidator(JSchemaUrlResolver jSchemaUrlResolver) { this._schemaResolver = new StacSchemaResolver(jSchemaUrlResolver); this._stacTypes.Add(typeof(StacItem), "item"); this._stacTypes.Add(typeof(StacCatalog), "catalog"); this._stacTypes.Add(typeof(StacCollection), "collection"); - this._stacTypes.Add(typeof(ItemCollection), "item-collection"); } /// @@ -63,7 +65,7 @@ internal static string FormatMessage(ValidationError validationError, string pre { message.AppendFormat("[ROOT]"); } - + if (!string.IsNullOrEmpty(validationError.Path)) { message.AppendFormat(" Path '{0}'", validationError.Path); @@ -112,7 +114,7 @@ private bool DetectDuplicateKeys(JsonReader jobject) return true; } } - + return true; } @@ -153,7 +155,7 @@ private bool ValidateJObject(JObject jObject) throw new InvalidStacDataException(schema + ":\n" + string.Join("\n", errorMessages. Select(e => FormatMessage(e, "")))); } - + return true; } } diff --git a/src/DotNetStac/SimpleLinksCollectionObject.cs b/src/DotNetStac/SimpleLinksCollectionObject.cs index ad634222..57e318fe 100644 --- a/src/DotNetStac/SimpleLinksCollectionObject.cs +++ b/src/DotNetStac/SimpleLinksCollectionObject.cs @@ -8,6 +8,9 @@ namespace Stac { public class SimpleLinksCollectionObject : ILinksCollectionObject { + /// + /// Initializes a new instance of the class. + /// public SimpleLinksCollectionObject() { this.Links = new List(); diff --git a/src/DotNetStac/StacCollection.cs b/src/DotNetStac/StacCollection.cs index c2c37210..6aa127d1 100644 --- a/src/DotNetStac/StacCollection.cs +++ b/src/DotNetStac/StacCollection.cs @@ -25,6 +25,15 @@ public partial class StacCollection : IStacObject, IStacParent, IStacCatalog, IC public const string MEDIATYPE = "application/json"; public static readonly ContentType COLLECTION_MEDIATYPE = new ContentType(MEDIATYPE); + /// + /// Initializes a new instance of the class. + /// + /// + /// + /// + /// + /// + /// [JsonConstructor] public StacCollection( string id, diff --git a/src/DotNetStac/StacItem.cs b/src/DotNetStac/StacItem.cs index ddc199f6..3daaa095 100644 --- a/src/DotNetStac/StacItem.cs +++ b/src/DotNetStac/StacItem.cs @@ -28,6 +28,12 @@ public partial class StacItem : GeoJSON.Net.Feature.Feature, IStacObject, IClone private readonly StacItemRootPropertyContainer _Root; + /// + /// Initializes a new instance of the class. + /// + /// + /// + /// [JsonConstructor] public StacItem( string id, @@ -44,6 +50,10 @@ public StacItem( this.Assets = new Dictionary(); } + /// + /// Initializes a new instance of the class. + /// + /// public StacItem(StacItem stacItem) : base( Preconditions.CheckNotNull(stacItem, "stacItem").Geometry, diff --git a/src/DotNetStac/StacLink.cs b/src/DotNetStac/StacLink.cs index 5de8f31c..746ea1a6 100644 --- a/src/DotNetStac/StacLink.cs +++ b/src/DotNetStac/StacLink.cs @@ -14,15 +14,30 @@ namespace Stac [DataContract] public class StacLink { + /// + /// Initializes a new instance of the class. + /// public StacLink() { } + /// + /// Initializes a new instance of the class. + /// + /// public StacLink(Uri uri) { this.Uri = uri; } + /// + /// Initializes a new instance of the class. + /// + /// + /// + /// + /// + /// public StacLink(Uri uri, string relationshipType, string title, string mediaType, ulong contentLength = 0) { this.Uri = uri; @@ -32,6 +47,10 @@ public StacLink(Uri uri, string relationshipType, string title, string mediaType this.Length = contentLength; } + /// + /// Initializes a new instance of the class. + /// + /// public StacLink(StacLink source) { if (source == null) diff --git a/src/DotNetStac/StacProviderRole.cs b/src/DotNetStac/StacProviderRole.cs index 80ed6902..6481c8b1 100644 --- a/src/DotNetStac/StacProviderRole.cs +++ b/src/DotNetStac/StacProviderRole.cs @@ -13,16 +13,28 @@ namespace Stac [JsonConverter(typeof(StringEnumConverter))] public enum StacProviderRole { - /// The organization that is licensing the dataset under the license specified in the Collection's field. +#pragma warning disable SA1300 // Element should begin with upper-case letter +#pragma warning disable SA1602 // EnumerationItemsMustBeDocumented + /// + // The organization that is licensing the dataset under the license specified in the Collection's field. + // licensor, - - // The producer of the data is the provider that initially captured and processed the source data, e.g. ESA for Sentinel-2 data. + + /// + /// The producer of the data is the provider that initially captured and processed the source data, e.g. ESA for Sentinel-2 data. + /// producer, - - // A processor is any provider who processed data to a derived product. + + /// + /// A processor is any provider who processed data to a derived product. + /// processor, - - // The host is the actual provider offering the data on their storage. There should be no more than one host, specified as last element of the list. + + /// + /// The host is the actual provider offering the data on their storage. There should be no more than one host, specified as last element of the list. + /// host, +#pragma warning restore SA1602 // EnumerationItemsMustBeDocumented +#pragma warning restore SA1300 // Element should begin with upper-case letter } } diff --git a/src/DotNetStac/Utils.cs b/src/DotNetStac/Utils.cs index 85e65bd2..e3e79150 100644 --- a/src/DotNetStac/Utils.cs +++ b/src/DotNetStac/Utils.cs @@ -6,7 +6,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Stac.Exceptions; -using Stac.Extensions.ItemCollections; namespace Stac { @@ -36,10 +35,6 @@ public static Type IdentifyStacType(JObject jObject) { return typeof(StacItem); } - else if (jObject.Value("type") == "FeatureCollection") - { - return typeof(ItemCollection); - } else if (jObject.Value("type") == "Collection" || jObject["extent"] != null || jObject["license"] != null) { return typeof(StacCollection);