i.modis.qc(1)

NAME
i.modis.qc - Extracts quality control parameters from MODIS QC layers.

KEYWORDS
imagery, imagery quality assessment, reflectance, land surface temperature, vegetation, satellite, MODIS

SYNOPSIS
i.modis.qc
i.modis.qc --help
i.modis.qc input=name output=name productname=string qcname=string [band=string] [--overwrite] [--help] [--verbose] [--quiet] [--ui]

  Flags:

--overwrite
    Allow output files to overwrite existing files

--help
    Print usage summary

--verbose
    Verbose module output

--quiet
    Quiet module output

--ui
    Force launching GUI dialog

  Parameters:

input=name [required]
    Name of input surface reflectance QC layer [bit array]

output=name [required]
    Name for output QC type classification layer

productname=string [required]
    Name of MODIS product type
    Options: mod09Q1, mod09A1, mod09A1s, mod09GA, mod09GAs, mod09CMG, mod09CMGs, mod09CMGi, mod11A1, mod11A2, mod13A2, mcd43B2, mcd43B2q, mod13Q1
    mod09Q1: surf. refl. 250m 8-days
    mod09A1: surf. refl. 500m 8-days
    mod09A1s: surf. refl. 500m 8-days, State QA
    mod09GA: surf. refl. 500m daily
    mod09GAs: surf. refl. 500m daily, State QA
    mod09CMG: surf. refl. 5000m daily
    mod09CMGs: surf. refl. 5000m daily, State QA
    mod09CMGi: surf. refl. 5000m daily, Internal Climatology
    mod11A1: LST 1km daily (Day/Night)
    mod11A2: LST 1km 8-days (Day/Night)
    mod13A2: VI 1km 16-days
    mcd43B2: Brdf-Albedo Quality (Ancillary SDS) 1km 8-days
    mcd43B2q: Brdf-Albedo Quality (BRDF SDS) 1km 8-days
    mod13Q1: VI 250m 16-days

qcname=string [required]
    Name of QC type to extract
    Options: adjcorr, atcorr, cloud, data_quality, diff_orbit_from_500m, modland_qa, mandatory_qa_11A1, data_quality_flag_11A1, emis_error_11A1, lst_error_11A1, data_quality_flag_11A2, emis_error_11A2, mandatory_qa_11A2, lst_error_11A2, aerosol_quantity, brdf_correction_performed, cirrus_detected, cloud_shadow, cloud_state, internal_cloud_algorithm, internal_fire_algorithm, internal_snow_mask, land_water, mod35_snow_ice, pixel_adjacent_to_cloud, salt_pan, icm_cloudy, icm_clear, icm_high_clouds, icm_low_clouds, icm_snow, icm_fire, icm_sun_glint, icm_dust, icm_cloud_shadow, icm_pixel_is_adjacent_to_cloud, icm_cirrus, icm_pan_flag, icm_criteria_for_aerosol_retrieval, icm_aot_has_clim_val, modland_qa, vi_usefulness, aerosol_quantity, pixel_adjacent_to_cloud, brdf_correction_performed, mixed_clouds, land_water, possible_snow_ice, possible_shadow, platform, land_water, sun_z_angle_at_local_noon, brdf_correction_performed, modland_qa, vi_usefulness, aerosol_quantity, pixel_adjacent_to_cloud, brdf_correction_performed, mixed_clouds, land_water, possible_snow_ice, possible_shadow
    adjcorr: mod09: Adjacency Correction
    atcorr: mod09: Atmospheric Correction
    cloud: mod09: Cloud State
    data_quality: mod09: Band-Wise Data Quality Flag
    diff_orbit_from_500m: mod09: 250m Band is at Different Orbit than 500m
    modland_qa: mod13Q1: MODIS Land General Quality Assessment
    mandatory_qa_11A1: mod11A1: MODIS Land General Quality Assessment
    data_quality_flag_11A1: mod11A1: Detailed Quality Indications
    emis_error_11A1: mod11A1: Average Emissivity Error Classes
    lst_error_11A1: mod11A1: Average LST Error Classes
    data_quality_flag_11A2: mod11A2: Detailed Quality Indications
    emis_error_11A2: mod11A2: Average Emissivity Error Classes
    mandatory_qa_11A2: mod11A2: MODIS Land General Quality Assessment
    lst_error_11A2: mod11A2: Average LST Error Classes
    aerosol_quantity: mod13Q1: Quantity range of Aerosol
    brdf_correction_performed: mod13Q1: if BRDF correction performed
    cirrus_detected: mod09*s: StateQA Cirrus Detected
    cloud_shadow: mod09*s: StateQA Cloud Shadow
    cloud_state: mod09*s: StateQA Cloud State
    internal_cloud_algorithm: mod09*s: StateQA Internal Cloud Algorithm
    internal_fire_algorithm: mod09*s: StateQA Internal Fire Algorithm
    internal_snow_mask: mod09*s: StateQA Internal Snow Mask
    land_water: mod13Q1: separate land from various water objects
    mod35_snow_ice: mod09*s: StateQA mod35 Snow Ice
    pixel_adjacent_to_cloud: mod13Q1: if pixel is a cloud neighbour
    salt_pan: mod09*s: StateQA Salt Pan (mod09GAs)
    icm_cloudy: mod09*i: Internal CM: Cloudy
    icm_clear: mod09*i: Internal CM: Clear
    icm_high_clouds: mod09*i: Internal CM: High Clouds
    icm_low_clouds: mod09*i: Internal CM: Low Clouds
    icm_snow: mod09*i: Internal CM: Snow
    icm_fire: mod09*i: Internal CM: Fire
    icm_sun_glint: mod09*i: Internal CM: Sun Glint
    icm_dust: mod09*i: Internal CM: Dust
    icm_cloud_shadow: mod09*i: Internal CM: Cloud Shadow
    icm_pixel_is_adjacent_to_cloud: mod09*i: Internal CM: Pixel is Adjacent to Cloud
    icm_cirrus: mod09*i: Internal CM: Cirrus
    icm_pan_flag: mod09*i: Internal CM: Pan Flag
    icm_criteria_for_aerosol_retrieval: mod09*i: Internal CM: Criteria for Aerosol Retrieval
    icm_aot_has_clim_val: mod09*i: Internal CM: AOT (aerosol optical depth) has clim. val.
    vi_usefulness: mod13Q1: Quality estimation of the pixel
    mixed_clouds: mod13Q1: if pixel mixed with clouds
    possible_snow_ice: mod13Q1: if snow/ice present in pixel
    possible_shadow: mod13Q1: if shadow is present in pixel
    platform: mcd43B2: Quality of BRDF correction performed
    sun_z_angle_at_local_noon: mcd43B2: Quality of BRDF correction performed

