{"_id":"57dc3bed2cfd450e00643516","__v":1,"parentDoc":null,"project":"55faeacad0e22017005b8265","version":{"_id":"55faeacad0e22017005b8268","project":"55faeacad0e22017005b8265","__v":36,"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"],"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","updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-09-16T18:37:33.741Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":96,"body":"### Imagery Examples\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/74fe72c-envi_isodata_before_web.jpg\",\n        \"envi_isodata_before_web.jpg\",\n        566,\n        400,\n        \"#82756b\"\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/7304b2e-envi_isodata_after_web.jpg\",\n        \"envi_isodata_after_web.jpg\",\n        566,\n        400,\n        \"#177c23\"\n      ],\n      \"caption\": \"After: WorldView 2 image after ISODATA classification\"\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 os.path import join, split\\nfrom gbdxtools import Interface\\ngbdx = Interface()\\n\\ntasks = []\\noutput_location = 'ENVI/ISODATAClassification'\\n\\ncat_id = '105001000672E000'\\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 = output_location+'/aop'\\naop.timeout = 36000\\ntasks += [aop]\\n\\n# Create an ISODATA classification\\nenvi_isodata = gbdx.Task(\\\"ENVI_ISODATAClassification\\\")\\nenvi_isodata.inputs.input_raster = aop.outputs.data.value\\ntasks += [envi_isodata]\\n\\nworkflow = gbdx.Workflow(tasks)\\nworkflow.savedata(\\n    envi_isodata.outputs.output_raster_uri, location=output_location\\n)\\n\\nworkflow.execute()\",\n      \"language\": \"python\"\n    }\n  ]\n}\n[/block]\n\n### Inputs\nThe following table lists all ENVI_ISODATAClassification 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 on which to perform unsupervised classification. -- 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\nchange_threshold_percent|False| 2.0|string|The change threshold percentage that determines when to complete the classification.  When the percentage of pixels that change classes during an iteration is less than the threshold value, the classification completes. -- Value Type: DOUBLE -- Default Value: 2.0\nnumber_of_classes|False| 5|string|The requested number of classes to generate. -- Value Type: UINT -- Default Value: 5\niterations|False| 10|string|The maximum iterations to perform.  If the change threshold percent is not met before the maximum number of iterations is reached, the classification completes. -- Value Type: UINT -- Default Value: 10\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_ISODATAClassification 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® ISODATA Classification](http://www.harrisgeospatial.com/docs/enviisodataclassificationtask.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 is used to identify areas of spectral similarity within the input raster. The unsupervised classifier will produce a raster with classification classes matching the input number of classes. \n\n**GBDX Registered Name**: ENVI_ISODATAClassification\n**Provider**: Harris Geospatial Solutions","slug":"envi-isodata-classification","type":"basic","title":"ENVI® ISODATA Classification"}

ENVI® ISODATA Classification

This task is used to identify areas of spectral similarity within the input raster. The unsupervised classifier will produce a raster with classification classes matching the input number of classes. **GBDX Registered Name**: ENVI_ISODATAClassification **Provider**: Harris Geospatial Solutions

### Imagery Examples [block:image] { "images": [ { "image": [ "https://files.readme.io/74fe72c-envi_isodata_before_web.jpg", "envi_isodata_before_web.jpg", 566, 400, "#82756b" ], "caption": "Before: WorldView 2 image after AOP correction" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/7304b2e-envi_isodata_after_web.jpg", "envi_isodata_after_web.jpg", 566, 400, "#177c23" ], "caption": "After: WorldView 2 image after ISODATA classification" } ] } [/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/ISODATAClassification'\n\ncat_id = '105001000672E000'\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 = output_location+'/aop'\naop.timeout = 36000\ntasks += [aop]\n\n# Create an ISODATA classification\nenvi_isodata = gbdx.Task(\"ENVI_ISODATAClassification\")\nenvi_isodata.inputs.input_raster = aop.outputs.data.value\ntasks += [envi_isodata]\n\nworkflow = gbdx.Workflow(tasks)\nworkflow.savedata(\n envi_isodata.outputs.output_raster_uri, location=output_location\n)\n\nworkflow.execute()", "language": "python" } ] } [/block] ### Inputs The following table lists all ENVI_ISODATAClassification 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 on which to perform unsupervised classification. -- 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 change_threshold_percent|False| 2.0|string|The change threshold percentage that determines when to complete the classification. When the percentage of pixels that change classes during an iteration is less than the threshold value, the classification completes. -- Value Type: DOUBLE -- Default Value: 2.0 number_of_classes|False| 5|string|The requested number of classes to generate. -- Value Type: UINT -- Default Value: 5 iterations|False| 10|string|The maximum iterations to perform. If the change threshold percent is not met before the maximum number of iterations is reached, the classification completes. -- Value Type: UINT -- Default Value: 10 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_ISODATAClassification 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® ISODATA Classification](http://www.harrisgeospatial.com/docs/enviisodataclassificationtask.html). ### Contact If you have any questions or issues with this task, please contact [gbdx-support@digitalglobe.com](mailto:gbdx-support@digitalglobe.com).