From 4b6573d240c60c84c8277932a6a4571825d09d28 Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 08:32:47 -0700 Subject: [PATCH 01/17] only search across multiple processes if multiple searches are detected --- datasources/manifest.py | 53 ++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/datasources/manifest.py b/datasources/manifest.py index 6545728..5c5217a 100644 --- a/datasources/manifest.py +++ b/datasources/manifest.py @@ -38,28 +38,37 @@ def execute(self): "features": [] }}) - # Execute searches (lambda safe) - processes = [] - parent_connections = [] - - # print("Creating processes") - for search in self.searches: - parent_conn, child_conn = Pipe() - parent_connections.append(parent_conn) - process = Process(target=search[0].execute_multi, args=(search[1], child_conn)) - processes.append(process) - - # print("Starting processes") - for process in processes: - process.start() - - # print("Joining processes") - for process in processes: - process.join() - - - for parent_connection in parent_connections: - resp = parent_connection.recv() + response_list = [] + # Run in main process if only a single search + if len(self.searches) == 1: + resp = { + 'stac_items': self.searches[0][0].execute(self.searches[0][1]), + 'source': self.searches[0][0].__class__.__name__ + } + response_list.append(resp) + # Spawn child processes if multiple searches + else: + processes = [] + parent_connections = [] + + for search in self.searches: + parent_conn, child_conn = Pipe() + parent_connections.append(parent_conn) + process = Process(target=search[0].execute_multi, args=(search[1], child_conn)) + processes.append(process) + + for process in processes: + process.start() + + for process in processes: + process.join() + + for parent_connection in parent_connections: + resp = parent_connection.recv() + response_list.append(resp) + + # Format driver response into feature collection + for resp in response_list: if resp['stac_items']: stac_compliant = self[resp['source']].stac_compliant if stac_compliant: From e212abe0bd0455b5533cc768fcc2761550625d0f Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 09:26:53 -0700 Subject: [PATCH 02/17] adding subdatasets parameter to API call --- handler.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/handler.py b/handler.py index 14f2340..7c2a939 100644 --- a/handler.py +++ b/handler.py @@ -62,6 +62,9 @@ def lambda_invoke(service, stage, source, args, conn): else: args.update({'kwargs': {'limit': 10}}) + if 'subdatasets' in params: + args.update({'kwargs': {'subdatasets': params['subdatasets']}}) + processes = [] parent_connections = [] From 4efcbb8d00e4818a29447032fa66e3bba4ebfefa Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 09:29:22 -0700 Subject: [PATCH 03/17] typo --- handler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handler.py b/handler.py index 7c2a939..622f42b 100644 --- a/handler.py +++ b/handler.py @@ -63,7 +63,7 @@ def lambda_invoke(service, stage, source, args, conn): args.update({'kwargs': {'limit': 10}}) if 'subdatasets' in params: - args.update({'kwargs': {'subdatasets': params['subdatasets']}}) + args.update({'kwargs': {'subdatasets': package['subdatasets']}}) processes = [] parent_connections = [] From 7e470452535abbc3a3e73cdb6ef5dff8b6ad32fa Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 12:10:57 -0700 Subject: [PATCH 04/17] adding planet data driver to remote sources --- datasources/sources/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/datasources/sources/__init__.py b/datasources/sources/__init__.py index 2a811a5..48289a4 100644 --- a/datasources/sources/__init__.py +++ b/datasources/sources/__init__.py @@ -31,6 +31,7 @@ class remote(object): Landsat8 = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-landsat8" MicrosoftBuildingFootprints = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-mbf" NAIP = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-naip" + PlanetData = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-planet" Sentinel1 = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-sentinel1" Sentinel2 = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-sentinel2" SRTM = "https://cdn.jsdelivr.net/gh/geospatial-jeff/cognition-datasources-srtm" From 6b8596aa7303e3c597bba676307779df632dc08a Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 12:14:59 -0700 Subject: [PATCH 05/17] version bump --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 09c12c8..0a8f6e1 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ requirements = [line.rstrip() for line in reqs] setup(name="cognition_datasources", - version='0.3', + version='0.3.1', author='Jeff Albrecht', author_email='geospatialjeff@gmail.com', packages=find_packages(exclude=['docs']), From 833e4f63192d2ab055153960e84e4edc18a97353 Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 12:15:57 -0700 Subject: [PATCH 06/17] bumping cognition layer arn --- datasources/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datasources/__init__.py b/datasources/__init__.py index 7db68be..5acd93c 100644 --- a/datasources/__init__.py +++ b/datasources/__init__.py @@ -2,4 +2,4 @@ from .manifest import Manifest -layer_arn = 'arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:6' \ No newline at end of file +layer_arn = 'arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:7' \ No newline at end of file From ef148bdb5b17837fcd58813fca796d3c9381b232 Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 12:31:11 -0700 Subject: [PATCH 07/17] regenerating docs --- README.md | 1 + docs/datasource-reference.md | 34 ++++++++++++++++++++++++++++++++++ docs/datasource-status.md | 1 + 3 files changed, 36 insertions(+) diff --git a/README.md b/README.md index 4ef431e..aac0910 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Check out the [contributing docs](./docs/contributing.md) for step-by-step guide | [CBERS](https://github.com/geospatial-jeff/cognition-datasources-cbers) | [AWS Earth: CBERS](https://registry.opendata.aws/cbers/) | False | Sends requests to AWS S3 Bucket (**RequesterPays**) with help of [aws-sat-api](https://github.com/RemotePixel/aws-sat-api-py). | | [Landsat8](https://github.com/geospatial-jeff/cognition-datasources-landsat8) | [AWS Earth: Landsat8](https://registry.opendata.aws/landsat-8/) | True | Sends requests to [sat-api]( https://github.com/sat-utils/sat-api). | | [NAIP](https://github.com/geospatial-jeff/cognition-datasources-naip) | [AWS Earth: NAIP](https://registry.opendata.aws/naip/) | False | Sends requests to AWS S3 Bucket (**RequesterPays**). | +| [PlanetData](https://github.com/geospatial-jeff/cognition-datasources-planet) | [Planet Data API](https://developers.planet.com/docs/api/) | False | Sends request to the [Planet Python Client](https://github.com/planetlabs/planet-client-python) | | [Sentinel1](https://github.com/geospatial-jeff/cognition-datasources-sentinel1) | [Copernicus Open Access Hub](https://scihub.copernicus.eu/) | False | Sends requests to [CopernicusAPIHub](https://scihub.copernicus.eu/twiki/do/view/SciHubWebPortal/APIHubDescription) with help of [sentinelsat](https://github.com/sentinelsat/sentinelsat). | | [Sentinel2](https://github.com/geospatial-jeff/cognition-datasources-sentinel2) | [AWS Earth: Sentinel2](https://registry.opendata.aws/sentinel-2/) | True | Sends requests to [sat-api](https://github.com/sat-utils/sat-api). | | [SRTM](https://github.com/geospatial-jeff/cognition-datasources-srtm) | [AWS: Terrain Tiles](https://registry.opendata.aws/terrain-tiles/) | False | Does not send any requests. | diff --git a/docs/datasource-reference.md b/docs/datasource-reference.md index 57e91a5..1660857 100644 --- a/docs/datasource-reference.md +++ b/docs/datasource-reference.md @@ -135,7 +135,41 @@ | eo:epsg | int | 26914 | | eo:instrument | str | 'Leica ADS100' | --- +[![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-planet.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-planet) +## PlanetData + +| Parameter | Status | +| ----------| ------ | +| Spatial | :heavy_check_mark: | +| Temporal | :heavy_check_mark: | +| Properties | :heavy_check_mark: | +| **kwargs | [subdatasets] | + +##### Properties +| Property | Type | Example | +|--------------------------|-------|-------------| +| eo:gsd | float | 0.9 | +| eo:instrument | str | 'SSC1' | +| eo:off_nadir | float | 26.3 | +| eo:instrument | str | 'SSC1' | +| eo:azimuth | float | 163.4 | +| eo:sun_azimuth | int | 139 | +| eo:sun_elevation | float | 70.1 | +| eo:cloud_cover | float | 0.06 | +| legacy:camera_id | str | 'd2' | +| legacy:ground_conrol | bool | true | +| legacy:item_type | str | 'SkySatScene' | +| legacy:provider | str | 'skysat' | +| legacy:published | str | "2019-05-13T04:50:40.092Z" | +| legacy:quality_category | str | "standard" | +| legacy:strip_id | str | 's3_20190512T185450Z' | +| legacy:updated | str | '2019-06-01T19:14:40.178Z' | + + + + +--- [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-sentinel1.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-sentinel1) ## Sentinel1 diff --git a/docs/datasource-status.md b/docs/datasource-status.md index d0449b4..45b7777 100644 --- a/docs/datasource-status.md +++ b/docs/datasource-status.md @@ -7,6 +7,7 @@ | Landsat8 | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-landsat8.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-landsat8) | | MicrosoftBuildingFootprints | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-mbf.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-mbf) | | NAIP | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-naip.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-naip) | +| PlanetData | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-planet.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-planet) | | Sentinel1 | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-sentinel1.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-sentinel1) | | Sentinel2 | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-sentinel2.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-sentinel2) | | SRTM | [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-srtm.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-srtm) | From 2fdcfbec2e7aafb30ad1189df6235bd14e1a0356 Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 14:01:59 -0700 Subject: [PATCH 08/17] bugfix --- handler.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/handler.py b/handler.py index 622f42b..8d5ff54 100644 --- a/handler.py +++ b/handler.py @@ -19,8 +19,8 @@ def lambda_invoke(service, stage, source, args, conn): InvocationType="RequestResponse", Payload=json.dumps(args) ) - - conn.send(json.loads(response['Payload'].read())) + data = json.loads(response['Payload'].read()) + conn.send(data) conn.close() package = json.loads(event['body']) @@ -58,12 +58,12 @@ def lambda_invoke(service, stage, source, args, conn): args.update({'properties': None}) if 'limit' in params: - args.update({'kwargs': {'limit': package['limit']}}) + args.update({'limit': package['limit']}) else: - args.update({'kwargs': {'limit': 10}}) + args.update({'limit': 10}) if 'subdatasets' in params: - args.update({'kwargs': {'subdatasets': package['subdatasets']}}) + args.update({'subdatasets': package['subdatasets']}) processes = [] parent_connections = [] @@ -95,3 +95,10 @@ def lambda_invoke(service, stage, source, args, conn): } +def PlanetData(event, context): + manifest = Manifest() + manifest['PlanetData'].search(**event) + response = manifest.execute() + return response + + From bd0e35b245ea28998e21b3fbc7103414c49f98cd Mon Sep 17 00:00:00 2001 From: Loaner Laptop Date: Wed, 5 Jun 2019 14:03:02 -0700 Subject: [PATCH 09/17] removing planet handler --- handler.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/handler.py b/handler.py index 8d5ff54..103d617 100644 --- a/handler.py +++ b/handler.py @@ -94,11 +94,3 @@ def lambda_invoke(service, stage, source, args, conn): 'body': json.dumps(out_d) } - -def PlanetData(event, context): - manifest = Manifest() - manifest['PlanetData'].search(**event) - response = manifest.execute() - return response - - From a92d71a134ec1e1ca625d6352f7a7c613db330bb Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 19:29:41 -0700 Subject: [PATCH 10/17] no threads if only searching one datasource --- datasources/manifest.py | 2 ++ handler.py | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/datasources/manifest.py b/datasources/manifest.py index 5c5217a..2ef189b 100644 --- a/datasources/manifest.py +++ b/datasources/manifest.py @@ -41,10 +41,12 @@ def execute(self): response_list = [] # Run in main process if only a single search if len(self.searches) == 1: + print("Detecting a single search (inside driver)") resp = { 'stac_items': self.searches[0][0].execute(self.searches[0][1]), 'source': self.searches[0][0].__class__.__name__ } + print(resp) response_list.append(resp) # Spawn child processes if multiple searches else: diff --git a/handler.py b/handler.py index 103d617..57084c0 100644 --- a/handler.py +++ b/handler.py @@ -13,15 +13,18 @@ def worker(event, context): - def lambda_invoke(service, stage, source, args, conn): + def lambda_invoke(service, stage, source, args, conn=None, multi=False): response = lambda_client.invoke( FunctionName=f"{service}-{stage}-{source}", InvocationType="RequestResponse", Payload=json.dumps(args) ) data = json.loads(response['Payload'].read()) - conn.send(data) - conn.close() + if multi: + conn.send(data) + conn.close() + else: + return data package = json.loads(event['body']) params = list(package) @@ -68,11 +71,18 @@ def lambda_invoke(service, stage, source, args, conn): processes = [] parent_connections = [] + if len(package['datasources']) == 1: + source = list(package['datasources'])[0] + return { + 'statusCode': 200, + 'body': json.dumps(lambda_invoke(service, stage, source, args, multi=False)) + } + for source in package['datasources']: parent_conn, child_conn = Pipe() parent_connections.append(parent_conn) - process = Process(target=lambda_invoke, args=(service, stage, source, args, child_conn)) + process = Process(target=lambda_invoke, args=(service, stage, source, args, child_conn, True)) processes.append(process) for process in processes: From 77d18cd958aba773cf7e81c884671bdb09da8180 Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 22:16:12 -0700 Subject: [PATCH 11/17] removing reference to master branch when pulling config info --- datasources/scripts/_cli.py | 1 - 1 file changed, 1 deletion(-) diff --git a/datasources/scripts/_cli.py b/datasources/scripts/_cli.py index 5c4c7a9..3a832d5 100644 --- a/datasources/scripts/_cli.py +++ b/datasources/scripts/_cli.py @@ -96,7 +96,6 @@ def load(datasource, local): print("Loading the {} driver.".format(source)) source_link = getattr(sources.remote, source) project_path = '/'.join(source_link.split('/')[4:]) - source_link += '@master' # Check CI build r = requests.get(os.path.join(source_link, 'config.yml')) From c028fffec5157866e35653d22d0f396b5bab3137 Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 22:26:44 -0700 Subject: [PATCH 12/17] bumping layer version --- serverless.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverless.yml b/serverless.yml index 2ec2d77..f9a20cc 100644 --- a/serverless.yml +++ b/serverless.yml @@ -17,7 +17,7 @@ functions: path: /stac/search method: post layers: - - arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:6 + - arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:7 provider: environment: From 5a7329440ca6ade60b9cef05c4a83ba79d3413ba Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 22:56:37 -0700 Subject: [PATCH 13/17] updating datasource docs and examples --- docs/datasource-reference.md | 22 +- docs/examples/CBERS.json | 269 ++++++++------- docs/examples/Landsat8.json | 523 ++++++++++++++--------------- docs/examples/PlanetData.json | 63 ++++ docs/examples/Sentinel2.json | 600 ++++++++++++++++------------------ 5 files changed, 750 insertions(+), 727 deletions(-) create mode 100644 docs/examples/PlanetData.json diff --git a/docs/datasource-reference.md b/docs/datasource-reference.md index 1660857..a448e11 100644 --- a/docs/datasource-reference.md +++ b/docs/datasource-reference.md @@ -7,20 +7,22 @@ | Spatial | :heavy_check_mark: | | Temporal | :heavy_check_mark: | | Properties | :heavy_check_mark: | -| **kwargs | [limit] | +| **kwargs | [limit, subdatasets] | + +* The `subdatasets` kwarg allows querying by sensor (mux, awfi, pan5m, and pan10m). ##### Properties | Property | Type | Example | |--------------------------|-------|-------------| | eo:gsd | float | 20.0 | | eo:epsg | int | 32614 | -| eo:instrument | str | 'AWFI' | | eo:platform | str | 'CBERS' | | eo:sun_azimuth | float | 154.88 | | eo:sun_elevation | float | 28.26 | -| legacy:row | str | '230' | -| legacy:path | str | '049' | -| legacy:processing_level | str | 'L2' | +| eo:off_nadir | float | 0.004 | +| cbers:data_type | str | 'L2' | +| cbers:path | int | 229 | +| cbers:row | int | '48 | --- [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-dgopendata.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-dgopendata) @@ -92,6 +94,10 @@ | eo:row | str | '030' | | eo:column | str | '032' | | landsat:processing_level | str | 'L1TP' | +| landsat:product_id | str | 'LC08_L1TP_032028_20190616_20190617_01_RT' | +| landsat:scene_id | str | 'LC80320282019167LGN00' | +| landsat:tier | str | 'RT' | +| landsat:revision | str | '00' | --- [![CircleCI](https://circleci.com/gh/geospatial-jeff/cognition-datasources-mbf.svg?style=svg)](https://circleci.com/gh/geospatial-jeff/cognition-datasources-mbf) @@ -206,12 +212,12 @@ ##### Properties | Property | Type | Example | |--------------------------|-------|-------------| -| eo:gsd | float | 10.0 | +| eo:gsd | int | 10 | | eo:epsg | int | 32614 | | eo:instrument | str | 'MSI' | | eo:platform | str | 'sentinel-2b' | -| eo:off_nadir | float | 0.0 | -| eo:cloud_cover | float | 100.0 | +| eo:off_nadir | int | 0 | +| eo:cloud_cover | int | 100 | | sentinel:utm_zone | int | 13 | | sentinel:latitude_band | str | 'T' | | sentinel:grid_square | str | 'GJ' | diff --git a/docs/examples/CBERS.json b/docs/examples/CBERS.json index f1c169e..161b9b0 100644 --- a/docs/examples/CBERS.json +++ b/docs/examples/CBERS.json @@ -1,145 +1,138 @@ { - "id": "CBERS_4_MUX_20160322_234_057_L2", - "type": "Feature", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -109.042764, - 39.012706 - ], - [ - -107.670548, - 38.804041 - ], - [ - -108.009659, - 37.752785 - ], - [ - -109.362479, - 37.958498 - ], - [ - -109.042764, - 39.012706 - ] - ] + "assets": { + "thumbnail": { + "href": "https://s3.amazonaws.com/cbers-meta-pds/CBERS4/MUX/229/048/CBERS_4_MUX_20161005_229_048_L2/CBERS_4_MUX_20161005_229_048.jpg", + "type": "image/jpeg" + }, + "metadata": { + "href": "s3://cbers-pds/CBERS4/MUX/229/048/CBERS_4_MUX_20161005_229_048_L2/CBERS_4_MUX_20161005_229_048_L2_BAND6.xml", + "title": "INPE original metadata", + "type": "text/xml" + }, + "B5": { + "eo:bands": [ + 0 + ], + "href": "s3://cbers-pds/CBERS4/MUX/229/048/CBERS_4_MUX_20161005_229_048_L2/CBERS_4_MUX_20161005_229_048_L2_BAND5.tif", + "type": "image/vnd.stac.geotiff; cloud-optimized=true" + }, + "B6": { + "eo:bands": [ + 1 + ], + "href": "s3://cbers-pds/CBERS4/MUX/229/048/CBERS_4_MUX_20161005_229_048_L2/CBERS_4_MUX_20161005_229_048_L2_BAND6.tif", + "type": "image/vnd.stac.geotiff; cloud-optimized=true" + }, + "B7": { + "eo:bands": [ + 2 + ], + "href": "s3://cbers-pds/CBERS4/MUX/229/048/CBERS_4_MUX_20161005_229_048_L2/CBERS_4_MUX_20161005_229_048_L2_BAND7.tif", + "type": "image/vnd.stac.geotiff; cloud-optimized=true" + }, + "B8": { + "eo:bands": [ + 3 + ], + "href": "s3://cbers-pds/CBERS4/MUX/229/048/CBERS_4_MUX_20161005_229_048_L2/CBERS_4_MUX_20161005_229_048_L2_BAND8.tif", + "type": "image/vnd.stac.geotiff; cloud-optimized=true" + } + }, + "bbox": [ + -101.990281, + 45.654221, + -100.057378, + 47.018298 + ], + "geometry": { + "coordinates": [ + [ + [ + [ + -102.001163, + 45.92558 + ], + [ + -100.475028, + 45.693696 + ], + [ + -100.059069, + 46.737286 + ], + [ + -101.613633, + 46.973572 + ], + [ + -102.001163, + 45.92558 + ] ] + ] + ], + "type": "MultiPolygon" + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/collections/cbers4-mux/items/CBERS_4_MUX_20161005_229_048_L2" }, - "properties": { - "eo:platform": "CBERS", - "eo:instrument": "MUX", - "legacy:path": "234", - "legacy:row": "057", - "legacy:processing_level": "L2", - "bands": [ - { - "name": "B5", - "common_name": "blue", - "gsd": 20, - "center_wavelength": 0.485, - "full_width_half_max": 0.035 - }, - { - "name": "B6", - "common_name": "green", - "gsd": 20, - "center_wavelength": 0.555, - "full_width_half_max": 0.045 - }, - { - "name": "B7", - "common_name": "red", - "gsd": 20, - "center_wavelength": 0.66, - "full_width_half_max": 0.03 - }, - { - "name": "B8", - "common_name": "nir", - "gsd": 20, - "center_wavelength": 0.83, - "full_width_half_max": 0.06 - } - ], - "datetime": "2016-03-22T18:15:15.295127Z", - "eo:sun_elevation": 49.6352, - "eo:sun_azimuth": 155.604, - "eo:gsd": 20.0, - "eo:epsg": 32612 + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/collections/cbers4-mux" }, - "assets": { - "B5": { - "href": "s3://cbers-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND5.tif", - "title": "Band 5 (Blue)", - "eo:bands": [ - 0 - ] - }, - "B5_meta": { - "href": "s3://cbers-meta-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND5.xml", - "title": "Band 5 Metadata", - "eo:bands": [ - 0 - ] - }, - "B6": { - "href": "s3://cbers-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND6.tif", - "title": "Band 6 (Green)", - "eo:bands": [ - 1 - ] - }, - "B6_meta": { - "href": "s3://cbers-meta-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND6.xml", - "title": "Band 6 Metadata", - "eo:bands": [ - 1 - ] - }, - "B7": { - "href": "s3://cbers-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND7.tif", - "title": "Band 7 (Red)", - "eo:bands": [ - 2 - ] - }, - "B7_meta": { - "href": "s3://cbers-meta-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND7.xml", - "title": "Band 7 Metadata", - "eo:bands": [ - 2 - ] - }, - "B8": { - "href": "s3://cbers-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND8.tif", - "title": "Band 8 (NIR)", - "eo:bands": [ - 3 - ] - }, - "B8_meta": { - "href": "s3://cbers-meta-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_L2_BAND8.xml", - "title": "Band 8 Metadata", - "eo:bands": [ - 3 - ] - }, - "thumbnail": { - "href": "https://s3.amazonaws.com/cbers-meta-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057_small.jpeg", - "title": "Thumbnail" - }, - "browseurl": { - "href": "https://s3.amazonaws.com/cbers-meta-pds/CBERS4/MUX/234/057/CBERS_4_MUX_20160322_234_057_L2/CBERS_4_MUX_20160322_234_057.jpg", - "title": "BrowseURL" - } + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/collections/cbers4-mux" }, - "bbox": [ - -109.366621, - 37.744692, - -107.654285, - 39.011136 + { + "rel": "root", + "href": "https://earth-search.aws.element84.com/stac" + } + ], + "id": "CBERS_4_MUX_20161005_229_048_L2", + "type": "Feature", + "properties": { + "eo:off_nadir": -0.00480753, + "eo:instrument": "MUX", + "cbers:path": 229, + "datetime": "2016-10-05T17:52:47Z", + "eo:sun_azimuth": 168.558, + "eo:sun_elevation": 38.1141, + "cbers:data_type": "L2", + "collection": "cbers4-mux", + "eo:epsg": 32799, + "cbers:row": 48, + "eo:bands": [ + { + "name": "B5", + "common_name": "blue", + "gsd": 20, + "center_wavelength": 0.485, + "full_width_half_max": 0.035 + }, + { + "name": "B6", + "common_name": "green", + "gsd": 20, + "center_wavelength": 0.555, + "full_width_half_max": 0.045 + }, + { + "name": "B7", + "common_name": "red", + "gsd": 20, + "center_wavelength": 0.66, + "full_width_half_max": 0.03 + }, + { + "name": "B8", + "common_name": "nir", + "gsd": 20, + "center_wavelength": 0.83, + "full_width_half_max": 0.06 + } ] + } } \ No newline at end of file diff --git a/docs/examples/Landsat8.json b/docs/examples/Landsat8.json index 8839089..e49b455 100644 --- a/docs/examples/Landsat8.json +++ b/docs/examples/Landsat8.json @@ -1,267 +1,268 @@ { - "type": "Feature", - "id": "LC80360332019035LGN00", - "bbox": [ - -110.62712, - 37.82343, - -107.93442, - 39.96101 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -110.12930164254415, - 39.959841252347054 - ], - [ - -107.93628236731418, - 39.58586086835256 - ], - [ - -108.43525083787026, - 37.82553761592015 - ], - [ - -110.62481918987025, - 38.208713501579226 - ], - [ - -110.12930164254415, - 39.959841252347054 - ] - ] + "type": "Feature", + "id": "LC80320282019167", + "bbox": [ + -102.33389, + 44.90951, + -99.1927, + 47.12253 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -101.63022988222086, + 47.12098593673385 + ], + [ + -99.19601401604791, + 46.646663516063605 + ], + [ + -99.90030126165739, + 44.91058185395799 + ], + [ + -102.33126052256468, + 45.392629398098045 + ], + [ + -101.63022988222086, + 47.12098593673385 ] + ] + ] + }, + "properties": { + "collection": "landsat-8-l1", + "eo:gsd": 15, + "eo:platform": "landsat-8", + "eo:instrument": "OLI_TIRS", + "eo:off_nadir": 0, + "eo:bands": [ + { + "name": "B1", + "common_name": "coastal", + "gsd": 30, + "center_wavelength": 0.44, + "full_width_half_max": 0.02 + }, + { + "name": "B2", + "common_name": "blue", + "gsd": 30, + "center_wavelength": 0.48, + "full_width_half_max": 0.06 + }, + { + "name": "B3", + "common_name": "green", + "gsd": 30, + "center_wavelength": 0.56, + "full_width_half_max": 0.06 + }, + { + "name": "B4", + "common_name": "red", + "gsd": 30, + "center_wavelength": 0.65, + "full_width_half_max": 0.04 + }, + { + "name": "B5", + "common_name": "nir", + "gsd": 30, + "center_wavelength": 0.86, + "full_width_half_max": 0.03 + }, + { + "name": "B6", + "common_name": "swir16", + "gsd": 30, + "center_wavelength": 1.6, + "full_width_half_max": 0.08 + }, + { + "name": "B7", + "common_name": "swir22", + "gsd": 30, + "center_wavelength": 2.2, + "full_width_half_max": 0.2 + }, + { + "name": "B8", + "common_name": "pan", + "gsd": 15, + "center_wavelength": 0.59, + "full_width_half_max": 0.18 + }, + { + "name": "B9", + "common_name": "cirrus", + "gsd": 30, + "center_wavelength": 1.37, + "full_width_half_max": 0.02 + }, + { + "name": "B10", + "common_name": "lwir11", + "gsd": 100, + "center_wavelength": 10.9, + "full_width_half_max": 0.8 + }, + { + "name": "B11", + "common_name": "lwir12", + "gsd": 100, + "center_wavelength": 12, + "full_width_half_max": 1 + } + ], + "datetime": "2019-06-16T17:29:21.613279+00:00", + "eo:sun_azimuth": 140.21700754, + "eo:sun_elevation": 62.8092446, + "eo:cloud_cover": 9, + "eo:row": "028", + "eo:column": "032", + "landsat:product_id": "LC08_L1TP_032028_20190616_20190617_01_RT", + "landsat:scene_id": "LC80320282019167LGN00", + "landsat:processing_level": "L1TP", + "landsat:tier": "RT", + "landsat:revision": "00", + "eo:epsg": 32614 + }, + "assets": { + "index": { + "type": "text/html", + "title": "HTML index page", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_MTL.txt" }, - "properties": { - "collection": "landsat-8-l1", - "eo:gsd": 15, - "eo:platform": "landsat-8", - "eo:instrument": "OLI_TIRS", - "eo:off_nadir": 0, - "eo:bands": [ - { - "name": "B1", - "common_name": "coastal", - "gsd": 30, - "center_wavelength": 0.44, - "full_width_half_max": 0.02 - }, - { - "name": "B2", - "common_name": "blue", - "gsd": 30, - "center_wavelength": 0.48, - "full_width_half_max": 0.06 - }, - { - "name": "B3", - "common_name": "green", - "gsd": 30, - "center_wavelength": 0.56, - "full_width_half_max": 0.06 - }, - { - "name": "B4", - "common_name": "red", - "gsd": 30, - "center_wavelength": 0.65, - "full_width_half_max": 0.04 - }, - { - "name": "B5", - "common_name": "nir", - "gsd": 30, - "center_wavelength": 0.86, - "full_width_half_max": 0.03 - }, - { - "name": "B6", - "common_name": "swir16", - "gsd": 30, - "center_wavelength": 1.6, - "full_width_half_max": 0.08 - }, - { - "name": "B7", - "common_name": "swir22", - "gsd": 30, - "center_wavelength": 2.2, - "full_width_half_max": 0.2 - }, - { - "name": "B8", - "common_name": "pan", - "gsd": 15, - "center_wavelength": 0.59, - "full_width_half_max": 0.18 - }, - { - "name": "B9", - "common_name": "cirrus", - "gsd": 30, - "center_wavelength": 1.37, - "full_width_half_max": 0.02 - }, - { - "name": "B10", - "common_name": "lwir11", - "gsd": 100, - "center_wavelength": 10.9, - "full_width_half_max": 0.8 - }, - { - "name": "B11", - "common_name": "lwir12", - "gsd": 100, - "center_wavelength": 12, - "full_width_half_max": 1 - } - ], - "datetime": "2019-02-04T17:56:00.175892+00:00", - "eo:sun_azimuth": 153.2585974, - "eo:sun_elevation": 30.61877312, - "eo:cloud_cover": 100, - "eo:row": "033", - "eo:column": "036", - "landsat:product_id": "LC08_L1TP_036033_20190204_20190204_01_RT", - "landsat:scene_id": "LC80360332019035LGN00", - "landsat:processing_level": "L1TP", - "landsat:tier": "RT", - "eo:epsg": 32612 + "thumbnail": { + "title": "Thumbnail image", + "type": "image/jpeg", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_thumb_large.jpg" }, - "assets": { - "index": { - "type": "text/html", - "title": "HTML index page", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/index.html" - }, - "thumbnail": { - "title": "Thumbnail image", - "type": "image/jpeg", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_thumb_large.jpg" - }, - "B1": { - "type": "image/x.geotiff", - "eo:bands": [ - 0 - ], - "title": "Band 1 (coastal)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B1.TIF" - }, - "B2": { - "type": "image/x.geotiff", - "eo:bands": [ - 1 - ], - "title": "Band 2 (blue)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B2.TIF" - }, - "B3": { - "type": "image/x.geotiff", - "eo:bands": [ - 2 - ], - "title": "Band 3 (green)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B3.TIF" - }, - "B4": { - "type": "image/x.geotiff", - "eo:bands": [ - 3 - ], - "title": "Band 4 (red)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B4.TIF" - }, - "B5": { - "type": "image/x.geotiff", - "eo:bands": [ - 4 - ], - "title": "Band 5 (nir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B5.TIF" - }, - "B6": { - "type": "image/x.geotiff", - "eo:bands": [ - 5 - ], - "title": "Band 6 (swir16)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B6.TIF" - }, - "B7": { - "type": "image/x.geotiff", - "eo:bands": [ - 6 - ], - "title": "Band 7 (swir22)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B7.TIF" - }, - "B8": { - "type": "image/x.geotiff", - "eo:bands": [ - 7 - ], - "title": "Band 8 (pan)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B8.TIF" - }, - "B9": { - "type": "image/x.geotiff", - "eo:bands": [ - 8 - ], - "title": "Band 9 (cirrus)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B9.TIF" - }, - "B10": { - "type": "image/x.geotiff", - "eo:bands": [ - 9 - ], - "title": "Band 10 (lwir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B10.TIF" - }, - "B11": { - "type": "image/x.geotiff", - "eo:bands": [ - 10 - ], - "title": "Band 11 (lwir)", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_B11.TIF" - }, - "ANG": { - "title": "Angle coefficients file", - "type": "text/plain", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_ANG.txt" - }, - "MTL": { - "title": "original metadata file", - "type": "text/plain", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_MTL.txt" - }, - "BQA": { - "title": "Band quality data", - "type": "image/x.geotiff", - "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/036/033/LC08_L1TP_036033_20190204_20190204_01_RT/LC08_L1TP_036033_20190204_20190204_01_RT_BQA.TIF" - } + "B1": { + "type": "image/x.geotiff", + "eo:bands": [ + 0 + ], + "title": "Band 1 (coastal)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B1.TIF" }, - "links": [ - { - "rel": "self", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1/items/LC80360332019035LGN00" - }, - { - "rel": "parent", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "collection", - "href": "https://sat-api-dev.developmentseed.org/collections/landsat-8-l1" - }, - { - "rel": "root", - "href": "https://sat-api-dev.developmentseed.org/stac" - } - ] + "B2": { + "type": "image/x.geotiff", + "eo:bands": [ + 1 + ], + "title": "Band 2 (blue)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B2.TIF" + }, + "B3": { + "type": "image/x.geotiff", + "eo:bands": [ + 2 + ], + "title": "Band 3 (green)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B3.TIF" + }, + "B4": { + "type": "image/x.geotiff", + "eo:bands": [ + 3 + ], + "title": "Band 4 (red)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B4.TIF" + }, + "B5": { + "type": "image/x.geotiff", + "eo:bands": [ + 4 + ], + "title": "Band 5 (nir)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B5.TIF" + }, + "B6": { + "type": "image/x.geotiff", + "eo:bands": [ + 5 + ], + "title": "Band 6 (swir16)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B6.TIF" + }, + "B7": { + "type": "image/x.geotiff", + "eo:bands": [ + 6 + ], + "title": "Band 7 (swir22)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B7.TIF" + }, + "B8": { + "type": "image/x.geotiff", + "eo:bands": [ + 7 + ], + "title": "Band 8 (pan)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B8.TIF" + }, + "B9": { + "type": "image/x.geotiff", + "eo:bands": [ + 8 + ], + "title": "Band 9 (cirrus)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B9.TIF" + }, + "B10": { + "type": "image/x.geotiff", + "eo:bands": [ + 9 + ], + "title": "Band 10 (lwir)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B10.TIF" + }, + "B11": { + "type": "image/x.geotiff", + "eo:bands": [ + 10 + ], + "title": "Band 11 (lwir)", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_B11.TIF" + }, + "ANG": { + "title": "Angle coefficients file", + "type": "text/plain", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_ANG.txt" + }, + "MTL": { + "title": "original metadata file", + "type": "text/plain", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_MTL.txt" + }, + "BQA": { + "title": "Band quality data", + "type": "image/x.geotiff", + "href": "https://landsat-pds.s3.amazonaws.com/c1/L8/032/028/LC08_L1TP_032028_20190616_20190617_01_RT/LC08_L1TP_032028_20190616_20190617_01_RT_BQA.TIF" + } + }, + "links": [ + { + "rel": "self", + "href": "https://earth-search.aws.element84.com/collections/landsat-8-l1/items/LC80320282019167" + }, + { + "rel": "parent", + "href": "https://earth-search.aws.element84.com/collections/landsat-8-l1" + }, + { + "rel": "collection", + "href": "https://earth-search.aws.element84.com/collections/landsat-8-l1" + }, + { + "rel": "root", + "href": "https://earth-search.aws.element84.com/stac" + } + ] } \ No newline at end of file diff --git a/docs/examples/PlanetData.json b/docs/examples/PlanetData.json new file mode 100644 index 0000000..64832c7 --- /dev/null +++ b/docs/examples/PlanetData.json @@ -0,0 +1,63 @@ +{ + "id": "20190512_185450_ssc1d2_0013", + "properties": { + "legacy:camera_id": "d2", + "eo:cloud_cover": 0.06, + "legacy:ground_control": true, + "eo:gsd": 0.9, + "legacy:item_type": "SkySatScene", + "legacy:provider": "skysat", + "legacy:published": "2019-05-13T04:50:40.092Z", + "legacy:quality_category": "standard", + "legacy:satellite_azimuth": 163.4, + "legacy:satellite_id": "SSC1", + "legacy:strip_id": "s3_20190512T185450Z", + "eo:sun_azimuth": 139, + "eo:sun_elevation": 70.1, + "legacy:updated": "2019-06-01T19:14:40.178Z", + "eo:view_angle": 26.3, + "datetime": "2019-05-12T18:54:50.198Z" + }, + "geometry": { + "coordinates": [ + [ + [ + -118.27125967461974, + 34.02656012436073 + ], + [ + -118.27165431050926, + 34.01543268603169 + ], + [ + -118.24323589768909, + 34.01259980898612 + ], + [ + -118.24284246712757, + 34.02367576657337 + ], + [ + -118.27125967461974, + 34.02656012436073 + ] + ] + ], + "type": "Polygon" + }, + "bbox": [ + -118.27165431050926, + 34.01259980898612, + -118.24284246712757, + 34.02656012436073 + ], + "assets": { + "thumbnail": { + "href": "https://tiles.planet.com/data/v1/item-types/SkySatScene/items/20190512_185450_ssc1d2_0013/thumb?api_key=cccee1c342ae484d8f4034bd3b9d6b24" + }, + "assets": { + "href": "https://api.planet.com/data/v1/item-types/SkySatScene/items/20190512_185450_ssc1d2_0013/assets/" + } + }, + "links": {} +} diff --git a/docs/examples/Sentinel2.json b/docs/examples/Sentinel2.json index fa2e353..71b00c9 100644 --- a/docs/examples/Sentinel2.json +++ b/docs/examples/Sentinel2.json @@ -1,326 +1,286 @@ { - "type": "Feature", - "id": "S2A_12SWH_20190204_0", - "bbox": [ - -110.92336695539225, - 37.852838634285284, - -109.73505156481204, - 38.84841603166308 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -109.75214580386293, - 37.852838634285284 - ], - [ - -110.92336695539225, - 37.859426035612834 - ], - [ - -110.92336641414785, - 37.85994879584942 - ], - [ - -110.92313811272327, - 37.860849958296 - ], - [ - -110.92290980572099, - 37.86175112015563 - ], - [ - -110.92268149314064, - 37.86265228142827 - ], - [ - -110.92222485124424, - 37.86445460221237 - ], - [ - -110.92176837760435, - 37.86607665870311 - ], - [ - -110.76844234167848, - 38.393657660211495 - ], - [ - -110.74920460569025, - 38.45976779984787 - ], - [ - -110.71016254137204, - 38.592155062045045 - ], - [ - -110.63422240499384, - 38.84805629729614 - ], - [ - -110.63399008593258, - 38.84841603166308 - ], - [ - -109.73505156481204, - 38.842139787815405 - ], - [ - -109.75214580386293, - 37.852838634285284 - ] - ] + "type": "Feature", + "id": "S2B_13TGM_20190203_0", + "bbox": [ + -102.42052724063872, + 45.89574468014653, + -100.93435663785228, + 46.92356376720102 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -101.00701004782671, + 45.89574468014653 + ], + [ + -102.42052724063872, + 45.93643957284446 + ], + [ + -102.37350196345521, + 46.92356376720102 + ], + [ + -100.93435663785228, + 46.88145115061102 + ], + [ + -101.00701004782671, + 45.89574468014653 ] + ] + ] + }, + "properties": { + "collection": "sentinel-2-l1c", + "eo:gsd": 10, + "eo:instrument": "MSI", + "eo:off_nadir": 0, + "eo:bands": [ + { + "full_width_half_max": 0.027, + "center_wavelength": 0.4439, + "name": "B01", + "gsd": 60, + "common_name": "coastal" + }, + { + "full_width_half_max": 0.098, + "center_wavelength": 0.4966, + "name": "B02", + "gsd": 10, + "common_name": "blue" + }, + { + "full_width_half_max": 0.045, + "center_wavelength": 0.56, + "name": "B03", + "gsd": 10, + "common_name": "green" + }, + { + "full_width_half_max": 0.038, + "center_wavelength": 0.6645, + "name": "B04", + "gsd": 10, + "common_name": "red" + }, + { + "full_width_half_max": 0.019, + "center_wavelength": 0.7039, + "name": "B05", + "gsd": 20 + }, + { + "full_width_half_max": 0.018, + "center_wavelength": 0.7402, + "name": "B06", + "gsd": 20 + }, + { + "full_width_half_max": 0.028, + "center_wavelength": 0.7825, + "name": "B07", + "gsd": 20 + }, + { + "full_width_half_max": 0.145, + "center_wavelength": 0.8351, + "name": "B08", + "gsd": 10, + "common_name": "nir" + }, + { + "full_width_half_max": 0.033, + "center_wavelength": 0.8648, + "name": "B8A", + "gsd": 20 + }, + { + "full_width_half_max": 0.026, + "center_wavelength": 0.945, + "name": "B09", + "gsd": 60 + }, + { + "full_width_half_max": 0.075, + "center_wavelength": 1.3735, + "name": "B10", + "gsd": 60, + "common_name": "cirrus" + }, + { + "full_width_half_max": 0.143, + "center_wavelength": 1.6137, + "name": "B11", + "gsd": 20, + "common_name": "swir16" + }, + { + "full_width_half_max": 0.242, + "center_wavelength": 2.22024, + "name": "B12", + "gsd": 20, + "common_name": "swir22" + } + ], + "datetime": "2019-02-03T17:51:07.435000+00:00", + "eo:platform": "sentinel-2b", + "eo:cloud_cover": 100, + "sentinel:utm_zone": 13, + "sentinel:latitude_band": "T", + "sentinel:grid_square": "GM", + "sentinel:sequence": "0", + "sentinel:product_id": "S2B_MSIL1C_20190203T174539_N0207_R098_T13TGM_20190203T211101", + "eo:epsg": 32614 + }, + "assets": { + "thumbnail": { + "title": "Thumbnail", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/13/T/GM/2019/2/3/0/preview.jpg" }, - "properties": { - "collection": "sentinel-2-l1c", - "eo:gsd": 10, - "eo:instrument": "MSI", - "eo:off_nadir": 0, - "eo:bands": [ - { - "full_width_half_max": 0.027, - "center_wavelength": 0.4439, - "name": "B01", - "gsd": 60, - "common_name": "coastal" - }, - { - "full_width_half_max": 0.098, - "center_wavelength": 0.4966, - "name": "B02", - "gsd": 10, - "common_name": "blue" - }, - { - "full_width_half_max": 0.045, - "center_wavelength": 0.56, - "name": "B03", - "gsd": 10, - "common_name": "green" - }, - { - "full_width_half_max": 0.038, - "center_wavelength": 0.6645, - "name": "B04", - "gsd": 10, - "common_name": "red" - }, - { - "full_width_half_max": 0.019, - "center_wavelength": 0.7039, - "name": "B05", - "gsd": 20 - }, - { - "full_width_half_max": 0.018, - "center_wavelength": 0.7402, - "name": "B06", - "gsd": 20 - }, - { - "full_width_half_max": 0.028, - "center_wavelength": 0.7825, - "name": "B07", - "gsd": 20 - }, - { - "full_width_half_max": 0.145, - "center_wavelength": 0.8351, - "name": "B08", - "gsd": 10, - "common_name": "nir" - }, - { - "full_width_half_max": 0.033, - "center_wavelength": 0.8648, - "name": "B8A", - "gsd": 20 - }, - { - "full_width_half_max": 0.026, - "center_wavelength": 0.945, - "name": "B09", - "gsd": 60 - }, - { - "full_width_half_max": 0.075, - "center_wavelength": 1.3735, - "name": "B10", - "gsd": 60, - "common_name": "cirrus" - }, - { - "full_width_half_max": 0.143, - "center_wavelength": 1.6137, - "name": "B11", - "gsd": 20, - "common_name": "swir16" - }, - { - "full_width_half_max": 0.242, - "center_wavelength": 2.22024, - "name": "B12", - "gsd": 20, - "common_name": "swir22" - } - ], - "datetime": "2019-02-04T18:13:32.691000+00:00", - "eo:platform": "sentinel-2a", - "eo:cloud_cover": 99.71, - "sentinel:utm_zone": 12, - "sentinel:latitude_band": "S", - "sentinel:grid_square": "WH", - "sentinel:sequence": "0", - "sentinel:product_id": "S2A_MSIL1C_20190204T180531_N0207_R041_T12SWH_20190204T195949", - "eo:epsg": 32612 + "info": { + "title": "Basic JSON metadata", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/13/T/GM/2019/2/3/0/tileInfo.json" }, - "assets": { - "thumbnail": { - "title": "Thumbnail", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/12/S/WH/2019/2/4/0/preview.jpg" - }, - "info": { - "title": "Basic JSON metadata", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/12/S/WH/2019/2/4/0/tileInfo.json" - }, - "metadata": { - "title": "Complete XML metadata", - "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/12/S/WH/2019/2/4/0/metadata.xml" - }, - "tki": { - "title": "True color image", - "type": "image/jp2", - "eo:bands": [ - 3, - 2, - 1 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/TKI.jp2" - }, - "B01": { - "title": "Band 1 (coastal)", - "type": "image/jp2", - "eo:bands": [ - 0 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B01.jp2" - }, - "B02": { - "title": "Band 2 (blue)", - "type": "image/jp2", - "eo:bands": [ - 2 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B02.jp2" - }, - "B03": { - "title": "Band 3 (green)", - "type": "image/jp2", - "eo:bands": [ - 2 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B03.jp2" - }, - "B04": { - "title": "Band 4 (red)", - "type": "image/jp2", - "eo:bands": [ - 3 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B04.jp2" - }, - "B05": { - "title": "Band 5", - "type": "image/jp2", - "eo:bands": [ - 4 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B05.jp2" - }, - "B06": { - "title": "Band 6", - "type": "image/jp2", - "eo:bands": [ - 5 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B06.jp2" - }, - "B07": { - "title": "Band 7", - "type": "image/jp2", - "eo:bands": [ - 6 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B07.jp2" - }, - "B08": { - "title": "Band 8 (nir)", - "type": "image/jp2", - "eo:bands": [ - 7 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B08.jp2" - }, - "B8A": { - "title": "Band 8A", - "type": "image/jp2", - "eo:bands": [ - 8 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B08.jp2" - }, - "B09": { - "title": "Band 9", - "type": "image/jp2", - "eo:bands": [ - 9 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B09.jp2" - }, - "B10": { - "title": "Band 10 (cirrus)", - "type": "image/jp2", - "eo:bands": [ - 10 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B10.jp2" - }, - "B11": { - "title": "Band 11 (swir16)", - "type": "image/jp2", - "eo:bands": [ - 11 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B11.jp2" - }, - "B12": { - "title": "Band 12 (swir22)", - "type": "image/jp2", - "eo:bands": [ - 12 - ], - "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/12/S/WH/2019/2/4/0/B11.jp2" - } + "metadata": { + "title": "Complete XML metadata", + "href": "https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/13/T/GM/2019/2/3/0/metadata.xml" }, - "links": [ - { - "rel": "self", - "href": "https://sat-api-dev.developmentseed.org/collections/sentinel-2-l1c/items/S2A_12SWH_20190204_0" - }, - { - "rel": "parent", - "href": "https://sat-api-dev.developmentseed.org/collections/sentinel-2-l1c" - }, - { - "rel": "collection", - "href": "https://sat-api-dev.developmentseed.org/collections/sentinel-2-l1c" - }, - { - "rel": "root", - "href": "https://sat-api-dev.developmentseed.org/stac" - } - ] + "tki": { + "title": "True color image", + "type": "image/jp2", + "eo:bands": [ + 3, + 2, + 1 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/TKI.jp2" + }, + "B01": { + "title": "Band 1 (coastal)", + "type": "image/jp2", + "eo:bands": [ + 0 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B01.jp2" + }, + "B02": { + "title": "Band 2 (blue)", + "type": "image/jp2", + "eo:bands": [ + 2 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B02.jp2" + }, + "B03": { + "title": "Band 3 (green)", + "type": "image/jp2", + "eo:bands": [ + 2 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B03.jp2" + }, + "B04": { + "title": "Band 4 (red)", + "type": "image/jp2", + "eo:bands": [ + 3 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B04.jp2" + }, + "B05": { + "title": "Band 5", + "type": "image/jp2", + "eo:bands": [ + 4 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B05.jp2" + }, + "B06": { + "title": "Band 6", + "type": "image/jp2", + "eo:bands": [ + 5 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B06.jp2" + }, + "B07": { + "title": "Band 7", + "type": "image/jp2", + "eo:bands": [ + 6 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B07.jp2" + }, + "B08": { + "title": "Band 8 (nir)", + "type": "image/jp2", + "eo:bands": [ + 7 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B08.jp2" + }, + "B8A": { + "title": "Band 8A", + "type": "image/jp2", + "eo:bands": [ + 8 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B08.jp2" + }, + "B09": { + "title": "Band 9", + "type": "image/jp2", + "eo:bands": [ + 9 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B09.jp2" + }, + "B10": { + "title": "Band 10 (cirrus)", + "type": "image/jp2", + "eo:bands": [ + 10 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B10.jp2" + }, + "B11": { + "title": "Band 11 (swir16)", + "type": "image/jp2", + "eo:bands": [ + 11 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B11.jp2" + }, + "B12": { + "title": "Band 12 (swir22)", + "type": "image/jp2", + "eo:bands": [ + 12 + ], + "href": "https://sentinel-s2-l1c.s3.amazonaws.com/tiles/13/T/GM/2019/2/3/0/B11.jp2" + } + }, + "links": [ + { + "rel": "self", + "href": "https://sat-api-dev.developmentseed.org/collections/sentinel-2-l1c/items/S2B_13TGM_20190203_0" + }, + { + "rel": "parent", + "href": "https://sat-api-dev.developmentseed.org/collections/sentinel-2-l1c" + }, + { + "rel": "collection", + "href": "https://sat-api-dev.developmentseed.org/collections/sentinel-2-l1c" + }, + { + "rel": "root", + "href": "https://sat-api-dev.developmentseed.org/stac" + } + ] } \ No newline at end of file From d39c7f1de39520b0b99a31bff2b84fda6d1a1913 Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 22:58:14 -0700 Subject: [PATCH 14/17] fixing typo --- docs/deployment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/deployment.md b/docs/deployment.md index 014e5d4..ae373c3 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -15,7 +15,7 @@ python setup.py develop **(2). Load datasources into your deployment.** ``` -cognition-datasources -d Landsat8 -d Sentinel2 +cognition-datasources load -d Landsat8 -d Sentinel2 ``` This command will populate `serverless.yml` and `handler.py` with all of the necessary configuration and code to create the service. Each driver is packaged as its own lambda function. @@ -53,7 +53,7 @@ pip install git+https://github.com/geospatial-jeff/cognition-datasources **(2). Load datasources into your deployment while enabling the `local` flag.** ``` -cognition-datasources -d Landsat8 -d Sentinel2 --local +cognition-datasources load -d Landsat8 -d Sentinel2 --local ``` While the local flag is enabled, the driver and its dependencies will be installed locally. The driver is stored in the `./datasources/sources/` folder while all dependencies are installed to the default location of the current environment. From b376fc5de9fc1451e565759bcc68bd9ee775aa76 Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 23:09:13 -0700 Subject: [PATCH 15/17] updating README --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index aac0910..7bd1154 100644 --- a/README.md +++ b/README.md @@ -48,12 +48,13 @@ Check out the [contributing docs](./docs/contributing.md) for step-by-step guide |----------------|--------------------------------------------------------------------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [DGOpenData](https://github.com/geospatial-jeff/cognition-datasources-dgopendata) | [Digital Globe Open Data Program](https://www.digitalglobe.com/ecosystem/open-data) | False | Builds index with a [web scraper](https://github.com/geospatial-jeff/dg-open-data-scraper). | | [ElevationTiles](https://github.com/geospatial-jeff/cognition-datasources-elevationtiles) | [AWS Earth: Terrain Tiles](https://registry.opendata.aws/terrain-tiles/) | False | Sends header requests to AWS S3 Bucket. | -| [CBERS](https://github.com/geospatial-jeff/cognition-datasources-cbers) | [AWS Earth: CBERS](https://registry.opendata.aws/cbers/) | False | Sends requests to AWS S3 Bucket (**RequesterPays**) with help of [aws-sat-api](https://github.com/RemotePixel/aws-sat-api-py). | -| [Landsat8](https://github.com/geospatial-jeff/cognition-datasources-landsat8) | [AWS Earth: Landsat8](https://registry.opendata.aws/landsat-8/) | True | Sends requests to [sat-api]( https://github.com/sat-utils/sat-api). | +| [CBERS](https://github.com/geospatial-jeff/cognition-datasources-cbers) | [AWS Earth: CBERS](https://registry.opendata.aws/cbers/) | False | Sends requests to [earth-search](https://www.element84.com/earth-search/) | +| [Landsat8](https://github.com/geospatial-jeff/cognition-datasources-landsat8) | [AWS Earth: Landsat8](https://registry.opendata.aws/landsat-8/) | True | Sends requests to [earth-search](https://www.element84.com/earth-search/). | | [NAIP](https://github.com/geospatial-jeff/cognition-datasources-naip) | [AWS Earth: NAIP](https://registry.opendata.aws/naip/) | False | Sends requests to AWS S3 Bucket (**RequesterPays**). | | [PlanetData](https://github.com/geospatial-jeff/cognition-datasources-planet) | [Planet Data API](https://developers.planet.com/docs/api/) | False | Sends request to the [Planet Python Client](https://github.com/planetlabs/planet-client-python) | | [Sentinel1](https://github.com/geospatial-jeff/cognition-datasources-sentinel1) | [Copernicus Open Access Hub](https://scihub.copernicus.eu/) | False | Sends requests to [CopernicusAPIHub](https://scihub.copernicus.eu/twiki/do/view/SciHubWebPortal/APIHubDescription) with help of [sentinelsat](https://github.com/sentinelsat/sentinelsat). | -| [Sentinel2](https://github.com/geospatial-jeff/cognition-datasources-sentinel2) | [AWS Earth: Sentinel2](https://registry.opendata.aws/sentinel-2/) | True | Sends requests to [sat-api](https://github.com/sat-utils/sat-api). | +| [Sentinel2](https://github.com/geospatial-jeff/cognition-datasources-sentinel2) | [AWS Earth: Sentinel2](https://registry.opendata.aws/sentinel-2/) | True | Sends requests to [earth-search](https://www.element84.com/earth-search/). | | [SRTM](https://github.com/geospatial-jeff/cognition-datasources-srtm) | [AWS: Terrain Tiles](https://registry.opendata.aws/terrain-tiles/) | False | Does not send any requests. | | [USGS 3DEP](https://github.com/geospatial-jeff/cognition-datasources-usgs3dep) | [AWS: USGS 3DEP](https://registry.opendata.aws/usgs-lidar/) | False | Sends request to AWS S3 Bucket. | | [Microsoft Building Footprints](https://github.com/geospatial-jeff/cognition-datasources-mbf) | [Microsoft](https://github.com/Microsoft/USBuildingFootprints) / [ESRI](https://www.arcgis.com/home/item.html?id=f40326b0dea54330ae39584012807126) | False | Sends requests to ESRI Feature Layer | + From e488173f56fd8a2928c85e7a6e30dfd41a674a87 Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 23:40:21 -0700 Subject: [PATCH 16/17] bumping layer version --- datasources/__init__.py | 2 +- serverless.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datasources/__init__.py b/datasources/__init__.py index 5acd93c..41a4742 100644 --- a/datasources/__init__.py +++ b/datasources/__init__.py @@ -2,4 +2,4 @@ from .manifest import Manifest -layer_arn = 'arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:7' \ No newline at end of file +layer_arn = 'arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:8' \ No newline at end of file diff --git a/serverless.yml b/serverless.yml index f9a20cc..869065d 100644 --- a/serverless.yml +++ b/serverless.yml @@ -17,7 +17,7 @@ functions: path: /stac/search method: post layers: - - arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:7 + - arn:aws:lambda:us-east-1:725820063953:layer:cognition-datasources:8 provider: environment: From fb602eb847539b74993ba3987d3e83820c1d4ebb Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Mon, 17 Jun 2019 23:40:36 -0700 Subject: [PATCH 17/17] bumping version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0a8f6e1..5ff877e 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ requirements = [line.rstrip() for line in reqs] setup(name="cognition_datasources", - version='0.3.1', + version='0.3.2', author='Jeff Albrecht', author_email='geospatialjeff@gmail.com', packages=find_packages(exclude=['docs']),