AMMA icon
  ALMIP-2 Home
  Executive Summary
  Input Data
  Output Data
  ALMIP (Phase 1)
  ALMIP2 Workshop
  AMMA Related:
  AMMA International
ALMIP title banner

Input Data

Page Contents:

  1. Atmospheric Forcing
  2. Land Surface Parameter data
  3. Input Data server

Atmospheric Forcing

The model atmospheric forcing consists in two scales, local and mesoscale. The properties of each are described below.

Mesoscale Control Forcing

The default or control mesoscale forcings are provided at a 0.05 degree spatial resolution with a 30 minute timestep for at least one annual cycle for each mesoscale domain. The meteorological variables (air temperature (K) and specific humidity (kg kg-1), surface pressure (Pa), and wind speed (m s-1)) are derrived from short term European Centre for Medium-Range Weather Forecasts (ECMWF) forecast data (using ALMIP1 data). Details on the construction of the forcing can be found in the ALMIP1 Overview paper. The data have been spatially interpolated to the mesoscale grids using a simple Cressman type approach. Atmospheric state variables correspond to a height at 10 m above the surface. Elevation adjustments have been done on Tair, Qair (RH is interpolated) and PSurf using the higher spatial resolution topography together with the hypsometric equation (this has only minor effects owing to the maximum range in grid elevation which is on the order of 150 m or so). Shortwave and Longwave radiative fluxes (W m-2) are taken straight from the operational LAND surface analysis Satellite Applications Facility (LAND-SAF) products (originally at 3 km spatial and 15 minute temporal resolutions before interpolation).

Finally, the rainfall (kg m-2 s-1) uses the Best Lagrangian-krigged method. It is defined as follows: a Lagrangian methodology when coherent structures are resolved by the raingauge network (squall lines, etc.). When criteria for this method are not met, rainfall is spatially interpolated using a classic krigging approach. Corresponding monthly average plots are shown below. In addition, animated gif images for a single rain event over the Niger meso-domain can be viewed comparing a radar derived rainfield, the classic krigged rainfiel, and the Lagrangian rainfield. The points corrsespond to the location of the rain gauges. For more information on the Lagrangian methodology, see Vischel et al. (2011).

Note that forcings exist (for the given time period) when indicated below. Also note that this table will be updated as time goes on. Finally, the rainfall is color-fill contoured in mm day-1, while the dashed contours correspond to the number of days of the month which have total rainfall exceeding 1 mm day-1.

Site 20052006 20072008
Niger Tair Tair Tair Tair
Niger Qair Qair Qair Qair
Niger Wind Wind Wind Wind
Niger PSurf PSurf PSurf PSurf
Niger SWdown SWdown SWdown SWdown
Niger LWdown LWdown LWdown LWdown
Niger Rainf Rainf Rainf Rainf
Benin Tair Tair Tair Tair
Benin Qair Qair Qair Qair
Benin Wind Wind Wind Wind
Benin PSurf PSurf PSurf PSurf
Benin SWdown SWdown SWdown SWdown
Benin LWdown LWdown LWdown LWdown
Benin Rainf Rainf Rainf Rainf
Mali Tair Tair Tair
Mali Qair Qair Qair
Mali Wind Wind Wind
Mali PSurf PSurf PSurf
Mali SWdown SWdown SWdown
Mali LWdown LWdown LWdown
Mali Rainf

Mesoscale Forcing with Theissen Rainfall

The atmospheric variables and radiative fluxes are identical to those in the Mesoscale Control Forcing Experiment, except that the rainfall has been replaced by a dataset using the Theissen (Nearest Neighbor) approach for spatial interpolation (using the same raingauge input data). Corresponding monthly average plots are shown below.

Note that forcings exist (for the given time period) when indicated below. Also note that this table will be updated as time goes on. Finally, the rainfall is color-fill contoured in mm day-1, while the dashed contours correspond to the number of days of the month which have total rainfall exceeding 1 mm day-1.

Site 20052006 20072008
Niger Rainf Rainf Rainf Rainf
Benin Rainf Rainf Rainf Rainf
Mali Rainf Rainf Rainf

Mesoscale Grid Coordinates

The mesoscale grids use a lat-lon projection with a spatial resolution of 0.05o. The domain limits and number of pixels for each domain are (degrees East and North are positive):

                      XLONMIN =  1.45          
                      XLONMAX =  2.85          
                      XLATMIN =  8.95          
                      XLATMAX = 10.20         
                      NLON    = 28             
                      NLAT    = 25

                      XLONMIN = -1.90          
                      XLONMAX = -1.20          
                      XLATMIN = 15.00          
                      XLATMAX = 15.70          
                      NLON    = 14             
                      NLAT    = 14


                      XLONMIN =  1.55          
                      XLONMAX =  3.15          
                      XLATMIN = 12.85          
                      XLATMAX = 14.15          
                      NLON    = 32             
                      NLAT    = 26

