;-------------------------------------------------------------------------- ; ECM surface types ; ; if isccp set, the desert is formed wihout the 3.75 micron sfc emissivity ;-------------------------------------------------------------------------- pro make_ecm_surface_type, training_data, sfc_type, isccp=isccp ;--- land class definitions SHALLOW_OCEAN = 0 LAND = 1 COASTLINE = 2 SHALLOW_INLAND_WATER = 3 EPHEMERAL_WATER = 4 DEEP_INLAND_WATER = 5 MODERATE_OCEAN = 6 DEEP_OCEAN = 7 ; snow class definitions NO_SNOW = 1 SEA_ICE = 2 SNOW = 3 ; surface type definitions WATER_SFC = 0 EVERGREEN_NEEDLE_SFC = 1 EVERGREEN_BROAD_SFC = 2 DECIDUOUS_NEEDLE_SFC = 3 DECIDUOUS_BROAD_SFC = 4 MIXED_FORESTS_SFC = 5 WOODLANDS_SFC = 6 WOODED_GRASS_SFC = 7 CLOSED_SHRUBS_SFC = 8 OPEN_SHRUBS_SFC = 9 GRASSES_SFC = 10 CROPLANDS_SFC = 11 BARE_SFC = 12 URBAN_SFC = 13 n = training_data.land_class.length ;--- default LAND/OCEAN values sfc_type = make_array(n,/BYTE,VALUE=1) idx = where(training_data.land_class eq LAND,cc) if (cc gt 0) then sfc_type[idx] = 3 ;--- #2 - Shallow Ocean idx = where(training_data.land_class eq MODERATE_OCEAN or $ training_data.land_class eq DEEP_INLAND_WATER or $ training_data.land_class eq SHALLOW_INLAND_WATER or $ training_data.land_class eq SHALLOW_OCEAN, cc) if (cc gt 0) then sfc_type[idx] = 2 ;--- include into Shallow Ocean SST fronts idx = where(training_data.land_class ne LAND and training_data.sst_background_uni_3x3 gt 0.5,cc) if (cc gt 0) then sfc_type[idx] = 2 ;--- #3 Unfrozen Land idx = where(training_data.land_class eq LAND or $ training_data.land_class eq COASTLINE or $ training_data.land_class eq EPHEMERAL_WATER,cc) if (cc gt 0) then sfc_type[idx] = 3 ;--- #4 Frozen Land idx = where(training_data.snow_class eq SNOW and training_data.latitude gt -60.0,cc) if (cc gt 0) then sfc_type[idx] = 4 ;--- #5 - Arctic idx = where(training_data.latitude gt 0 and training_data.snow_class eq SEA_ICE,cc) if (cc gt 0) then sfc_type[idx] = 5 ;---- #6 - Antarctica idx = where(training_data.latitude lt 0 and training_data.snow_class eq SEA_ICE,cc) if (cc gt 0) then sfc_type[idx] = 6 idx = where(training_data.latitude lt -60 and training_data.snow_class eq SNOW,cc) if (cc gt 0) then sfc_type[idx] = 6 idx = where(training_data.latitude gt 60 and training_data.longitude gt -75.0 and training_data.longitude lt -10 and $ (training_data.land_class eq LAND or training_data.land_class eq COASTLINE) and $ training_data.snow_class eq SNOW, cc) if (cc gt 0) then sfc_type[idx] = 6 ;--- #7 Desert - subset of unfrozen land ;--- isccp-ng if (keyword_set(isccp)) then begin idx = where(sfc_type eq 3 and abs(training_data.latitude) lt 60.0 and $ (training_data.surface_type eq CLOSED_SHRUBS_SFC or $ training_data.surface_type eq OPEN_SHRUBS_SFC or $ training_data.surface_type eq BARE_SFC),cc) if (cc gt 0) then sfc_type[idx] = 7 endif else begin idx = where(sfc_type eq 3 and abs(training_data.latitude) lt 60.0 and $ training_data.emiss_sfc_3_75um_nom lt 0.93 and $ (training_data.surface_type eq CLOSED_SHRUBS_SFC or $ training_data.surface_type eq OPEN_SHRUBS_SFC or $ training_data.surface_type eq GRASSES_SFC or $ training_data.surface_type eq BARE_SFC),cc) if (cc gt 0) then sfc_type[idx] = 7 endelse end