Difference between revisions of "CSEP1 Status"

From SCECpedia
Jump to navigationJump to search
Line 277: Line 277:
 
'''2. Missing Forecasts by Day'''
 
'''2. Missing Forecasts by Day'''
  
We can expand this list to show which forecasts are missing for each date, which we will manually verify for a few different forecasts.  
+
We can expand this list to show the missing forecasts grouped by day, which we manually verify for a few different forecasts. We start by selecting the first 10 days containing missing forecasts for all of the one-day-models found on the system.
 
<pre>
 
<pre>
 
sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Missing' and ScheduledForecasts.date_time < date('2018-05-10') group by ScheduledForecasts.date_time limit 10;
 
sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Missing' and ScheduledForecasts.date_time < date('2018-05-10') group by ScheduledForecasts.date_time limit 10;
Line 292: Line 292:
 
</pre>
 
</pre>
  
Conversely, we will select the forecasts that completed during this time period. We will manually look on the file system to verify the results in the database are correct.
+
We take a subset of this group, namely one-day-models-Md2-V12.10 (id=10).
 
<pre>
 
<pre>
sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Complete' and ScheduledForecasts.date_time > date('2016-09-21') group by ScheduledForecasts.date_time limit 10;
+
sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Missing' and ScheduledForecasts.date_time < date('2018-05-10') and Forecasts.group_id=10 group by ScheduledForecasts.date_time limit 10;
2016-09-21 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASV1.1,ETAS_HWMd3,K3Md3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-20 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2
2016-09-22 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASV1.1,ETAS_HWMd3,K3Md3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-21 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-23 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASV1.1,ETAS_HWMd3,K3Md3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-22 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-24 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASV1.1,ETAS_HWMd3,K3Md3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-23 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-25 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASV1.1,ETAS_HWMd3,K3Md3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-24 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-26 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASV1.1,ETAS_HWMd3,K3Md3,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-25 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-27 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-26 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-28 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-27 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-29 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-28 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-30 00:00:00|ETAS,KJSSOneDayCalifornia,STEPJAVA,ETASSYN_DROneDayMd2.95,ETAS_DROneDayMd2.95,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay
+
2016-09-29 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
 
</pre>
 
</pre>
  
We select the default file path for the missing 'SE2OneDay' forecasts show above.
+
Notice, the SE2OneDay model does not show forecasts past 2016-09-20 in the archive dir /home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/.
<pre>
+
 
sqlite> select Forecasts.name, Forecasts.filepath from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where name='SE2OneDay' and ScheduledForecasts.date_time > date('2016-09-21') limit 10;
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_21_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_22_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_23_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_24_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_25_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_26_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_27_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_28_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_29_2016.xml
 
SE2OneDay|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/SE2OneDay_9_30_2016.xml
 
</pre>
 
Searching in the archive dir /home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/
 
 
<pre>
 
<pre>
 
[csep@csep-op 2016_9]$ pwd
 
[csep@csep-op 2016_9]$ pwd
Line 344: Line 331:
 
SE2OneDay_9_12_2016-fromXML.dat.targz      SE2OneDay_9_15_2016-fromXML.xml            SE2OneDay_9_19_2016-fromXML.dat.meta        SE2OneDay_9_3_2016-fromXML.dat.targz.meta  SE2OneDay_9_6_2016-fromXML.xml.meta
 
SE2OneDay_9_12_2016-fromXML.dat.targz      SE2OneDay_9_15_2016-fromXML.xml            SE2OneDay_9_19_2016-fromXML.dat.meta        SE2OneDay_9_3_2016-fromXML.dat.targz.meta  SE2OneDay_9_6_2016-fromXML.xml.meta
 
</pre>
 
</pre>
Notice, these files are not found on the system. Additionally, we will show the forecasts completed for 09-21-2016. Note: expected forecasts for this group are: ETAS_DROneDayMd2, ETAS_DROneDayPPEMd2, JANUSOneDay, SE2OneDay; however, ETAS_HWMd2, ETAS_HW_K3_AVERAGE_Md2, JANUSOneDayPPE, JANUSOneDayTV, JANUSOneDayEEPAS1F, and K3Md2 were not identified as expected and not included. The issue is listed at https://github.com/wsavran/csep_db/issues/9.
 
  
Next, we'll show all the completed models for 09-21-2016.
+
Next, will check the completed forecasts for 2016-09-20 to verify that all forecasts for this day were identified by the system.
 +
