Skip to content

Commit 3e9e933

Browse files
committed
results 9
1 parent 04eccd1 commit 3e9e933

File tree

2 files changed

+143
-83
lines changed

2 files changed

+143
-83
lines changed

Python Scripts/PySeesTKO/pyseestko/queries.py

Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -272,49 +272,58 @@ def queryMetricsInGridPlots(
272272
print(f'Processing: {sim_type_map[sim_type]}, {nsubs} subs')
273273
for station in stations:
274274
for iteration in iterations:
275-
# -------------------------------------- INITIALIZATION -----------------------------------------
276-
# Init the classes
277-
save_fig = True if station == stations[-1] and iteration == iterations[-1] else False
278-
plotter = Plotting(sim_type, stories, # The class that plots the data
279-
nsubs, magnitude,
280-
iteration, rupture_type,
281-
station, show_plots=show_plots, grid=True, dpi=dpi, file_type=file_type)
282-
query = ProjectQueries(user, password, host, database, sim_type, linearity,
283-
mag_map.get(magnitude, 'None'),
284-
rup_map.get(rupture_type, 'None'),
285-
iteration,
286-
loc_map.get(station, 'None'),
287-
stories, nsubs, plotter, windows=windows, verbose=verbose)
288-
289-
# -------------------------------------- EXECUTE THE MAIN QUERY ---------------------------------
290-
# Get the results for zone = 'Las Condes', soil_category = 'B' and importance = 2
291-
drift, spectra, base_shear, axes = query.getAllResults(save_drift, save_spectra, save_b_shear,
292-
structure_weight, xlim_sup=xlim_sup, verbose=verbose,
293-
drift_axes=drift_axes, spectra_axes=spectra_axes, base_shear_axes=base_shear_axes,
294-
save_fig=False, fig_size=fig_size)
295-
drift_axes, spectra_axes, base_shear_axes = axes # update the axes
296-
297-
# Fill dictionaries
298-
sim_type_name = sim_type_map[sim_type]
299-
sim_name = f'{sim_type_name}_20f{nsubs}s_rup_bl_{iteration}_s{station}'
300-
drifts_df_dict[sim_name] = drift
301-
spectra_df_dict[sim_name] = spectra
302-
base_shear_df_dict[sim_name] = base_shear
303-
304-
# -------------------------------------- PLOT THE RESULTS ---------------------------------
305-
# Add plot of mean drifts
306-
if iteration == iterations[-1]:
307-
# Plot mean drift
308-
_plotMeanDriftColor(drifts_df_dict, plotter, xlim_sup, drift_axes, save_fig, fig_size) if save_drift else None
275+
if not all([save_drift==False, save_spectra==False, save_b_shear==False]):
276+
# -------------------------------------- INITIALIZATION -----------------------------------------
277+
# Init the classes
278+
save_fig = True if station == stations[-1] and iteration == iterations[-1] else False
279+
plotter = Plotting(sim_type, stories, # The class that plots the data
280+
nsubs, magnitude,
281+
iteration, rupture_type,
282+
station, show_plots=show_plots, grid=True, dpi=dpi, file_type=file_type)
283+
query = ProjectQueries(user, password, host, database, sim_type, linearity,
284+
mag_map.get(magnitude, 'None'),
285+
rup_map.get(rupture_type, 'None'),
286+
iteration,
287+
loc_map.get(station, 'None'),
288+
stories, nsubs, plotter, windows=windows, verbose=verbose)
309289

310-
# Plot mean spectra
311-
_plotMeanSpectraColor(spectra_df_dict, plotter, spectra_axes, save_fig, fig_size) if save_spectra else None
290+
# -------------------------------------- EXECUTE THE MAIN QUERY ---------------------------------
291+
# Get the results for zone = 'Las Condes', soil_category = 'B' and importance = 2
292+
drift, spectra, base_shear, axes = query.getAllResults(save_drift, save_spectra, save_b_shear,
293+
structure_weight, xlim_sup=xlim_sup, verbose=verbose,
294+
drift_axes=drift_axes, spectra_axes=spectra_axes, base_shear_axes=base_shear_axes,
295+
save_fig=False, fig_size=fig_size)
296+
drift_axes, spectra_axes, base_shear_axes = axes # update the axes
312297

313-
# Plot mean base shear
314-
_plotMeanBaseShearColor(base_shear_df_dict, plotter, base_shear_axes, save_fig, fig_size, Qmax) if save_b_shear else None
315-
316-
# Update tqdm
317-
pbar.update(1)
298+
# Fill dictionaries
299+
sim_type_name = sim_type_map[sim_type]
300+
sim_name = f'{sim_type_name}_20f{nsubs}s_rup_bl_{iteration}_s{station}'
301+
drifts_df_dict[sim_name] = drift
302+
spectra_df_dict[sim_name] = spectra
303+
base_shear_df_dict[sim_name] = base_shear
304+
305+
# -------------------------------------- PLOT THE RESULTS ---------------------------------
306+
# Add plot of mean drifts
307+
if iteration == iterations[-1]:
308+
# Plot mean drift
309+
_plotMeanDriftColor(drifts_df_dict, plotter, xlim_sup, drift_axes, save_fig, fig_size) if save_drift else None
310+
311+
# Plot mean spectra
312+
_plotMeanSpectraColor(spectra_df_dict, plotter, spectra_axes, save_fig, fig_size) if save_spectra else None
313+
314+
# Plot mean base shear
315+
_plotMeanBaseShearColor(base_shear_df_dict, plotter, base_shear_axes, save_fig, fig_size, Qmax) if save_b_shear else None
316+
317+
# Update tqdm
318+
pbar.update(1)
319+
else:
320+
pbar.update(1)
321+
sim_type_name = sim_type_map[sim_type]
322+
sim_name = f'{sim_type_name}_20f{nsubs}s_rup_bl_{iteration}_s{station}'
323+
drifts_df_dict[sim_name] = None
324+
spectra_df_dict[sim_name] = None
325+
base_shear_df_dict[sim_name] = None
326+
continue
318327
return drifts_df_dict, spectra_df_dict, base_shear_df_dict
319328

320329

Python Scripts/PySeesTKO/pyseestko/utilities.py

Lines changed: 93 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -102,61 +102,112 @@ def getMappings():
102102
3: "South-North"}
103103
return magnitude_mapping, location_mapping, ruptures_mapping
104104

