{"_id":"57dc3bc02cfd450e00643514","parentDoc":null,"version":{"_id":"55faeacad0e22017005b8268","project":"55faeacad0e22017005b8265","__v":33,"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"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"v1","version_clean":"1.0.0","version":"1"},"__v":1,"project":"55faeacad0e22017005b8265","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":7,"slug":"algorithm-guide","title":"Certified Algorithms"},"user":"55fae9d4825d5f19001fa379","updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-09-16T18:36:48.205Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":20,"body":"## Table of Contents\n\nSection | Description\n--- | ---\n[Imagery Examples](#Imagery Examples) | Before and after example\n[Quickstart](#Quickstart) | Get started with a Python-based quickstart tutorial\n[Task Runtime](#Task Runtime) | Benchmark runtimes for the algorithm\n[Input Options](#Input Options) | Required and optional task inputs\n[Outputs](#Outputs) | Task outputs and example contents\n[Advanced Options](#Advanced Options) | Additional information for advanced users\n[Known Issues](#Known Issues) | Issues users should be aware of\n\n\n## <a name=\"Imagery Examples\"></a>Imagery Examples\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/5c7c607-ENVI_ThresholdToROI_Before.jpg\",\n        \"ENVI_ThresholdToROI_Before.jpg\",\n        800,\n        320,\n        \"#2d2f28\"\n      ],\n      \"caption\": \"Before: Input image before running ENVI IMage Threshold to ROI\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1c41638-ENVI_ThresholdToROI_After.jpg\",\n        \"ENVI_ThresholdToROI_After.jpg\",\n        800,\n        320,\n        \"#253c24\"\n      ],\n      \"caption\": \"After: Output image from ENVI Image Threshold to ROI\"\n    }\n  ]\n}\n[/block]\n\n## <a name=\"Quickstart\"></a>Quickstart Tutorial\n\nExample Script: Run in a python environment (i.e. - IPython) using the gbdxtools interface.\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"from gbdxtools import Interface\\ngbdx = Interface()\\n\\n# Edit the following path to reflect a specific path to an image\\ndata = 's3://gbd-customer-data/CustomerAccount#/PathToImage/'\\n\\nenvi = gbdx.Task(\\\"ENVI_ImageThresholdToROI\\\")\\nenvi.inputs.input_raster = data\\nenvi.inputs.roi_name = '[\\\"Water\\\", \\\"Land\\\"]'\\nenvi.inputs.roi_color = '[[0,255,0],[0,0,255]]'\\nenvi.inputs.threshold = '[[138,221,0],[222,306,0]]'\\nenvi.inputs.output_roi_uri_filename = \\\"roi\\\"\\n\\nworkflow = gbdx.Workflow([envi])\\n\\nworkflow.savedata(\\n    envi.outputs.output_roi_uri,\\n    location='ImgThreshToROI/output_roi_uri'\\n)\\n\\nprint workflow.execute()\\nprint workflow.status\\n# Repeat workflow.status as needed to monitor progress.\",\n      \"language\": \"python\"\n    }\n  ]\n}\n[/block]\n## <a name=\"Task Runtime\"></a>Task Runtime\nThese are the average runtimes for this algorithm. All benchmark tests were run using a standard set of images, based on our most common customer scenarios. Runtime benchmarks apply to the specific algorithm, and don’t represent the runtime of a complete workflow.\n\n  Sensor Name  | Total Pixels |  Total Area (k2)  |  Time(secs)  |  Time/Area k2\n--------|:----------:|-----------|----------------|---------------\nQB | 41,551,668 | 312.07 |158.62 |0.51  \nWV02|35,872,942|329.87|167.47\t|0.51\nWV03|35,371,971|175.47\t|0.89 |.89\nGE| 57,498,000|162.43\t|0.49 |0.49\n\n## <a name=\"Input Options\"></a>Input Options\nThe following table lists all inputs for this task. For details regarding the use of all ENVI input types refer to the [ENVI Task Runner Inputs]([See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md)) documentation.**\n\n| Name                       | Required | Default |               Valid Values               | Description                              |\n| -------------------------- | :------: | :-----: | :--------------------------------------: | ---------------------------------------- |\n| input_raster               |   True   |  None   |  A valid S3 URL containing image files.  | Specify a raster from which to run the task. -- Value Type: ENVIRASTER |\n| input_raster_format        |  False   |  None   | [See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md) | Provide the format of the image, for example: landsat-8. -- Value Type: STRING |\n| input_raster_band_grouping |  False   |  None   | [See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md) | Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING |\n| input_raster_filename      |  False   |  None   | [See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md) | Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING |\n| roi_color                  |   True   |  None   |            string byte array             | Specify a (3,n) byte array with the RGB colors for each ROI, where n is the number of ROIs specified by ROI_NAME. -- Value Type: BYTE[3, *] |\n| threshold                  |   True   |  None   |           string double array            | specify an array that represents a threshold: [minimum, maximum, zero-based band number] You can have one or more thresholds to one or more ROIs.  -- Value Type: DOUBLE[3, *] |\n| roi_name                   |   True   |  None   |               string array               | Specify a string or array of strings with the names of each ROI. -- Value Type: STRING[*] |\n| output_roi_uri_filename    |  False   |  None   |                  string                  | Specify a string with the fully-qualified path and filename for OUTPUT_ROI. -- Value Type: STRING |\n\n\n## <a name=\"Outputs\"></a>Outputs\n\nThe following table lists all the outputs from this task.\n\n| Name           | Required | Description                              |\n| -------------- | :------: | ---------------------------------------- |\n| output_roi_uri |   True   | Output for OUTPUT_ROI.                   |\n| task_meta_data |  False   | GBDX Option. Output location for task meta data such as execution log and output JSON. |\n\n##### Output Structure\n\nThe output_roi file(s) will be written in .xml format.\n\n\n## <a name=\"Advanced Options\"></a>Advanced Options\nTo link the workflow of 1 input image into AOP_Strip_Processor and the Image Threshold to ROI task, use the following GBDX tools script in python.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"from gbdxtools import Interface\\ngbdx = Interface()\\n\\n# Edit the following path to reflect a specific path to an image\\ndata = 's3://gbd-customer-data/CustomerAccount#/PathToImage/'\\n\\naoptask = gbdx.Task(\\\"AOP_Strip_Processor\\\") \\naoptask.inputs.data = data\\naoptask.inputs.enable_dra = False\\naoptask.inputs.bands = 'MS'\\n\\n# Capture AOP task outputs\\n#orthoed_output = aoptask.get_output('data')\\n\\ntask = gbdx.Task(\\\"ENVI_ImageThresholdToROI\\\")\\ntask.inputs.input_raster = aoptask.outputs.data.value\\ntask.inputs.roi_name = '[\\\"Water\\\", \\\"Land\\\"]'\\ntask.inputs.roi_color = '[[0,255,0],[0,0,255]]'\\ntask.inputs.threshold = '[[138,221,0],[222,306,0]]'\\ntask.inputs.output_roi_uri_filename = \\\"roi\\\"\\n\\nworkflow = gbdx.Workflow([ aoptask, task ])\\n\\nworkflow.savedata(\\n    task.outputs.output_roi_uri,\\n    location='ImgThreshToROI/output_roi_uri'\\n)\\n\\nprint workflow.execute()\\nprint workflow.status\\n# Repeat workflow.status as needed to monitor progress.\",\n      \"language\": \"python\"\n    }\n  ]\n}\n[/block]\n##<a name=\"Known Issues\"></a>Known Issues\nNone at this time.\n\n## Background\nFor additional background information on this task please refer to the <a href=\"http://www.harrisgeospatial.com/docs/home.html\">Harris Geospatial ENVI documentation.</a>​\n\n#### Contact Us   \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 Regions of Interest (ROIs) from band thresholds. \n\t\n**GBDX Registered Name**: ENVI_ImageThresholdToROI\n**Provider**: Harris Geospatial Solutions\nFor more information on how to execute this task please refer to the [ENVI® Task Runner Inputs](doc:envi-task-runner-inputs) .","slug":"envi-image-threshold-to-roi","type":"basic","title":"ENVI® Image Threshold To ROI"}