<pre>
 +
sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Complete' and ScheduledForecasts.date_time = datetime('2016-09-21 00:00:00') and group_id=10 limit 10;
 +
2016-09-21 00:00:00|ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay,JANUSOneDayEEPAS1F,JANUSOneDayPPE,JANUSOneDayTV
 +
</pre>
 +
We list the files in the archive directory to verify these files are present on the operational system.
 
<pre>
 
<pre>
 
[csep@csep-op 2016_9]$ ls *9_21_2016*
 
[csep@csep-op 2016_9]$ ls *9_21_2016*
Line 357: Line 348:
 
ETAS_DROneDayPPEMd2_9_21_2016.dat                  JANUSOneDay_9_21_2016-fromXML.dat.targz              JANUSOneDayEEPAS1F_9_21_2016-fromXML.dat.targz.meta  JANUSOneDayPPE_9_21_2016.xml                    JANUSOneDayTV_9_21_2016.xml.meta
 
ETAS_DROneDayPPEMd2_9_21_2016.dat                  JANUSOneDay_9_21_2016-fromXML.dat.targz              JANUSOneDayEEPAS1F_9_21_2016-fromXML.dat.targz.meta  JANUSOneDayPPE_9_21_2016.xml                    JANUSOneDayTV_9_21_2016.xml.meta
 
</pre>
 
</pre>
 +
Notice all of the forecasts on the operational system are accounted for, and the forecasts are correctly labeled in the database.
  
 
=== Evaluations ===
 
=== Evaluations ===

Revision as of 18:40, 13 June 2018

CSEP Working Group Home Page

Introduction

The CSEP1 system has been in production for over a decade with dozens of models running prospectively during this time period. Currently, we do not have an understanding of the status of the operational system with respect to missing forecasts and their evaluations. This page provides the status of the CSEP1 system and outlines our work toward understanding the status of the CSEP1 operational system.

Data Model

CSEP1 simulation meta data represented as SQL schema. Extraction scripts can be found on GitHub at https://github.com/wsavran/csep_db/.

   CREATE TABLE IF NOT EXISTS ScheduledForecasts (
       scheduled_forecast_id INTEGER PRIMARY KEY,
       date_time TEXT NOT NULL
   );
   CREATE TABLE IF NOT EXISTS ScheduledEvaluations (
       scheduled_evaluation_id INTEGER PRIMARY KEY,
       date_time TEXT NOT NULL
   );
   CREATE TABLE IF NOT EXISTS Dispatchers (
       dispatcher_id INTEGER PRIMARY KEY,
       script_name TEXT NOT NULL,
       config_file_name TEXT NOT NULL
   );
   CREATE TABLE IF NOT EXISTS ForecastGroups (
       forecastgroup_id INTEGER PRIMARY KEY,
       group_name TEXT NOT NULL,
       config_filepath TEXT NOT NULL,
       dispatcher_id INTEGER NOT NULL,
       FOREIGN KEY(dispatcher_id) REFERENCES Dispatchers
   );
   CREATE TABLE IF NOT EXISTS Forecasts (
       forecast_id INTEGER PRIMARY KEY,
       schedule_id INTEGER NOT NULL,
       group_id INTEGER NOT NULL,
       name TEXT NOT NULL,
       filepath TEXT,
       meta_filepath TEXT,
       waiting_period TEXT,
       logfile TEXT,
       status TEXT,
       FOREIGN KEY(schedule_id) REFERENCES ScheduledForecasts,
       FOREIGN KEY(group_id) REFERENCES ForecastGroups
   );
   CREATE TABLE IF NOT EXISTS Evaluations (
       evaluation_id INTEGER PRIMARY KEY,
       scheduled_id INTEGER NOT NULL,
       forecast_id INTEGER NOT NULL,
       compute_datetime TEXT,
       filepath TEXT,
       name TEXT,
       status TEXT,
       FOREIGN KEY(scheduled_id) REFERENCES ScheduledEvaluations,
       FOREIGN KEY(forecast_id) REFERENCES Forecasts
   );