105-
def getDriftResultsDF(
106-
sim_type_lst : List[str],
107-
nsubs_lst : List[str],
108-
iteration_lst : List[str],
109-
station_lst : List[str],
110-
max_drift_lst: List[float]):
111-
105+
def getDriftResultsDF(drifts_df_dict):
106+
sim_type_lst = [key.split('_')[0] for key in drifts_df_dict.keys()]
107+
nsubs_lst = [key.split('_')[1] for key in drifts_df_dict.keys()]
108+
iteration_lst = [key.split('_')[4] for key in drifts_df_dict.keys()]
109+
station_lst = [key.split('_')[5] for key in drifts_df_dict.keys()]
110+
112111
drift_df = pd.DataFrame({
113112
'Sim_Type' : sim_type_lst,
114113
'Nsubs' : nsubs_lst,
115114
'Iteration' : iteration_lst,
116-
'Station' : station_lst,
117-
'Mean_Drift': max_drift_lst})
118-
drift_df['Zone'] = drift_df['Station'].apply(assignZonesToStationsInDF)
119-
return drift_df
120-
121-
def getSpectraResultsDF(
122-
sim_type_lst : List[str],
123-
nsubs_lst : List[str],
124-
iteration_lst : List[str],
125-
station_lst : List[str],
126-
spectra_df_dict: Dict[str, pd.DataFrame],
127-
):
128-
max_spectra_lst_x = [(df.iloc[:,:5]).mean().max() for df in spectra_df_dict.values()]
129-
max_spectra_lst_y = [(df.iloc[:,5:]).mean().max() for df in spectra_df_dict.values()]
115+
'Station' : station_lst})
116+
117+
dfx = pd.DataFrame([df['CM x'] for df in drifts_df_dict.values()])
118+
dfy = pd.DataFrame([df['CM y'] for df in drifts_df_dict.values()])
119+
dfy = dfy.reset_index()
120+
dfx = dfx.reset_index()
121+
dfy = dfy.iloc[:,1:]
122+
dfx = dfx.iloc[:,1:]
123+
drift_df_x = pd.concat([drift_df, dfx], axis=1)
124+
drift_df_y = pd.concat([drift_df, dfy], axis=1)
125+
rename_dict = {
126+
1 : 's1',
127+
2 : 's2',
128+
3 : 's3',
129+
4 : 's4',
130+
5 : 's5',
131+
6 : 's6',
132+
7 : 's7',
133+
8 : 's8',
134+
9 : 's9',
135+
10 : 's10',
136+
11 : 's11',
137+
12 : 's12',
138+
13 : 's13',
139+
14 : 's14',
140+
15 : 's15',
141+
16 : 's16',
142+
17 : 's17',
143+
18 : 's18',
144+
19 : 's19',
145+
20 : 's20',
146+
}
147+
drift_df_x = drift_df_x.rename(columns=rename_dict).copy()[['Sim_Type', 'Nsubs', 'Iteration', 'Station', 's1','s5','s10','s15','s20']]
148+
drift_df_y = drift_df_y.rename(columns=rename_dict).copy()[['Sim_Type', 'Nsubs', 'Iteration', 'Station', 's1','s5','s10','s15','s20']]
149+
return drift_df_x, drift_df_y
150+
151+
def getSpectraResultsDF(spectra_df_dict):
152+
sim_type_lst = [key.split('_')[0] for key in spectra_df_dict.keys()]
153+
nsubs_lst = [key.split('_')[1] for key in spectra_df_dict.keys()]
154+
iteration_lst = [key.split('_')[4] for key in spectra_df_dict.keys()]
155+
station_lst = [key.split('_')[5] for key in spectra_df_dict.keys()]
130156
spectra_df = pd.DataFrame({
131157
'Sim_Type' : sim_type_lst,
132158
'Nsubs' : nsubs_lst,
133159
'Iteration' : iteration_lst,
134-
'Station' : station_lst,
135-
'Max_Spectra_X': max_spectra_lst_x,
136-
'Max_Spectra_Y': max_spectra_lst_y
137-
})
138-
spectra_df['Zone'] = spectra_df['Station'].apply(assignZonesToStationsInDF)
139-
return spectra_df
160+
'Station' : station_lst,})
161+
spectra_df['Zone'] = spectra_df['Station'].apply(assignZonesToStationsInDF)
162+
columns_x = ['Story 1 x', 'Story 5 x', 'Story 10 x', 'Story 15 x', 'Story 20 x']
163+
columns_y = ['Story 1 y', 'Story 5 y', 'Story 10 y', 'Story 15 y', 'Story 20 y']
164+
165+
dfx = pd.DataFrame([df[columns_x].iloc[416] for df in spectra_df_dict.values()])
166+
dfy = pd.DataFrame([df[columns_y].iloc[416] for df in spectra_df_dict.values()])
167+
dfy = dfy.reset_index()
168+
dfx = dfx.reset_index()
169+
dfy = dfy.iloc[:,1:]
170+
dfx = dfx.iloc[:,1:]
171+
spectra_df_x = pd.concat([spectra_df, dfx], axis=1)
172+
spectra_df_y = pd.concat([spectra_df, dfy], axis=1)
173+
rename_dict = {
174+
'Story 1 x' : 's1',
175+
'Story 5 x' : 's5',
176+
'Story 10 x' : 's10',
177+
'Story 15 x' : 's15',
178+
'Story 20 x' : 's20',
179+
}
180+
spectra_df_x = spectra_df_x.rename(columns=rename_dict)
181+
rename_dict = {
182+
'Story 1 y' : 's1',
183+
'Story 5 y' : 's5',
184+
'Story 10 y' : 's10',
185+
'Story 15 y' : 's15',
186+
'Story 20 y' : 's20',
187+
}
188+
spectra_df_y = spectra_df_y.rename(columns=rename_dict)
189+
190+
return spectra_df_x, spectra_df_y
140191

