2727from openquake .calculators import extract
2828
2929
30- def get_mag_dist_eps_df (
31- mean_disagg_by_src , src_mutex , src_info ):
30+ def get_mag_dist_eps_df (mean_disagg_by_src , src_mutex , src_info ):
3231 """
3332 Compute mag, dist, eps, sig for each (src, imt) combination.
3433
@@ -47,9 +46,12 @@ def get_mag_dist_eps_df(
4746 grp [src ] = grp_id
4847 for s , src in enumerate (mean_disagg_by_src .source_id ):
4948 for m , imt in enumerate (mean_disagg_by_src .imt ):
50- rates_mag = mean_disagg_by_src [s , :, :, :, m ].sum ((1 , 2 ))
51- rates_dst = mean_disagg_by_src [s , :, :, :, m ].sum ((0 , 2 ))
52- rates_eps = mean_disagg_by_src [s , :, :, :, m ].sum ((0 , 1 ))
49+ rates = mean_disagg_by_src [s , :, :, :, m ]
50+ if (rates == 0 ).all ():
51+ continue # no contribution from this imt
52+ rates_mag = rates .sum ((1 , 2 ))
53+ rates_dst = rates .sum ((0 , 2 ))
54+ rates_eps = rates .sum ((0 , 1 ))
5355 dic ['src' ].append (src )
5456 dic ['imt' ].append (imt )
5557 # NB: 0=mag, 1=dist, 2=eps are the dimensions of the array
0 commit comments