{"_id":"583dda3a1fa61e2d00dafd34","project":"55faeacad0e22017005b8265","__v":0,"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":6,"slug":"algorithm-guide","title":"Certified Algorithms"},"parentDoc":null,"user":"55fae9d4825d5f19001fa379","version":{"_id":"55faeacad0e22017005b8268","project":"55faeacad0e22017005b8265","__v":32,"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"],"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-11-29T19:42:50.022Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":18,"body":"## Table of Contents\n\nSection | Description\n--- | ---\n[Imagery Examples](#Imagery Examples) | Before and after examples\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/41fbcf1-ENVI_ImageIntersection_before.jpg\",\n        \"ENVI_ImageIntersection_before.jpg\",\n        800,\n        320,\n        \"#3b3b40\"\n      ],\n      \"caption\": \"Before: This image shows two input rasters. The colored borders show the area covered by each raster.\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b5f1357-ENVI_ImageIntersection_after.jpg\",\n        \"ENVI_ImageIntersection_after.jpg\",\n        800,\n        320,\n        \"#363339\"\n      ],\n      \"caption\": \"After: The output of this task is two rasters that show only the overlapping areas.\"\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\\ndata1 = 's3://gbd-customer-data/CustomerAccount#/PathToImage1/'\\ndata2 = 's3://gbd-customer-data/CustomerAccount#/PathToImage2/'\\n\\nenvi_II = gbdx.Task(\\\"ENVI_ImageIntersection\\\")\\nenvi_II.inputs.input_raster1 = data1\\nenvi_II.inputs.input_raster2 = data2\\n\\nworkflow = gbdx.Workflow([ envi_II ])\\n\\nworkflow.savedata(\\n    envi_II.outputs.output_raster1_uri,\\n        location='ImageIntersection/output_raster1_uri'\\n)\\nworkflow.savedata(\\n    envi_II.outputs.output_raster2_uri,\\n        location='ImageIntersection/output_raster2_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 | 638,471,053| 638.5| 1135.43 | 1.78\nWV01|1,431,417,804|715.5| 636.82 | 0.89\nWV02|638,471,053|1276.9| 407.27 | 0.32\nWV03|260,999,184|391|383.55|0.98\nGE| 350,236,670|577.8|697.86| 1.21\n\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_raster1               |   True   | None            | A valid S3 URL containing image files.   | Specify a raster from which to run the task. -- Value Type: ENVIRASTER |\n| input_raster1_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_raster1_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_raster1_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| input_raster2               |   True   | None            | A valid S3 URL containing image files.   | Specify a raster from which to run the task. -- Value Type: ENVIRASTER |\n| input_raster2_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_raster2_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_raster2_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| resampling                  |  False   | 'Bilinear'      | 'Nearest Neighbor', 'Bilinear', 'Cubic Convolution' | Specify the resampling method.  Nearest Neighbor: Uses the nearest pixel without any interpolation.  Bilinear: Performs a linear interpolation using four pixels to resample, Cubic Convolution: Uses 16 pixels to approximate the sinc function using cubic polynomials to resample the image. -- Value Type: STRING |\n| warping_method              |  False   | 'Triangulation' | 'Polynomial', 'Rigorous', 'Triangulation' | Specify the warping method to use. -- Value Type: STRING |\n| output_raster1_uri_filename |  False   | None            | string                                   | Specify a string with the fully-qualified path and filename for OUTPUT_RASTER. -- Value Type: STRING |\n| output_raster2_uri_filename |  False   | None            | string                                   | Specify a string with the fully-qualified path and filename for OUTPUT_RASTER. -- Value Type: STRING |\n\n\n## <a name=\"Outputs\"></a>Outputs\nThe following table lists all the tasks outputs.\n\n| Name               | Required | Description                              |\n| ------------------ | :------: | ---------------------------------------- |\n| output_raster1_uri |   True   | Output for OUTPUT_RASTER1.               |\n| output_raster2_uri |   True   | Output for OUTPUT_RASTER2.               |\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_raster image file will be written to the specified S3 Customer Account Location in GeoTiff (\\*.tif) format, with an ENVI header file (\\*.hdr).\n\n\n## <a name=\"Advanced Options\"></a>Advanced Options\n\nThis task will take two multispectral images, which share geo-spatial extent, as input.  This example workflow includes the following ENVI tasks to prepare the images for the Change Threshold Classification task: Spectral Index, Image Intersection, and Image Band Difference.  Input rasters for the Change Threshold Classification task may be any  set of 1 band rasters sharing the same extent, spatial reference and pixel value format (e.g. Normalized Difference Vegetation Index)\n\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\\ndata1 = 's3://gbd-customer-data/CustomerAccount#/PathToImage1/'\\ndata2 = 's3://gbd-customer-data/CustomerAccount#/PathToImage2/'\\n\\naoptask1 = gbdx.Task(\\\"AOP_Strip_Processor\\\") \\naoptask1.inputs.data = data\\naoptask1.inputs.enable_dra = False\\naoptask1.inputs.bands = 'MS'\\n\\naoptask2 = gbdx.Task(\\\"AOP_Strip_Processor\\\") \\naoptask2.inputs.data = data\\naoptask2.inputs.enable_dra = False\\naoptask2.inputs.bands = 'MS'\\n\\nenvi_ndvi1 = gbdx.Task(\\\"ENVI_SpectralIndex\\\")\\nenvi_ndvi1.inputs.input_raster = aoptask1.outputs.data.value\\nenvi_ndvi1.inputs.index = \\\"Normalized Difference Vegetation Index\\\"\\n\\nenvi_ndvi2 = gbdx.Task(\\\"ENVI_SpectralIndex\\\")\\nenvi_ndvi2.inputs.input_raster = aoptask2.outputs.data.value\\nenvi_ndvi2.inputs.index = \\\"Normalized Difference Vegetation Index\\\"\\n\\nenvi_II = gbdx.Task(\\\"ENVI_ImageIntersection\\\")\\nenvi_II.inputs.input_raster1 = envi_ndvi1.outputs.output_raster_uri.value\\nenvi_II.inputs.input_raster2 = envi_ndvi2.outputs.output_raster_uri.value\\n\\nenvi_IBD = gbdx.Task(\\\"ENVI_ImageBandDifference\\\")\\nenvi_IBD.inputs.input_raster1 = envi_II.outputs.output_raster1_uri.value\\nenvi_IBD.inputs.input_raster2 = envi_II.outputs.output_raster2_uri.value\\n\\nenvi_CTC = gbdx.Task(\\\"ENVI_ChangeThresholdClassification\\\")\\nenvi_CTC.inputs.increase_threshold = \\\"0.1\\\"\\nenvi_CTC.inputs.decrease_threshold = \\\"0.5\\\"\\nenvi_CTC.inputs.input_raster = envi_IBD.outputs.output_raster_uri.value\\n\\n\\nworkflow = gbdx.Workflow([\\n    aoptask1, aoptask2, envi_ndvi1, envi_ndvi2, envi_II, envi_IBD, envi_CTC\\n])\\n\\nworkflow.savedata(\\n    envi_IBD.outputs.output_raster1_uri,\\n    location='ImgIntersect/output_raster1_uri' # edit location to suit account\\n)\\n\\nworkflow.savedata(\\n    envi_IBD.outputs.output_raster2_uri,\\n    location='ImgIntersect/output_raster2_uri' # edit location to suit account\\n)\\n\\nprint workflow.execute()\\nprint workflow.status\\n# Repeat workflow.status as needed to monitor progress.\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n##<a name=\"Known Issues\"></a>Known Issues\nCurrently the advanced options for the task and the task in the GBDX web application are not available because of the requirement of multiple input parameters.\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":"Image intersection takes two rasters as input, and it outputs two rasters that cover only the overlapping area of two inputs. If the input rasters have different projections or pixel sizes, one of the output rasters will be reprojected or resampled so that the two output rasters have the same number of samples and lines. File inputs can have standard map projections, can be pixel-based, or can have RPC information.\n\t\n**GBDX Registered Name**: ENVI_ImageIntersection\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-intersection","type":"basic","title":"ENVI® Image Intersection"}

