GBDX

AComp (Atmospheric Compensation)

GBDX Registered Name: AComp
Provider: DigitalGlobe (DG)

IMPORTANT: This AComp task documentation is out of date.

If you want to apply AComp preprocessing algorithm to imagery, we recommend using the​ Advanced Image Preprocessor with AComp.

Imagery Examples

Before: Image before AComp processing - Naples, Italy

Before: Image before AComp processing - Naples, Italy

After: The same image after AComp processing

After: The same image after AComp processing

Quickstart Tutorial

The AComp GBDX task can be run through a simple Python script using gbdxtools, which requires some initial setup.

Example Script: These basic settings will run AComp on a Landsat 8 image. See also examples listed under the Advanced Options.

# Run Atmospheric Compensation (AComp) on Landsat-8 data
    from gbdxtools import Interface
    gbdx = Interface()

    # The data input and lines must be edited to point to an authorized customer S3 location)
    acomp = gbdx.Task('AComp', data='s3://gbd-customer-data/CustomerAccount#/PathToImage/')
    workflow = gbdx.Workflow([acomp])
    # Edit the following line(s) to reflect specific folder(s) for the output file (example location provided)
    workflow.savedata(acomp.outputs.data, location='S3 gbd-customer-data location/<customer account>/output directory')
    workflow.execute()

    print workflow.id
    print workflow.status

Example Run in IPython:

   In [1]: from gbdxtools import Interface
    In [2]: gbdx = Interface()
    2016-06-06 10:53:09,026 - gbdxtools - INFO - Logger initialized
    In [3]: acomp = gbdx.Task('AComp', data='s3://landsat-pds/<Landsat8 Image ID>')
    In [4]: workflow = gbdx.Workflow([acomp])
    In [5]: workflow.savedata(acomp.outputs.data, location='S3 gbd-customer-data location/<customer account>/output directory')
    In [6]: workflow.execute()
    Out[6]: u'4349739083145886153'
    In [7]: print workflow.id
    4349739083145886153
    In [8]: print workflow.status
    2016-06-06 10:53:41,301 - gbdxtools - DEBUG - Get status of workflow: 4349739083145886153
    {u'state': u'pending', u'event': u'submitted'}
    In [9]:

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
WV02 35,872,942 329.87 591.909 1.79
WV03 35,371,971 196.27 390.332 1.99
GE01 57,498,000 332.97 507.664 1.52
QB02 41,551,668 312.07 395.610 1.27

Input Options

To use this task, set the "data" input parameter (described below) to point at an S3 bucket containing the image data to process. Note, that this task will search through the given bucket to locate the input data and process the data it finds. In order to process VNIR or VNIR + PAN data, simply point the "data" input parameter at the directory within the bucket containing the VNIR or VNIR + PAN data for a single catalog ID.

If SWIR data is to also be processed, the workflow is slightly different. A summary follows here, but refer to Advanced Options for examples. Since SWIR data is normally ordered separately from VNIR in GBDX and therefore has a different catalog ID, in order to process VNIR+SWIR or VNIR+PAN+SWIR, it is necessary to point the "data" input parameter at a parent directory containing both a single VNIR (or VNIR+PAN) catalog ID directory and also a single corresponding SWIR catalog ID directory. Note that the SWIR data must intersect the VNIR data and be "acquired during the same overpass" in order to obtain valid results. SWIR data acquired during the same overpass will have a catalog ID that is differentiated from the VNIR catalog ID solely by having an "A" in the 4th position of the catalog ID. For example, the SWIR catalog ID 104A010008437000 was acquired during the same overpass as the the VNIR catalog ID 1040010008437000. Please Contact Us if you would like us to stage a VNIR+SWIR test dataset for you.

Description of Input Parameters and Options for the AComp GBDX task

The following table lists the AComp-GBDX inputs. All inputs are optional with default values, with the exception of 'data' which specifies the task's input data location and output data location.

Name Default Valid Values Description
data (in) N/A S3 URL S3 location of input data.
data (out) N/A S3 URL S3 gbd-customer-data location
exclude_bands Off 'P', 'MS1', 'Multi', 'All-S' Comma-separated list of bands to exclude; excluded bands are not processed.
bit_depth 16 11, 16 or 32 Bit depth refers to how many digits the spectral information for each pixel is stored in

Script Example specifying exclusion of panchromatic bands

acomp = gbdx.Task('AComp', exclude_bands='P')

Script Example specifying alternate bit depth

acomp = gbdx.Task('AComp', data=data, bit_depth=32 )

Outputs

On completion, the processed imagery will be written to your specified S3 Customer Location (e.g. s3://gbd-customer-data/unique customer id/named directory/). The AComp output files will be located Within the 'named directory'. The specific layout and names of the output files will depend on the specific input files and the options selected.

Description of Output Files

Data Input Type Description of Output Files Runs FastOrtho to produce Final Output
Landsat-8 .TIF NO (individual .tif files)
DG Sensors Level 1B .TIF, .IMD YES (single mosaic .tif)
DG Sensors Level 2 and Level 3 .TIF, .TIL, .IMD NO (individual .tif files)

Advanced Options

Run AComp end to end with an ENVI Task

# Run AComp end to end with an ENVI Task: Example using ISODATA Classification
	from gbdxtools import Interface
	gbdx = Interface()

	# Run AComp 
	# Edit the following line(s) to reflect specific folder(s) for the input file.
	acomptask = gbdx.Task('AComp', exclude_bands='P', data='s3://gbd-customer-data/CustomerAccount#/PathToImage/')

	# Run ENVI ISODATA Classification on the AComp output
	isodata = gbdx.Task("ENVI_ISODATAClassification")

	# Run the workflow and save the data
	workflow = gbdx.Workflow([acomptask, isodata])
	isodata.inputs.input_raster = acomptask.outputs.data.value
	# Edit the following line(s) to reflect specific folder(s) for the output file.
	workflow.savedata(acomptask.outputs.data, location='/CustomerAccount#/PathToOutputDirectory/')
	workflow.savedata(isodata.outputs.output_raster_uri, location='/CustomerAccount#/PathToOutputDirectory/')
	
	workflow.execute()
	print workflow.id
	print workflow.status

Known Issues

Input imagery must at least contain the VNIR multispectral bands, and optionally may also include panchromatic data and/or SWIR data. Therefore, AComp cannot be run on WorldView-1 imagery, or on panchromatic or SWIR bands in the absence of multispectral data.

Contact Us

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