package edu.hawaii.jmotif.performance.digits; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.Arrays; import edu.hawaii.jmotif.timeseries.TSUtils; public class DataNormalizer { // data locations // private static String IN_DATA = "data/digits/test.csv"; private static String OUT_DATA = "data/digits/test_normalized.csv"; /** * Runnable. * * @throws Exception if error occurs. */ public static void main(String[] args) throws Exception { if (args.length > 0) { IN_DATA = args[0]; OUT_DATA = args[1]; } BufferedWriter bw = new BufferedWriter(new FileWriter(new File(OUT_DATA))); BufferedReader br = new BufferedReader(new FileReader(new File(IN_DATA))); String line = ""; int counter = 0; while ((line = br.readLine()) != null) { if (line.trim().length() == 0) { continue; } String[] split = line.trim().split(",|\\s+"); String label = split[0]; double[] series = new double[split.length - 1]; for (int i = 1; i < split.length; i++) { series[i - 1] = Double.valueOf(split[i].trim()).doubleValue(); } double[] normalized = TSUtils.zNormalize(series); bw.write(label + " " + Arrays.toString(normalized).replace("[", "").replace("]", "").replace(",", "") + "\n"); counter++; if (counter % 1000 == 0) { System.out.println("Processed " + counter); } } br.close(); bw.close(); } }