Print

Print


Author: [log in to unmask]
Date: Wed Jun 29 16:05:05 2016
New Revision: 4414

Log:
Add example of getting datacat records for a run.

Added:
    java/trunk/crawler/src/main/java/org/hps/crawler/DatacatPrintRun.java   (with props)

Added: java/trunk/crawler/src/main/java/org/hps/crawler/DatacatPrintRun.java
 =============================================================================
--- java/trunk/crawler/src/main/java/org/hps/crawler/DatacatPrintRun.java	(added)
+++ java/trunk/crawler/src/main/java/org/hps/crawler/DatacatPrintRun.java	Wed Jun 29 16:05:05 2016
@@ -0,0 +1,81 @@
+package org.hps.crawler;
+
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.srs.datacat.client.Client;
+import org.srs.datacat.client.ClientBuilder;
+import org.srs.datacat.model.DatasetModel;
+import org.srs.datacat.model.DatasetResultSetModel;
+import org.srs.datacat.model.dataset.DatasetLocationModel;
+import org.srs.datacat.model.dataset.DatasetWithViewModel;
+
+/**
+ * Example of printing information from all files for a given run in the datacat.
+ * @author jeremym
+ */
+public class DatacatPrintRun {
+    
+    /* metadata fields that should be included in search results */
+    private static final String[] METADATA_FIELDS = {
+        "BAD_EVENTS",
+        "BLINDED",
+        "END_EVENT_COUNT",
+        "END_TIMESTAMP",
+        "FILE",
+        "FIRST_HEAD_TIMESTAMP",
+        "FIRST_PHYSICS_EVENT",
+        "LAST_HEAD_TIMESTAMP",
+        "LAST_PHYSICS_EVENT",
+        "LED_COSMIC",
+        "PAIRS0",
+        "PAIRS1",
+        "PHYSICS_EVENTS",
+        "PULSER",
+        "SINGLES0",
+        "SINGLES1",
+        "TI_TIME_MAX_OFFSET",
+        "TI_TIME_MIN_OFFSET",
+        "TI_TIME_N_OUTLIERS",
+        "TRIGGER_RATE"
+    };
+    
+    public static void main(String[] args) throws Exception {
+        if (args.length == 0) {
+            throw new RuntimeException("Missing run number argument.");
+        }
+        int run = Integer.parseInt(args[0]); 
+        printRun(run);
+    }
+    
+    private static void printRun(int run) throws Exception {
+        
+        /* initialize datacat client */
+        Client client = new ClientBuilder().setUrl("http://hpsweb.jlab.org/datacat/r").build();
+        
+        /* perform dataset search */
+        DatasetResultSetModel results = client.searchForDatasets(
+                "/HPS/data/raw",
+                "current", /* dataset version */
+                "JLAB",
+                "fileFormat eq 'EVIO' AND dataType eq 'RAW' AND runMin eq " + run, /* basic query */
+                new String[] {"FILE"}, /* sort on file number */
+                METADATA_FIELDS /* metadata field values to return from query */
+                );
+        
+        /* print results including metadata */
+        for (DatasetModel dataset : results) {            
+            DatasetWithViewModel datasetView = (DatasetWithViewModel) dataset;
+            DatasetLocationModel loc = datasetView.getViewInfo().getLocations().iterator().next();
+            System.out.println("name: " + datasetView.getName() + "; path: " + datasetView.getPath() + "; resource: " + loc.getResource());
+            Map<String, Object> metadata = datasetView.getMetadataMap();
+            SortedSet<String> keys = new TreeSet<String>(metadata.keySet());
+            for (String key : keys) {
+                Object value = metadata.get(key);
+                System.out.println("  " + key + " = " + value);
+            }
+            System.out.println();
+        }
+    }
+}