package net.seninp.grammarviz; import java.util.ArrayList; import java.util.List; import com.beust.jcommander.Parameter; import net.seninp.gi.GIAlgorithm; import net.seninp.grammarviz.anomaly.AnomalyAlgorithm; import net.seninp.jmotif.sax.NumerosityReductionStrategy; /** * Implements a parameters template for CLI conversion. * * @author psenin * */ public class GrammarVizAnomalyParameters { // general setup // @Parameter public List<String> parameters = new ArrayList<String>(); @Parameter(names = { "--help", "-h" }, help = true) public boolean help; // dataset // @Parameter(names = { "--data", "-i" }, description = "The input file name") public static String IN_FILE; // output // @Parameter(names = { "--output", "-o" }, description = "The output file prefix") public static String OUT_FILE = ""; // discretization parameters // @Parameter(names = { "--window_size", "-w" }, description = "Sliding window size") public static int SAX_WINDOW_SIZE = 170; @Parameter(names = { "--word_size", "-p" }, description = "PAA word size") public static int SAX_PAA_SIZE = 4; @Parameter(names = { "--alphabet_size", "-a" }, description = "SAX alphabet size") public static int SAX_ALPHABET_SIZE = 4; @Parameter(names = "--strategy", description = "Numerosity reduction strategy") public static NumerosityReductionStrategy SAX_NR_STRATEGY = NumerosityReductionStrategy.EXACT; @Parameter(names = "--threshold", description = "Normalization threshold") public static double SAX_NORM_THRESHOLD = 0.01; // the algorithms params // @Parameter(names = { "--algorithm", "-alg" }, description = "The algorithm to use") public static AnomalyAlgorithm ALGORITHM = AnomalyAlgorithm.RRA; @Parameter(names = { "--discords_num", "-n" }, description = "The algorithm to use") public static int DISCORDS_NUM = 5; // GI parameter // @Parameter(names = { "--gi", "-g" }, description = "GI algorithm to use") public static GIAlgorithm GI_ALGORITHM_IMPLEMENTATION = GIAlgorithm.SEQUITUR; // sub-sampling parameter // @Parameter(names = { "--subsample" }, description = "RRASAMPLED subsampling fraction (0.0 - 1.0) for longer time series") public static Double SUBSAMPLING_FRACTION = Double.NaN; // grid boundaries for discretization parameters // @Parameter(names = { "--bounds", "-b" }, description = "RRASAMPLED grid boundaries (Wmin Wmax Wstep Pmin Pmax Pstep Amin Amax Astep)") public static String GRID_BOUNDARIES = "10 100 10 10 50 10 2 12 2"; }