@@ -179,7 +179,6 @@ def evaluate_value(self, points):
179179 # ------- intrusion_sf: final distance scalar field
180180 # Transform the scalar fields given by the frame coordinates, using the thresholds.
181181 # This aims to generate a scalar field with its isovalue = 0 on the intrusion contact
182- # print('modifying thresholds')
183182
184183 a = intrusion_coord2_pts >= s_maxside_threshold
185184 b = intrusion_coord2_pts <= s_minside_threshold
@@ -228,149 +227,4 @@ def evaluate_value(self, points):
228227 ]
229228 self .intrusion_indicator_function = indicator_fx
230229
231- return intrusion_sf # , indicator_fx, intrusion_sf2_temp, intrusion_sf0_temp,
232-
233- def evaluate_value2 (self , points ):
234-
235- """
236- points : array (x,y,z), points where the intrusion is evaluated.
237-
238- """
239-
240- simulation_g_data = self .simulation_growth_data
241- simulation_s_data = self .simulation_lateral_data
242- inet_polygon = None
243- intrusion_frame = self .structural_frame
244- model = self .model
245-
246- # points = model.scale(points, inplace = False)
247-
248- # ---> returns indicator function and scalar field with isovalue 0 = intrusion boundary
249-
250- # compute coordinates values for each evaluated point
251- # intrusion_coord0_pts = intrusion_frame[0].evaluate_value(model.rescale(points, inplace = False))
252- # intrusion_coord1_pts = intrusion_frame[1].evaluate_value(model.rescale(points, inplace = False))
253- # intrusion_coord2_pts = intrusion_frame[2].evaluate_value(model.rescale(points, inplace = False))
254- intrusion_coord0_pts = intrusion_frame [0 ].evaluate_value (points )
255- intrusion_coord1_pts = intrusion_frame [1 ].evaluate_value (points )
256- intrusion_coord2_pts = intrusion_frame [2 ].evaluate_value (points )
257- # ------ lateral extent thresholds for each of the evaluated points -------------
258- indicator_fx_intrusion = np .zeros ([len (points )])
259-
260- # if lateral extent values were simulated
261- if simulation_s_data is not None :
262-
263- simulation_s_data .sort_values (["coord1" ], ascending = [True ], inplace = True )
264- s_minside_threshold = np .zeros (len (intrusion_coord1_pts ))
265- s_maxside_threshold = np .zeros (len (intrusion_coord1_pts ))
266-
267- for i in range (len (simulation_s_data )):
268- for j in range (len (intrusion_coord0_pts )):
269- if s_minside_threshold [j ] == 0 and s_maxside_threshold [j ] == 0 :
270- if (
271- intrusion_coord1_pts [j ]
272- <= simulation_s_data .loc [i , "coord1" ]
273- ):
274- s_minside_threshold [j ] = simulation_s_data .loc [
275- i , "min_s_threshold"
276- ]
277- s_maxside_threshold [j ] = simulation_s_data .loc [
278- i , "max_s_threshold"
279- ]
280-
281- # ---- indicator function to define area of intrusion - w/out considering growth threshold
282- min_inet_coord0 = simulation_g_data .loc [:, "g_minimum" ].min ()
283- for i in range (len (points )):
284- if indicator_fx_intrusion [i ] == 0 :
285- if (
286- intrusion_coord0_pts [i ] >= min_inet_coord0
287- ): # >=0 #constaint for intrusion network
288- if (
289- s_minside_threshold [i ]
290- <= intrusion_coord2_pts [i ]
291- <= s_maxside_threshold [i ]
292- ): # constraint for lateral extent
293- indicator_fx_intrusion [i ] = 1
294-
295- # if lateral extent polygon is given
296- elif inet_polygon != None :
297- from shapely .geometry import Point , Polygon
298-
299- for i in range (len (intrusion_coord1_pts )):
300- p = Point (intrusion_coord1_pts [i ], intrusion_coord2_pts [i ])
301- if (
302- intrusion_coord0_pts [i ] >= min_inet_coord0
303- ): # >=0 #constaint for intrusion network
304- if p .within (inet_polygon ) == True :
305- indicator_fx_intrusion [i ] = 1
306-
307- # ------ growth threshold (only computed for points indicator_fx_intrusion[i] == 1)
308- growth_threshold = np .zeros ([len (intrusion_coord0_pts )])
309- inet_threshold = np .zeros ([len (intrusion_coord0_pts )])
310- for i in range (len (points )):
311- if indicator_fx_intrusion [i ] == 1 :
312- for j in range (len (simulation_g_data )):
313- if intrusion_coord1_pts [i ] <= simulation_g_data .loc [j , "coord1" ]:
314- if (
315- intrusion_coord2_pts [i ]
316- <= simulation_g_data .loc [j , "coord2" ]
317- ):
318- growth_threshold [i ] = simulation_g_data .loc [j , "g_maximum" ]
319- inet_threshold [i ] = simulation_g_data .loc [j , "g_minimum" ]
320- break
321-
322- # ------ Correct indicator function using growth threshold
323-
324- for i in range (len (points )):
325- if indicator_fx_intrusion [i ] == 1 :
326- if (
327- intrusion_coord0_pts [i ] > growth_threshold [i ]
328- or intrusion_coord0_pts [i ] < inet_threshold [i ]
329- ):
330- indicator_fx_intrusion [i ] = 0
331-
332- # ------- intrusion_sf: final distance scalar field
333-
334- # containers for distance scalar field of each coordinate
335- intrusion_sf0_temp = np .zeros (len (intrusion_coord0_pts ))
336- intrusion_sf1_temp = np .zeros (len (intrusion_coord1_pts ))
337- intrusion_sf2_temp = np .zeros (len (intrusion_coord2_pts ))
338- intrusion_sf = np .zeros (len (points ))
339-
340- for i in range (len (points )): # growth scalar field
341- if intrusion_coord0_pts [i ] < 0 :
342- intrusion_sf0_temp [i ] = abs (intrusion_coord0_pts [i ])
343- elif intrusion_coord0_pts [i ] >= growth_threshold [i ]:
344- intrusion_sf0_temp [i ] = abs (
345- intrusion_coord0_pts [i ] - growth_threshold [i ]
346- )
347- else :
348- intrusion_sf0_temp [i ] = intrusion_coord0_pts [i ] - growth_threshold [i ]
349-
350- # for i in range(len(points)): #strike scalar field
351- # if intrusion_coord2_pts[i] >= s_maxside_threshold[i]:
352- # intrusion_sf2_temp[i] = intrusion_coord2_pts[i] - s_maxside_threshold[i]
353- # elif intrusion_coord2_pts[i] <= s_minside_threshold[i]:
354- # intrusion_sf2_temp[i] = abs(intrusion_coord2_pts[i] - s_minside_threshold[i])
355- # elif 0 <= intrusion_coord2_pts[i] < s_maxside_threshold[i]:
356- # intrusion_sf2_temp[i] = intrusion_coord2_pts[i] - s_maxside_threshold[i]
357- # elif 0 > intrusion_coord2_pts[i] > s_minside_threshold[i]:
358- # intrusion_sf2_temp[i] = -(intrusion_coord2_pts[i] - s_minside_threshold[i])
359- # else: continue
360-
361- intrusion_sf = intrusion_sf0_temp
362-
363- # for i in range(len(indicator_fx_intrusion)):
364- # if indicator_fx_intrusion[i] == 1:
365- # intrusion_sf[i] = -10
366- # else:
367- # intrusion_sf[i] = 1 + abs(intrusion_coord0_pts[i]) + abs(intrusion_coord1_pts[i]) + abs(intrusion_coord2_pts[i])
368-
369- self .evaluated_points = [
370- points ,
371- intrusion_coord0_pts ,
372- intrusion_coord1_pts ,
373- intrusion_coord2_pts ,
374- ]
375- self .intrusion_indicator_function = indicator_fx_intrusion
376- return intrusion_sf # , indicator_fx_intrusion
230+ return intrusion_sf
0 commit comments