[GRASS-dev] Landsat 8 Collection-1 QA bits

Nikos Alexandris nik at nikosalexandris.net
Fri Jun 1 10:09:35 PDT 2018


Stefan,

in processing Collection-1 Landsat 8 products, `i.landsat8.qc` deserves
an update [0][1]. Please note that Pre-Collection products are removed
from EarthExplorer [2][3].

See:

[0] https://landsat.usgs.gov/sites/default/files/documents/landsat_QA_tools_userguide.pdf
[1] https://landsat.usgs.gov/collectionqualityband
[2] https://landsat.usgs.gov/september-1-2017-countdown-landsat-pre-collection-datasets-removal
[3] https://landsat.usgs.gov/oct-3-2017-pre-collection-dataset-removal-prompts-ee-changes


Below, bits and descriptions transferred in python dictionaries,
blindly following the script's current structure (kept "old" and "new"
for comparison). I would like your view on this, or anyone else's who is
interested.


What do you think of:

- introducing a `collection=` option in the module and make it treat
  both, Pre-Collection and Collection-1 products?

- removing Pre-collection QA bits altogether?


Nikos
--

Hier Pre-Collection und Collection-1 zusammen:

    """
    Pre-Collection populated bits:

    0     Designated Fill
    1     Dropped Frame
    2     Terrain Occlusion
    3     Reserved (not currently used)
    4-5     Water Confidence
    6-7     Reserved for cloud shaddow
    8-9     Vegetation confidence
    10-11     Snow/Ice confidence
    12-13     Cirrus confidence
    14-15     Cloud confidence
    """

    # Define bit length (single or double bits) -- Pre-Collection
    bl = {'designated_fill': 1,
          'dropped_frame': 1,
          'terrain_occlusion': 1,
          # 'reserved': 1,
          'water': 2,
          'cloud_shadow': 2,
          'vegetation': 2,
          'snow_ice': 2,
          'cirrus': 2,
          'cloud': 2}

    # Define bit position start -- Pre-Collection
    bps = {
        'designated_fill': 0,
        'dropped_frame': 1,
        'terrain_occlusion': 2,
        # 'reserved': 3,
        'water': 4,
        'cloud_shadow': 6,
        'vegetation': 8,
        'snow_ice': 10,
        'cirrus': 12,
        'cloud': 14}

    """
    Collection-1 populated bits

    0     Designated Fill
    1     Terrain Occlusion
    2-3   Radiometric Saturation
    4     Cloud
    5-6   Cloud Confidence
    7-8   Cloud Shadow Confidence
    9-10  Snow/Ice confidence
    11-12 Cirrus confidence
    13
    14
    15
    """

    # Define bit length (single or double bits) -- Collection-1
    bit_length = {'designated_fill': 1,
          'terrain_occlusion': 1,
          'radiometric_saturation': 2,
          'cloud': 1,
          'cloud_confidence': 2,
          'cloud_shadow_confidence': 2,
          'snow_ice_confidence': 2,
          'cirrus_confidence': 2,
          # 'reserved': 1,
          # 'reserved': 1,
          # 'reserved': 1}

    # Define bit position start -- Collection-1
    bit_position_start = {
        'designated_fill': 0,
        'terrain_occlusion': 1,
        'radiometric_saturation': 2,
        'cloud': 4,
        'cloud_confidence': 5,
        'cloud_shadow_confidence': 7,
        'snow_ice_confidence': 9,
        'cirrus_confidence': 11,
        # 'reserved': 13,
        # 'reserved': 14,
        # 'reserved': 15}

    """
    Pre-Collection

    For the single bits (0, 1, 2, and 3):
        0 = No, this condition does not exist
        1 = Yes, this condition exists.
    """

    """
    Collection-1

    For the single bits (0, 1, and 4):
        0 = "No" = This condition does not exist
        1 = "Yes" = This condition exists
    """

    # Define single bits dictionary -- Identical for Pre- and C1
    single_bits = {'No': '0',
                   'Yes': '1'}

    """
    Collection-1

    For radiometric saturation bits (2-3), read from left to right, represent how many bands contain saturation:

    00 - No bands contain saturation
    01 - 1-2 bands contain saturation
    10 - 3-4 bands contain saturation
    11 - 5 or more bands contain saturation
    """

    radiometric_saturation = {'No bands contain saturation': '00',
                              '1-2 bands contain saturation': '01',
                              '3-4 bands contain saturation': '10',
                              '5 or more bands contain saturation': '11'}

    """
    Pre-Collection

    The double bits (4-5, 6-7, 8-9, 10-11, 12-13, and 14-15), read from left to
    right, represent levels of confidence that a condition exists:
    00 = 'Not Determined' = Algorithm did not determine the status
                            of this condition
    01 = 'No' = Algorithm has low to no confidence that this condition exists
                (0-33 percent confidence)
    10 = 'Maybe' = Algorithm has medium confidence that this condition exists
                (34-66 percent confidence)
    11 = 'Yes' = Algorithm has high confidence that this condition exists
                (67-100 percent confidence).
    """

    # Define double bits dictionary -- Pre-Collection
    double_bits = {'Not Determined': '00',
                   'No': '01',
                   'Maybe': '10',
                   'Yes': '11'}

    """
    Collection-1

    For the remaining double bits (5-6, 7-8, 9-10, 11-12), read from left to
    right, represent levels of confidence that a condition exists:

    00 = "Not Determined" = Algorithm did not determine the status of this
    condition / "No" = This condition does not exist

    01 = "Low" = Algorithm has low to no confidence that this condition exists
    (0-33 percent confidence)

    10 = "Medium" = Algorithm has medium confidence that this condition exists
    (34-66 percent confidence)

    11 = "High" = Algorithm has high confidence that this condition exists
    (67-100 percent confidence
    """

    # Define double bits dictionary -- Colletion-1
    double_bits_c1 = {'Not Determined': '00',
                   'Low': '01',
                   'Medium': '10',
                   'High': '11'}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20180601/e5dc373e/attachment.sig>


More information about the grass-dev mailing list