{"_id":"5a3a9aca54faf60030b6361a","project":"55faeacad0e22017005b8265","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"},"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"},"user":"55fae9d4825d5f19001fa379","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-12-20T17:15:54.157Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":89,"body":"## Table of Contents\n\n  Section  |  Description  \n--------|:----------\n[Imagery Examples](#section-imagery-examples) |Before and after examples.\n[Quickstart](#section-quickstart)|Get started with a Python-based quickstart tutorial.\n[Inputs](#section-inputs)|Required and optional task inputs.\n[Outputs](#section-outputs)|Task outputs and example contents.\n[Known Issues](#section-issues)|Issues users should be aware of.\n[Contact](#section-contact)|Contact information.  \n\n## Imagery Examples\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/0db6e86-ENVI_GrayscaleMorpholoigcal_Before_web.jpg\",\n        \"ENVI_GrayscaleMorpholoigcal_Before_web.jpg\",\n        566,\n        400,\n        \"#919191\"\n      ],\n      \"caption\": \"Before: WorldView 3 Pan imagery\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/fca51db-ENVI_GrayscaleMorpholoigcal_After_web.jpg\",\n        \"ENVI_GrayscaleMorpholoigcal_After_web.jpg\",\n        566,\n        400,\n        \"#959595\"\n      ],\n      \"caption\": \"After: Output from ENVI Grayscale Morphological Filtering. Note the road lines.\"\n    }\n  ]\n}\n[/block]\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 gbdxtools import Interface\\ngbdx = Interface()\\n\\ntasks = []\\ncat_id = '103001006FB33600'\\naop_output_location = 'ENVI/Grayscale_Morphological_Filter/aop/'\\ntask_output_location = 'ENVI/Grayscale_Morphological_Filter/task/'\\n\\n# 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\\norder_data_loc = order.outputs.s3_location.value\\ntasks.append(order)\\n\\n# AOP task parameters\\naop_task = gbdx.Task(\\\"AOP_Strip_Processor\\\")\\naop_task.inputs.data = order_data_loc\\naop_task.inputs.enable_acomp = False\\naop_task.inputs.enable_dra = False\\naop_task.inputs.enable_pansharpen = False\\naop_task.inputs.bands = 'PAN'\\naop_task_output = aop_task.outputs.data.value\\ntasks.append(aop_task)\\n\\n# ENVI Greyscale Morphological Filter parameters\\nenvi_greyscale_morph_task = gbdx.Task('ENVI_GrayscaleMorphologicalFilter')\\nenvi_greyscale_morph_task.inputs.input_raster = aop_task_output\\nenvi_greyscale_morph_task.inputs.method = 'Erode'\\ntasks.append(envi_greyscale_morph_task)\\n\\n# Set up workflow save data\\nworkflow = gbdx.Workflow(tasks)\\nworkflow.savedata(aop_task.outputs.data, location=aop_output_location)\\nworkflow.savedata(envi_greyscale_morph_task.outputs.task_meta_data, location=task_output_location)\\nworkflow.savedata(envi_greyscale_morph_task.outputs.output_raster_uri, location=task_output_location)\\n\\n# Execute workflow\\nworkflow.execute()\",\n      \"language\": \"python\"\n    }\n  ]\n}\n[/block]\n## Inputs\n\nThe following table lists all ENVI_GrayscaleMorphologicalFilter 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|directory|Specify a raster on which to perform morphological filtering. -- 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\nkernel|False| [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]|string|Specify a structuring element for the morphological process. Each finite element in the array is either subtracted from (in erosion) or added to (in dilation) the associated pixels. NaN or Infinite values imply pixels that are not included in the computation. If no KERNEL is specified, a 3 x 3 array will be used with a value of 0 for all of the array elements, indicating that all pixels will be used without addition or subtraction. -- Value Type: FLOATARRAY -- Default Value: [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]\niterations|False| 1|string|Specify the number of iterations used to perform the morphological operation. -- Value Type: INT -- Default Value: 1\nmethod|True|N/A|string|Specify the filter method. -- 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\n## Outputs\n\nThe following table lists all ENVI_GrayscaleMorphologicalFilter 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\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## Issues\n\nNone at this time.\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® Grayscale Morphological Filter](http://www.harrisgeospatial.com/docs/envigrayscalemorphologicalfiltertask.html). \n\n## Contact\nIf you have any questions or issues with this task, please contact [gbdx-support:::at:::digitalglobe.com](gbdx-support@digitalglobe.com).","excerpt":"This task performs grayscale morphological filtering on an ENVIRaster.    \n\n**GBDX Registered Name:**  ENVI_GrayscaleMorphologicalFilter    \n**Provider:** Harris Geospatial Solutions","slug":"envi-grayscale-morphological-filter","type":"basic","title":"ENVI® Grayscale Morphological Filter"}