141-
def getSBaseResultsDF(
142-
sim_type_lst : List[str],
143-
nsubs_lst : List[str],
144-
iteration_lst : List[str],
145-
station_lst : List[str],
146-
base_shear_df_dict: Dict[str, pd.DataFrame]
147-
):
148-
mean_base_shear_lst_x = [abs(df['Shear X'].mean()) for df in base_shear_df_dict.values()]
149-
mean_base_shear_lst_y = [abs(df['Shear Y'].mean()) for df in base_shear_df_dict.values()]
192+
def getSBaseResultsDF(base_shear_df_dict):
193+
sim_type_lst = [key.split('_')[0] for key in base_shear_df_dict.keys()]
194+
nsubs_lst = [key.split('_')[1] for key in base_shear_df_dict.keys()]
195+
iteration_lst = [key.split('_')[4] for key in base_shear_df_dict.keys()]
196+
station_lst = [key.split('_')[5] for key in base_shear_df_dict.keys()]
150197
base_shear_df = pd.DataFrame({
151198
'Sim_Type' : sim_type_lst,
152199
'Nsubs' : nsubs_lst,
153200
'Iteration' : iteration_lst,
154-
'Station' : station_lst,
155-
'BShear_X' : mean_base_shear_lst_x,
156-
'BShear_Y' : mean_base_shear_lst_y
157-
})
158-
base_shear_df['Zone'] = base_shear_df['Station'].apply(assignZonesToStationsInDF)
159-
return base_shear_df
201+
'Station' : station_lst,})
202+
dfx = pd.DataFrame([df['Shear X'].abs().max() for df in base_shear_df_dict.values()], columns=['MaxShearX'])
203+
dfy = pd.DataFrame([df['Shear Y'].abs().max() for df in base_shear_df_dict.values()], columns=['MaxShearY'])
204+
dfy = dfy.reset_index()
205+
dfx = dfx.reset_index()
206+
dfy = dfy.iloc[:,1:]
207+
dfx = dfx.iloc[:,1:]
208+
base_shear_df_x = pd.concat([base_shear_df, dfx], axis=1)
209+
base_shear_df_y = pd.concat([base_shear_df, dfy], axis=1)
210+
return base_shear_df_x, base_shear_df_y
160211

161212

162213
# ==================================================================================

0 commit comments

Comments
 (0)