Verifying Database

In this section, we manually verify the integrity of the csep_db contents to ensure that the database is accurately representing the information present on the CSEP operational system. We show the verification results for a single dispatcher script.

Dispatcher Scripts

sqlite> select * from Dispatchers;
1|/usr/local/csep/cronjobs/dispatcher_ANSS1985_one_day.tcsh|31|/usr/local/csep/cronjobs/dispatcher_ANSS1985_one_day.init.xml
2|/usr/local/csep/cronjobs/dispatcher_ANSS1985_M2_95.tcsh|31|/usr/local/csep/cronjobs/dispatcher_ANSS1985_M2_95.init.xml
3|/usr/local/csep/cronjobs/dispatcher_ANSS1932_notFiltered_Md2_one_day.tcsh|31|/usr/local/csep/cronjobs/dispatcher_ANSS1932_notFiltered_Md2_one_day.init.xml

Contents of dispatcher_id=1

cat /usr/local/csep/cronjobs/dispatcher_ANSS1985_one_day.tcsh
#!/bin/tcsh

# dispatcher_ANSS1985.tcsh:
#
# Run daily Dispatcher for one-day and RELM forecasts models generation and evaluation.
# All groups use ANSS catalog with start date of 1985-01-01 and Magnitude>=3.0.
#

source ~/.tcshrc

set year=`date '+%Y'`
# Don't pad integer values with zero's
set month=`date '+%_m'`
set day=`date '+%_d'`

# Pad time values with zero's
set hour=`date '+%H'`
set min=`date '+%M'`
set sec=`date '+%S'`


# Capture all output produced by Dispatcher into the daily log file
set logdir=$CSEP/dispatcher/logs/"$year"_"$month"
mkdir -p "$logdir"

set logfile="$logdir"/dailyANSS1985_"$year-$month-$day-$hour$min$sec"


# Invoke Dispatcher for "today" (with 31 day delay for the testing date):
nohup python3 $CENTERCODE/src/generic/Dispatcher.py --year="$year" --month="$month" --day="$day" --configFile=/usr/local/csep/cronjobs/dispatcher_ANSS1985_one_day.init.xml --waitingPeriod=31 
--enableForecastXMLTemplate --enableForecastCompression --enableForecastMap 
--publishServer=csep-usc@cseppublishing.usc.edu --publishDirectory=/export/cseppublishing/csep/us/results/data/us/usc/california --logFile="$logfile" >& "$logfile" &

Forecast Groups

Here, we verify that the correct forecast groups were parsed from the Dispatcher configuration file, and the forecast group configuration files are properly represented in the database. Forecast groups that have no scheduled evaluation tests are not included in the database.

1. Group names and filepaths

sqlite> select group_name, group_path from ForecastGroups;
one-day-models|/home/csep/operations/SCEC-natural-laboratory/one-day-models
one-day-models-V9.1|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V9.1
one-day-models-V10.10|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V10.10
one-day-models-V12.7|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.7
one-day-models-V12.10|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.10
one-day-models-V16.4|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.4
one-day-models-V16.10|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.10
one-day-models-V16.7|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.7
one-day-models-RELMTests-V16.7|/home/csep/operations/SCEC-natural-laboratory/one-day-models-RELMTests-V16.7
one-day-models-Md2-V12.10|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10

Note: Forecast groups with no evaluations scheduled are not included in this report.

