README document for the APHRO_ME_V0902 (Last updated 15 June, 2009) 1. Introduction A suite of precipitation products are being constructed by the Asian Precipitation - Highly-Resolved Observational Data Integration Towards Evaluation of the Water Resources (APHRODITE's water resources) project in collaboration of Research Institute for Humanity and Nature and Meteorological Research Institute of Japan Meteorological Agency. Since we released our products (V0804) in May 2008, we have made continuous efforts to collect data and to improve quality control and the analysis method. We release a new version "V0902". The V0902 will include more rain-gauge data and cover longer period: 1961-2004. New version of data set (Version 0902) consists of: 1) The Monsoon Asia Analysis 2) The Middle East Analysis 3) The Russian Analysis This README interprets the structure of data files; Middle East Analysis (APHRO_ME_V0902). 2. General Information 2.1 The Products: The product we release is 0.5x0.5 and 0.25x0.25 degree gridded data over Middle East (APHRO_ME_V0902). The gridded fields of daily precipitation are defined by interpolating rain-gauge observations obtained from meteorological and hydrological stations over the region. We used new daily precipitation climatology and interpolated the ratio of the daily precipitation to the climatology in 0.05 degree grid resolution, then multiply each gridded ratio by each gridded climatology value day by day. After that, we re-grid the 0.05 degree analysis to both 0.5 degree and 0.25 degree grids. A new indicator is introduced to represent the reliability of the interpolated data. Each re-gridded 0.50(0.25) degree grid box consists of 100(25) grid boxes of 0.05 degree. So we calculate the ratio of 0.05 degree grid(s) containing station(s)[RSTN], which represents the reliability of the daily precipitation fields. The interpolation algorithm of the previous versions (V0804 and V0902_pre) is based on the combination of the spherical version of Shepard's distance-weighting method (Shepard, 1968) and Mountain Mapper method (Schaake et al., 2004). The algorithm for the new version V0902 is revised: the distance-weighting function is adjusted to the orography (based on Sphere Map method; Willmott et al., 1985). For V0902, we developed our daily climatology with 1) monthly and daily rain-gauge data that have data for 5 years or more and 2) WorldClim (Hijmans et al., 2005; http://www.worldclim.org/). 2.2 Spatial Coverage Coverage : 15.0E - 65.0E; 25.0N - 45.0N Resolution : 0.5 degree and 0.25 degree latitude/longitude 2.3 Time Coverage : January 1, 1961 - December 31, 2004 Resolution : Daily 2.4 Units Precipitation : mm/day Ratio of 0.05 grid box contatining station(s) : % 2.5 Missing Code Precipitation : -99.9 Ratio of 0.05 grid box contatining station(s) : -99.9 3. Data Files and Their Structure The product is stored in one file per year. 3.1 Denotation APHRO_ME_XXXdeg_V0902.YYYY ME : Region (Middle East) XXX : Resolution (050/025 means 0.5/0.25-degree grid) YYYY : The year in 4 digits (e.g. 1961, 1962, ..., 2004) For the file in NetCDF format, filename ends with the suffix ".nc." 3.2 Structure of Data files Every file contains daily fields for 365 (366 for leap years) days. These daily fields are arranged according to Julian calendar. Daily fields (data arrays) hold information on precipitation amount and ratio of 0.05 degree grid box containing rain gauge. In the case of 0.5-degree grid file, each field consists of a data array of 100 (in longitudes) x 40 (in latitudes) elements. The first element is for a grid box at the southwest corner centered at [15.25E, 25.25N], the second at [15.75E, 25.25N], ..., the 100th at [64.75E, 0.25N], and the 101th at [15.25E, 25.75N]. [Note for plain binary format] The data files are written in PLAIN DIRECT ACCESS BINARY. In each daily field, the array for precipitation comes first, followed by the information on rain gauge. Each element (both precipitation and rain gauge information) is written in 4-byte floating real number in 'LITTLE_ENDIAN' byte order. You need to swap the byte order to big_endian if you are working with a workstation other than a Linux machine. There is no 'space', 'end of record', or 'end of file' marks in between. The size of a file (0.5-degree grid) is: 4 byte x 100 x 40 x 2 fields x 365 days = 11,680,000 bytes for a non-leap year, and 11,712,000 bytes for a leap year. 4. Sample of GrADS Control Files Each data file needs *.ctl file to handle with the GrADS software (http://www.iges.org/grads/). For example, copy the sample script (4.1) to a new file named APHRO_ME_050(025)deg_V0902_2002.ctl. Then open this file after the "ga" prompt (e.g., ga-> open APHRO_ME_050deg_V0902_2002.ctl). To operate 0.25 degree grid data, see the sample control file shown in 4.2.2. In case of operating other years, the following two lines should be rewritten. DSET : Rewrite input file name TDEF : Rewrite 366 in leap year and 365 for others, and set 4-digit year at input file name. You may define only one control file to operate the whole period of the same type (resolution) data as shown in 4.2. 4.1 Sample GrADS control file DSET ^APHRO_ME_050deg_V0902.2002 * UNDEF -99.9 OPTIONS little_endian TITLE APHRO_ME V0902 daily precipitation with 0.5deg grids * XDEF 100 LINEAR 15.25 0.5 YDEF 40 LINEAR 25.25 0.5 ZDEF 01 LEVELS 1 TDEF 365 LINEAR 01JAN2002 1dy * VARS 2 precip 1 00 daily precipitation analysis [mm] rstn 1 00 the ratio of 0.05deg-grids containing station(s)[%] ENDVARS 4.2.1 0.5-degree sample GrADS control file with "option template" DSET ^APHRO_ME_050deg_V0902.%y4 * UNDEF -99.9 OPTIONS little_endian template TITLE APHRO_ME V0902 daily precipitation with 0.5deg grids * XDEF 100 LINEAR 15.25 0.5 YDEF 40 LINEAR 25.25 0.5 ZDEF 01 LEVELS 1 TDEF 16071 LINEAR 01JAN1961 1dy * VARS 2 precip 1 00 daily precipitation analysis (mm) rstn 1 00 the ratio of 0.05deg-grids containing station(s)[%] ENDVARS 4.2.2 0.25-degree sample GrADS control file with "option template" DSET ^APHRO_ME_025deg_V0902.%y4 * UNDEF -99.9 OPTIONS little_endian template TITLE APHRO_ME V0902 daily precipitation with 0.25deg grids * XDEF 200 LINEAR 15.125 0.25 YDEF 80 LINEAR 25.125 0.25 ZDEF 01 LEVELS 1 TDEF 16071 LINEAR 01JAN1961 1dy * VARS 2 precip 1 00 daily precipitation analysis (mm) rstn 1 00 Ratio of 0.05deg-grids containing station(s)[%] ENDVARS 5. Sample Program in Fortran90 - The order that bytes are written in little-endian. - Set year at "i4Year" - Built and Run freely. 5.1 Sample program for 0.5- and 0.25-degree grid !============================================== ! read_data.f90 ! Sample program to read both ! APHRO_ME_V0902 0.5-degree and 0.25-degree file !============================================== program main implicit none !===================================== ! Set year and grid size !===================================== integer(4) :: i4Year = 2004 !year of input data integer(4) :: nx50 = 100 !x-grid mesh sie (0.5deg) integer(4) :: ny50 = 40 !y-grid mesh size (0.5deg) integer(4) :: nx25 = 200 !x-grid mesh size (0.25deg) integer(4) :: ny25 = 80 !y-grid mesh size (0.25deg) !----------------------------- ! local !----------------------------- character(100) :: c100Fln_i50 character(100) :: c100Fln_i25 character(100) :: dir = './' integer :: nn integer :: kinp12, kinp11 integer :: kday, nday integer(4) :: nrec !----------------------------- ! Define array for one day !----------------------------- real(4), allocatable :: rain50(:,:) ! daily precipitation analysis(0.5deg) real(4), allocatable :: samp50(:,:) ! ratio of 0.05 grid box containing rain gauge in a 0.5deg grid real(4), allocatable :: rain25(:,:) ! daily precipitation analysis(0.25deg) real(4), allocatable :: samp25(:,:) ! ratio of 0.05 grid box containing rain gauge in a 0.25deg grid allocate(rain50(nx50, ny50)) allocate(samp50(nx50, ny50)) allocate(rain25(nx25, ny25)) allocate(samp25(nx25, ny25)) !----------------------------- ! File open !----------------------------- write(c100Fln_i50, & & fmt="(a,'/APHRO_ME_050deg_V0902.',i4.4)") trim(dir), i4Year inquire(iolength = nrec ) rain50 open(50, file = c100Fln_i50, form = 'unformatted', access = 'direct', & & recl = nrec, convert = 'little_endian' ) write(c100Fln_i25, & & fmt="(a,'/APHRO_ME_025deg_V0902.',i4.4)") trim(dir), i4Year inquire(iolength = nrec ) rain25 open(70, file = c100Fln_i25, form = 'unformatted', access = 'direct', & & recl = nrec, convert = 'little_endian' ) !----------------------------- ! Check leap year !----------------------------- call cond_leapyear(i4Year, nn) if(nn == 0) then nday = 365 else nday = 366 end if !------------------------------------ ! Do loop of days (365 or 366) !------------------------------------ do kday = 1, nday !------------------------- ! calculate position !------------------------- kinp11 = (kday - 1) * 2 + 1 kinp12 = (kday - 1) * 2 + 2 !------------------------- ! read 0.5-degree data !------------------------- read(50, rec = kinp11) rain50(:,:) read(50, rec = kinp12) samp50(:,:) read(70, rec = kinp11) rain25(:,:) read(70, rec = kinp12) samp25(:,:) !===================================== ! If necessary, ADD SOME ANALYSIS HERE !===================================== write(6,*) kday, rain50(50,50), samp50(50,50) write(6,*) kday, rain25(25,25), samp25(25,25) end do !kday deallocate(rain50) deallocate(samp50) close(50) deallocate(rain25) deallocate(samp25) close(70) end program main !----------------------------- ! Check leap year !----------------------------- call cond_leapyear(i4Year, nn) if(nn == 0) then nday = 365 else nday = 366 end if !------------------------------------ ! Do loop of days (365 or 366) !------------------------------------ do kday = 1, nday !------------------------- ! calculate position !------------------------- kinp11 = (kday - 1) * 2 + 1 kinp12 = (kday - 1) * 2 + 2 !------------------------- ! read 0.5- and 0.25-degree data !------------------------- read(50, rec = kinp11) rain50(:,:) read(50, rec = kinp12) samp50(:,:) read(70, rec = kinp11) rain25(:,:) read(70, rec = kinp12) samp25(:,:) !===================================== ! If necessary, ADD SOME ANALYSIS HERE !===================================== write(6,*) kday, rain50(50,50), samp50(50,50) write(6,*) kday, rain25(25,25), samp25(25,25) end do !kday deallocate(rain50) deallocate(samp50) close(50) deallocate(rain25) deallocate(samp25) close(70) end program main !========================================== ! Check leap or non-leap year !========================================== ! ! leap year(366) -> return 1 ! non-leap year(365) -> return 0 subroutine cond_leapyear(year, nflg_leapyear) implicit none integer, intent(in) :: year integer, intent(out) :: nflg_leapyear !------------------------------------ if( (mod(year, 4)==0 .and. mod(year,100)/=0 ) & .or. mod(year,400)==0 ) then nflg_leapyear = 1 else nflg_leapyear = 0 end if return end subroutine cond_leapyear 6. References When you write/publish papers, please access at the page of "Research Activities" (http://www.chikyu.ac.jp/precip/research/index.html) in order to know the last updated information on our reference papers which show our algorithms and products. At the moment, we (APHRODITE project) have not published a reviewed paper which exactly shows our algorithm for APHRO_ME_V0902. Will write and upload the algorithm outline soon. In case if you refer our product in your paper, the following is an example. Data we used here is a rain-gauge based 0.5 degree daily grid precipitation product developed by the Asian Precipitation - Highly Resolved Observational Data Integration Towards Evaluation of water resources (APHRODITE's water resources project; http://www.chikyu.ac.jp/precip). You can also refer to the following papers, according to your dataset and object. We took the similar algorithm steps that are defined in Xie et al. (2007, EA_0409). If you want to refer to the general algorithm, you should refer the following paper (Xie et al., 2007). Xie, P., A. Yatagai, M. Chen, T. Hayasaka, Y. Fukushima, C. Liu and S. Yang, 2007: A Gauge-Based Analysis of Daily Precipitation over East Asia, J. Hydrometeor., 8, 607-627. APHRO_ME_0902 differs from Xie et al. (2007) in the following point. We used the Shepard (1968) and Willmott(1985) algorithm for interpolation, whereas Xie et al. (2007) used optimum interpolation (OI) technique (Gandin, 1965). For Middle East analysis V0804, we (APHRODITE project) have published a paper as follows (Yatagai et al., 2008b). In V0902, rain-gauge data obtained from Iran is added. Yatagai, A., P. Xie and P. Alpert, 2008: Development of a daily gridded precipitation data set for the Middle East, Adv. in Geosci., 12, 165-170. For East Asian analysis APHRO_EA_0804, the references are as follows. Yatagai, A., H. Kawamoto and P. Xie, 2008: Products and validation of GAME re-analyses and JRA-25: Precipitation, Extended abstract for Third WCRP International Conference on Reanalysis, Jan. 28-Feb. 1, 2008, Tokyo, Japan. Yatagai, A., P. Xie, P, 2006: Utilization of a rain-gauge-based daily precipitation dataset over Asia for validation of precipitation derived from TRMM/PR and JRA-25. SPIE 0604-53, doi:10.1117/12.723829. For Russian Analysis V0804, the reference is as follows. Takashima, H., A. Yatagai, H. Kawamoto, O. Arakawa, and K. Kamiguchi (2009): Hydrological balance over northern Eurasia from gauge-based high-resolution daily precipitation data, M. Taniguchi (eds), From Headwaters to the Ocean: Hydrological Change and Watershed Management, Talor & Francis, 137-141. We will update the information when we submit a reference paper of version V0902. 7. Contacts Please contact APHRODITE project (led by Dr. Akiyo Yatagai of RIHN) for further questions regarding this product. APHRODITE - Water Resource project precinfo@chikyu.ac.jp http://www.chikyu.ac.jp/precip/index.html Dr. Akiyo Yatagai Research Institute for Humanity and Nature 457-4 Motoyama, Kamigamo, Kita-ku, Kyoto 603-8047, Japan Tel : +81-75-707-2204 (direct) Fax : +81-75-707-2506