{"_id":"57dc3c57702ffe0e00157c64","project":"55faeacad0e22017005b8265","user":"55fae9d4825d5f19001fa379","category":{"_id":"573b4f62ef164e2900a2b881","__v":0,"project":"55faeacad0e22017005b8265","version":"55faeacad0e22017005b8268","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-05-17T17:05:38.443Z","from_sync":false,"order":9,"slug":"algorithm-guide","title":"Algorithms"},"parentDoc":null,"__v":1,"version":{"_id":"55faeacad0e22017005b8268","project":"55faeacad0e22017005b8265","__v":37,"createdAt":"2015-09-17T16:31:06.800Z","releaseDate":"2015-09-17T16:31:06.800Z","categories":["55faeacbd0e22017005b8269","55faf550764f50210095078e","55faf5b5626c341700fd9e96","55faf8a7825d5f19001fa386","560052f91503430d007cc88f","560054f73aa0520d00da0b1a","56005aaf6932a00d00ba7c62","56005c273aa0520d00da0b3f","5601ae7681a9670d006d164d","5601ae926811d00d00ceb487","5601aeb064866b1900f4768d","5601aee850ee460d0002224c","5601afa02499c119000faf19","5601afd381a9670d006d1652","561d4c78281aec0d00eb27b6","561d588d8ca8b90d00210219","563a5f934cc3621900ac278c","5665c5763889610d0008a29e","566710a36819320d000c2e93","56ddf6df8a5ae10e008e3926","56e1c96b2506700e00de6e83","56e1ccc4e416450e00b9e48c","56e1ccdfe63f910e00e59870","56e1cd10bc46be0e002af26a","56e1cd21e416450e00b9e48e","56e3139a51857d0e008e77be","573b4f62ef164e2900a2b881","57c9d1335fd8ca0e006308ed","57e2bd9d1e7b7220000d7fa5","57f2b992ac30911900c7c2b6","58adb5c275df0f1b001ed59b","58c81b5c6dc7140f003c3c46","595412446ed4d9001b3e7b37","59e76ce41938310028037295","5a009de510890d001c2aabfe","5a96f89c89442e002041144b","5b3f9b7267cbc90003d283a5"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"v1","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-09-16T18:39:19.537Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":162,"body":"### Imagery Examples\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/6d7524a-envi_spectral_index_before_web.jpg\",\n        \"envi_spectral_index_before_web.jpg\",\n        566,\n        400,\n        \"#42403c\"\n      ],\n      \"caption\": \"Before: WorldView 2 Image after AOP correction\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ae8cc39-envi_spectral_index_after_web.jpg\",\n        \"envi_spectral_index_after_web.jpg\",\n        566,\n        400,\n        \"#a1d36e\"\n      ],\n      \"caption\": \"After: WorldView 2 image after applying an NDVI.\"\n    }\n  ]\n}\n[/block]\n### Quickstart\nThis is a workflow example for basic processing.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"# Initialize the Environment.\\nfrom os.path import join, split\\nfrom gbdxtools import Interface\\ngbdx = Interface()\\n\\ntasks = []\\noutput_location = 'ENVI/SpectralIndex'\\n\\n# Change Detection task setup\\ncat_id = '103001001EC17D00'\\n\\n# Image Auto ordering task parameters\\norder = gbdx.Task(\\\"Auto_Ordering\\\")\\norder.inputs.cat_id = cat_id\\norder.impersonation_allowed = True\\norder.persist = True\\norder.timeout = 36000\\ntasks += [order]\\n\\n# Image AOP task parameters\\naop = gbdx.Task(\\\"AOP_Strip_Processor\\\")\\naop.inputs.data = order.outputs.s3_location.value\\naop.inputs.bands = 'MS'\\naop.inputs.enable_dra = False\\naop.outputs.data.persist = True\\naop.outputs.data.persist_location = join(output_location, '/aop')\\naop.timeout = 36000\\ntasks += [aop]\\n\\n# Create an NDVI Product\\nenvi_ndvi = gbdx.Task(\\\"ENVI_SpectralIndex\\\")\\nenvi_ndvi.inputs.input_raster = aop.outputs.data.value\\nenvi_ndvi.inputs.index = \\\"Normalized Difference Vegetation Index\\\"\\ntasks += [envi_ndvi]\\n\\nworkflow = gbdx.Workflow(tasks)\\nworkflow.savedata(\\n    envi_ndvi.outputs.output_raster_uri, location=output_location\\n)\\n\\nworkflow.execute()\",\n      \"language\": \"python\"\n    }\n  ]\n}\n[/block]\n### Inputs\nThe following table lists all ENVI_SpectralIndex inputs.\nMandatory (optional) settings are listed as Required = True (Required = False).\n\n  Name  |  Required  |  Default  |  Valid Values  |  Description  \n--------|:----------:|-----------|----------------|---------------\nfile_types|False|N/A|string|GBDX Option. Comma seperated list of permitted file type extensions. Use this to filter input files -- Value Type: STRING`[*]`\ninput_raster|True|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Specify a raster from which to generate a spectral index raster. -- Value Type: ENVIRASTER\ninput_raster_format|False|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Provide the format of the image, for example: landsat-8. -- Value Type: STRING\ninput_raster_band_grouping|False|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING\ninput_raster_filename|False|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING\nindex|True|N/A|string|Specify a string representing the pre-defined spectral index to apply to the input raster. -- Value Type: STRING\noutput_raster_uri_filename|False|N/A|string|Specify a string with the fully-qualified path and filename for OUTPUT_RASTER. -- Value Type: STRING\n\n### Outputs\n\nThe following table lists all ENVI_SpectralIndex outputs.\nMandatory (optional) settings are listed as Required = True (Required = False).\n\n  Name  |  Required  |  Default  |  Valid Values  |  Description\n--------|:----------:|-----------|----------------|---------------\ntask_meta_data|False|N/A|directory|GBDX Option. Output location for task meta data such as execution log and output JSON\noutput_raster_uri|True|N/A|directory|Output for OUTPUT_RASTER. -- Value Type: ENVIURI\n\n**Output structure**\n\nThe output_raster_uri file will be written to the specified S3 Customer Account Location.\n\n### Background\nFor additional background information on this task please refer to the [Harris Geospatial ENVI documentation](http://www.harrisgeospatial.com/docs/home.html) and \n[ENVI® Spectral Index](http://www.harrisgeospatial.com/docs/envispectralindextask.html). \n\n### Contact\nIf you have any questions or issues with this task, please contact [gbdx-support:::at:::digitalglobe.com](mailto:gbdx-support@digitalglobe.com).","excerpt":"This task creates a spectral index raster from one pre-defined spectral index. Spectral indices are combinations of surface reflectance at two or more wavelengths that indicate relative abundance of features of interest. The Normalized Difference Vegetation Index (NDVI) is an example.\n\n**GBDX Registered Name**: ENVI_SpectralIndex\t\t\n**Provider**: Harris Geospatial Solutions","slug":"envi-spectral-index","type":"basic","title":"ENVI® Spectral Index"}

ENVI® Spectral Index

This task creates a spectral index raster from one pre-defined spectral index. Spectral indices are combinations of surface reflectance at two or more wavelengths that indicate relative abundance of features of interest. The Normalized Difference Vegetation Index (NDVI) is an example. **GBDX Registered Name**: ENVI_SpectralIndex **Provider**: Harris Geospatial Solutions

### Imagery Examples [block:image] { "images": [ { "image": [ "https://files.readme.io/6d7524a-envi_spectral_index_before_web.jpg", "envi_spectral_index_before_web.jpg", 566, 400, "#42403c" ], "caption": "Before: WorldView 2 Image after AOP correction" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/ae8cc39-envi_spectral_index_after_web.jpg", "envi_spectral_index_after_web.jpg", 566, 400, "#a1d36e" ], "caption": "After: WorldView 2 image after applying an NDVI." } ] } [/block] ### Quickstart This is a workflow example for basic processing. [block:code] { "codes": [ { "code": "# Initialize the Environment.\nfrom os.path import join, split\nfrom gbdxtools import Interface\ngbdx = Interface()\n\ntasks = []\noutput_location = 'ENVI/SpectralIndex'\n\n# Change Detection task setup\ncat_id = '103001001EC17D00'\n\n# Image Auto ordering task parameters\norder = gbdx.Task(\"Auto_Ordering\")\norder.inputs.cat_id = cat_id\norder.impersonation_allowed = True\norder.persist = True\norder.timeout = 36000\ntasks += [order]\n\n# Image AOP task parameters\naop = gbdx.Task(\"AOP_Strip_Processor\")\naop.inputs.data = order.outputs.s3_location.value\naop.inputs.bands = 'MS'\naop.inputs.enable_dra = False\naop.outputs.data.persist = True\naop.outputs.data.persist_location = join(output_location, '/aop')\naop.timeout = 36000\ntasks += [aop]\n\n# Create an NDVI Product\nenvi_ndvi = gbdx.Task(\"ENVI_SpectralIndex\")\nenvi_ndvi.inputs.input_raster = aop.outputs.data.value\nenvi_ndvi.inputs.index = \"Normalized Difference Vegetation Index\"\ntasks += [envi_ndvi]\n\nworkflow = gbdx.Workflow(tasks)\nworkflow.savedata(\n envi_ndvi.outputs.output_raster_uri, location=output_location\n)\n\nworkflow.execute()", "language": "python" } ] } [/block] ### Inputs The following table lists all ENVI_SpectralIndex inputs. Mandatory (optional) settings are listed as Required = True (Required = False). Name | Required | Default | Valid Values | Description --------|:----------:|-----------|----------------|--------------- file_types|False|N/A|string|GBDX Option. Comma seperated list of permitted file type extensions. Use this to filter input files -- Value Type: STRING`[*]` input_raster|True|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Specify a raster from which to generate a spectral index raster. -- Value Type: ENVIRASTER input_raster_format|False|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Provide the format of the image, for example: landsat-8. -- Value Type: STRING input_raster_band_grouping|False|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING input_raster_filename|False|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING index|True|N/A|string|Specify a string representing the pre-defined spectral index to apply to the input raster. -- Value Type: STRING output_raster_uri_filename|False|N/A|string|Specify a string with the fully-qualified path and filename for OUTPUT_RASTER. -- Value Type: STRING ### Outputs The following table lists all ENVI_SpectralIndex outputs. Mandatory (optional) settings are listed as Required = True (Required = False). Name | Required | Default | Valid Values | Description --------|:----------:|-----------|----------------|--------------- task_meta_data|False|N/A|directory|GBDX Option. Output location for task meta data such as execution log and output JSON output_raster_uri|True|N/A|directory|Output for OUTPUT_RASTER. -- Value Type: ENVIURI **Output structure** The output_raster_uri file will be written to the specified S3 Customer Account Location. ### Background For additional background information on this task please refer to the [Harris Geospatial ENVI documentation](http://www.harrisgeospatial.com/docs/home.html) and [ENVI® Spectral Index](http://www.harrisgeospatial.com/docs/envispectralindextask.html). ### Contact If you have any questions or issues with this task, please contact [gbdx-support@digitalglobe.com](mailto:gbdx-support@digitalglobe.com).