MODIS MAIAC surface BRF data suite (MCD19A1) Description: MAIAC is a new advanced algorithm which uses time series analysis and a combination of pixel- and image-based processing to improve accuracy of cloud detection, aerosol retrievals and atmospheric correction. Consistently with the entire C6 MODIS land processing, the top-of-atmosphere (TOA) L1B reflectance includes standard C6 calibration augmented with polarization correction for MODIS Terra, residual de-trending and MODIS Terra-to-Aqua cross-calibration (Lyapustin, A., Y. Wang, X. Xiong, G. Meister, S. Platnick, R. Levy, B. Franz, S. Korkin, T. Hilker, J. Tucker, F. Hall, P. Sellers, A. Wu, A. Angal (2014), Science Impact of MODIS C5 Calibration Degradation and C6+ Improvements, Atmos. Meas. Tech., 7, 4353-4365, doi:10.5194/amt-7-4353-2014). The L1B data are first gridded into 1km MODIS sinusoid grid using area-weighted method. Due to cross-calibration, MAIAC processes MODIS Terra and Aqua jointly as a single sensor. MAIAC provides a suite of atmospheric and surface products in three HDF-EOS 2.1.x files: daily MCD19A1 (spectral BRF, or surface reflectance), daily MCD19A2 (atmospheric properties), and 8-day MCD19A3 (spectral BRDF/albedo). Point of Contact: Yujie Wang yujie.wang@nasa.gov Principal Investigator(s): Alexei Lyapustin Code 613 NASA GSFC 8800 Greenbelt Road Greenbelt, MD 20771 Phone: 301-614-5998 Email: alexei.i.lyapustin@nasa.gov ============================================================================ General Construct Geographic Grid Projection Parameters: Sinusoidal Projection Projection GCTP_SNSOID ProjParam[0] 6371007.181 ProjParam[1 to 7] 0.0 ProjParam[8] 0.0 ProjParam[9] 0.0 ProjParam[10] 0.0 ProjParam[11 to 12] 0.0 Spherecode -1 GridOrigin HDFE_CENTER dimensions: Orbits:grid5km = variable(defined by global attribute Orbit_amount) ; YDim:grid5km = 240 ; XDim:grid5km = 240 ; Orbits:grid1km = variable (defined by global attribute Orbit_amount) ; YDim:grid1km = 1200 ; XDim:grid1km = 1200 ; Orbits:grid500m = variable (defined by global attribute Orbit_amount) ; YDim:grid500m = 2400 ; XDim:grid500m = 2400 ; variables: short cosSZA(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; cosSZA:long_name = "cosine of Solar Zenith Angle" ; cosSZA:scale_factor = 0.0001 ; cosSZA:add_offset = 0. ; cosSZA:unit = "none" ; cosSZA:_FillValue = -28672s ; cosSZA:valid_range = 0s, 10000s ; short cosVZA(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; cosVZA:long_name = "cosine of View Zenith Angle" ; cosVZA:scale_factor = 0.0001 ; cosVZA:add_offset = 0. ; cosVZA:unit = "none" ; cosVZA:_FillValue = -28672s ; cosVZA:valid_range = 0s, 10000s ; short RelAZ(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; RelAZ:long_name = "Relative Azimuth Angle" ; RelAZ:scale_factor = 0.01 ; RelAZ:add_offset = 0. ; RelAZ:unit = "none" ; RelAZ:_FillValue = -28672s ; RelAZ:valid_range = -18000s, 18000s ; short Scattering_Angle(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; Scattering_Angle:long_name = "Scattering Angle" ; Scattering_Angle:scale_factor = 0.01 ; Scattering_Angle:add_offset = 0. ; Scattering_Angle:unit = "none" ; Scattering_Angle:_FillValue = -28672s ; Scattering_Angle:valid_range = -18000s, 18000s ; short SAZ(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; SAZ:long_name = "Solar Azimuth Angle" ; SAZ:scale_factor = 0.01 ; SAZ:add_offset = 0. ; SAZ:unit = "none" ; SAZ:_FillValue = -28672s ; SAZ:valid_range = -18000s, 18000s ; short VAZ(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; VAZ:long_name = "Solar Azimuth Angle" ; VAZ:scale_factor = 0.01 ; VAZ:add_offset = 0. ; VAZ:unit = "none" ; VAZ:_FillValue = -28672s ; VAZ:valid_range = -18000s, 18000s ; short Glint_Angle(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; Glint_Angle:long_name = "Glint Angle" ; Glint_Angle:scale_factor = 0.01 ; Glint_Angle:add_offset = 0. ; Glint_Angle:unit = "none" ; Glint_Angle:_FillValue = -28672s ; Glint_Angle:valid_range = -18000s, 18000s ; short sur_refl1(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl1:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band1" ; sur_refl1:scale_factor = 0.0001 ; sur_refl1:add_offset = 0. ; sur_refl1:unit = "none" ; sur_refl1:_FillValue = -28672s ; sur_refl1:valid_range = -100s, 16000s ; short sur_refl2(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl2:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band2" ; sur_refl2:scale_factor = 0.0001 ; sur_refl2:add_offset = 0. ; sur_refl2:unit = "none" ; sur_refl2:_FillValue = -28672s ; sur_refl2:valid_range = -100s, 16000s ; short sur_refl3(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl3:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band3" ; sur_refl3:scale_factor = 0.0001 ; sur_refl3:add_offset = 0. ; sur_refl3:unit = "none" ; sur_refl3:_FillValue = -28672s ; sur_refl3:valid_range = -100s, 16000s ; short sur_refl4(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl4:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band4" ; sur_refl4:scale_factor = 0.0001 ; sur_refl4:add_offset = 0. ; sur_refl4:unit = "none" ; sur_refl4:_FillValue = -28672s ; sur_refl4:valid_range = -100s, 16000s ; short sur_refl5(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl5:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band5" ; sur_refl5:scale_factor = 0.0001 ; sur_refl5:add_offset = 0. ; sur_refl5:unit = "none" ; sur_refl5:_FillValue = -28672s ; sur_refl5:valid_range = -100s, 16000s ; short sur_refl6(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl6:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band6" ; sur_refl6:scale_factor = 0.0001 ; sur_refl6:add_offset = 0. ; sur_refl6:unit = "none" ; sur_refl6:_FillValue = -28672s ; sur_refl6:valid_range = -100s, 16000s ; short sur_refl7(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl7:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band7" ; sur_refl7:scale_factor = 0.0001 ; sur_refl7:add_offset = 0. ; sur_refl7:unit = "none" ; sur_refl7:_FillValue = -28672s ; sur_refl7:valid_range = -100s, 16000s ; short sur_refl8(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl8:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band8" ; sur_refl8:scale_factor = 0.0001 ; sur_refl8:add_offset = 0. ; sur_refl8:unit = "none" ; sur_refl8:_FillValue = -28672s ; sur_refl8:valid_range = -100s, 16000s ; short sur_refl9(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl9:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band9" ; sur_refl9:scale_factor = 0.0001 ; sur_refl9:add_offset = 0. ; sur_refl9:unit = "none" ; sur_refl9:_FillValue = -28672s ; sur_refl9:valid_range = -100s, 16000s ; short sur_refl10(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl10:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band10" ; sur_refl10:scale_factor = 0.0001 ; sur_refl10:add_offset = 0. ; sur_refl10:unit = "none" ; sur_refl10:_FillValue = -28672s ; sur_refl10:valid_range = -100s, 16000s ; short sur_refl11(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl11:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band11" ; sur_refl11:scale_factor = 0.0001 ; sur_refl11:add_offset = 0. ; sur_refl11:unit = "none" ; sur_refl11:_FillValue = -28672s ; sur_refl11:valid_range = -100s, 16000s ; short sur_refl12(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; sur_refl12:long_name = "Surface_bidirectinal_reflectance_factor_1km, Band12" ; sur_refl12:scale_factor = 0.0001 ; sur_refl12:add_offset = 0. ; sur_refl12:unit = "none" ; sur_refl12:_FillValue = -28672s ; sur_refl12:valid_range = -100s, 16000s ; short Sigma_BRFn1(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; Sigma_BRFn1:long_name = "BRFn uncertainties over time, Band1" ; Sigma_BRFn1:scale_factor = 0.0001 ; Sigma_BRFn1:add_offset = 0. ; Sigma_BRFn1:unit = "none" ; Sigma_BRFn1:_FillValue = -28672s ; Sigma_BRFn1:valid_range = -100s, 16000s ; short Sigma_BRFn2(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; Sigma_BRFn2:long_name = "BRFn uncertainties over time, Band2" ; Sigma_BRFn2:scale_factor = 0.0001 ; Sigma_BRFn2:add_offset = 0. ; Sigma_BRFn2:unit = "none" ; Sigma_BRFn2:_FillValue = -28672s ; Sigma_BRFn2:valid_range = -100s, 16000s ; short Snow_Fraction(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; Snow_Fraction:long_name = "Snow Fraction in 1km pixel" ; Snow_Fraction:scale_factor = 0.0001 ; Snow_Fraction:add_offset = 0. ; Snow_Fraction:unit = "none" ; Snow_Fraction:_FillValue = -28672s ; Snow_Fraction:valid_range = 0s, 10000s ; short Snow_Grain_Size(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; Snow_Grain_Size:long_name = "Snow Grain Diameter (mm)" ; Snow_Grain_Size:scale_factor = 0.0001 ; Snow_Grain_Size:add_offset = 0. ; Snow_Grain_Size:unit = "mm" ; Snow_Grain_Size:_FillValue = -28672s ; Snow_Grain_Size:valid_range = 0s, 30000s ; short Snow_Fit(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; Snow_Fit:long_name = "Snow Reflectance RMSE in Band 1, 5 and 7" ; Snow_Fit:scale_factor = 0.0001 ; Snow_Fit:add_offset = 0. ; Snow_Fit:unit = "none" ; Snow_Fit:_FillValue = -28672s ; Snow_Fit:valid_range = 0s, 30000s ; short Status_QA(Orbits:grid1km, YDim:grid1km, XDim:grid1km) ; Status_QA:long_name = "Status_QA" ; Status_QA:unit = "none" ; Status_QA:data description = "Bits Definition", "0-2 Cloud Mask\n", " 000 --- Undefined\n", " 001 --- Clear\n", " 010 --- Possible Cloudy\n", " 011 --- Cloudy \n", " 101 --- Cloud shadow\n", " 110 --- Fire hotspot\n", " 111 --- Water Sediments\n", "3-4 Land Water Snow/ice Mask\n", " 00 --- Land\n", " 01 --- Water\n", " 10 --- Snow\n", " 11 --- Ice\n", "5-7 Adjacency Maks\n", " 000 --- Normal condition\n", " 001 --- Adjacent to cloud\n", " 010 --- Surrounded by more than 8 cloudy pixels\n", " 011 --- Single cloudy pixel\n", " 100 --- Adjacent to snow\n", " 101 --- Snow was previously detected for this pixel\n", "8 AOT level\n", " 0 --- AOT is low (<=0.6)\n", " 1 ---- AOT is high (> 0.6) or undefined\n", "9 Algorithm Initialization Status\n", " 0 ---- Algorithm is initialized\n", " 1 ---- Algorithm is not initialized\n", "10 BRF retrieved over snow, use AOT = 0.05\n", " 0 --- no\n", " 1 --- yes\n", "11 Altitude >3.5km, BRF is retrieved with AOT =0.02\n", " 0 --- no\n", " 1 --- yes\n", "12-14 Surface Change Mask\n", " 000 --- no change\n", " 001 --- Regular change Green up \n", " 010 --- Big change Green up\n", " 011 --- Regular change Senescence\n", " 100 --- Big change Senescence\n", " 101 --- Flooding\n", " Regular Change: Relative change in Red and NIR nadir-normalized BRF is more than 5% but less than 15%\n", " Big Change : Relative change in Red and NIR nadir-normalized BRF is more than 15% \n", " 15 Reserved \n", "" ; Status_QA:_FillValue = 0s ; Status_QA:valid_range = 0s, 255s ; short sur_refl_500mB1(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB1:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band1" ; sur_refl_500mB1:scale_factor = 0.0001 ; sur_refl_500mB1:add_offset = 0. ; sur_refl_500mB1:unit = "none" ; sur_refl_500mB1:_FillValue = -28672s ; sur_refl_500mB1:valid_range = -100s, 16000s ; short sur_refl_500mB2(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB2:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band2" ; sur_refl_500mB2:scale_factor = 0.0001 ; sur_refl_500mB2:add_offset = 0. ; sur_refl_500mB2:unit = "none" ; sur_refl_500mB2:_FillValue = -28672s ; sur_refl_500mB2:valid_range = -100s, 16000s ; short sur_refl_500mB3(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB3:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band3" ; sur_refl_500mB3:scale_factor = 0.0001 ; sur_refl_500mB3:add_offset = 0. ; sur_refl_500mB3:unit = "none" ; sur_refl_500mB3:_FillValue = -28672s ; sur_refl_500mB3:valid_range = -100s, 16000s ; short sur_refl_500mB4(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB4:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band4" ; sur_refl_500mB4:scale_factor = 0.0001 ; sur_refl_500mB4:add_offset = 0. ; sur_refl_500mB4:unit = "none" ; sur_refl_500mB4:_FillValue = -28672s ; sur_refl_500mB4:valid_range = -100s, 16000s ; short sur_refl_500mB5(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB5:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band5" ; sur_refl_500mB5:scale_factor = 0.0001 ; sur_refl_500mB5:add_offset = 0. ; sur_refl_500mB5:unit = "none" ; sur_refl_500mB5:_FillValue = -28672s ; sur_refl_500mB5:valid_range = -100s, 16000s ; short sur_refl_500mB6(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB6:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band6" ; sur_refl_500mB6:scale_factor = 0.0001 ; sur_refl_500mB6:add_offset = 0. ; sur_refl_500mB6:unit = "none" ; sur_refl_500mB6:_FillValue = -28672s ; sur_refl_500mB6:valid_range = -100s, 16000s ; short sur_refl_500mB7(Orbits:grid500m, YDim:grid500m, XDim:grid500m) ; sur_refl_500mB7:long_name = "Surface_bidirectinal_reflectance_factor_500m, Band7" ; sur_refl_500mB7:scale_factor = 0.0001 ; sur_refl_500mB7:add_offset = 0. ; sur_refl_500mB7:unit = "none" ; sur_refl_500mB7:_FillValue = -28672s ; sur_refl_500mB7:valid_range = -100s, 16000s ; float Fv(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; Fv:long_name = "Volumetric kernel" ; Fv:unit = "none" ; Fv:_FillValue = -99999.f ; Fv:valid_range = 0.f, 0.f ; float Fg(Orbits:grid5km, YDim:grid5km, XDim:grid5km) ; Fg:long_name = "Geometric kernel" ; Fg:unit = "none" ; Fg:_FillValue = -99999.f ; Fg:valid_range = 0.f, 0.f ;