{"_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":9,"slug":"algorithm-guide","title":"Algorithms"},"parentDoc":null,"user":"55fae9d4825d5f19001fa379","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-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":94,"body":"### Imagery Examples\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ea30215-envi_imageintersection_before_web.jpg\",\n        \"envi_imageintersection_before_web.jpg\",\n        566,\n        400,\n        \"#e6e4e1\"\n      ],\n      \"caption\": \"Overlapping WorldView 2 images after AOP correction\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/203119c-envi_imageintersection_after_web.jpg\",\n        \"envi_imageintersection_after_web.jpg\",\n        566,\n        400,\n        \"#33362a\"\n      ],\n      \"caption\": \"Overlapping area of WorldView 2 images after the intersection task\"\n    }\n  ]\n}\n[/block]\n\n### Quickstart\nThis is a workflow example for basic processing.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"# Quickstart Example running the task name.\\n\\n# Initialize the Environment.\\nfrom os.path import join, split\\nfrom gbdxtools import Interface\\ngbdx = Interface()\\n\\ntasks = []\\noutput_location = 'ENVI/ImageIntersection'\\n\\n# Change Detection task setup\\npre_cat_id = '103001001C423600'\\npost_cat_id = '10504100003E9200'\\n\\n# Pre-Image Auto ordering task parameters\\npre_order = gbdx.Task(\\\"Auto_Ordering\\\")\\npre_order.inputs.cat_id = pre_cat_id\\npre_order.impersonation_allowed = True\\npre_order.persist = True\\npre_order.timeout = 36000\\ntasks += [pre_order]\\n\\n# Pre-Image AOP task parameters\\npre_aop = gbdx.Task(\\\"AOP_Strip_Processor\\\")\\npre_aop.inputs.data = pre_order.outputs.s3_location.value\\npre_aop.inputs.bands = 'MS'\\npre_aop.inputs.enable_dra = False\\npre_aop.outputs.data.persist = True\\npre_aop.outputs.data.persist_location = output_location+'/pre_aop'\\npre_aop.timeout = 36000\\ntasks += [pre_aop]\\n\\n# Post-Image Auto ordering task parameters\\npost_order = gbdx.Task(\\\"Auto_Ordering\\\")\\npost_order.inputs.cat_id = post_cat_id\\npost_order.impersonation_allowed = True\\npost_order.persist = True\\npost_order.timeout = 36000\\ntasks += [post_order]\\n\\n# Post-Image AOP task parameters\\npost_aop = gbdx.Task(\\\"AOP_Strip_Processor\\\")\\npost_aop.inputs.data = post_order.outputs.s3_location.value\\npost_aop.inputs.bands = 'MS'\\npost_aop.inputs.enable_dra = False\\npost_aop.outputs.data.persist = True\\npost_aop.outputs.data.persist_location = output_location+'/post_aop'\\npost_aop.timeout = 36000\\ntasks += [post_aop]\\n\\n# Find where the images intersect\\nenvi_II = gbdx.Task(\\\"ENVI_ImageIntersection\\\")\\nenvi_II.inputs.input_raster1 = pre_aop.outputs.data.value\\nenvi_II.inputs.input_raster2 = post_aop.outputs.data.value\\ntasks += [envi_II]\\n\\nworkflow = gbdx.Workflow(tasks)\\nworkflow.savedata(\\n    envi_II.outputs.output_raster1_uri, location=join(output_location, 'output_1')\\n)\\nworkflow.savedata(\\n    envi_II.outputs.output_raster2_uri, location=join(output_location,'output_2')\\n)\\nworkflow.execute()\",\n      \"language\": \"python\"\n    }\n  ]\n}\n[/block]\n### Inputs\nThe following table lists all ENVI_ImageIntersection 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`[*]`\nwarping_method|False| \"triangulation\"|string|Specify the warping method to use. -- Value Type: STRING -- Default Value: \"Triangulation\"\noutput_raster2_uri_filename|False|N/A|string|Specify a string with the fully-qualified path and filename for OUTPUT_RASTER2. -- Value Type: STRING\nresampling|False| \"bilinear\"|string|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 -- Default Value: \"Bilinear\"\ninput_raster1|True|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Specify a raster to use as the base for computing the intersection. -- Value Type: ENVIRASTER\ninput_raster1_format|False|N/A|string|Provide the format of the image, for example: landsat-8. -- Value Type: STRING\ninput_raster1_band_grouping|False|N/A|string|Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING\ninput_raster1_filename|False|N/A|string|Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING\ninput_raster2|True|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Specify a second raster for computing the intersection. -- Value Type: ENVIRASTER\ninput_raster2_format|False|N/A|string|Provide the format of the image, for example: landsat-8. -- Value Type: STRING\ninput_raster2_band_grouping|False|N/A|string|Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING\ninput_raster2_filename|False|N/A|string|Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING\noutput_raster1_uri_filename|False|N/A|string|Specify a string with the fully-qualified path and filename for OUTPUT_RASTER1. -- Value Type: STRING\n\n\n### Outputs\n\nThe following table lists all ENVI_ImageIntersection 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_raster2_uri|True|N/A|directory|Output for OUTPUT_RASTER2. -- Value Type: ENVIURI\noutput_raster1_uri|True|N/A|directory|Output for OUTPUT_RASTER1. -- Value Type: ENVIURI\n\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### 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® Image Intersection](http://www.harrisgeospatial.com/docs/enviimageintersectiontask.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":"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    \n\t\n**GBDX Registered Name**: ENVI_ImageIntersection\n**Provider**: Harris Geospatial Solutions","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

