Table of Contents
Reading ROOT files
SCaVis supports reading files created by the ROOT data-analysis program implemented in C++. There are several ways to read ROOT file but the easiest is to use the FileRoot class. You can list all objects inside ROOT files, navigate inside the ROOT files and extract histograms and graphs (TGraph) objects. Below is a simple example showing how to do this:
1: from jhplot import * 2: from jhplot.io import * 3: 4: rr = FileRoot("file.root") 5: print "number of objects=",rr.getNKeys() # how many objects in the current directory 6: print "ROOT version=",rr.getVersion() 7: print rr.toString() # list all entries in the current directory 8: 9: rr.cd("dir1/dir2") # navigate to a directory inside the ROOT file 10: p1=rr.get("TGraph_example") # extract TGraph as P1D Java object 11: h1=rr.get("hpx") # extract TH1 histogram as H1D Java object 12: h2=rr.get("hpxpy") # extract TH2D as H2D Java object 13: 14: c1 = HPlot("Canvas",600,400,2,1) 15: c1.setGTitle("Reading root objects from a file") 16: c1.visible() 17: c1.setAutoRange() 18: 19: c1.cd(1,1) 20: c1.draw(p1) 21: 22: c1.cd(2,1) 23: c1.setAutoRange() 24: c1.draw(h1)
Note that the method get() returns a ROOT objects. In case TH1 ROOT histograms, it will return H1D histograms ready to plot on SCaVis canvas. In case of TH2 ROOT histograms, it will return H2D SCaVis histogram. It can also create P1D objects by reading TGraph ROOT object.
Reading AIDA files
You can read AIDA objects using the classes FileAida Here is a simile example showing how to read an AIDA file and plot Clouds and histograms:
1: from java.awt import Color 2: from jhplot import * 3: from jhplot.io import * 4: 5: # location of AIDA file (in /macro/examples/jaida_examples) 6: a=FileAida( "UsingJAIDAFromJython.aida") 7: 8: c1d=a.get("Clouds/Cloud 1D") # retrieve objects 9: c2d=a.get("Clouds/Cloud 2D") 10: h1=a.get("Histograms/Histogram 1D") 11: 12: hh1=H1D(h1) # Convert Histogrm1D to H1D so we can add some color 13: hh1.setColor(Color.red) 14: 15: c1 = HPlot("Canvas",600,400,2,1) 16: c1.setGTitle("Reading AIDA objects from a file") 17: c1.visible(1) 18: c1.setAutoRange() 19: 20: c1.cd(1,1) 21: c1.draw(c1d) 22: c1.draw(hh1) 23: 24: c1.cd(2,1) 25: c1.setAutoRange() 26: c1.draw(c2d)
The output of this script is shown below.
See the example “io_read_root.py” for ROOT-file examples.
Plotting AIDA or ROOT objects using browser
One can open AIDA or ROOT files using HPlotJa browser. In the SCaVis IDE, go to “Tools-HplotJa”. Then, in the HplotJa, create an empty pad (pads), as “Options→Draw pad”. Then, open ROOT or AIDA file as “File-Open data”. You will see a ObjectBrowser. Select any object, such as histograms or cloud. With the mouse (right button), click on the selected object and press “Draw”.
Look at the visual guide how to open a AIDA file (similarly, ROOT file):
ASCII, Gauss, Matlab, Excel data formats
SCaVis can read data (timeseries) in variety of formats, such as ASCII, Gauss, Matlab, Excel. Data can be modified, showed as tables/ One can plot such data and perform a statistical analysis. One can also save such data into files. Read timeseries for detail since this topic is closely related to financial calculations
Third-party IO classes
click here if you want to know more
click here if you want to know more
here are a lot of other Java-based I/O classes designed for storing and retrieving data. A complete description of how to use Java, Jython and SCaVis for scientific analysis is described in the book Scientific data analysis using Jython and Java published by Springer Verlag, London, 2010 (by S.V.Chekanov)
— Sergei Chekanov 2010/03/07 17:35