band=string
    Band number of MODIS product (mod09Q1=[1,2],mod09A1=[1-7],m[o/y]d09GA=[1-7],m[o/y]d09CMG=[1-7], mcd43B2q=[1-7])
    Options: 1, 2, 3, 4, 5, 6, 7
    1: Band 1: Red
    2: Band 2: NIR
    3: Band 3: Blue
    4: Band 4: Green
    5: Band 5: SWIR 1
    6: Band 6: SWIR 2
    7: Band 7: SWIR 3

DESCRIPTION
i.modis.qc extracts Requested Quality Assessment flags from the following MODIS products: MOD09A1, MOD09Q1, MOD11A1, MOD11A2, MOD13A2, MOD13Q1, MCD43B2. This does include MOD09A1 QA_state_500m layer (see Notes).
Added MOD09GA support in 2016, it follows MOD09A1 and its StateQA, but does not have BRDF State QA, instead has Salt Pan State QA.

  MOD09A1 and MOD09Q1

MOD09A1/Q1: MODLAND QA Bits. bits=[0-1]

    •   [00]= class 0: Corrected product produced at ideal quality -- all bands

    •   [01]= class 1: Corrected product produced at less than ideal quality -- some or all bands

    •   [10]= class 2: Corrected product NOT produced due to cloud effect -- all bands

    •   [11]= class 3: Corrected product NOT produced due to other reasons -- some or all bands maybe be fill value (Note that a value of [11] overrides a value of [01])

MOD09Q1: Cloud State. bits=[2-3]

    •   [00]= class 0: Clear -- No clouds

    •   [01]= class 1: Cloudy

    •   [10]= class 2: Mixed

    •   [11]= class 3: Not Set ; Assumed Clear