So for example for Benin, the centers of each pixel (in the NetCDF file defined as lon,lat) are:
lon = 1.475, 1.525, 1.575, 1.625, 1.675, 1.725, 1.775, 1.825, 1.875, 1.925,
   1.975, 2.025, 2.075, 2.125, 2.175, 2.225, 2.275, 2.325, 2.375, 2.425,
   2.475, 2.525, 2.575, 2.625, 2.675, 2.725, 2.775, 2.825 ;

lat = 8.975, 9.025, 9.075, 9.125, 9.175, 9.225, 9.275, 9.325, 9.375, 9.425,
   9.475, 9.525, 9.575, 9.625, 9.675, 9.725, 9.775, 9.825, 9.875, 9.925,
   9.975, 10.025, 10.075, 10.125, 10.175 ;

Sample NetCDF header for the Mesoscale Experiments: Atmospheric Forcing for the Oueme Domain

netcdf Forcing_AMMA_0.05_Oueme_ECMWF_SAF_Lagrangien_2008 {
	lon = 28 ;
	lat = 25 ;
	height = 1 ;
	time = UNLIMITED ; // (17569 currently)
	float time(time) ;
		time:units = "seconds since 2008-01-01 00:00:00" ;
		time:axis = "T" ;
		time:calendar = "gregorian" ;
		time:long_name = "Time" ;
		time:standard_name = "time" ;
	float lon(lon) ;
		lon:axis = "X" ;
		lon:units = "degrees_east" ;
		lon:long_name = "Longitude" ;
		lon:standard_name = "longitude" ;
	float lat(lat) ;
		lat:axis = "Y" ;
		lat:units = "degrees_north" ;
		lat:long_name = "Latitude" ;
		lat:standard_name = "latitude" ;
	float height(height) ;
		height:axis = "Z" ;
		height:units = "m" ;
		height:long_name = "Distance in the atmosphere above the surface" ;
		height:standard_name = "height" ;
	float Tair(time, height, lat, lon) ;
		Tair:valid_range = 213.f, 333.f ;
		Tair:units = "K" ;
		Tair:long_name = "Near surface air temperature" ;
		Tair:standard_name = "air_temperature" ;
		Tair:_FillValue = 1.e+20f ;
	float Qair(time, height, lat, lon) ;
		Qair:valid_range = 0.f, 0.03f ;
		Qair:units = "kg/kg" ;
		Qair:long_name = "Near surface specific humidity" ;
		Qair:standard_name = "specific_humidity" ;
		Qair:_FillValue = 1.e+20f ;
	float Wind_E(time, height, lat, lon) ;
		Wind_E:valid_range = -75.f, 75.f ;
		Wind_E:units = "m/s" ;
		Wind_E:long_name = "Near surface eastward wind component" ;
		Wind_E:standard_name = "eastward_wind" ;
		Wind_E:_FillValue = 1.e+20f ;
	float Wind_N(time, height, lat, lon) ;
		Wind_N:valid_range = -75.f, 75.f ;
		Wind_N:units = "m/s" ;
		Wind_N:long_name = "Near surface northward wind component" ;
		Wind_N:standard_name = "northward_wind" ;
		Wind_N:_FillValue = 1.e+20f ;
	float PSurf(time, lat, lon) ;
		PSurf:valid_range = 5000.f, 110000.f ;
		PSurf:units = "Pa" ;
		PSurf:long_name = "Surface atmospheric pressure" ;
		PSurf:standard_name = "surface_air_pressure" ;
		PSurf:_FillValue = 1.e+20f ;
	float Rainf(time, lat, lon) ;
		Rainf:valid_range = 0.f, 0.02f ;
		Rainf:units = "kg/m^2/s" ;
		Rainf:long_name = "Rainfall rate" ;
		Rainf:standard_name = "rainfall_rate" ;
		Rainf:_FillValue = 1.e+20f ;
	float Snowf(time, lat, lon) ;
		Snowf:valid_range = 0.f, 0.02f ;
		Snowf:units = "kg/m^2/s" ;
		Snowf:long_name = "Snowfall rate" ;
		Snowf:standard_name = "snowfall_flux" ;
		Snowf:_FillValue = 1.e+20f ;
	float SWdown(time, lat, lon) ;
		SWdown:valid_range = 0.f, 1360.f ;
		SWdown:units = "W/m^2" ;
		SWdown:long_name = "Surface incident shortwave radiation" ;
		SWdown:standard_name = "surface_downwelling_shortwave_flux_in_air" ;
		SWdown:_FillValue = 1.e+20f ;
	float LWdown(time, lat, lon) ;
		LWdown:valid_range = 0.f, 750.f ;
		LWdown:units = "W/m^2" ;
		LWdown:long_name = "Surface incident longwave radiation" ;
		LWdown:standard_name = "surface_downwelling_longwave_flux_in_air" ;
		LWdown:_FillValue = 1.e+20f ;
	float Elevation(lat, lon) ;
		Elevation:valid_range = -500.f, 9000.f ;
		Elevation:units = "m" ;
		Elevation:long_name = "Grid box average elevation relative to sea level" ;
		Elevation:standard_name = "surface_altitude" ;

// global attributes:
		:Conventions = "CF-1.4" ;
		:file_name = "" ;
		:CreatedBy = "Aaron Boone and F.Favot at CNRM Meteo-France" ;
		:title = "Atmospheric Forcing for AMMA - ECMWF SAF Lagrangien 0.05 deg" ;
		:institution = "Centre National de Recherches Meteorologiques (CNRM)-GAME, Meteo-France" ;
		:source = "Interpolated forecast data from ECMWF (12 to 36 hour forecasts starting at 12 UTC daily) \n",
			"extracted using Mars onto a 0.5 degree grid, LAND-SAF downwelling radiation products, and  \n",
			"Krigged-Lagrangian rainfields from the AMMA project." ;
		:references = "This data has been generated for the ALMIP project (Boone and deRosnay et al.,        \n",
			"2009, Bull. Amer. Meteor. Soc, 90(12), 1865-1880, doi:10.1175/2009BAMS2786.1)               \n",
			"Phase 2 (Boone, A., A. C. V. Getirana, J. Demarty, B. Cappelaere, S. Galle, M. Grippa,      \n",
			"T. Lebel, E. Mougin, C. Peugeot and T. Vischel, 2009, GEWEX News, Novemeber, 19(4), 9-10).  \n",
			"See these publications for details about ALMIP and for the references concerning the        \n",
			"different forcing products used herein (ECMWF, LAND-SAF, and rainfall).                     \n",
			"This work is a part of the AMMA project (Redelsperger, J.-L., C. D. Thorncroft, A. Diedhiou,\n",
			"T. Lebel, D. J. Parker, and J. Polcher, 2006, Bull. Amer. Meteor. Soc., 87, 1739–1746)." ;
		:comment = "The original ECMWF atmospheric state variables and fluxes were at a 0.5 degree resolution  \n",
			"on a cylindrical equidistant grid and a 3 hour time step. The state variables were first      \n",
			"interpolated to the 0.05 degree grid using a standard 2D approach (using an exponential       \n",
			"distant-dependent weighting). Next, the temperature was adjusted (disaggregated in space)     \n",
			"using the 0.05 degree topography (compared to that at 0.5 degrees) assuming a standard lapse  \n",
			"rate of 0.0065 K m-1. The surface pressure was adjusted in the same fashion using the         \n",
			"hypsometric equation. Specific humidity from ECMWF at 0.5 degrees was first converted to      \n",
			"relative humidity (RH): RH was interpolated spatially and temporally. The new specific        \n",
			"humidity was then diagnosed on the 0.05 grid using the Tair and PSurf on the 0.05 degree grid.\n",
			"State variables were interpolated in time linearly (Tair, Qair, PSurf).                       \n",
			"ECMWF LWdown was also interpolated linearly.                                                  \n",
			"SWdown was computed using a pseudo cloud fraction using the cosine of the solar zenith angle. \n",
			"Note, SWdown and LWdown from ECMWF were used only when SAF products were missing.             \n",
			"SAF products were not interpolated in space or time (they were already transferred to the     \n",
			"0.05 degree grid and 30 minute time step by IPSL/Postel).                                     \n",
			"Rainfall was not interpolated in time or space." ;
		:history = "Transfered to the single file on 20100705 at 140431.327" ;

Land Surface Parameter data

The input soil and vegetation parameters are from the ECOCLIMAP-II-Africa database (Kaptué et al., 2010). The classification uses 12 basic land classes: see the Table below for the classes corresponding to each of the so-called Patches. The fractions of each patch for each grid box for each of the 3 mesoscale sites have been plotted as a reference. Note that patch-specific parameters are not provided - but we have given the patch information for 2 reasons; i) if a model is to be run in prescribed-vegetation-parameter-mode, then we ask the modelers to disaggregate the parameters to their patches as they see fit, we only ask that they attempt to make sure that their grid box average values correspond as much as possible to the prescribed grid box average values provided by ALMIP2 (and they report their patch-dependent parameter values to us) ii) For dynamic vegetation models which must have class/PFT information (diagnostic/prognostic-vegetation-parameter-mode)

