USGS ShakeCast PGA Fragility Function (lognormal distribution curves)
Hello,
I think I have found a discrepancy in the implementation of the fragility functions between ShakeCast and HAZUS Technical Manual v5.1 (TM), which leads to an incorrect calculation of the inspection probability. It looks like ShakeCast is using the CDF for a standard normal distribution and should be using the CDF for a lognormal distribution. Could you confirm if I am correct or mistaken? Please see the notes in the attached pdf.
I have been using ShakeCast v4 “pycast”. The online documentation describing how inspection priorities are calculated uses the CDF for a standard normal distribution curve phi(x) = (1/2) * ( 1 + erf((x-median)/(sqrt(2) * beta)). I see this formula implemented as the function “lognorm_opt” in the impact.py script. https://usgs.github.io/shakecast/exceedance.html#hazus https://github.com/usgs/shakecast/blob/master/shakecast/app/impact.py#L262
In TM Section 5.2, the general building stock fragility functions are described as lognormal fragility curves. ShakeCast uses the equivalent PGA structural fragility curve median and beta values shown in Tables 5-28 through 5-31 in TM Section 5.4.3. This section does not have a figure plotting the fragility functions for a sample building type, so I could not make a direct comparison between the TM and ShakeCast. However, there are figures in Section 8 for utility systems. I plotted lognormal fragility curves using the parameters for a Small Generation Facility per Table 8-31 and compared it to Figure 8-55 and found good alignment. A normal CDF using the median and beta value does not align with the TM figures.
I then compared the use of a lognormal CDF against the results produced by the normal CDF in ShakeCast for a scenario event. My normal CDF function in Excel aligns with the results reported by ShakeCast. For a scenario event, the normal CDF predicts a Low damage state, but the lognormal CDF predicts No Impact. If the PGA were greater, the normal CDF underpredicts the damage state.
To implement a lognormal CDF in Shakecast the code would need to be revised to match this formulation. phi(x) = (1/2) * ( 1 - erf((ln(median)-ln(x)/(sqrt(2) * beta))
Thank you,
Nick Skok, S.E.
Project Engineer
Degenkolb Engineers