MOD09Q1: Band-wise Data Quality 250m bits=[4-7][8-11]
MOD09A1: Band-wise Data Quality 500m bits=[2-5][6-9][10-13][14-17][18-21][22-25][26-29]

    •   [0000]= class 0: highest quality

    •   [0111]= class 1: noisy detector

    •   [1000]= class 2: dead detector; data interpolated in L1B

    •   [1001]= class 3: solar zenith ≥ 86 degrees

    •   [1010]= class 4: solar zenith ≥ 85 and < 86 degrees

    •   [1011]= class 5: missing input

    •   [1100]= class 6: internal constant used in place of climatological data for at least one atmospheric constant

    •   [1101]= class 7: correction out of bounds, pixel constrained to extreme allowable value

    •   [1110]= class 8: L1B data faulty

    •   [1111]= class 9: not processed due to deep ocean or cloud

    •   Class 10-15: Combination of bits unused

MOD09A1/Q1: Atmospheric correction bit=[12]/[30]

    •   [0]= class 0: Not Corrected product

    •   [1]= class 1: Corrected product

MOD09A1/Q1: Adjacency correction bit=[13]/[31]

    •   [0]= class 0: Not Corrected product

    •   [1]= class 1: Corrected product

MOD09Q1: Different orbit from 500m product, bit=[14]

    •   [0]= class 0: same orbit as 500m

    •   [1]= class 1: different orbit from 500m

MOD09A1s: Cloud State bits=[0-1]

    •   [00]= class 0: clear

    •   [01]= class 1: cloudy

    •   [10]= class 2: mixed

    •   [11]= class 3: not set, assumed clear

MOD09A1s: Cloud shadow bits=[2]

    •   [0]= class 0: no

    •   [1]= class 1: yes

MOD09A1s: Land/Water Flag bits=[3-5]

    •   [000]= class 0: Shallow ocean

    •   [001]= class 1: Land

    •   [010]= class 2: Ocean coastlines and lake shorelines

    •   [011]= class 3: Shallow inland water

    •   [100]= class 4: Ephemeral water

    •   [101]= class 5: Deep inland water

    •   [110]= class 6: Continental/moderate ocean

    •   [111]= class 7: Deep ocean

MOD09A1s: Aerosol Quantity bits=[6-7]

    •   [00]= class 0: Climatology

    •   [01]= class 1: Low

    •   [10]= class 2: Average

    •   [11]= class 3: High

MOD09A1s: Cirrus detected bits=[8-9]

    •   [00]= class 0: None

    •   [01]= class 1: Small

    •   [10]= class 2: Average

    •   [11]= class 3: High

MOD09A1s: Internal Cloud Algorithm Flag bits=[10]

    •   [0]= class 0: No cloud

    •   [1]= class 1: Cloud

MOD09A1s: Internal Fire Algorithm Flag bits=[11]

    •   [0]= class 0: No fire

    •   [1]= class 1: Fire

MOD09A1s: MOD35 snow/ice flag bits=[12]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

MOD09A1s: Pixel adjacent to cloud bits=[13]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

MOD09A1s: BRDF correction performed bits=[14]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

MOD09A1s: Internal Snow Mask bits=[15]

    •   [0]= class 0: No snow

    •   [1]= class 1: Snow

  MOD11A1

MOD11A1: Mandatory QA Flags bits=[0-1]

    •   [00]= class 0: LST produced, good quality, not necessary to examine more detailed QA

    •   [01]= class 1: LST produced, other quality, recommend examination of more detailed QA

    •   [10]= class 2: LST not produced due to cloud effects

    •   [11]= class 3: LST not produced primarily due to reasons other than cloud

MOD11A1: Data Quality Flag bits=[2-3]

    •   [00]= class 0: Good data quality of L1B in bands 31 and 32

    •   [01]= class 1: Other quality data

    •   [10]= class 2: TBD

    •   [11]= class 3: TBD

MOD11A1: Emis Error Flag bits=[4-5]

    •   [00]= class 0: Average emissivity error ≤ 0.01

    •   [01]= class 1: Average emissivity error ≤ 0.02

    •   [10]= class 2: Average emissivity error ≤ 0.04

    •   [11]= class 3: Average emissivity error > 0.04

MOD11A1: LST Error Flag bits=[6-7]

    •   [00]= class 0: Average LST error ≤ 1

    •   [01]= class 1: Average LST error ≤ 2

    •   [10]= class 2: Average LST error ≤ 3

    •   [11]= class 3: Average LST error > 3

  MOD11A2

MOD11A2: Mandatory QA Flags bits=[0-1]

    •   [00]= class 0: LST produced, good quality, not necessary to examine more detailed QA

    •   [01]= class 1: LST produced, other quality, recommend examination of more detailed QA

    •   [10]= class 2: LST not produced due to cloud effects

    •   [11]= class 3: LST not produced primarily due to reasons other than cloud