The soil data is based on FAO (10 km spatial resolution), and includes sand and clay fractions, along with soil depth. ECOCLIMAP2 includes inter-annual variability of the vegetation parameters over West Africa (ECOCLIMAP1 from Masson et al., 2002, uses a single annual cycle for all years). Note that for the Mali site, sub-grid soil texture and depth information are also available. Each grid of 0.05o is characterized by the percentage of 12 soil classes derived by the supervised classification of LANDSAT remote sensing images. Each of these soil classes is characterized by a given soil texture (coarse and fine fraction, the latter separated into clay, loam and sand) and soil depth.

1 bare ground
2 rocks
3 permanent snow
4 deciduous forest
5 conifer forest
6 evergreen broadleaf trees
7 C3 crops
8 C4 crops
9 irrigated crops
10 grassland (C3)
11 tropical grassland (C4)
12 garden and parks

The fractions of each class or patch are plotted for each of the three mesoscale sites.

Note that in the above plots, class 3 (permanent snow) is not plotted: instead, the topography is plotted as a reference.

NOTE! The original ECOCLIMAP2 database is available through 2007...The database has been extended through 2008 (ECOCLIMAP2-v2). It is available on the server. We request that participants repeat the control runs using this alternate input dataset. See the Experiment Summary for details.

Sample NetCDF header for the Mesoscale Experiments: Soil-Vegetation data

