@@ -120,11 +120,12 @@ def parse_metadata(metadata_file):
120
120
metadata = json .load (f )
121
121
return metadata
122
122
123
- def define_waterregions (calib_points = None , countries_id = None , ldd = None , waterregions_initial = None , output_wr = None , metadata_parsed = None ):
124
-
123
+ def define_waterregions (calib_points = None , countries_id = None , ldd = None , waterregions_initial = None , output_wr = None , metadata_parsed = None , tmpdir = None ):
124
+ if tmpdir is None :
125
+ tmpdir = tempfile .gettempdir ()
125
126
#0. Check whether the input maps are in pcraster format, use nc2pcr if the condition is not satisfied
126
127
if ldd [- 3 :]== '.nc' :
127
- ldd_pcr = tempfile . gettempdir () + '/ldd_pcr.map'
128
+ ldd_pcr = tmpdir + '/ldd_pcr.map'
128
129
try :
129
130
os .remove (ldd_pcr )
130
131
except :
@@ -133,7 +134,7 @@ def define_waterregions(calib_points=None, countries_id=None, ldd=None, waterreg
133
134
else :
134
135
ldd_pcr = ldd
135
136
if countries_id [- 3 :]== '.nc' :
136
- countries_id_pcr = tempfile . gettempdir () + '/countries_id_pcr.map'
137
+ countries_id_pcr = tmpdir + '/countries_id_pcr.map'
137
138
try :
138
139
os .remove (countries_id_pcr )
139
140
except :
@@ -142,7 +143,7 @@ def define_waterregions(calib_points=None, countries_id=None, ldd=None, waterreg
142
143
else :
143
144
countries_id_pcr = countries_id
144
145
if waterregions_initial [- 3 :]== '.nc' :
145
- waterregions_initial_pcr = tempfile . gettempdir () + '/waterregions_initial_pcr.map'
146
+ waterregions_initial_pcr = tmpdir + '/waterregions_initial_pcr.map'
146
147
try :
147
148
os .remove (waterregions_initial_pcr )
148
149
except :
@@ -153,7 +154,7 @@ def define_waterregions(calib_points=None, countries_id=None, ldd=None, waterreg
153
154
154
155
155
156
#1. The calibration points are converted into a map
156
- pointmap_file = tempfile . gettempdir () + '/points.map'
157
+ pointmap_file = tmpdir + '/points.map'
157
158
try :
158
159
os .remove (pointmap_file )
159
160
except :
@@ -165,7 +166,10 @@ def define_waterregions(calib_points=None, countries_id=None, ldd=None, waterreg
165
166
ldd1 = pcr .readmap (ldd_pcr )
166
167
points = pcr .readmap (pointmap_file )
167
168
subcat1 = pcr .subcatchment (ldd1 ,points )
168
-
169
+ try :
170
+ os .remove (pointmap_file )
171
+ except :
172
+ pass
169
173
#3. Making map with all valid ldd cells
170
174
land = pcr .scalar (subcat1 )
171
175
land = pcr .nominal (land >= 0.99999 )
@@ -192,9 +196,9 @@ def define_waterregions(calib_points=None, countries_id=None, ldd=None, waterreg
192
196
#9. Save the water region map
193
197
if output_wr [- 3 :]== ".nc" :
194
198
waterregion_nc = output_wr
195
- output_wr = tempfile . gettempdir () + '/wr_pcr.map'
199
+ output_wr = tmpdir + '/wr_pcr.map'
196
200
else :
197
- waterregion_nc = tempfile . gettempdir () + '/wr_nc.nc'
201
+ waterregion_nc = tmpdir + '/wr_nc.nc'
198
202
metadata_parsed = []
199
203
200
204
try :
0 commit comments