MOD11A2: Data Quality Flag bits=[2-3]

    •   [00]= class 0: Good data quality of L1B in 7 TIR bands

    •   [01]= class 1: Other quality data

    •   [10]= class 2: TBD

    •   [11]= class 3: TBD

MOD11A2: Emis Error Flag bits=[4-5]

    •   [00]= class 0: Average emissivity error ≤ 0.01

    •   [01]= class 1: Average emissivity error ≤ 0.02

    •   [10]= class 2: Average emissivity error ≤ 0.04

    •   [11]= class 3: Average emissivity error > 0.04

MOD11A2: LST Error Flag bits=[6-7]

    •   [00]= class 0: Average LST error ≤ 1

    •   [01]= class 1: Average LST error ≤ 2

    •   [10]= class 2: Average LST error ≤ 3

    •   [11]= class 3: Average LST error > 3

  MOD13A2

MOD13A2: Mandatory QA Flags 1km bits[0-1]

    •   [00]= class 0: VI produced, good quality

    •   [01]= class 1: VI produced, but check other QA

    •   [10]= class 2: Pixel produced, but most probably cloud

    •   [11]= class 3: Pixel not produced due to other reasons than clouds

MOD13A2: VI Usefulness Flag bits[2-5]

    •   [0000]= class 0: Highest quality

    •   [0001]= class 1: Lower quality

    •   [0010]= class 2: Decreasing quality

    •   [0100]= class 3: Decreasing quality

    •   [1000]= class 4: Decreasing quality

    •   [1001]= class 5: Decreasing quality

    •   [1010]= class 6: Decreasing quality

    •   [1100]= class 7: Lowest quality

    •   [1101]= class 8: Quality so low that it is not useful

    •   [1110]= class 9: L1B data faulty

    •   [1111]= class 10: Not useful for any other reason/not processed

MOD13A2: Aerosol quantity Flags 1km bits[6-7]

    •   [00]= class 0: Climatology

    •   [01]= class 1: Low

    •   [10]= class 2: Average

    •   [11]= class 3: High

MOD13A2: Adjacent cloud detected 1km bit[8]

    •   [00]= class 0: No

    •   [01]= class 1: Yes

MOD13A2: Atmosphere BRDF correction performed 1km bit[9]

    •   [00]= class 0: No

    •   [01]= class 1: Yes

MOD13A2: Mixed clouds 1km bit[10]

    •   [00]= class 0: No

    •   [01]= class 1: Yes

MOD13A2: Land/Water Flags 1km bits[11-13]

    •   [000]= class 0: Shallow Ocean

    •   [001]= class 1: Land (Nothing else but land)

    •   [010]= class 2: Ocean Coastlines and lake shorelines

    •   [011]= class 3: Shallow inland water

    •   [100]= class 4: Ephemeral water

    •   [101]= class 5: Deep inland water

    •   [110]= class 6: Moderate or continental ocean

    •   [111]= class 7: Deep ocean

MOD13A2: Possible Snow/Ice 1km bits[14]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

MOD13A2: Possible Shadow 1km bits[15]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

  MOD13Q1

MOD13Q1: Mandatory QA Flags 250m bits[0-1]

    •   [00]= class 0: VI produced, good quality

    •   [01]= class 1: VI produced, but check other QA

    •   [10]= class 2: Pixel produced, but most probably cloud

    •   [11]= class 3: Pixel not produced due to other reasons than clouds

MOD13Q1: VI Usefulness Flag 250m bits[2-5]

    •   [0000]= class 0: Highest quality

    •   [0001]= class 1: Lower quality

    •   [0010]= class 2: Decreasing quality

    •   [0100]= class 3: Decreasing quality

    •   [1000]= class 4: Decreasing quality

    •   [1001]= class 5: Decreasing quality

    •   [1010]= class 6: Decreasing quality

    •   [1100]= class 7: Lowest quality

    •   [1101]= class 8: Quality so low that it is not useful

    •   [1110]= class 9: L1B data faulty

    •   [1111]= class 10: Not useful for any other reason/not processed

MOD13Q1: Aerosol quantity Flags 250m bits[6-7]

    •   [00]= class 0: Climatology

    •   [01]= class 1: Low

    •   [10]= class 2: Average

    •   [11]= class 3: High

MOD13Q1: Adjacent cloud detected 250m bit[8]

    •   [00]= class 0: No

    •   [01]= class 1: Yes

