package edu.hawaii.jmotif.shapelet;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import edu.hawaii.jmotif.performance.UCRUtils;
public class UCRtoARFF {
private static final String TRAINING_DATA = "data/fish/FISH_TRAIN";
private static final String OUTPUT_DATA = "data/fish/FISH_TRAIN.arff";
private static final String CR = "\n";
private static final Object COMMA = ",";
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Map<String, List<double[]>> trainData = UCRUtils.readUCRData(TRAINING_DATA);
int seriesLength = trainData.entrySet().iterator().next().getValue().get(0).length;
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(OUTPUT_DATA)));
bw.write("@relation TSDM" + CR);
for (int i = 0; i < seriesLength; i++) {
bw.write("@attribute\tAtt" + i + "\treal" + CR);
}
StringBuffer sb = new StringBuffer("@attribute target {");
for (String key : trainData.keySet()) {
sb.append(String.valueOf(key)).append(COMMA);
}
sb.delete(sb.length() - 1, sb.length()).append("}").append(CR);
sb.append(CR).append("@data").append(CR);
bw.write(sb.toString());
for (Entry<String, List<double[]>> e : trainData.entrySet()) {
for (double[] series : e.getValue()) {
bw.write(Arrays.toString(series).replace("[", "").replace("]", "").replace(", ", ","));
bw.write(COMMA + e.getKey() + CR);
}
}
bw.close();
}
}