[csep@csep-op ~]$ cat /usr/local/csep/cronjobs/dispatcher_ANSS1985_one_day.init.xml
<?xml version="1.0" encoding="utf-8"?>
<Dispatcher xmlns="http://www.scec.org/xml-ns/csep/0.1">
   <directory>/home/csep/operations/dispatcher/runs</directory>

   <email smtphost="email.usc.edu"
          from="johnyu@usc.edu"
          subjectPrefix="California one-day models evaluation (ANSS: 1985-01-01)">
       fsilva@usc.edu maechlin@usc.edu wsavran@usc.edu
   </email>

   <!-- One day models -->
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models</forecastGroup>
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-V9.1</forecastGroup>
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-V10.10</forecastGroup>
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.7</forecastGroup>   
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.10</forecastGroup>
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.4</forecastGroup>
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.10</forecastGroup>
   <forecastGroup>/home/csep/operations/SCEC-natural-laboratory/one-day-models-optimized</forecastGroup>

</Dispatcher>

Note: the one-day-models-optimized group does not contain any evaluations; hence it's not listed in the database.

2. Config Files

sqlite> select rowid, config_filepath from ForecastGroups;
1|/home/csep/operations/SCEC-natural-laboratory/one-day-models/forecast.init.xml
2|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V9.1/forecast.init.xml
3|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V10.10/forecast.init.xml
4|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.7/forecast.init.xml
5|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.10/forecast.init.xml
6|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.4/forecast.init.xml
7|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.10/forecast.init.xml
8|/home/csep/operations/SCEC-natural-laboratory/one-day-models-V16.7/forecast.init.xml
9|/home/csep/operations/SCEC-natural-laboratory/one-day-models-RELMTests-V16.7/forecast.init.xml
10|/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecast.init.xml

Showing first 3 forecast group configuration files exist on the system.

[csep@csep-op ~]$ ls /home/csep/operations/SCEC-natural-laboratory/one-day-models/forecast.init.xml
/home/csep/operations/SCEC-natural-laboratory/one-day-models/forecast.init.xml

[csep@csep-op ~]$ ls /home/csep/operations/SCEC-natural-laboratory/one-day-models-V9.1/forecast.init.xml
/home/csep/operations/SCEC-natural-laboratory/one-day-models-V9.1/forecast.init.xml

[csep@csep-op ~]$ ls /home/csep/operations/SCEC-natural-laboratory/one-day-models-V10.10/forecast.init.xml
/home/csep/operations/SCEC-natural-laboratory/one-day-models-V10.10/forecast.init.xml

[csep@csep-op ~]$ ls /home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.7/forecast.init.xml
/home/csep/operations/SCEC-natural-laboratory/one-day-models-V12.7/forecast.init.xml

3. Expected Forecasts in each group

select ForecastGroups.group_name, group_concat(distinct Forecasts.name) from ForecastGroups join Forecasts on ForecastGroups.forecastgroup_id=Forecasts.group_id group by ForecastGroups.group_name;
1|one-day-models|ETAS
2|one-day-models-V9.1|KJSSOneDayCalifornia
3|one-day-models-V10.10|STEPJAVA
4|one-day-models-V12.7|ETASV1.1
5|one-day-models-V12.10|ETAS_HWMd3,ETAS_HW_K3_AVERAGE_Md3,K3Md3,ETAS_DROneDayPPEMd3,ETAS_DROneDayMd3
6|one-day-models-V16.4|OneDayBayesianBMA,OneDayBayesianSeqBMA
7|one-day-models-V16.10|GSF_ISO,GSF_ANISO
8|one-day-models-V16.7|ETASSYN_DROneDayMd2.95
10|one-day-models-Md2-V12.10|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay,JANUSOneDayPPE,JANUSOneDayEEPAS1F,JANUSOneDayTV,SE2OneDay

Note: In some cases forecasts are present in multiple forecasts groups, but are archived in the same location. In these cases, the models are associated with the earliest forecast group. Showing results for Groups (1, 3, 7).

cat /home/csep/operations/SCEC-natural-laboratory/one-day-models/forecast.init.xml
<ns0:ForecastGroup xmlns:ns0="http://www.scec.org/xml-ns/csep/0.1" name="One-day models">
  <ns0:forecastDir>forecasts</ns0:forecastDir>
  <ns0:resultDir>results</ns0:resultDir>
  <ns0:catalogDir>observations</ns0:catalogDir>
  <ns0:postProcessing>OneDayModel</ns0:postProcessing>
  <ns0:entryDate>2007-08-01 00:00:00</ns0:entryDate>
  <ns0:models filenameIncludesStartDate="True" files="ETAS_5_5_2018-fromXML.dat.targz">
      ETAS