### Imagery Examples [block:image] { "images": [ { "image": [ "https://files.readme.io/ea30215-envi_imageintersection_before_web.jpg", "envi_imageintersection_before_web.jpg", 566, 400, "#e6e4e1" ], "caption": "Overlapping WorldView 2 images after AOP correction" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/203119c-envi_imageintersection_after_web.jpg", "envi_imageintersection_after_web.jpg", 566, 400, "#33362a" ], "caption": "Overlapping area of WorldView 2 images after the intersection task" } ] } [/block] ### Quickstart This is a workflow example for basic processing. [block:code] { "codes": [ { "code": "# Quickstart Example running the task name.\n\n# Initialize the Environment.\nfrom os.path import join, split\nfrom gbdxtools import Interface\ngbdx = Interface()\n\ntasks = []\noutput_location = 'ENVI/ImageIntersection'\n\n# Change Detection task setup\npre_cat_id = '103001001C423600'\npost_cat_id = '10504100003E9200'\n\n# Pre-Image Auto ordering task parameters\npre_order = gbdx.Task(\"Auto_Ordering\")\npre_order.inputs.cat_id = pre_cat_id\npre_order.impersonation_allowed = True\npre_order.persist = True\npre_order.timeout = 36000\ntasks += [pre_order]\n\n# Pre-Image AOP task parameters\npre_aop = gbdx.Task(\"AOP_Strip_Processor\")\npre_aop.inputs.data = pre_order.outputs.s3_location.value\npre_aop.inputs.bands = 'MS'\npre_aop.inputs.enable_dra = False\npre_aop.outputs.data.persist = True\npre_aop.outputs.data.persist_location = output_location+'/pre_aop'\npre_aop.timeout = 36000\ntasks += [pre_aop]\n\n# Post-Image Auto ordering task parameters\npost_order = gbdx.Task(\"Auto_Ordering\")\npost_order.inputs.cat_id = post_cat_id\npost_order.impersonation_allowed = True\npost_order.persist = True\npost_order.timeout = 36000\ntasks += [post_order]\n\n# Post-Image AOP task parameters\npost_aop = gbdx.Task(\"AOP_Strip_Processor\")\npost_aop.inputs.data = post_order.outputs.s3_location.value\npost_aop.inputs.bands = 'MS'\npost_aop.inputs.enable_dra = False\npost_aop.outputs.data.persist = True\npost_aop.outputs.data.persist_location = output_location+'/post_aop'\npost_aop.timeout = 36000\ntasks += [post_aop]\n\n# Find where the images intersect\nenvi_II = gbdx.Task(\"ENVI_ImageIntersection\")\nenvi_II.inputs.input_raster1 = pre_aop.outputs.data.value\nenvi_II.inputs.input_raster2 = post_aop.outputs.data.value\ntasks += [envi_II]\n\nworkflow = gbdx.Workflow(tasks)\nworkflow.savedata(\n envi_II.outputs.output_raster1_uri, location=join(output_location, 'output_1')\n)\nworkflow.savedata(\n envi_II.outputs.output_raster2_uri, location=join(output_location,'output_2')\n)\nworkflow.execute()", "language": "python" } ] } [/block] ### Inputs The following table lists all ENVI_ImageIntersection 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`[*]` warping_method|False| "triangulation"|string|Specify the warping method to use. -- Value Type: STRING -- Default Value: "Triangulation" output_raster2_uri_filename|False|N/A|string|Specify a string with the fully-qualified path and filename for OUTPUT_RASTER2. -- Value Type: STRING resampling|False| "bilinear"|string|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 -- Default Value: "Bilinear" input_raster1|True|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Specify a raster to use as the base for computing the intersection. -- Value Type: ENVIRASTER input_raster1_format|False|N/A|string|Provide the format of the image, for example: landsat-8. -- Value Type: STRING input_raster1_band_grouping|False|N/A|string|Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING input_raster1_filename|False|N/A|string|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|N/A|[See ENVIRASTER input type](https://gbdxdocs.digitalglobe.com/docs/envi-task-engine#section-enviraster)|Specify a second raster for computing the intersection. -- Value Type: ENVIRASTER input_raster2_format|False|N/A|string|Provide the format of the image, for example: landsat-8. -- Value Type: STRING input_raster2_band_grouping|False|N/A|string|Provide the name of the band grouping to be used in the task, ie - panchromatic. -- Value Type: STRING input_raster2_filename|False|N/A|string|Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING output_raster1_uri_filename|False|N/A|string|Specify a string with the fully-qualified path and filename for OUTPUT_RASTER1. -- Value Type: STRING ### Outputs The following table lists all ENVI_ImageIntersection 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_raster2_uri|True|N/A|directory|Output for OUTPUT_RASTER2. -- Value Type: ENVIURI output_raster1_uri|True|N/A|directory|Output for OUTPUT_RASTER1. -- Value Type: ENVIURI **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) ### 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® Image Intersection](http://www.harrisgeospatial.com/docs/enviimageintersectiontask.html). ### Contact If you have any questions or issues with this task, please contact [gbdx-support@digitalglobe.com](mailto:gbdx-support@digitalglobe.com).