MOD13Q1: Atmosphere BRDF correction performed 250m bit[9]

    •   [00]= class 0: No

    •   [01]= class 1: Yes

MOD13Q1: Mixed clouds 250m bit[10]

    •   [00]= class 0: No

    •   [01]= class 1: Yes

MOD13Q1: Land/Water Flags 250m bits[11-13]

    •   [000]= class 0: Shallow Ocean

    •   [001]= class 1: Land (Nothing else but land)

    •   [010]= class 2: Ocean Coastlines and lake shorelines

    •   [011]= class 3: Shallow inland water

    •   [100]= class 4: Ephemeral water

    •   [101]= class 5: Deep inland water

    •   [110]= class 6: Moderate or continental ocean

    •   [111]= class 7: Deep ocean

MOD13Q1: Possible Snow/Ice 250m bits[14]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

MOD13Q1: Possible Shadow 250m bits[15]

    •   [0]= class 0: No

    •   [1]= class 1: Yes

  MCD43B2

MCD43B2: Albedo Quality Ancillary Platform Data 1km bits[0-3]
SDS: BRDF_Albedo_Ancillary

    •   [0000]= class 0: Satellite Platform: Terra

    •   [0001]= class 1: Satellite Platform: Terrra/Aqua

    •   [0010]= class 2: Satellite Platform: Aqua

    •   [1111]= class 15: Fill Value

    •   Classes 3-14: Not used

MCD43B2: Albedo Quality Ancillary Land/Water Data 1km bits[4-7]
SDS: BRDF_Albedo_Ancillary

    •   [0000] class 0: Shallow Ocean

    •   [0001] class 1: Land (Nothing else but land)

    •   [0010] class 2: Ocean and lake shorelines

    •   [0011] class 3: Shallow inland water

    •   [0100] class 4: Ephemeral water

    •   [0101] class 5: Deep inland water

    •   [0110] class 6: Moderate or continental ocean

    •   [0111] class 7: Deep ocean

    •   [1111] class 15: Fill Value

    •   Classes 8-14: Not used

MCD43B2: Albedo Quality Ancillary Sun Zenith Angle at Local Solar Noon Data 1km bits[8-14]
SDS: BRDF_Albedo_Ancillary

    Returns integer value [0-90], 127 is Fill Value

MCD43B2: Band-wise Albedo Quality Data 1km
SDS: BRDF_Albedo_Band_Quality

bits[0-3][4-7][8-11][12-15][16-19][20-23][24-27]

    •   [0000]= class 0: best quality, 75% or more with best full inversions

    •   [0001]= class 1: good quality, 75% or more with full inversions

    •   [0010]= class 2: Mixed, 50% or less full inversions and 25% or less fill values

    •   [0011]= class 3: All magnitude inversions or 50% or less fill values

    •   [0100]= class 4: 75% or more fill values

    •   Classes 5-14: Not Used

    •   [1111]= class 15: Fill Value

NOTES
In MOD09A1: It seems that cloud related info is not filled properly in the standard QC (MOD09A1 in this module) since version 3, State-QA 500m images (MOD09A1s in this module) should be used (see Vermote et al., 2008). MOD11A2 quality control (QC) bands do not have a FillValue (No-data) according to MODIS Land Products site. However, the metadata of the QC bands (i.e.: gdalinfo QC_band) shows No-data=0. This value is then transformed into GRASS NULLs when data is imported through r.in.gdal. Applying i.modis.qc on those QC bands will not give the expected range of values in the different QC bits. Therefore, before using i.modis.qc, the user needs to set the NULL value in QC bands back to zero (i.e.: r.null map=QC_band null=0) or just edit the metadata with GDAL utilities before importing into GRASS. This is a known issue for MOD11A2 (8-day LST product), but other MODIS products might be affected as well.

TODO
Add more daily products.

REFERENCES

    •   MODIS Products

    •   Vermote E.F., Kotchenova S.Y., Ray J.P. MODIS Surface Reflectance User’s Guide. Version 1.2. June 2008. MODIS Land Surface Reflectance Science Computing Facility. Homepage

SEE ALSO
i.vi

AUTHOR
Yann Chemin

SOURCE CODE

Available at: i.modis.qc source code (history)

Latest change: Friday Aug 08 09:39:19 2025 in commit: ed72c71d8580e872cd6fd345c84a15c324764465

Main index | Imagery index | Topics index | Keywords index | Graphical index | Full index

© 2003-2026 GRASS Development Team, GRASS 8.6.0dev Reference Manual