[csep@csep-op ~]$ cat /home/csep/operations/SCEC-natural-laboratory/one-day-models-V10.10/forecast.init.xml
<ns0:ForecastGroup xmlns:ns0="http://www.scec.org/xml-ns/csep/0.1" name="One-day models introduced in CSEP V10.10.0 due to submission of STEP_Java model by Matt Gerstenberger ">
  <ns0:forecastDir>/home/csep/operations/SCEC-natural-laboratory/one-day-models/forecasts</ns0:forecastDir>
  <ns0:resultDir>results</ns0:resultDir>
  <ns0:catalogDir>/home/csep/operations/SCEC-natural-laboratory/one-day-models/observations</ns0:catalogDir>
  <ns0:postProcessing>OneDayModel</ns0:postProcessing>
  <ns0:entryDate>2010-10-01 00:00:00</ns0:entryDate>
  <ns0:models filenameIncludesStartDate="True" files="ETAS_5_5_2018-fromXML.dat.targz KJSSOneDayCalifornia_5_5_2018-fromXML.dat.targz STEPJAVA_5_5_2018-fromXML.dat.targz">
      ETAS KJSSOneDayCalifornia STEPJAVA
cat forecast.init.xml
<ns0:ForecastGroup xmlns:ns0="http://www.scec.org/xml-ns/csep/0.1" name="CSEP V12.10.0 new forecast group due to submission of ETAS_HW, K3 models by Agnes Helmstetter and Max Werner, and ETAS_DR model by David Rhoades">
  <ns0:forecastDir>/home/csep/operations/SCEC-natural-laboratory/one-day-models/forecasts</ns0:forecastDir>
  <ns0:resultDir>results</ns0:resultDir>
  <ns0:catalogDir>/home/csep/operations/SCEC-natural-laboratory/one-day-models/observations</ns0:catalogDir>
  <ns0:postProcessing>OneDayModel</ns0:postProcessing>
  <ns0:entryDate>2012-10-01 00:00:00</ns0:entryDate>
  <ns0:models filenameIncludesStartDate="True" files="ETASV1.1_2_5_2017-fromXML.dat.targz ETASV1.1_9_26_2016-fromXML.dat.targz ETAS_9_26_2016-fromXML.dat.targz ETAS_HWMd3_2_5_2017-fromXML.dat.targz ETAS_HWMd3_9_26_2016-fromXML.dat.targz K3Md3_9_26_2016-fromXML.dat.targz KJSSOneDayCalifornia_9_26_2016-fromXML.dat.targz STEPJAVA_9_26_2016-fromXML.dat.targz">
      ETAS KJSSOneDayCalifornia STEPJAVA ETASV1.1 ETAS_HW K3 ETAS_DROneDay
      <ns0:inputs>||||Md=3|Md=3|Md=3</ns0:inputs>
     <ns0:hybridModel name="ETAS_HW_K3_AVERAGE_Md3">
        <ns0:component>
           <ns0:group weights="[0.5, 0.5]">ETAS_HW K3</ns0:group>
         </ns0:component>
      </ns0:hybridModel>

Forecasts

1. Missing Forecasts in Each Group

We will manually evaluate a subset of the forecasts and show inductively the data are correct.

ETAS|0
KJSSOneDayCalifornia|0
STEPJAVA|0
ETASV1.1|4
ETAS_HWMd3|5
ETAS_HW_K3_AVERAGE_Md3|10
K3Md3|5
ETAS_DROneDayPPEMd3|5
ETAS_DROneDayMd3|5
OneDayBayesianBMA|595
OneDayBayesianSeqBMA|595
GSF_ISO|1
GSF_ANISO|1
ETASSYN_DROneDayMd2.95|11
ETAS_HWMd2|601
ETAS_HW_K3_AVERAGE_Md2|601
K3Md2|601
ETAS_DROneDayMd2|17
ETAS_DROneDayPPEMd2|17
JANUSOneDay|17
JANUSOneDayPPE|17
JANUSOneDayEEPAS1F|17
JANUSOneDayTV|17
SE2OneDay|84

