@@ -115,13 +115,13 @@ def retrieve_ibtracs(self, name_ev, date_ev):
115115 """
116116 raise NotImplementedError
117117
118- def equal_timestep (self , time_step_h =
119- CONFIG ['trop_cyclone' ]['time_step_h' ]):
118+ def equal_timestep (self , time_step_h = CONFIG ['trop_cyclone' ]['time_step_h' ]):
120119 """ Generate interpolated track values to time steps of min_time_step.
121120
122121 Parameters:
123122 time_step_h (float): time step in hours to which to interpolate
124123 """
124+ land_param = False
125125 new_list = list ()
126126 for track in self .data :
127127 if track .time .size > 3 :
@@ -138,15 +138,17 @@ def equal_timestep(self, time_step_h=
138138 track .attrs ['category' ] = set_category ( \
139139 track .max_sustained_wind .values , \
140140 track .max_sustained_wind_unit )
141-
141+ if 'on_land' in track_int or 'dist_since_lf' in track_int :
142+ land_param = True
142143 else :
143144 LOGGER .warning ('Track interpolation not done. ' +
144145 'Not enough elements for %s' , track .name )
145146 track_int = track
146147 new_list .append (track_int )
147148
148149 self .data = new_list
149- self ._calc_space_params ()
150+ if land_param :
151+ self ._calc_land_params ()
150152
151153 def calc_random_walk (self , ens_size = 9 , ens_amp0 = 1.5 , max_angle = np .pi / 10 , \
152154 ens_amp = 0.1 , seed = CONFIG ['trop_cyclone' ]['random_seed' ], decay = True ):
@@ -199,7 +201,7 @@ def calc_random_walk(self, ens_size=9, ens_amp0=1.5, max_angle=np.pi/10, \
199201 ens_track .append (i_track )
200202
201203 self .data = ens_track
202- self ._calc_space_params ()
204+ self ._calc_land_params ()
203205 if decay :
204206 v_rel , p_rel = self ._calc_land_decay ()
205207 self ._apply_land_decay (v_rel , p_rel )
@@ -284,7 +286,7 @@ def _calc_land_decay(self, s_rel=True, check_plot=False):
284286 for track in hist_tracks :
285287 _decay_values (s_rel , track , v_lf , p_lf , x_val )
286288 except AttributeError :
287- LOGGER .error ('Execute _calc_space_params () first.' )
289+ LOGGER .error ('Execute _calc_land_params () first.' )
288290 raise ValueError
289291
290292 v_rel , p_rel = _decay_calc_coeff (x_val , v_lf , p_lf )
@@ -320,7 +322,7 @@ def _apply_land_decay(self, v_rel, p_rel, s_rel=True, check_plot=False):
320322 orig_pres .append (np .copy (track .central_pressure .values ))
321323 _apply_decay_coeffs (track , v_rel , p_rel , s_rel )
322324 except AttributeError :
323- LOGGER .error ('Execute _calc_space_params () first.' )
325+ LOGGER .error ('Execute _calc_land_params () first.' )
324326 raise ValueError
325327
326328 if check_plot :
@@ -331,7 +333,7 @@ def size(self):
331333 """ Get longitude from coord array """
332334 return len (self .data )
333335
334- def _calc_space_params (self ):
336+ def _calc_land_params (self ):
335337 """Compute tracks attributes dependent on their coordinates:
336338 on_land and dist_since_lf.
337339
0 commit comments