ENVI® Image Threshold To ROI

This task creates Regions of Interest (ROIs) from band thresholds. **GBDX Registered Name**: ENVI_ImageThresholdToROI **Provider**: Harris Geospatial Solutions For more information on how to execute this task please refer to the [ENVI® Task Runner Inputs](doc:envi-task-runner-inputs) .

## Table of Contents Section | Description --- | --- [Imagery Examples](#Imagery Examples) | Before and after example [Quickstart](#Quickstart) | Get started with a Python-based quickstart tutorial [Task Runtime](#Task Runtime) | Benchmark runtimes for the algorithm [Input Options](#Input Options) | Required and optional task inputs [Outputs](#Outputs) | Task outputs and example contents [Advanced Options](#Advanced Options) | Additional information for advanced users [Known Issues](#Known Issues) | Issues users should be aware of ## <a name="Imagery Examples"></a>Imagery Examples [block:image] { "images": [ { "image": [ "https://files.readme.io/5c7c607-ENVI_ThresholdToROI_Before.jpg", "ENVI_ThresholdToROI_Before.jpg", 800, 320, "#2d2f28" ], "caption": "Before: Input image before running ENVI IMage Threshold to ROI" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/1c41638-ENVI_ThresholdToROI_After.jpg", "ENVI_ThresholdToROI_After.jpg", 800, 320, "#253c24" ], "caption": "After: Output image from ENVI Image Threshold to ROI" } ] } [/block] ## <a name="Quickstart"></a>Quickstart Tutorial Example Script: Run in a python environment (i.e. - IPython) using the gbdxtools interface. [block:code] { "codes": [ { "code": "from gbdxtools import Interface\ngbdx = Interface()\n\n# Edit the following path to reflect a specific path to an image\ndata = 's3://gbd-customer-data/CustomerAccount#/PathToImage/'\n\nenvi = gbdx.Task(\"ENVI_ImageThresholdToROI\")\nenvi.inputs.input_raster = data\nenvi.inputs.roi_name = '[\"Water\", \"Land\"]'\nenvi.inputs.roi_color = '[[0,255,0],[0,0,255]]'\nenvi.inputs.threshold = '[[138,221,0],[222,306,0]]'\nenvi.inputs.output_roi_uri_filename = \"roi\"\n\nworkflow = gbdx.Workflow([envi])\n\nworkflow.savedata(\n envi.outputs.output_roi_uri,\n location='ImgThreshToROI/output_roi_uri'\n)\n\nprint workflow.execute()\nprint workflow.status\n# Repeat workflow.status as needed to monitor progress.", "language": "python" } ] } [/block] ## <a name="Task Runtime"></a>Task Runtime These are the average runtimes for this algorithm. All benchmark tests were run using a standard set of images, based on our most common customer scenarios. Runtime benchmarks apply to the specific algorithm, and don’t represent the runtime of a complete workflow. Sensor Name | Total Pixels | Total Area (k2) | Time(secs) | Time/Area k2 --------|:----------:|-----------|----------------|--------------- QB | 41,551,668 | 312.07 |158.62 |0.51 WV02|35,872,942|329.87|167.47 |0.51 WV03|35,371,971|175.47 |0.89 |.89 GE| 57,498,000|162.43 |0.49 |0.49 ## <a name="Input Options"></a>Input Options The following table lists all inputs for this task. For details regarding the use of all ENVI input types refer to the [ENVI Task Runner Inputs]([See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md)) documentation.** | Name | Required | Default | Valid Values | Description | | -------------------------- | :------: | :-----: | :--------------------------------------: | ---------------------------------------- | | input_raster | True | None | A valid S3 URL containing image files. | Specify a raster from which to run the task. -- Value Type: ENVIRASTER | | input_raster_format | False | None | [See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md) | Provide the format of the image, for example: landsat-8. -- Value Type: STRING | | input_raster_band_grouping | False | None | [See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md) | Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING | | input_raster_filename | False | None | [See ENVIRASTER input type](https://github.com/TDG-Platform/docs/blob/master/ENVI_Task_Runner_Inputs.md) | Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING | | roi_color | True | None | string byte array | Specify a (3,n) byte array with the RGB colors for each ROI, where n is the number of ROIs specified by ROI_NAME. -- Value Type: BYTE[3, *] | | threshold | True | None | string double array | specify an array that represents a threshold: [minimum, maximum, zero-based band number] You can have one or more thresholds to one or more ROIs. -- Value Type: DOUBLE[3, *] | | roi_name | True | None | string array | Specify a string or array of strings with the names of each ROI. -- Value Type: STRING[*] | | output_roi_uri_filename | False | None | string | Specify a string with the fully-qualified path and filename for OUTPUT_ROI. -- Value Type: STRING | ## <a name="Outputs"></a>Outputs The following table lists all the outputs from this task. | Name | Required | Description | | -------------- | :------: | ---------------------------------------- | | output_roi_uri | True | Output for OUTPUT_ROI. | | task_meta_data | False | GBDX Option. Output location for task meta data such as execution log and output JSON. | ##### Output Structure The output_roi file(s) will be written in .xml format. ## <a name="Advanced Options"></a>Advanced Options To link the workflow of 1 input image into AOP_Strip_Processor and the Image Threshold to ROI task, use the following GBDX tools script in python. [block:code] { "codes": [ { "code": "from gbdxtools import Interface\ngbdx = Interface()\n\n# Edit the following path to reflect a specific path to an image\ndata = 's3://gbd-customer-data/CustomerAccount#/PathToImage/'\n\naoptask = gbdx.Task(\"AOP_Strip_Processor\") \naoptask.inputs.data = data\naoptask.inputs.enable_dra = False\naoptask.inputs.bands = 'MS'\n\n# Capture AOP task outputs\n#orthoed_output = aoptask.get_output('data')\n\ntask = gbdx.Task(\"ENVI_ImageThresholdToROI\")\ntask.inputs.input_raster = aoptask.outputs.data.value\ntask.inputs.roi_name = '[\"Water\", \"Land\"]'\ntask.inputs.roi_color = '[[0,255,0],[0,0,255]]'\ntask.inputs.threshold = '[[138,221,0],[222,306,0]]'\ntask.inputs.output_roi_uri_filename = \"roi\"\n\nworkflow = gbdx.Workflow([ aoptask, task ])\n\nworkflow.savedata(\n task.outputs.output_roi_uri,\n location='ImgThreshToROI/output_roi_uri'\n)\n\nprint workflow.execute()\nprint workflow.status\n# Repeat workflow.status as needed to monitor progress.", "language": "python" } ] } [/block] ##<a name="Known Issues"></a>Known Issues None at this time. ## Background For additional background information on this task please refer to the <a href="http://www.harrisgeospatial.com/docs/home.html">Harris Geospatial ENVI documentation.</a>​ #### Contact Us If you have any questions or issues with this task, please contact [**gbdx-support@digitalglobe.com** ](mailto:gbdx-support@digitalglobe.com).