5454 'SA' : [
5555 'Chiou & Youngs (2014)' ,
5656 'Abrahamson, Silva & Kamai (2014)' ,
57+ 'Abrahamson, Silva & Kamai (2014) Aftershock' ,
5758 'Boore, Stewart, Seyhan & Atkinson (2014)' ,
5859 'Campbell & Bozorgnia (2014)' ,
5960 ],
6061 'PGA' : [
6162 'Chiou & Youngs (2014)' ,
6263 'Abrahamson, Silva & Kamai (2014)' ,
64+ 'Abrahamson, Silva & Kamai (2014) Aftershock' ,
6365 'Boore, Stewart, Seyhan & Atkinson (2014)' ,
6466 'Campbell & Bozorgnia (2014)' ,
6567 ],
6668 'PGV' : [
6769 'Chiou & Youngs (2014)' ,
6870 'Abrahamson, Silva & Kamai (2014)' ,
71+ 'Abrahamson, Silva & Kamai (2014) Aftershock' ,
6972 'Boore, Stewart, Seyhan & Atkinson (2014)' ,
7073 'Campbell & Bozorgnia (2014)' ,
7174 ],
@@ -136,11 +139,16 @@ def __init__(
136139 gmpe_weights_dict = dict (), # noqa: B006, C408
137140 im_type = None ,
138141 site_info = dict (), # noqa: B006, C408
142+ mainshock = None
139143 ):
140144 # basic set-ups
141145 self .set_im_gmpe (im_dict , gmpe_dict , gmpe_weights_dict )
142146 self .set_im_type (im_type )
143147 self .set_sites (site_info )
148+ if mainshock is not None :
149+ self .mainshock = mainshock .copy () # single row gdf containing mainshock rupture surface
150+ else :
151+ self .mainshock = None
144152 # self.set_source(source_info)
145153
146154 def set_source (self , source_info ): # noqa: D102
@@ -155,6 +163,7 @@ def set_source(self, source_info): # noqa: D102
155163 or 'Abrahamson, Silva & Kamai (2014)' in gmpe_list
156164 or 'Boore, Stewart, Seyhan & Atkinson (2014)' in gmpe_list
157165 or 'Campbell & Bozorgnia (2014)' in gmpe_list
166+ or 'Abrahamson, Silva & Kamai (2014) Aftershock' in gmpe_list
158167 ):
159168 source_index = source_info .get ('SourceIndex' , None )
160169 rupture_index = source_info .get ('RuptureIndex' , None )
@@ -163,6 +172,14 @@ def set_source(self, source_info): # noqa: D102
163172 self .erf , source_index , rupture_index , self .site_info
164173 )
165174 # self.timeGetRuptureInfo += time.process_time_ns() - start
175+ if 'Abrahamson, Silva & Kamai (2014) Aftershock' in gmpe_list :
176+ source_index = source_info .get ('SourceIndex' , None )
177+ rupture_index = source_info .get ('RuptureIndex' , None )
178+ crJB = get_rupture_info_ASK2014_aftershock ( # noqa: F405
179+ self .erf , source_index , rupture_index , self .mainshock
180+ )
181+ site_rup_dict ['crJB' ] = crJB
182+
166183 elif source_info ['Type' ] == 'PointSource' :
167184 if (
168185 'Chiou & Youngs (2014)' in gmpe_list
@@ -456,7 +473,7 @@ def get_im_from_local( # noqa: C901, D102
456473 eq_magnitude , self .site_rup_dict , cur_site , im_info
457474 )
458475 # self.timeGetIM += time.process_time_ns() - start
459- elif cur_gmpe == 'Abrahamson, Silva & Kamai (2014)' :
476+ elif cur_gmpe == 'Abrahamson, Silva & Kamai (2014)' or cur_gmpe == 'Abrahamson, Silva & Kamai (2014) Aftershock' :
460477 # start = time.process_time_ns()
461478 tmpResult = self .ASK .get_IM ( # noqa: N806
462479 eq_magnitude , self .site_rup_dict , cur_site , im_info
@@ -793,13 +810,17 @@ def compute_im( # noqa: C901, D103
793810 sys .exit (
794811 'SA is used in hazard downsampling but not defined in the intensity measure tab'
795812 )
796- elif ho_period in im_info ['SA' ].get ('Periods' ):
797- pass
813+ elif im_info .get ('Periods' , None ) is not None :
814+ if ho_period in im_info ['Periods' ]:
815+ pass
816+ elif im_info .get ('SA' , None ) is not None :
817+ if ho_period in im_info ['SA' ].get ('Periods' ):
818+ pass
798819 else :
799820 tmp_periods = im_info ['SA' ]['Periods' ] + [ho_period ]
800821 tmp_periods .sort ()
801822 im_info ['SA' ]['Periods' ] = tmp_periods
802- elif ho_period in im_info [ 'SA' ] .get ('Periods' ):
823+ elif ho_period in im_info .get ('Periods' ):
803824 pass
804825 else :
805826 tmp_periods = im_info ['SA' ]['Periods' ] + [ho_period ]
0 commit comments