-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathREADME
182 lines (161 loc) · 7.2 KB
/
README
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
-------------------------------------
-------------------------------------
Content:
-------------------------------------
- src (dir containing source fortran code)
- raincell (contains code for IRT see Moseley2016,2019)
- ...
- cp (contains fortran source code for cold pool tracking)
- cp_parameters.f90 (module containing paramters)
- tracer_tracking.f90 (main code for CP tracking)
- bin (executable and binary files)
- raincell
- ...
- cp
- tracer_tracking.x
- cp_parameters.o
- cp_parameters.mod
- fill_tracks.ncl (fills missing timesteps in raincelltracking)
- merger.py (determines when CP starts after precip track start)
- cut.bsh (postprocessing for raincell ASCII files)
- job (create trackiong jobs)
- run_raintrack.job (conducts the tracking job)
- namelist.tmp (template for the namelist.dat)
- namelist.dat (produced by run_raintrack.job)
- compile.job (compiles the sourcecode from IRT and CP)
-------------------------------------------------------------
-------------------------------------
Compilation:
-------------------------------------
compile.job rc compiles the IRT from src/raincell/*
compile.job cp compiles the CP tracking from src/cp/*
compile.job rcnc compiles the IRT version which can handle netcdf
------------------------------------------------------------
-------------------------------------
Required data:
-------------------------------------
- 2D precipitation field or similiar 2D field for cell tracking
(see IRT for details)
- 2D-field of horizontal wind components for tracer advection
(all timesteps in one file, input_u.srv, input_v.srv)
- So far the CP tracking only handles circular boundary conditions
-------------------------------------------------------------
-------------------------------------
Run:
-------------------------------------
Preparation: Precipitation and wind data must be in the right format.
See Required data
2D Divergence must be calculated from horizontal wind field
Use run script job/run_raintrack.job:
Making directory strcuture, preparing and running the IRT and preparing
and running the CP tracking can all be made with the run-script
run_raintrack.job in job directory.
Required input:
for namelist files:
general:
- OUT path where output shell be stored
- domsizex domainsize of modeldata
- domsizey
- dt temporal resolution of model output data
- res horizontal res. ...
IRT:
- cutoff threshold for object identification
- mincellsize min cell size
CP tracking:
- tracer number of tracer per CP
- age maximum age of CPs
- lformat srv or nc format of input data. nc requires separate compiliation
IRT for nc with ./compile rcnc
for data preparation and directory structure:
- FIN path for input data (divergence, precitation)
- INv path for wind input data
- INu
- JOBNAME define jobname
- lvl model level of wind data, if more than one level
is present. lowest level should be chosen if no
other purpose of tracking
- lirt define tasks of the job "run" does the full job
------------------------------------------------------------
-------------------------------------
Programs:
Preparation from raincell to CP
-------------------------------------
.........................
cut.bsh
........................
prepares the ASCII output from raincell tracking for CP tracking
separates header from body
.........................
fill_tracks.ncl
........................
netcdf mask file for precip. tracks contains timesteps only when precipitation
objects are present. fill_tracks.ncl adds missing timesteps with default value 0
.........................
merger.py
.........................
identifies
-spliting events,
-time when to start CP,
-merger and following track ID of the smaller part of the merger
therefore IRT ASCII-files are read, CPs are started when average divergence
value of rain track object exceeds a given threshold.
Average divergence and ID of following object are stored in Objects file.
information if merger or splitter is given in headerfile.txt
attribution of objects Id to track ID is given in body of track file
ASCII output:
track ID, track ID merger, time when tarck starts, time when tracers to be placed
track ID merger: either same as track ID for events starting and terminating without
spliting or merging; 0 starting as spliting, everything marked with 0 is ignored by
CP tracking; 0 when divergence threshold is never exceeded in this track; number of
larger track this track merges into.
-------------------------------------
Programs:
CP Tracking
-------------------------------------
.........................
tracer_tracking.x
........................
- creates random numbers of domainsize: selects every gridpoint once in
random order, output as x/y saved as randomgrdpts_xysize. Time consuming
function. When tracking is done multiple times for randomgrdpts_xysize
can be read instead of vreating random order again.
- opens files:
input
- mergingCPs.txt (gives when to start CP after precip start,
0 when precip track starts as a merger
- irt_tracks_mask.srv (get position of precip tracks)
- input_u.srv + input_v.srv (wind field for advection)
output
- termination.txt (Size of CP before they terminate)
- loops trough all timesteps and opens required files (wind velocity,
precipitation track, COGs, ...)
- fnc neigh2: selects outer grid cells of precipitation track object,
stores selected grid points in random order (not more than tracers to
be placed)
- fnc set_tracer2: places tracer, stores it in traced(internal tracer ID,
CP ID, information) infomormation can be position (x/y), age, etc.
- fnc update_newtracer: advects newly set tracer only
- fnc velocity_interpol: interpolates velocity field from staggered grid
to tracer positions (stored in traced(:,:,13:14)
- fnc geometry: calculates radial coordinates of tracer position relative
to its COG
- fnc radvel: calculates radial velocity component of tracer
- fnc sort: sorts tracer by its angle (radial coordinates)
- fnc setongrid: stores tracer on x times y grid and get objects
- fnc filltracer: identifies outlines of cold pools by connecting
tracer and by filling up gridpoints between tracers
- fnc getobj: fill outlines of CP to get CP objects
- retrieve size of CP from objects and sum up size
for merging CPs. (needed to determine termination)
- fnc write_output
- terminate CP: terminate CPs that reduce too drastically in size
- fnc update_tracer: update tracer position by advection and overwrite
varible tarced where all information are saved
.........................
cut.bsh
........................
prepares the ASCII output from raincell tracking for CP tracking
separates header from body
.........................
fill
........................