Adjacent Pixel Cloud Confidence Value 00 = 0 = Confident Clear 01 = 1 = Probably Clear 10 = 2 = Probably Cloudy 11 = 3 = Confident Cloudy 2 Initially copied from VCM, but subsequently modified to be the most cloudy category available from the adjacent 3x3 pixel cloud confidence flags CM_CONF_CLOUDY (3) CM_PROB_CLOUDY(2) CM_PROB_CLEAR(1) CM_CONF_CLEAR(0) Land/Water Background 000 = 0 = Land & Desert 001 = 1 = Land, No Desert 010 = 2 = Inland Water 011 = 3 = Sea Water 101 = 5 = Coastal 110 = 6 = Ephemeral Water 3 Direct copy from VCM, add a new surface type if ephemeral water is detected in the internal test over land. CM_DESERT (0) CM_LAND (1) CM_IN_WATER(2) CM_SEA_WATER (3) CM_COASTAL (5) AOT_EPHWAT (6): New type added through internal test over land Bad SDR 1 = Yes 0 = No 1 AOTQFYES(1): If channel reflectance or brightness temperature are missing (<-999.0) Over land: Over water: M3- 11,
M15,M16 AOTQFNO(0): otherwise A.1.3. QF3 Flag Values Bits Conditions Notes Day/Night Flag 00 = 0 =Day 01 = 1 =Low Sun, Degraded 10 = 2 = Twilight, Excluded 11 = 3 = Night 2 AOTNIGHT (3): Solar zenith angle > 85° AOTSOLZAEX (2): 80° < Solar zenith angle ≤ 85° AOTSOLZADEG (1): 65° < Solar zenith angle ≤ 80° AOTDAY (0): Solar zenith angle ≤ 65°
Bad SDR 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has bad SDR Sunglint 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has sunglint Cloud Shadow 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has cloud shadow Snow/Ice 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has snow/ice Fire 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has fire A.2.3. QF3 Flag Values Bits Conditions Notes Low sun, degraded 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has the day/night flag set to 'Low sun, degraded' (65º < Solar zenith angle ≤ 80º) Low sun, excluded 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has the day/night flag set to 'Low sun, excluded' (80º < Solar zenith angle ≤ 85º) Bright surface (land)/Shallow or Turbid Water (ocean) 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has a bright pixel (land) or turbid/shallow water (ocean) Low AOT, APSP Excluded 1 = Yes 0 = No 1 Yes: Any pixel in the 8x8 horizontal cell has excluded APSP A.2.4. QF4 Flag Values Bits Conditions Notes Land Model Aerosol Index (land) 100 = 4 = Urban, Polluted 011 = 3 = Urban, Clean 010 = 2 = Smoke, Low Absorption 001 = 1 = Smoke, High Absorption 000 = 0 = Dust 3 Selects the dominant aerosol model (largest number of pixels involved in the EDR aggregation)
Suspended Matter Detection Product Quality 11 = 3 = High 10 = 2 = Medium 01 = 1 = Low 00 = 0 = Not Produced 2 High: Pixel SM type quality is good Medium: Pixel SM type quality is degraded Low: Pixel SM type quality is excluded Not Produced: Pixel SM type quality is not produced Pixel SM type quality is from Aerosol IP product, it is set by default to the AOT quality (see Table 3 for conditions) and then changed under the following conditions: Excluded: AOT at 550 nm < 0.5 Good: If volcanic ash is detected, SM type quailty is reset to good no matter what the AOT quality is Suspended Matter Type Product Quality 11 = 3 = High 10 = 2 = Medium 01 = 1 = Low 00 = 0 = Not Produced 2 High: Pixel SM type quality is good and "Low AOT, SM Typing Excluded" flag is not set (AOT at 550 nm ≤ 0.15 (no SM) or AOT at 550 nm ≥ 0.5) Medium: Pixel SM type quality is degraded and "Low AOT, SM Typing Excluded" is not set (AOT at 550 nm ≤ 0.15 (no SM) or AOT at 550 nm ≥ 0.5) Low: Pixel SM type quality is good/degraded and "Low AOT, SM Typing Excluded" is set (0.15 < AOT at 550 nm < 0.5) Not Produced: Pixel SM type quality is not produced Pixel SM type quality is from Aerosol IP product, it is set by default to the AOT quality and then changed under the following conditions: Excluded: AOT at 550 nm < 0.5 Good: If volcanic ash is detected,
Flag Values Bits Conditions Notes Cloud Contamination 1 = Yes 0 = No 1 Yes: Pixel is not confidently clear Cloud adjacent to cell 1 = Yes 0 = No 1 Yes: Pixel adjacent cloud flag is confident or probably cloudy Cirrus Contamination 1 = Yes 0 = No 1 Copied from Aerosol IP Cirrus Quality Flag Bad SDR 1 = Yes 0 = No 1 Copied from Aerosol IP Bad SDR Quality Flag Sunglint 1 = Yes 0 = No 1 Yes: Pixel has sunglint flag set Cloud Shadow 1 = Yes 0 = No 1 Copied from Aerosol IP Cloud Shadow Quality Flag Snow/Ice 1 = Yes 0 = No 1 Copied from Aerosol IP Snow/Ice Quality Flag Fire 1 = Yes 0 = No 1 Copied from Aerosol IP Fire Quality Flag A.3.3. QF3 Flag Values Bits Conditions Notes Smoke Concentration out of Expected Range 1 = Yes 0 = No 1 Yes: Pixel smoke concentration is beyond the expected range (0-1000 µg/m3) Excluded SM typing 1 = Yes 0 = No 1 Copied from the Aerosol IP SM Typing Excluded Quality Flag Excluded SM Detection 1 = Yes 0 = No 1 Copied from the Aerosol IP SM Detection Excluded Quality Flag
Low Sun 1 = Yes 0 = No 1 Yes: IP day/night flag is set to 'Low sun, degraded' (65º < Solar zenith angle ≤ 80º) Day/Night flag is from Aerosol IP Product Bright Surface/ Shallow or Turbid Water 1 = Yes 0 = No 1 Yes: IP bright pixel or turbid/shallow water flag is set Bright Surface and Turbid/Shallow Water flag is from Aerosol IP Product Appendix B: Helpful Tools for Working with VIIRS Files B.1 HDF5 Tools For users unaccustomed to working with HDF5 formatted files, the HDF Group has a tutorial with example programs and available tools (including HDFView) on their website at . B.2 IDL Tools IDL has a built-in library of commands for HDF5 files. Documentation can be found online at or using IDL Help. Also, Michael Galloy has written a particularly helpful IDL program to read HDF5 arrays into IDL. It is available at . Example usages for reading in fields from the VIIRS Aerosol EDR and Aerosol Geolocation is below. Extracts Latitude and Longitude from Aerosol Geolocation: Latitude = mg_h5_getdata(GAERO_File, ‘/All_Data/VIIRS-Aeros-EDR-GEO_All/Latitude’) Longitude = mg_h5_getdata(GAERO_File, Extracts Day/Night Metadata from Aerosol Geolocation: DayNight = mg_h5_getdata(GAERO_File, Extracts AOT and AOT Scale and Offset from Aerosol EDR and converts to floating point numbers: AOT = mg_h5_getdata(VAOOO_File, AOT_Factors = mg_h5_getdata(VAOOO_File, AOT_float = (AOT * AOT_Factors[0]) + AOT_Factors[1]