README document for the APHRO_EA_0804
(Last updated
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
(APHRODITEfs water resources) project in
collaboration of Research Institute for Humanity and Nature and Meteorological
Research Institute of Japan Meteorological Agency.
The followings are included in the current
data set (version 0804).
1) The
2) The
3) The
Russian Analysis
This document describes the data file structure
for the East
Asia Analysis (APHRO_EA_0804).
2. General
Information
2.1 The Products:
We release the two resolution data of the APHRO_EA_0804; Basic
Product, 0.5 degree (Type-B), and General Product, 0.25 degree,
(Type-G). The gridded fields of daily
precipitation are defined by interpolating rain-gauge observations from
meteorological and hydrological stations over the region. We used daily
precipitation climatology defined by Xie et al. (2007),
and interpolate daily ratio to the climatology on 0.05 degree grid resolution,
and multiply each gridded ratio to each grid
climatology value day by day. Then we re-grid the 0.05 degree
analysis to 0.5 degree grid and 0.25 degree grid. Number of gauges in
each 0.5 (0.25) degree grid box shows reliability for the daily precipitation
fields. Please refer to 5. References for technical details
on how the gauge-based analyses are defined.
2.2 Spatial
Coverage
Coverage
: 65.0E - 155.0E; 5.0N - 60.0N
Resolution :
0.5 degree latitude / longitude (Type-B) and 0.25 degree latitude /longitude
(Type-G)
2.3 Time
Coverage
:
Resolution :
Daily;
2.4 Units
Precipitation
: mm/day
Gauge Number
: Number of Gauges (written in actual number)
2.5 Missing Code
Precipitation
: -99.9
Gauge number
: None
3. Data Files and Their Structure
The product is stored in yearly files;
3.1 Denotation
EA0804DP_X_yyyy
EA :
Region
0804:
Product Version
DP: Daily precipitation
X
: Resolution (B for
Type-B, G for Type-G)
yyyy :
year number, e.g. 1980, 1979, ... 2002;
3.2 Yearly File Structure
-
The yearly
data files are written in the format of PLAIN DIRECT ACCESS BINARY data files.
-
Each yearly
file contains daily fields for 365 (366 for leap years) days. These
daily fields are arranged according to Julian calendar.
-
For each day,
there are two fields (data arrays) holding information on precipitation and
gauge number. The array for the precipitation amounts comes first,
followed by that for the gauge number.
-
Each field is
a data array of 180 (in east-west direction) x 110 (in north-south direction)
elements. The data array goes from WEST to EAST and then from SOUTH to
NORTH. The first element is for grid box at the southwest corner centered
at [65.25E; 5.25N], the second at [65.75E;5.25N]....
the 180th at [154.75E,5.25N], the 181st at [65.25E;5.75N]... (in case of Type-B).
-
Each data
element (for both precipitation and gauge number) is written in 4-byte floating
actual number.
-
The actual
number is written in eLITTLE_ENDIANf byte order. You need to swap the byte
order to big_endian if you are working with a work
station other than a linux machine.
-
There is not
any 'space', 'end of record', or 'end of file' marks in between. The size of a
yearly file is 4 byte x 180 elements x 110 lines x 2 fields x 365 days =
57,816,000 bytes for a non-leap year, and 57,974,400 bytes for a leap year (in
case of Type-B).
3.3 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 (3.3.1) to a new file named
EA0804DP_B_2002.ctl. Then open this file after the ggah
prompt (e.g., ga-> open EA0804DP_B_2002.ctl).
-
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.
Set four numbers of 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 3.3.2.
-
To operate the 0.25 degree grid data (Type-G), see the sample control file
shown in 3.3.3.
3.3.1 0.5-degree (Type B)
DSET ^EA0804DP_B_2002
*
UNDEF -99.9
OPTIONS little_endian
TITLE Daily Precipitation
Analysis
*
XDEF 180 LINEAR 65.25 0.50
YDEF 110 LINEAR 5.25 0.50
ZDEF 1
LEVELS
1
TDEF 365 LINEAR
*
VARS
2
precip 1 00 daily precipitation analysis
(mm/day)
nobs 1 00 number of gauges in a
0.5 grid box
ENDVARS
3.3.2 0.5-degree (Type B) sample control file with
goption templateh
DSET ^EA0804DP_B_%y4
*
UNDEF -99.9
OPTIONS little_endian
template
TITLE Daily Precipitation
Analysis
*
XDEF 180 LINEAR 65.25 0.50
YDEF 110 LINEAR 5.25 0.50
ZDEF 1
LEVELS
1
TDEF 8500 LINEAR
*
VARS
2
precip 1 00 daily precipitation analysis
(mm/day)
nobs 1 00 number of gauges in a
0.5 grid box
ENDVARS
3.3.3 0.25-degree (Type G)
DSET ^EA0804DP_G_2002
*
UNDEF -99.9
OPTIONS little_endian
TITLE Daily Precipitation
Analysis
*
XDEF 360 LINEAR 65.125 0.25
YDEF 220 LINEAR 5.125 0.25
ZDEF 1
LEVELS
1
TDEF 365 LINEAR
*
VARS
2
precip 1 00 daily
precipitation analysis (mm/day)
nobs
1 00 number of gauges in a 0.25 grid box
ENDVARS
4.
Sample Program in Fortran90
-
The order that bytes are written in little-endian.
-
Set year at g i4Yearh.
-
Built and Run freely.
!==========================================
!
!
read_data_EA.F90
!
! Sample program to read both
! 0.5- (Type-B) and 0.25-degree (Type-G) files
!==========================================
program main
implicit none
!=====================================
!
Set year and grid size
!=====================================
integer(4) :: i4Year = 2002 !year of input data
integer(4) :: nx50 = 180 !x-grid mesh size of 0.50degree for
output file
integer(4) :: ny50 = 110 !y-grid mesh size of 0.50degree for
output file
integer(4) :: nx25 = 360 !x-grid mesh size of 0.25degree for
output file
integer(4) :: ny25 = 220 !y-grid mesh size of 0.25degree for
output file
!-----------------------------
!
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 (Type-B)
real(4), allocatable :: samp50(:,:) ! number of gauges in a 0.5
grid box (Type-B)
real(4), allocatable :: rain25(:,:) ! daily precipitation
analysis (Type-G)
real(4), allocatable :: samp25(:,:) ! number of gauges in a 0.25
grid box (Type-G)
allocate(rain50(nx50, ny50))
allocate(samp50(nx50, ny50))
allocate(rain25(nx25, ny25))
allocate(samp25(nx25, ny25))
!-----------------------------
!
File open
!-----------------------------
write(c100Fln_i50, &
& fmt="(a,'/EA0804DP_B_',i4.4)") trim(dir),
i4Year
write(c100Fln_i25, &
& fmt="(a,'/EA0804DP_G_',i4.4)") trim(dir),
i4Year
inquire(iolength = nrec ) rain50
open(50, file = c100Fln_i50, form = 'unformatted', access =
'direct', &
& recl = nrec, convert = 'little_endian' )
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 (Type-B)
!-------------------------
read(50,
rec = kinp11) rain50(:,:)
read(50,
rec = kinp12) samp50(:,:)
!-------------------------
! read
0.25-degree data (Type-G)
!-------------------------
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), rain25(80,80),
samp25(80,80)
end do !kday
deallocate(rain50)
deallocate(samp50)
deallocate(rain25)
deallocate(samp25)
close(50)
close(70)
end program main
!==========================================
! Check leap or non-leap year
!==========================================
!<return>
! 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
5.
References
Please check
our gresearch activitiesh page
(http://www.chikyu.ac.jp/precip/research/index.html) when you write/publish
papers in order to know the last updated information of 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_EA_0804. However, you can refer to the following
papers. We (APHRO_EA_0804 and Yatagai et al., 2008a)
took the similar algorithm steps that are defined in Xie
et al. (2007, EA_0409). APHRO_EA_0804 differs from those of Xie
et al. (2007) in the following two points. First, we used the Shepard (1968)
algorithm for interpolation, whereas Xie et al.
(2007) used optimum interpolation (OI) technique (Gandin,
1965). Second, APHRO_EA_0804 (Yatagai et al., 2008a)
input more (2,000 to 8,000 stations of Asian monsoon countries, depending on
year) rain-gauge data compared to EA_0409 (Xie et
al., 2007).
Yatagai,
A., H. Kawamoto and P. Xie, 2008a: Products and
validation of GAME re-analyses and JRA-25: Precipitation, Extended abstract for Third WCRP International Conference on Reanalysis,
Jan. 28 -
Yatagai, A., P. Xie, P,
2006: Utilization of a rain-gauge-based daily precipitation dataset over
However, if you want to refer to the general
algorithm, especially for showing orographic
precipitation by adopting PRISM in climatology, 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.
For
Yatagai, A., P. Xie
and P. Alpert, 2008b: Development of a daily gridded
precipitation data set for the
6.
Contacts
Please contact APHRODITE
project (led by Dr. Akiyo Yatagai of RIHN) for
further questions regarding this product.
APHRODITEfs 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,
Tel :
+81-75-707-2204 (direct)
Fax :
+81-75-707-2506