ENVI® Grayscale Morphological Filter

This task performs grayscale morphological filtering on an ENVIRaster. **GBDX Registered Name:** ENVI_GrayscaleMorphologicalFilter **Provider:** Harris Geospatial Solutions

## Table of Contents Section | Description --------|:---------- [Imagery Examples](#section-imagery-examples) |Before and after examples. [Quickstart](#section-quickstart)|Get started with a Python-based quickstart tutorial. [Inputs](#section-inputs)|Required and optional task inputs. [Outputs](#section-outputs)|Task outputs and example contents. [Known Issues](#section-issues)|Issues users should be aware of. [Contact](#section-contact)|Contact information. ## Imagery Examples [block:image] { "images": [ { "image": [ "https://files.readme.io/0db6e86-ENVI_GrayscaleMorpholoigcal_Before_web.jpg", "ENVI_GrayscaleMorpholoigcal_Before_web.jpg", 566, 400, "#919191" ], "caption": "Before: WorldView 3 Pan imagery" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/fca51db-ENVI_GrayscaleMorpholoigcal_After_web.jpg", "ENVI_GrayscaleMorpholoigcal_After_web.jpg", 566, 400, "#959595" ], "caption": "After: Output from ENVI Grayscale Morphological Filtering. Note the road lines." } ] } [/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 gbdxtools import Interface\ngbdx = Interface()\n\ntasks = []\ncat_id = '103001006FB33600'\naop_output_location = 'ENVI/Grayscale_Morphological_Filter/aop/'\ntask_output_location = 'ENVI/Grayscale_Morphological_Filter/task/'\n\n# 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\norder_data_loc = order.outputs.s3_location.value\ntasks.append(order)\n\n# AOP task parameters\naop_task = gbdx.Task(\"AOP_Strip_Processor\")\naop_task.inputs.data = order_data_loc\naop_task.inputs.enable_acomp = False\naop_task.inputs.enable_dra = False\naop_task.inputs.enable_pansharpen = False\naop_task.inputs.bands = 'PAN'\naop_task_output = aop_task.outputs.data.value\ntasks.append(aop_task)\n\n# ENVI Greyscale Morphological Filter parameters\nenvi_greyscale_morph_task = gbdx.Task('ENVI_GrayscaleMorphologicalFilter')\nenvi_greyscale_morph_task.inputs.input_raster = aop_task_output\nenvi_greyscale_morph_task.inputs.method = 'Erode'\ntasks.append(envi_greyscale_morph_task)\n\n# Set up workflow save data\nworkflow = gbdx.Workflow(tasks)\nworkflow.savedata(aop_task.outputs.data, location=aop_output_location)\nworkflow.savedata(envi_greyscale_morph_task.outputs.task_meta_data, location=task_output_location)\nworkflow.savedata(envi_greyscale_morph_task.outputs.output_raster_uri, location=task_output_location)\n\n# Execute workflow\nworkflow.execute()", "language": "python" } ] } [/block] ## Inputs The following table lists all ENVI_GrayscaleMorphologicalFilter 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|directory|Specify a raster on which to perform morphological filtering. -- 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 kernel|False| [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]|string|Specify a structuring element for the morphological process. Each finite element in the array is either subtracted from (in erosion) or added to (in dilation) the associated pixels. NaN or Infinite values imply pixels that are not included in the computation. If no KERNEL is specified, a 3 x 3 array will be used with a value of 0 for all of the array elements, indicating that all pixels will be used without addition or subtraction. -- Value Type: FLOATARRAY -- Default Value: [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]] iterations|False| 1|string|Specify the number of iterations used to perform the morphological operation. -- Value Type: INT -- Default Value: 1 method|True|N/A|string|Specify the filter method. -- 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_GrayscaleMorphologicalFilter 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 image file will be written to the specified S3 Customer Account Location in GeoTiff (*.tif) format, with an ENVI header file (*.hdr). ## Issues None at this time. ## 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® Grayscale Morphological Filter](http://www.harrisgeospatial.com/docs/envigrayscalemorphologicalfiltertask.html). ## Contact If you have any questions or issues with this task, please contact [gbdx-support@digitalglobe.com](gbdx-support@digitalglobe.com).