2. Missing Forecasts by Day

We can expand this list to show the missing forecasts grouped by day, which we manually verify for a few different forecasts. We start by selecting the first 10 days containing missing forecasts for all of the one-day-models found on the system.

sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Missing' and ScheduledForecasts.date_time < date('2018-05-10') group by ScheduledForecasts.date_time limit 10;
2016-09-20 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2
2016-09-21 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-22 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-23 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-24 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-25 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-26 00:00:00|ETAS_HW_K3_AVERAGE_Md3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-27 00:00:00|ETASV1.1,ETAS_HWMd3,ETAS_HW_K3_AVERAGE_Md3,K3Md3,ETAS_DROneDayPPEMd3,ETAS_DROneDayMd3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-28 00:00:00|ETASV1.1,ETAS_HWMd3,ETAS_HW_K3_AVERAGE_Md3,K3Md3,ETAS_DROneDayPPEMd3,ETAS_DROneDayMd3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-29 00:00:00|ETASV1.1,ETAS_HWMd3,ETAS_HW_K3_AVERAGE_Md3,K3Md3,ETAS_DROneDayPPEMd3,ETAS_DROneDayMd3,OneDayBayesianBMA,OneDayBayesianSeqBMA,ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay

We take a subset of this group, namely one-day-models-Md2-V12.10 (id=10).

sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Missing' and ScheduledForecasts.date_time < date('2018-05-10') and Forecasts.group_id=10 group by ScheduledForecasts.date_time limit 10;
2016-09-20 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2
2016-09-21 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-22 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-23 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-24 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-25 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-26 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-27 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-28 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay
2016-09-29 00:00:00|ETAS_HWMd2,ETAS_HW_K3_AVERAGE_Md2,K3Md2,SE2OneDay

Notice, the SE2OneDay model does not show forecasts past 2016-09-20 in the archive dir /home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9/.

