GBDX

ENVI® Classification Sieving

This task removes isolated classified pixels using blob grouping. Low pass or other types of filtering could be used to remove these areas, but the class information would be contaminated by adjacent class codes. The sieve classes method looks at the neighboring four or eight pixels to determine if a pixel is grouped with pixels of the same class. If the number of pixels in a class that are grouped is less than the value that you enter, those pixels will be removed from the class. When pixels are removed from a class using sieving, black pixels (unclassified) will be left. Use ENVIClassificationClumpingTask to remove the black pixels.

GBDX Registered Name: ENVI_ClassificationSieving
Provider: Harris Geospatial Solutions

Imagery Examples

Before: WorldView 2 image after AOP correction

Before: WorldView 2 image after AOP correction

After: WorldView 2 image after sieving

After: WorldView 2 image after sieving

Quickstart

This is a workflow example for basic processing.

# Quickstart Example running the task name.

# Initialize the Environment.
from os.path import join, split
from gbdxtools import Interface
gbdx = Interface()

tasks = []
output_location = 'ENVI/ClassificationSieving'

cat_id = '105001000672E000'

# Image Auto ordering task parameters
order = gbdx.Task("Auto_Ordering")
order.inputs.cat_id = cat_id
order.impersonation_allowed = True
order.persist = True
order.timeout = 36000
tasks += [order]

# Image AOP task parameters
aop = gbdx.Task("AOP_Strip_Processor")
aop.inputs.data = order.outputs.s3_location.value
aop.inputs.bands = 'MS'
aop.inputs.enable_dra = False
aop.outputs.data.persist = True
aop.outputs.data.persist_location = output_location+'/aop'
aop.timeout = 36000
tasks += [aop]

# Create a basic classification
envi_isodata = gbdx.Task("ENVI_ISODATAClassification")
envi_isodata.inputs.input_raster = aop.outputs.data.value
tasks += [envi_isodata]

# Seive the classification
envi_sieve = gbdx.Task("ENVI_ClassificationSieving")
envi_sieve.inputs.input_raster = envi_isodata.outputs.output_raster_uri.value
envi_sieve.inputs.pixel_connectivity = '4'
tasks += [envi_sieve]

workflow = gbdx.Workflow(tasks)
workflow.savedata(
    envi_sieve.outputs.output_raster_uri, location=output_location
)

workflow.execute()

Inputs

The following table lists all ENVI_ClassificationSieving 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 Specify a raster on which to perform classification sieving. -- Value Type: ENVIRASTER
input_raster_format False N/A See ENVIRASTER input type Provide the format of the image, for example: landsat-8. -- Value Type: STRING
input_raster_band_grouping False N/A See ENVIRASTER input type 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 Provide the explicit relative raster filename that ENVI will open. This overrides any file lookup in the task runner. -- Value Type: STRING
input_raster_raw_output False False See ENVIRASTER input type Provide True to output an ENVI Binary instead of a tif. -- Value Type: STRING
minimum_size False 2 string Specify the minimum size of a blob to keep. If a minimum size is not defined, the minimum size will be set to two. -- Value Type: UINT -- Default Value: 2
pixel_connectivity False 8 string Specify 4 (four-neighbor) or 8 (eight-neighbor) regions around a pixel are searched, for continuous blobs. The default is 8. -- Value Type: UINT -- Default Value: 8
class_order False N/A string Specify the order of class names in which sieving is applied to the classification image. If you do not specify this keyword, the classes are processed from first to last. -- Value Type: STRINGARRAY
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_ClassificationSieving 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 and
ENVI® Classification Sieving.

Contact

If you have any questions or issues with this task, please contact gbdx-support@digitalglobe.com.