/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.LineNumberInputStream; import java.util.Scanner; import java.util.regex.Pattern; import org.autoplot.ScriptContext; import org.das2.qds.DDataSet; import org.das2.qds.QDataSet; import org.das2.qds.ops.Ops; import org.das2.qds.util.DataSetBuilder; /** * * @author jbf */ public class ScannerTest { private static String TEST_FILE; public static void main(String[] args) throws FileNotFoundException, Exception { TEST_FILE = "/home/jbf/project/cassini/BobsFiles/data_look_asc"; // findbugs File file= new File( TEST_FILE); int nds= 16; DataSetBuilder ttag = new DataSetBuilder( 1, 100); LineNumberInputStream lnr = new LineNumberInputStream(new FileInputStream(file)); Scanner s = new Scanner(lnr); s.next("sizes"); int nfreq= s.nextInt(); s.nextInt(); // skip this mysterious number s.next("freqs"); DDataSet freqs= DDataSet.createRank1(nfreq); for ( int i=0; i<nfreq; i++ ) { freqs.putValue(i,s.nextDouble()); } Pattern p= Pattern.compile("time"); String n = s.next(p); Pattern pid= Pattern.compile("\\S+"); DataSetBuilder data = new DataSetBuilder( 3, 100, nds, nfreq ); String[] labels= new String[nds]; int irec=0; while ( n!=null ) { ttag.putValue(irec, s.nextDouble() ); System.err.printf( "%s %s\n", n, ttag.toString() ); for ( int ids= 0; ids<nds; ids++ ) { String dsid= s.next(pid); if ( dsid.equals("kmat") ) { dsid= dsid + "__" + s.nextInt(); } labels[ids]= dsid; for ( int i=0; i<nfreq; i++ ) { double d= s.nextDouble(); data.putValue( irec, ids, i, d ); } } if ( s.hasNext(p) ) { n = s.next(p); irec++; } else { n = null; } } ttag.putProperty( QDataSet.NAME, "Time" ); QDataSet ttagds= ttag.getDataSet(); freqs.putProperty( QDataSet.NAME, "Freq" ); data.putProperty( QDataSet.DEPEND_0, ttagds ); data.putProperty( QDataSet.DEPEND_1, Ops.labels(labels) ); data.putProperty( QDataSet.DEPEND_2, freqs ); data.putProperty( QDataSet.NAME, "Data" ); QDataSet datads= data.getDataSet(); ScriptContext.formatDataSet(datads,"file:///home/jbf/tmp/foo.qds?type=binary"); } }