[csep@csep-op 2016_9]$ pwd
/home/csep/operations/SCEC-natural-laboratory/one-day-models-Md2-V12.10/forecasts/archive/2016_9
[csep@csep-op 2016_9]$ ls *SE2OneDay*
SE2OneDay_9_10_2016-fromXML.dat.meta        SE2OneDay_9_12_2016-fromXML.dat.targz.meta  SE2OneDay_9_15_2016-fromXML.xml.meta        SE2OneDay_9_19_2016-fromXML.dat.targz       SE2OneDay_9_3_2016-fromXML.xml             SE2OneDay_9_7_2016-fromXML.dat.meta
SE2OneDay_9_10_2016-fromXML.dat.targz       SE2OneDay_9_12_2016-fromXML.xml             SE2OneDay_9_16_2016-fromXML.dat.meta        SE2OneDay_9_19_2016-fromXML.dat.targz.meta  SE2OneDay_9_3_2016-fromXML.xml.meta        SE2OneDay_9_7_2016-fromXML.dat.targz
SE2OneDay_9_10_2016-fromXML.dat.targz.meta  SE2OneDay_9_12_2016-fromXML.xml.meta        SE2OneDay_9_16_2016-fromXML.dat.targz       SE2OneDay_9_19_2016-fromXML.xml             SE2OneDay_9_4_2016-fromXML.dat.meta        SE2OneDay_9_7_2016-fromXML.dat.targz.meta
SE2OneDay_9_10_2016-fromXML.xml             SE2OneDay_9_13_2016-fromXML.dat.meta        SE2OneDay_9_16_2016-fromXML.dat.targz.meta  SE2OneDay_9_19_2016-fromXML.xml.meta        SE2OneDay_9_4_2016-fromXML.dat.targz       SE2OneDay_9_7_2016-fromXML.xml
SE2OneDay_9_10_2016-fromXML.xml.meta        SE2OneDay_9_13_2016-fromXML.dat.targz       SE2OneDay_9_16_2016-fromXML.xml             SE2OneDay_9_20_2016-fromXML.dat.meta        SE2OneDay_9_4_2016-fromXML.dat.targz.meta  SE2OneDay_9_7_2016-fromXML.xml.meta
SE2OneDay_9_11_2016-fromXML.dat.meta        SE2OneDay_9_13_2016-fromXML.dat.targz.meta  SE2OneDay_9_16_2016-fromXML.xml.meta        SE2OneDay_9_20_2016-fromXML.dat.targz       SE2OneDay_9_4_2016-fromXML.xml             SE2OneDay_9_8_2016-fromXML.dat.meta
SE2OneDay_9_11_2016-fromXML.dat.targz       SE2OneDay_9_13_2016-fromXML.xml             SE2OneDay_9_17_2016-fromXML.dat.meta        SE2OneDay_9_20_2016-fromXML.dat.targz.meta  SE2OneDay_9_4_2016-fromXML.xml.meta        SE2OneDay_9_8_2016-fromXML.dat.targz
SE2OneDay_9_11_2016-fromXML.dat.targz.meta  SE2OneDay_9_13_2016-fromXML.xml.meta        SE2OneDay_9_17_2016-fromXML.dat.targz       SE2OneDay_9_20_2016-fromXML.xml             SE2OneDay_9_5_2016-fromXML.dat.meta        SE2OneDay_9_8_2016-fromXML.dat.targz.meta
SE2OneDay_9_11_2016-fromXML.xml             SE2OneDay_9_14_2016-fromXML.dat.meta        SE2OneDay_9_17_2016-fromXML.dat.targz.meta  SE2OneDay_9_20_2016-fromXML.xml.meta        SE2OneDay_9_5_2016-fromXML.dat.targz       SE2OneDay_9_8_2016-fromXML.xml
SE2OneDay_9_11_2016-fromXML.xml.meta        SE2OneDay_9_14_2016-fromXML.dat.targz       SE2OneDay_9_17_2016-fromXML.xml             SE2OneDay_9_2_2016-fromXML.dat.meta         SE2OneDay_9_5_2016-fromXML.dat.targz.meta  SE2OneDay_9_8_2016-fromXML.xml.meta
SE2OneDay_9_1_2016-fromXML.dat.meta         SE2OneDay_9_14_2016-fromXML.dat.targz.meta  SE2OneDay_9_17_2016-fromXML.xml.meta        SE2OneDay_9_2_2016-fromXML.dat.targz        SE2OneDay_9_5_2016-fromXML.xml             SE2OneDay_9_9_2016-fromXML.dat.meta
SE2OneDay_9_1_2016-fromXML.dat.targz        SE2OneDay_9_14_2016-fromXML.xml             SE2OneDay_9_18_2016-fromXML.dat.meta        SE2OneDay_9_2_2016-fromXML.dat.targz.meta   SE2OneDay_9_5_2016-fromXML.xml.meta        SE2OneDay_9_9_2016-fromXML.dat.targz
SE2OneDay_9_1_2016-fromXML.dat.targz.meta   SE2OneDay_9_14_2016-fromXML.xml.meta        SE2OneDay_9_18_2016-fromXML.dat.targz       SE2OneDay_9_2_2016-fromXML.xml              SE2OneDay_9_6_2016-fromXML.dat.meta        SE2OneDay_9_9_2016-fromXML.dat.targz.meta
SE2OneDay_9_1_2016-fromXML.xml              SE2OneDay_9_15_2016-fromXML.dat.meta        SE2OneDay_9_18_2016-fromXML.dat.targz.meta  SE2OneDay_9_2_2016-fromXML.xml.meta         SE2OneDay_9_6_2016-fromXML.dat.targz       SE2OneDay_9_9_2016-fromXML.xml
SE2OneDay_9_1_2016-fromXML.xml.meta         SE2OneDay_9_15_2016-fromXML.dat.targz       SE2OneDay_9_18_2016-fromXML.xml             SE2OneDay_9_3_2016-fromXML.dat.meta         SE2OneDay_9_6_2016-fromXML.dat.targz.meta  SE2OneDay_9_9_2016-fromXML.xml.meta
SE2OneDay_9_12_2016-fromXML.dat.meta        SE2OneDay_9_15_2016-fromXML.dat.targz.meta  SE2OneDay_9_18_2016-fromXML.xml.meta        SE2OneDay_9_3_2016-fromXML.dat.targz        SE2OneDay_9_6_2016-fromXML.xml
SE2OneDay_9_12_2016-fromXML.dat.targz       SE2OneDay_9_15_2016-fromXML.xml             SE2OneDay_9_19_2016-fromXML.dat.meta        SE2OneDay_9_3_2016-fromXML.dat.targz.meta   SE2OneDay_9_6_2016-fromXML.xml.meta

