EEW Evaluation
CISN Testing Center (CTC) code development project processes CISN EEW trigger reports and produces CISN EEW performance summaries. Current design goal is to produce a system capable of both retrospective testing of CISN reports and usable for prospective testing of ongoing CISN ShakeAlert results.
CTC Software is designed to input EEW trigger information and produce performance summaries. It is designed to support EEW triggers in multiple formats and is intended support processing of ShakeAlert EEW trigger files. Currently two trigger types can be processed, Virtual Seismologist lead by Swiss Seismological Service at ETH Zurich, and On Site lead by Caltech seismology lab. Support for UC Berkeley ELarms and CISN ShakeAlert are planned.
Contents
- 1 CISN Testing Documents
- 2 Example Ground Motion Forecast Summaries
- 3 Example Virtual Seismologist Forecast Performance
- 4 Interpretation of Results
- 5 Trigger Matching Algorithms
- 6 Input Configuration Files
- 7 Usage Overview
- 8 Intensity Equations
- 9 Performance Evaluation Summaries
- 10 CISN On Site Trigger
- 11 VS Trigger Reports
- 12 ShakeMap Data
- 13 Migration to ShakeAlert Testing
- 14 Processing Flow
- 15 ANSS Catalog Files
- 16 Central California Event
- 17 CTC Software Versions
- 18 Software Download
- 19 Contributors
- 20 Related Entries
- 21 See Also
CISN Testing Documents
- 2010
- CISN EEW Workshop Oct 2010 (7MB ppt File)
- CISN EEW Testing Document (Updated July 2010)
Example Ground Motion Forecast Summaries
ANSS Event ID: 10922333 Magnitude: 4.13 Origin Time: 2011/04/09 08:58:49 Hypocenter: 32.6055 -115.7237 9.38 km Forecast Sources: ssi://caltech.gps.edu/onsite/2.1.0 First Forecast Time: 2011/04/09 08:59:21 First Forecast Secs after Origin: 32 Net:Sta Dist(km) Wd(secs) PGV(obs-cm/s) PGV(fcst) PGA(obs-cm/s2) PGA(fcst) I(obs-MMI) I(fcst) abs(Io-If) Skill obs GM fcst GM CI:WES 17.3 32.0 0.2000 0.3816 1.93 2.52 0.59 Good Light shaking/no damage potential Weak shaking/no damage potential CI:DRE 34.0 35.0 0.1071 0.2022 1.36 1.94 0.58 Good Weak shaking/no damage potential Weak shaking/no damage potential CI:IBP 35.5 35.0 0.0422 0.1042 1.00 1.34 0.34 Very Good Weak shaking/no damage potential Not felt/no damage potential CI:ERR 57.7 39.0 0.0449 0.1317 1.00 1.55 0.55 Good Weak shaking/no damage potential Not felt/no damage potential Summary of 4 site-specific forecast ratings for event:10922333 Very Good: 25.0% Good : 75.0% Moderate : 0.0% Poor : 0.0% Very Poor: 0.0%
Example Virtual Seismologist Forecast Performance
Event ID: 14937372 Magnitude: 5.07 Origin Time: 2011/02/18 17:47:35.77 Hypocenter: 32.0470 -115.0622 15.00 km Forecast Source: smi://caltech.gps.edu/onsite/cinnabar/vs/eewvs Forecast Time: 2011-02-18T17:48:12Z First Forecast Secs after Origin: 37 Net:Sta Dist(km) Wd(secs) PGV(obs) PGV(fcst)m/s I(obs) I(fcst)MMI abs(Io-If) Skill obs GM fcst GM CI:WES 101.0 37.0 0.0276 0.0011 4.31 4.44 0.13 Very Good Strong shaking/light damage potential Strong shaking/light damage potential CI:BTC 108.0 37.0 0.0152 0.0001 3.51 2.20 1.32 Moderate Light shaking/no damage potential Moderate shaking/very light damage CI:SWS 121.3 37.0 0.0038 0.0005 2.23 3.58 1.35 Moderate Moderate shaking/very light damage Light shaking/no damage potential CI:RXH 136.5 37.0 0.0051 0.0002 1.97 2.48 0.51 Good Light shaking/no damage potential Weak shaking/no damage potential CI:ERR 138.5 37.0 0.0076 0.0002 2.97 2.83 0.13 Very Good Light shaking/no damage potential Light shaking/no damage potential AZ:MONP2 158.5 37.0 0.0030 0.0002 2.59 2.57 0.03 Very Good Light shaking/no damage potential Light shaking/no damage potential CI:SAL 161.9 37.0 0.0094 0.0001 2.91 2.32 0.58 Good Light shaking/no damage potential Light shaking/no damage potential CI:BC3 182.1 37.0 0.0027 0.0001 1.86 1.46 0.39 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:JEM 184.2 37.0 0.0045 0.0001 2.77 2.02 0.75 Good Light shaking/no damage potential Light shaking/no damage potential CI:BOR 185.7 37.0 0.0011 0.0001 1.49 1.99 0.50 Good Weak shaking/no damage potential Weak shaking/no damage potential CI:OLP 186.6 37.0 0.0030 0.0001 3.00 1.66 1.33 Moderate Weak shaking/no damage potential Light shaking/no damage potential CI:NSS2 186.7 37.0 0.0037 0.0001 1.86 1.74 0.12 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:EML 192.0 37.0 0.0026 0.0001 2.51 1.77 0.74 Good Weak shaking/no damage potential Light shaking/no damage potential CI:SDR 192.7 37.0 0.0024 0.0001 2.50 1.66 0.84 Good Weak shaking/no damage potential Light shaking/no damage potential CI:BLY 195.5 37.0 0.0028 0.0000 2.15 0.78 1.38 Moderate Not felt/no damage potential Light shaking/no damage potential CI:CTC 198.4 37.0 0.0021 0.0001 1.62 1.56 0.06 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:TOR 201.5 37.0 0.0014 0.0001 0.69 1.62 0.93 Good Weak shaking/no damage potential Not felt/no damage potential AZ:LVA2 201.7 37.0 0.0024 0.0001 1.90 1.72 0.19 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:DPP 205.7 37.0 0.0033 0.0001 2.99 1.58 1.41 Moderate Weak shaking/no damage potential Light shaking/no damage potential AZ:TRO 207.7 37.0 0.0012 0.0001 1.55 1.59 0.04 Very Good Weak shaking/no damage potential Weak shaking/no damage potential AZ:HWB 208.7 37.0 0.0009 0.0001 1.65 1.54 0.10 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:SDG 211.7 37.0 0.0035 0.0001 2.52 1.39 1.14 Moderate Weak shaking/no damage potential Light shaking/no damage potential AZ:CPE 213.6 37.0 0.0037 0.0001 3.10 1.41 1.69 Poor Weak shaking/no damage potential Moderate shaking/very light damage AZ:FRD 215.9 37.0 0.0009 0.0001 0.72 1.49 0.77 Good Weak shaking/no damage potential Not felt/no damage potential CI:PMD 216.1 37.0 0.0008 0.0001 1.11 1.44 0.33 Very Good Weak shaking/no damage potential Weak shaking/no damage potential AZ:PFO 217.3 37.0 0.0006 0.0001 0.21 1.44 1.23 Moderate Weak shaking/no damage potential Not felt/no damage potential AZ:BZN 219.7 37.0 0.0013 0.0001 1.78 1.44 0.34 Very Good Weak shaking/no damage potential Weak shaking/no damage potential AZ:SND 221.2 37.0 0.0016 0.0001 1.60 1.41 0.18 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:PLM 222.5 37.0 0.0045 0.0001 2.38 1.41 0.97 Good Weak shaking/no damage potential Light shaking/no damage potential AZ:SOL 223.6 37.0 0.0091 0.0000 3.56 1.25 2.31 Very Poor Weak shaking/no damage potential Moderate shaking/very light damage CI:DNR 223.6 37.0 0.0036 0.0001 2.22 1.38 0.83 Good Weak shaking/no damage potential Light shaking/no damage potential AZ:WMC 226.9 37.0 0.0019 0.0001 1.81 1.34 0.47 Very Good Weak shaking/no damage potential Weak shaking/no damage potential AZ:CRY 230.2 37.0 0.0004 0.0001 0.21 1.30 1.09 Moderate Weak shaking/no damage potential Not felt/no damage potential CI:MGE 231.4 37.0 0.0026 0.0000 1.78 1.21 0.57 Good Weak shaking/no damage potential Weak shaking/no damage potential CI:BEL 233.6 37.0 0.0011 0.0000 0.26 1.06 0.81 Good Weak shaking/no damage potential Not felt/no damage potential CI:IRM 234.2 37.0 0.0014 0.0000 0.79 0.74 0.05 Very Good Not felt/no damage potential Not felt/no damage potential CI:GOR 237.6 37.0 0.0018 0.0000 2.12 1.16 0.95 Good Weak shaking/no damage potential Light shaking/no damage potential AZ:KNW 240.9 37.0 0.0006 0.0000 0.07 1.16 1.09 Moderate Weak shaking/no damage potential Not felt/no damage potential CI:PSD 241.2 37.0 0.0006 0.0000 0.81 1.12 0.32 Very Good Weak shaking/no damage potential Not felt/no damage potential AZ:RDM 242.4 37.0 0.0012 0.0000 1.54 1.15 0.39 Very Good Weak shaking/no damage potential Weak shaking/no damage potential CI:DEV 252.9 37.0 0.0011 0.0000 1.28 0.98 0.30 Very Good Not felt/no damage potential Weak shaking/no damage potential CI:SLR 256.1 37.0 0.0012 0.0000 1.47 0.98 0.49 Very Good Not felt/no damage potential Weak shaking/no damage potential CI:MCT 258.4 37.0 0.0008 0.0000 0.00 0.79 0.79 Good Not felt/no damage potential Not felt/no damage potential CI:MUR 263.8 37.0 0.0023 0.0000 2.31 0.91 1.39 Moderate Not felt/no damage potential Light shaking/no damage potential CI:MSJ 264.4 37.0 0.0042 0.0000 2.35 0.90 1.45 Moderate Not felt/no damage potential Light shaking/no damage potential CI:BBS 274.5 37.0 0.0022 0.0000 1.56 0.80 0.77 Good Not felt/no damage potential Weak shaking/no damage potential CI:PER 284.0 37.0 0.0013 0.0000 1.05 0.71 0.33 Very Good Not felt/no damage potential Weak shaking/no damage potential CI:JVA 295.1 37.0 0.0012 0.0000 1.03 0.54 0.49 Very Good Not felt/no damage potential Weak shaking/no damage potential CI:SDD 295.2 37.0 0.0053 0.0000 2.16 0.59 1.56 Poor Not felt/no damage potential Light shaking/no damage potential CI:BBR 300.7 37.0 0.0013 0.0000 0.92 0.53 0.39 Very Good Not felt/no damage potential Not felt/no damage potential CI:RSS 300.7 37.0 0.0015 0.0000 1.65 0.56 1.09 Moderate Not felt/no damage potential Weak shaking/no damage potential Summary of 51 site-specific forecast ratings for event:14937372 Very Good: 41.2% Good : 29.4% Moderate : 23.5% Poor : 3.9% Very Poor: 2.0%
Interpretation of Results
When comparing perfmance of these two EEW algorithms here are few things to consider. First, VS is an associator-based system. It uses phase picks to get a hypocenter and some other technique to get the magnitude. Once the event is declared, VS starts to forecast time series of parameters. In the current summaries, we use first reports from VS. Other plots showing more details of the time series will be developed. Once the VS forecasting starts, it updates event parameters lat,lon,mag,origin time. It also forecast pgv and pga at a set of CISN station locations. We are not sure how the set of stations to forecast for are decided, but it is fixed for the full trigger report. Event parameters and pgv and pga for all sites are updated every timestep (5 seconds). The number of sites varies by event we've seen between 20 and 50 per M4-5 events.
The OnSite algorithm is intended to be a faster algorithm because it is a single station approach. It produces a trigger, a final mag, a peak pgv.
We currently produce the intensity-skill summary using all available onsite triggers for each event. We combine the pgv forecasts to create the map.
However, a better comparison to the VS may be to use the magnitude forecast at each trigger, and use that to forecast ground motions at station sites, using an attenuation relationship.
VS must use this kind of approach to produce it's groundmotion forecasts. I think the On Site trigger might have enough information to use VS ground motion forecast to produce ground motion forecasts at multiple stations for each on-site trigger.
Trigger Matching Algorithms
The CTC software is designed to start processing when given one, or more, EEW trigger files produced by CISN EEW systems. The intent of the EEW Evaluation system is that it will compare earthquake and ground motion forecasts from these trigger files against the observational data collected by the CISN and other network operators. The reference observational catalog is the ANSS catalog. We are uncertain the time lag before recent earthquakes appear in this catalog. Given a trigger file, each forecast is matched to a ANSS event. Then observational data about the event is used to produce goodness of fit metrics for the forecasting system.
Developing the algorithm testing system, we learned there are many ways to match triggers to ANSS events. The system should automatically do the matching and also allow users to override automatic matching results.
The matching for current CTC is done differently for VS triggers and On Site Triggers.
The On Site triggers contain an associated CI event. We assume a network CI and match CI:EventID to the ANSS catalog. This usually works, but we have seen a Mamonth event trigger with a CI event id, but in the ANSS catalog, it was under an nothern california event id. To process this event, we added a duplicate of the norcal ANSS event, and put the duplicate into the anss_catalog file, and then the trigger could be processed.
The VS trigger does not have an associated event id. This is more typical case, or the expected case because the EEW algorithms are declaring their own events before CISN events are declared.
The current system takes the vs trigger file. VS trigger files have one earthquake per file. The system finds the Vs trigger time, and then finds an ANSS event with the closest origin time to the trigger time. The trigger and event that get matched must be within configuration.parameter 240 seconds of each other. The matches are put into an output file.
The matching system is separated from the other parts of the processing. It may require humans to correctly match triggers to events. As designed, humans can update or correct the automatically generated matching file. The rest of the CTC codes only use the matches in the matching file, regardless of how they were made.
Input Configuration Files
File-based inputs of CISN configuration information is needed.
- CISN station list with network,station,channel,location,lat,lon
NP 1821 HNZ -- 37.798599 -122.268402
- Set of Shakemap files current in stationlist.txt format
- ANSS catalog file of events in format from web page
2010/06/02 09:30:47.55 32.0432 -115.2220 10.00 3.96 ML 12 0.21 CI 14731660
Usage Overview
To process EEW trigger files for current or future events you can take the following steps.
- Install ctc software distribution from scec's github repository. Before any formal release, the expectation is that the current version is best available. Once we have release versions, select the one most appropriate for your use.
- Setup CISN confirmation files. Default files are included in distribution, but may need to be updated as network changes. These include stations list, ANSS catalog for a specific region, and time period, and magnitude limit.
- Collect ShakeMap event files. For the CTC performanc analysis processing to work, it requires the observational data from ShakeMap stationlist.txt files. We currently use the .txt format files, but we believe the information content is equivalent to the shakemap xml files, so either can be used.
- If your trigger files are VS files, you need to trigger2anssevent.txt file to process VS triggers. Default programming is to generate this from ANSS catalog and trigger files. Since we get EEW triggers only for larger events, matching isn't currently a problem. If it is, the system supports manually creating the trigger to event matching file to ensure each trigger is matched and compared to the correct ANSS event.
- the main directory is called ctc
- In ctc directory, there are three subdirectories:
- Inputs
- Outputs
- src
- In the Inputs directory. There are three subdirectories:
- authdata
- vs_triggers
- onsite_triggers
- Put the VS trigger files into the vs_triggers subdirectory. Put the OnSite trigger files into the onsite_triggers subdirectory.
- In authdata, there are two files and a subdirectory
- anss_catalog_2011.txt
- cisn_stations_13April2011.txt
- shakemaps
- The anss_catalog contains events retrieved through the anss web site
- The cisn catalog contains sncl and lat,lon for most cisn stations. This should include all stations at which ground motions are forecast by any of the EEW algorithms. When processing a trigger file, a station may be reported as missing. Find out the station information from somewhere, and add it into this catalog to continue processing
- Shakemap files in order to produce performance summaries for any eew triggers. Shakemap files have observed pga and pgv for many cisn stations for larger california earthquakes. CTC matches a trigger to a shakemap through the anss event id. So to process a trigger, match the trigger to anss event, and match the anss event to a shakemap file.
- All configurations in place and all trigger files to process posted in inputs move to the src directory
- gen_ctc.py
- This generates a results and puts the results into the output directory.
- Updates are sequenced to avoid overwriting. Update files that can be viewed as an html file with links to images and data files used in the summaries.
- Currently, the system will produces one summary per event per EEW algorith. The ground motion forecast evaluation report is an event specific forecast skill summary defined in a 2008 CISN testing meeting. Example shown below. Further performance summaries will be added.
Intensity Equations
There are formulas presented in the CISN testing document that provide formula's to convert PGV and PGA, or just PGV to intensity. We use first for VS intenstiy and other for On Site.
The formulas were somewhat vague on what type of logs to use, and what units to use in the input PGV values. We ended up with mms and that seems to be the right formula. Below is psuedo code showing how we implemented the algorithms.
These algorithms seems to consider non-integer intensity values so we support those here.
def convertVelocity2Intensity(pgv_val): pgv_in_mms = pgv_val*10.0 ite = (2.10 * math.log10(pgv_in_mms)) + 3.40 if ite >= 5: ite = (3.47 * math.log(pgv_in_mms)) + 2.35 return ite def convertToIntensity(pgv,pga): # # inputs to floats, returns a float # pgv_in_mms = pgv*1000.0 pga_in_mms2 = pga*1000.0 inten = (2.20 * math.log10(pga_in_mms2)) + 1 if inten < 0.0: inten = 0.0 if int(inten) > 5.0: inten = (3.66 * math.log10(pga_in_mms2)) - 1.66 if int(inten) > 7.0: inten = (3.47 * math.log10(pgv_in_mms)) + 2.35 return inten
Performance Evaluation Summaries
Two descriptions of performance summaries include:
- CISN Testing Document
- CTC Group Evaluation Collection
We separate the summaries into "Event" Summaries and "Catalog" Summaries where catalog means any set of earthquakes, and the summary must make it clear what criteria were used to define the catalog.
CISN On Site Trigger
An example CISN Trigger file is posted here:
We noted several things about the current formatting.
- The report id never changes. The intention was that this uniquely identified the file. But it is currently fixed.
- Forecasts PGV and Mag only
- Reports both algorithm and alert time, the delta seems to vary from 2 to 5 seconds. This may represent the processing time of algorithm.
- Multiple forecasts per trigger file
- Multiple events per trigger file
- Seems to report duplicate forecast information for each trigger. One copy of the trigger also contains observational data for the trigger. It is unclear how the trigger is match to the event id. We noted that in some cases the event id reported in the trigger file is not the final ANSS event id.
- The event id does not have a network id so we assume it is CI network event
VS Trigger Reports
VS is running on southern California Events. We noted the following.
- Reports one event per trigger file
- Each trigger file reports source of report
- Each trigger file contains a set of time series
- It seems that all time series in the trigger report have the same timestamps
- Event oriented time series include:
- magnitude
- lat
- lon
- origin time
- Region-oriented time series include
- pgv
- pga
ShakeMap Data
We are currently working with the ShakeMap stationlist txt file. We may convert to the stationlist xml files, but it was easier to parse the column oriented to start.
We use the ShakeMap data as reference observational data for station amplitude values.
We have identified several characteristics to the ShakeMap observational reports.
- Two main formats are the CI: and NN: events, and ECX events. ECX events have their pgv and pga values in different columns than the others, so this type of ShakeMap report must be checked for while parsing.
- ShakeMap files also have different number of columns populated. Currently we require that both PGA and PGV are listed before we use it as a authorized data observation. The goal is to maximize the number of observations we have to compare to forecasts. Right now, we don't have forecasts at PGV or PGA only sites. Once we do, we should add small modification to track observations even if they only have one component of data.
- We pull event ID from the header of the Shakemap file. However, it does not list the network, which we need to match it up in the ANSS catalog.
Migration to ShakeAlert Testing
Current capabilities are retrospective. They can be downloaded and used to process Trigger files and produce retrospective reports. The intention is that the current tools will be useful in prospective testing of ShakeAlert. Current trigger exchange format may be changed to use a version of ShakeMap format which would be more standardized.
Processing Flow
Current design is based on processing one or more trigger reports. Currently two types of trigger reports are supported CIT On Site, and ETH Virtual Seismologist.
- Init CISN Station list, ANSS EQ catalog, ShakeMap catalog
- For each Trigger File
- Mapped to One or More ANSS Events and observed data from ShakeMap
- For each event in trigger file
- write event summary
- Add to catalog summaries
- write catalog summaries
ANSS Catalog Files
We create a catalog of ANSS events based on the ANSS web-based catalog search capabilities. The query parameters for the ANSS catalog are in the header of the file. This catalog represents the authorized reference data for events in the testing region. While we use ShakeMap data files to get station information, we use ANSS catalog as the reference event catalog.
- Example ANSS Catalog File
Central California Event
During a recent central california event several issues emerged. First the shakemap results that arrived via the shakereader seemed to have only two rows of stations. Then, via the ShakeMap web site, we were able to find a complete ShakeMap file. Next, the event arrived by email but was not available in the ANSS catalog. We had to manually enter the event information from the email into an anss catalog entry for use in processing. Then we saw that all the stations in the ShakeMap observation file were NorCal stations, however the forecast stations in the VS trigger were all southern California stations. This looks to be a limitation of using ShakeMap files for source of observational data
CTC Software Versions
Tag Descriptions:
- 11_05_24
- This is the first tagged version with skill summary reports considered accurate. All versions prior to this a considered to have units problems when converting from PGA to acceleration (cm/s/s).
Tag Descriptions:
- 11.5.0
- This distribution is capable of processing performance summaries for new events. Retrieve this distribution and setup the authdata inputs correctly, put the vs trigger file or onsite trigger file in the inputs directory, and run gen_ctc.py and the software should produce a number of performance summaries without errors. This is the distribution described in the SCEC Year 2 report to USGS.
Software Download
CTC software is intended to be general purpose and will be posted online as open-source. SCEC software version is date-based, something like 11_05_24
If you have a SCEC account you can retrieve the project files with the following commands.
CTC Software is posted in repository on SCEC SVN repository
Latest development version is available with the command:
- svn co http://source.usc.edu/svn/ctc ctc
Contributors
- Swiss Seismological Service at ETH Zurich
- Caltech Seismology
- UC Berkeley Seismological Lab
- CISN Recent Earthquakes