-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.advanced
executable file
·128 lines (84 loc) · 6.07 KB
/
README.advanced
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Environment variables
================
A number of optional features can be enabled via the definition of environment variables.
Most variables (unless noted otherwise) must have values of 0 (off) or 1 (on).
Environment variables can be set in 2 ways:
1) add a statement to $HOME/.bashrc, which will be used for all runs
export INLAND_VAR=value
2) add the statement for each inland execution
INLAND_VAR=value ./inland_grid
These variables control the format of output netcdf files (grid model only)
INLAND_SINGLE_PRECISION : if 0 write netcdf files with double precision (default 1, write in single precision)
INLAND_COMPRESSOUT : write netcdf files with zlib compression (requires netCDF-4 format with HDF5)
valid values are 0 (no compression) or 1-9 (compression level), 2 is recommended
see http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/NetCDF_002d4-Format.html
INLAND_CHUNKOUT : define compressed variable chunking (default 0, use netcdf default)
use this only if your data viewer has problems with default chunking parameters
These variables are for defining the locations of input/output files, used mainly in a supercomputing environment
INLAND_INDIR : the location of input files, which contains parameter definition (default is ./data/offline/grid)
INLAND_INFILE : the location of the inland_grid.infile (default is $INLAND_INDIR/inland_grid.infile)
INLAND_DATADIR : the location of the data directory, which contains climate files (default is ./input)
INLAND_OUTDIR : the location of the output directory (default is ./output)
These variables are for development and debugging purposes only, use at your risk!
INLAND_DEBUG : show verbose output, increasing values give more output (default 0, no verbose output)
INLAND_RANDOMVAL : set all random values to a fixed value (valid values are between 0 and 1 ; default 0, use random values)
INLAND_FASTEXEC : run model in fast mode (default 0, normal execution)
if 1 runs only 1 day per year, if 2 bypasses lsxmain call
Subgrid Tiling
================
Subgrid Tiling is an optional feature of Inland.
TODO : add more explanations (theoretical basics, input files, tile dimension in output files)
- The following entries in conf/inland-grid.infile control subgrid tiling.
! subgrid tile parameters - ignore if not using subgrid tiles
mlpt = 1 , ! mlpt - multiplicity of land points (subgrid tiles) (default 1, no tiles)
vegtypefile= "" , ! file to read initial vegtype (and tileprop if mlpt>1) (default '', read default)
hrmapfile = "" , ! hrmapfile - read high-res data to produce initial veg map (default '', don't read)
- vegtype files must contain the following:
- vegtype variable with mlpt levels + 1 for water (vegtype 30)
- tilefrac variable with mlpt levels + 1 for water fraction
- vegtype files with tiles can be created using contrib/inland-maketiles.sh contributed script
# see inland-maketiles.sh for more information and examples
# these commands create files with a second tile where forest(1) and cerrado(9) are replaced by pasture(18) in varying proportions (10, 25 and 50%)
inland-maketiles.sh vegtype.nc vegtype-deforest-10p.nc 2 0.90 0.10 0.0 "" "setvals,1,18,9,18" ""
inland-maketiles.sh vegtype.nc vegtype-deforest-25p.nc 2 0.75 0.25 0.0 "" "setvals,1,18,9,18" ""
inland-maketiles.sh vegtype.nc vegtype-deforest-50p.nc 2 0.50 0.50 0.0 "" "setvals,1,18,9,18" ""
# a simple example with 2 identical tiles and second tile has 0 tilefrac values (used as a template)
inland-maketiles.sh vegtype.nc vegtype-mlpt02-equal.nc 2 1 0 0 "" "" ""
# another simple example with 2 different tiles and 10% waterfrac
inland-maketiles.sh vegtype.nc vegtype-mlpt02-diff.nc 2 0.75 0.25 0 "" "setvals,1,9,9,11,11,14" ""
- how to combine hrmap output with a global vegtype file?
# first make a "fastexec" run with hrmapfile set in infile
make && INLAND_FASTEXEC=2 ./inland-grid
# then combine the output tile file with template vegtype-mlpt02-equal.nc
cd output
cdo -O selname,vegtype,tilefrac inland-tiles-1980.nc tmp1.nc
cdo -O mergegrid ../input/tiles/vegtype-mlpt02-equal.nc tmp1.nc ../input/tiles/vegtype-mlpt02-hrmap.nc
# finally can remove hrmapfile in infile, and vegtypefile="tiles/vegtype-mlpt02-hrmap.nc"
- data analysis
cdo does not support 5D vars, therefore files with pft dimensions (such as inland-yearly-pft-????.nc)
cannot be handled directly by cdo. However, grads software has no problem with these files.
The following command can split the file by tile number (assuming 2 tiles with 1 extra for average):
for y in `seq 1981 1982` ; do for t in `seq 1 3` ; do if=inland-yearly-pft-${y}.nc ; of=inland-yearly-pft-t${t}-${y}.nc; ncks -O -d tile,$((t-1)) ${if} ${of} ; ncwa -O -a tile ${of} ${of} ; done ; done
Agro Model
================
In each point, only natural vegetation or a single crop are allowed to exist.
Currently there are 4 crops, with corresponding codes (as defined by pft# in params/vegetation)
13: soybean / 14: maize / 15: wheat / 16: sgc
Two variables describe the crop present at each grid point:
- landusetype (=2 when a crop is present)
- croptype, the number of the crop
The agro model can run in 2 modes, as defined by the value of isimagro in inland-grid.infile.
1) unique crop (isimagro = 1)
The value of icroptype defines the crop present in all points.
2) defined by data read in cropsfile (isimagro = 2)
The file defined by the cropsfile variable is read to assign crops to all points.
The script contrib/merge_monfreda.sh can be used to prepare such a file.
This must be used in conjunction with mlpt>1 (i.e. using subgrid tiling).
The first subgrid tile is always natural vegetation (landusetype=1).
Other subgrids (and their corresponding tile fractions) are assigned from data in cropsfile.
If mlpt = 1 + #crops (currently 4)
A subgrid tile is created for each crop, in order of pft#,
which implies that e.g. subgrid #2 is always soybean(13).
Else
For each point a subgrid tile is created for all crops present in that point,
in decreasing order, based on tile fraction.