Next, will check the completed forecasts for 2016-09-20 to verify that all forecasts for this day were identified by the system.

sqlite> select ScheduledForecasts.date_time, group_concat(Forecasts.name) from Forecasts join ScheduledForecasts on Forecasts.schedule_id=ScheduledForecasts.scheduled_forecast_id where status='Complete' and ScheduledForecasts.date_time = datetime('2016-09-21 00:00:00') and group_id=10 limit 10;
2016-09-21 00:00:00|ETAS_DROneDayMd2,ETAS_DROneDayPPEMd2,JANUSOneDay,JANUSOneDayEEPAS1F,JANUSOneDayPPE,JANUSOneDayTV

We list the files in the archive directory to verify these files are present on the operational system.

[csep@csep-op 2016_9]$ ls *9_21_2016*
ETAS_DROneDayMd2_9_21_2016.dat                     ETAS_DROneDayPPEMd2_9_21_2016.dat.meta                JANUSOneDay_9_21_2016-fromXML.dat.targz.meta         JANUSOneDayEEPAS1F_9_21_2016.xml                 JANUSOneDayPPE_9_21_2016.xml.meta
ETAS_DROneDayMd2_9_21_2016.dat.meta                ETAS_DROneDayPPEMd2_9_21_2016-fromXML.dat.targz       JANUSOneDay_9_21_2016-fromXML.xml                    JANUSOneDayEEPAS1F_9_21_2016.xml.meta            JANUSOneDayTV_9_21_2016.dat
ETAS_DROneDayMd2_9_21_2016-fromXML.dat.targz       ETAS_DROneDayPPEMd2_9_21_2016-fromXML.dat.targz.meta  JANUSOneDay_9_21_2016-fromXML.xml.meta               JANUSOneDayPPE_9_21_2016.dat                     JANUSOneDayTV_9_21_2016.dat.meta
ETAS_DROneDayMd2_9_21_2016-fromXML.dat.targz.meta  ETAS_DROneDayPPEMd2_9_21_2016.xml                     JANUSOneDayEEPAS1F_9_21_2016.dat                     JANUSOneDayPPE_9_21_2016.dat.meta                JANUSOneDayTV_9_21_2016-fromXML.dat.targz
ETAS_DROneDayMd2_9_21_2016.xml                     ETAS_DROneDayPPEMd2_9_21_2016.xml.meta                JANUSOneDayEEPAS1F_9_21_2016.dat.meta                JANUSOneDayPPE_9_21_2016-fromXML.dat.targz       JANUSOneDayTV_9_21_2016-fromXML.dat.targz.meta
ETAS_DROneDayMd2_9_21_2016.xml.meta                JANUSOneDay_9_21_2016-fromXML.dat.meta                JANUSOneDayEEPAS1F_9_21_2016-fromXML.dat.targz       JANUSOneDayPPE_9_21_2016-fromXML.dat.targz.meta  JANUSOneDayTV_9_21_2016.xml
ETAS_DROneDayPPEMd2_9_21_2016.dat                  JANUSOneDay_9_21_2016-fromXML.dat.targz               JANUSOneDayEEPAS1F_9_21_2016-fromXML.dat.targz.meta  JANUSOneDayPPE_9_21_2016.xml                     JANUSOneDayTV_9_21_2016.xml.meta

Notice all of the forecasts on the operational system are accounted for, and the forecasts are correctly labeled in the database.

Evaluations