ENVI® Image Intersection

Image intersection takes two rasters as input, and it outputs two rasters that cover only the overlapping area of two inputs. If the input rasters have different projections or pixel sizes, one of the output rasters will be reprojected or resampled so that the two output rasters have the same number of samples and lines. File inputs can have standard map projections, can be pixel-based, or can have RPC information. **GBDX Registered Name**: ENVI_ImageIntersection **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 examples [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/41fbcf1-ENVI_ImageIntersection_before.jpg", "ENVI_ImageIntersection_before.jpg", 800, 320, "#3b3b40" ], "caption": "Before: This image shows two input rasters. The colored borders show the area covered by each raster." } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/b5f1357-ENVI_ImageIntersection_after.jpg", "ENVI_ImageIntersection_after.jpg", 800, 320, "#363339" ], "caption": "After: The output of this task is two rasters that show only the overlapping areas." } ] } [/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\ndata1 = 's3://gbd-customer-data/CustomerAccount#/PathToImage1/'\ndata2 = 's3://gbd-customer-data/CustomerAccount#/PathToImage2/'\n\nenvi_II = gbdx.Task(\"ENVI_ImageIntersection\")\nenvi_II.inputs.input_raster1 = data1\nenvi_II.inputs.input_raster2 = data2\n\nworkflow = gbdx.Workflow([ envi_II ])\n\nworkflow.savedata(\n envi_II.outputs.output_raster1_uri,\n location='ImageIntersection/output_raster1_uri'\n)\nworkflow.savedata(\n envi_II.outputs.output_raster2_uri,\n location='ImageIntersection/output_raster2_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 | 638,471,053| 638.5| 1135.43 | 1.78 WV01|1,431,417,804|715.5| 636.82 | 0.89 WV02|638,471,053|1276.9| 407.27 | 0.32 WV03|260,999,184|391|383.55|0.98 GE| 350,236,670|577.8|697.86| 1.21 ## <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_raster1 | True | None | A valid S3 URL containing image files. | Specify a raster from which to run the task. -- Value Type: ENVIRASTER | | input_raster1_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_raster1_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_raster1_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 | | input_raster2 | True | None | A valid S3 URL containing image files. | Specify a raster from which to run the task. -- Value Type: ENVIRASTER | | input_raster2_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_raster2_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_raster2_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 | | resampling | False | 'Bilinear' | 'Nearest Neighbor', 'Bilinear', 'Cubic Convolution' | Specify the resampling method. Nearest Neighbor: Uses the nearest pixel without any interpolation. Bilinear: Performs a linear interpolation using four pixels to resample, Cubic Convolution: Uses 16 pixels to approximate the sinc function using cubic polynomials to resample the image. -- Value Type: STRING | | warping_method | False | 'Triangulation' | 'Polynomial', 'Rigorous', 'Triangulation' | Specify the warping method to use. -- Value Type: STRING | | output_raster1_uri_filename | False | None | string | Specify a string with the fully-qualified path and filename for OUTPUT_RASTER. -- Value Type: STRING | | output_raster2_uri_filename | False | None | string | Specify a string with the fully-qualified path and filename for OUTPUT_RASTER. -- Value Type: STRING | ## <a name="Outputs"></a>Outputs The following table lists all the tasks outputs. | Name | Required | Description | | ------------------ | :------: | ---------------------------------------- | | output_raster1_uri | True | Output for OUTPUT_RASTER1. | | output_raster2_uri | True | Output for OUTPUT_RASTER2. | | task_meta_data | False | GBDX Option. Output location for task meta data such as execution log and output JSON. | ##### Output Structure The output_raster image file will be written to the specified S3 Customer Account Location in GeoTiff (\*.tif) format, with an ENVI header file (\*.hdr). ## <a name="Advanced Options"></a>Advanced Options This task will take two multispectral images, which share geo-spatial extent, as input. This example workflow includes the following ENVI tasks to prepare the images for the Change Threshold Classification task: Spectral Index, Image Intersection, and Image Band Difference. Input rasters for the Change Threshold Classification task may be any set of 1 band rasters sharing the same extent, spatial reference and pixel value format (e.g. Normalized Difference Vegetation Index) [block:code] { "codes": [ { "code": "from gbdxtools import Interface\ngbdx = Interface()\n\n# Edit the following path to reflect a specific path to an image\ndata1 = 's3://gbd-customer-data/CustomerAccount#/PathToImage1/'\ndata2 = 's3://gbd-customer-data/CustomerAccount#/PathToImage2/'\n\naoptask1 = gbdx.Task(\"AOP_Strip_Processor\") \naoptask1.inputs.data = data\naoptask1.inputs.enable_dra = False\naoptask1.inputs.bands = 'MS'\n\naoptask2 = gbdx.Task(\"AOP_Strip_Processor\") \naoptask2.inputs.data = data\naoptask2.inputs.enable_dra = False\naoptask2.inputs.bands = 'MS'\n\nenvi_ndvi1 = gbdx.Task(\"ENVI_SpectralIndex\")\nenvi_ndvi1.inputs.input_raster = aoptask1.outputs.data.value\nenvi_ndvi1.inputs.index = \"Normalized Difference Vegetation Index\"\n\nenvi_ndvi2 = gbdx.Task(\"ENVI_SpectralIndex\")\nenvi_ndvi2.inputs.input_raster = aoptask2.outputs.data.value\nenvi_ndvi2.inputs.index = \"Normalized Difference Vegetation Index\"\n\nenvi_II = gbdx.Task(\"ENVI_ImageIntersection\")\nenvi_II.inputs.input_raster1 = envi_ndvi1.outputs.output_raster_uri.value\nenvi_II.inputs.input_raster2 = envi_ndvi2.outputs.output_raster_uri.value\n\nenvi_IBD = gbdx.Task(\"ENVI_ImageBandDifference\")\nenvi_IBD.inputs.input_raster1 = envi_II.outputs.output_raster1_uri.value\nenvi_IBD.inputs.input_raster2 = envi_II.outputs.output_raster2_uri.value\n\nenvi_CTC = gbdx.Task(\"ENVI_ChangeThresholdClassification\")\nenvi_CTC.inputs.increase_threshold = \"0.1\"\nenvi_CTC.inputs.decrease_threshold = \"0.5\"\nenvi_CTC.inputs.input_raster = envi_IBD.outputs.output_raster_uri.value\n\n\nworkflow = gbdx.Workflow([\n aoptask1, aoptask2, envi_ndvi1, envi_ndvi2, envi_II, envi_IBD, envi_CTC\n])\n\nworkflow.savedata(\n envi_IBD.outputs.output_raster1_uri,\n location='ImgIntersect/output_raster1_uri' # edit location to suit account\n)\n\nworkflow.savedata(\n envi_IBD.outputs.output_raster2_uri,\n location='ImgIntersect/output_raster2_uri' # edit location to suit account\n)\n\nprint workflow.execute()\nprint workflow.status\n# Repeat workflow.status as needed to monitor progress.", "language": "json" } ] } [/block] ##<a name="Known Issues"></a>Known Issues Currently the advanced options for the task and the task in the GBDX web application are not available because of the requirement of multiple input parameters. ## 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).