Here is an example header for Benin (Oueme) for 2006:

netcdf ALMIP2_ECOCLIMAP2_06_Benin {
	longitude = 28 ;
	latitude = 25 ;
	class = 12 ;
	time = UNLIMITED ; // (36 currently)
	int time(time) ;
		time:units = "-" ;
	float longitude(longitude) ;
		longitude:units = "degrees_east" ;
	float latitude(latitude) ;
		latitude:units = "degrees_north" ;
	int class(class) ;
		class:units = "-" ;
	float patch(class, latitude, longitude) ;
		patch:long_name = "class fraction" ;
		patch:units = "-" ;
		patch:missing_value = 1.e+20 ;
	float sand(latitude, longitude) ;
		sand:long_name = "sand fraction" ;
		sand:units = "-" ;
		sand:missing_value = 1.e+20 ;
	float clay(latitude, longitude) ;
		clay:long_name = "clay fraction" ;
		clay:units = "-" ;
		clay:missing_value = 1.e+20 ;
	float rsmin(latitude, longitude) ;
		rsmin:long_name = "min stomatal resistance" ;
		rsmin:units = "s.m-1" ;
		rsmin:missing_value = 1.e+20 ;
	float droot(latitude, longitude) ;
		droot:long_name = "root depth" ;
		droot:units = "m" ;
		droot:missing_value = 1.e+20 ;
	float dsoil(latitude, longitude) ;
		dsoil:long_name = "soil depth" ;
		dsoil:units = "m" ;
		dsoil:missing_value = 1.e+20 ;
	float lai(time, latitude, longitude) ;
		lai:long_name = "Leaf Area Index" ;
		lai:units = "m2.m-2" ;
		lai:missing_value = 1.e+20 ;
	float veg(time, latitude, longitude) ;
		veg:long_name = "vegetation fraction" ;
		veg:units = "-" ;
		veg:missing_value = 1.e+20 ;
	float z0v(time, latitude, longitude) ;
		z0v:long_name = "surface roughness length" ;
		z0v:units = "m" ;
		z0v:missing_value = 1.e+20 ;
	float alb_vis(time, latitude, longitude) ;
		alb_vis:long_name = "vis wavelength albedo" ;
		alb_vis:units = "-" ;
		alb_vis:missing_value = 1.e+20 ;
	float alb_nir(time, latitude, longitude) ;
		alb_nir:long_name = "nir wavelength albedo" ;
		alb_nir:units = "-" ;
		alb_nir:missing_value = 1.e+20 ;
	float emis(time, latitude, longitude) ;
		emis:long_name = "emissivity" ;
		emis:units = "-" ;
		emis:missing_value = 1.e+20 ;

// global attributes:
		:title = "ALMIP2 ECOCLIMAP" ;
		:Conventions = "COARDS" ;

Input Data Server

The forcing data is available via ftp at Forcing is located under data/. To obtain login and password information, please contact us. It is hoped that the directory structure is fairly clear, however, if you have any problems accessing or locating data, please don't hesitate to contact us. The server has been set up and maintained by Karim Ramage and Sophie Bouffiès-Cloché at IPSL, Paris, France.