REGRIDDING OF MODIS MOD10A1-v4 DAILY SNOW AND CLOUD COVER FRACTION TO ARCTIC-RIMS GRID (Serreze). Author: J.L. McCreight (e-mail: mccreigh the-at-symbol nsidc the-dot-symbol org) Data Set Attributes: ***************************************************************** (Original Data Source: MODIS MOD10A1-v4) Grid: Standard RIMS grid. Data: Snow and cloud cover fractions (of grid cell area) values from 0 to 100 percent ([0,100]). Missing value: -9999.0 Filenames: snow_percent_MODIS.YYYY.MM.txt cloud_percent_MODIS.YYYY.MM.txt where: YYYY is the 4 digit year [2001,2006] MM is the 2 digit year [01,12] Data format: These may be taken as space separated values. (The FORTRAN- style format statement is: '(I6,2F9.4,31F8.1)'.) Line 1: Year and month identifiers followed by product, units and author identifiers. Line 2: Colunm headers for following 39926 lines identifying grid cell index, latitude, longitude, and day of month (from 1-31). Line 3-39928: Index, latititude, longitude, % (*31 columns for each day of the month.) Notes: ***************************************************************** 1. General Overview The RIMS grid is a subset of the EASE northern hemisphere, 25km, equal-area grid. Regridding of Modis MOD10A1-v4 ISIN 500m grid data to EASE 25km is done via the Modis Reprojection Tool (version 3.1 on linux). 2. Fraction Rules The following is the IDL code used to determine what MOD10A1-v4 values are used in computing the snow and cloud fractions and how the fractions are actually found. The variable 'b' is the subpixel (less than EASE 25km) data. The following shows which MODIS values are considered missing, how water is treated, and how the snow and cloud fractions are actually computed. Cloud fraction is the fraction of non-missing land pixels which contain cloud (the denominator is expressed below as the sum of all cloudy, snow-covered and snow-free pixels). Snow fraction is assumed to be the fraction of non-missing, cloud-free, snow-covered pixels to the total of snow-free and snow-covered pixels. Code: *********************************************************************** ;find number of 1.25k grids that are missing or masked ;Pixel values (version 4): ;0: Missing ;1: No decision ;3: Scan angle limit exceeded ;4: Erroneous data ;5: Non-production mask ;7: Tile fill ;8: No input tile expected ;11: Night ;25: Snow-free land ;37: Lake or inland water ;39: Open water (ocean) ;50: Cloud obscured ;100: Snow-covered lake ice ;200: Snow ;254: Detector saturated ;255: Fill miss = where(b EQ 0 OR b EQ 1 OR $ b EQ 3 OR b EQ 4 OR $ b EQ 5 OR b EQ 7 OR $ b EQ 8 OR b EQ 11 OR $ b eq 254 OR b eq 255, num_miss) cloud = where(b eq 50,num_cloud) ; cloud cover code ;turns out that water is time invariant, it is a mask applied to all pixels ;where water is known to be. it does not enter in to our equations. ;for example, there is NEVER cloud over water. ; water = where(b EQ 37 OR b EQ 39 OR b EQ 100,num_water) ;find number of grids that are snow cover snow = where(b eq 200,num_snow) nosnow = where(b eq 25,num_nosnow) ;compute % cloud in the 25^2km grid ;if more than half of the 25k grid is missing/masked, then consider it all junk IF num_miss lt (nn^2)/2 THEN $ pcloud[i,k] = $ 100.*float(num_cloud)/float(num_cloud+num_nosnow+num_snow) ;compute % snow over ONLY land, this is not % per pixel, you need the % land ;per pixel in E25 cell to get that number - which we have.... ;if more than half of the 25k grid is missing/masked, then consider it all junk IF num_miss lt (nn^2)/2 THEN $ psnow[i,k] = $ 100.*float(num_snow)/float(num_nosnow+num_snow)