Example usage for org.jfree.data.time TimeSeries TimeSeries

List of usage examples for org.jfree.data.time TimeSeries TimeSeries

Introduction

In this page you can find the example usage for org.jfree.data.time TimeSeries TimeSeries.

Prototype

public TimeSeries(Comparable name) 

Source Link

Document

Creates a new (empty) time series.

Usage

From source file:org.jfree.data.time.junit.TimeSeriesTest.java

/**
 * Some tests to ensure that the createCopy(RegularTimePeriod,
 * RegularTimePeriod) method is functioning correctly.
 *//*w  w w. ja v a  2 s .  com*/
public void testCreateCopy1() {

    TimeSeries series = new TimeSeries("Series");
    series.add(new Month(MonthConstants.JANUARY, 2003), 45.0);
    series.add(new Month(MonthConstants.FEBRUARY, 2003), 55.0);
    series.add(new Month(MonthConstants.JUNE, 2003), 35.0);
    series.add(new Month(MonthConstants.NOVEMBER, 2003), 85.0);
    series.add(new Month(MonthConstants.DECEMBER, 2003), 75.0);

    try {
        // copy a range before the start of the series data...
        TimeSeries result1 = series.createCopy(new Month(MonthConstants.NOVEMBER, 2002),
                new Month(MonthConstants.DECEMBER, 2002));
        assertEquals(0, result1.getItemCount());

        // copy a range that includes only the first item in the series...
        TimeSeries result2 = series.createCopy(new Month(MonthConstants.NOVEMBER, 2002),
                new Month(MonthConstants.JANUARY, 2003));
        assertEquals(1, result2.getItemCount());

        // copy a range that begins before and ends in the middle of the
        // series...
        TimeSeries result3 = series.createCopy(new Month(MonthConstants.NOVEMBER, 2002),
                new Month(MonthConstants.APRIL, 2003));
        assertEquals(2, result3.getItemCount());

        TimeSeries result4 = series.createCopy(new Month(MonthConstants.NOVEMBER, 2002),
                new Month(MonthConstants.DECEMBER, 2003));
        assertEquals(5, result4.getItemCount());

        TimeSeries result5 = series.createCopy(new Month(MonthConstants.NOVEMBER, 2002),
                new Month(MonthConstants.MARCH, 2004));
        assertEquals(5, result5.getItemCount());

        TimeSeries result6 = series.createCopy(new Month(MonthConstants.JANUARY, 2003),
                new Month(MonthConstants.JANUARY, 2003));
        assertEquals(1, result6.getItemCount());

        TimeSeries result7 = series.createCopy(new Month(MonthConstants.JANUARY, 2003),
                new Month(MonthConstants.APRIL, 2003));
        assertEquals(2, result7.getItemCount());

        TimeSeries result8 = series.createCopy(new Month(MonthConstants.JANUARY, 2003),
                new Month(MonthConstants.DECEMBER, 2003));
        assertEquals(5, result8.getItemCount());

        TimeSeries result9 = series.createCopy(new Month(MonthConstants.JANUARY, 2003),
                new Month(MonthConstants.MARCH, 2004));
        assertEquals(5, result9.getItemCount());

        TimeSeries result10 = series.createCopy(new Month(MonthConstants.MAY, 2003),
                new Month(MonthConstants.DECEMBER, 2003));
        assertEquals(3, result10.getItemCount());

        TimeSeries result11 = series.createCopy(new Month(MonthConstants.MAY, 2003),
                new Month(MonthConstants.MARCH, 2004));
        assertEquals(3, result11.getItemCount());

        TimeSeries result12 = series.createCopy(new Month(MonthConstants.DECEMBER, 2003),
                new Month(MonthConstants.DECEMBER, 2003));
        assertEquals(1, result12.getItemCount());

        TimeSeries result13 = series.createCopy(new Month(MonthConstants.DECEMBER, 2003),
                new Month(MonthConstants.MARCH, 2004));
        assertEquals(1, result13.getItemCount());

        TimeSeries result14 = series.createCopy(new Month(MonthConstants.JANUARY, 2004),
                new Month(MonthConstants.MARCH, 2004));
        assertEquals(0, result14.getItemCount());
    } catch (CloneNotSupportedException e) {
        assertTrue(false);
    }

}

From source file:skoa.helpers.Graficos.java

/******************************************************************
 * Funcion obtenerSerieEvolucion(): obtiene la serie de un fichero*
 ******************************************************************/
private TimeSeries obtenerSerieEvolucion() {
    String naux = "";
    //si la longitud es 20 o 21, se trata de un fichero directo de una consulta A.
    //porque la df puede ser x.x.x o x.x.xx
    if (nombreFichero.length() == 20 || nombreFichero.length() == 21)
        naux = nombreFichero.substring(nombreFichero.indexOf("-") + 3, nombreFichero.indexOf(".txt")); //Saca la DG del nombre del fich.
    //si la longitud es 22, se trata de un fichero de una consulta A previa.
    else if (nombreFichero.length() == 22)
        naux = nombreFichero.substring(nombreFichero.indexOf("-") + 5, nombreFichero.indexOf(".txt"));
    //si la longitud es 23, se trata de un fichero (sin unificar) de una consulta D previa.
    else if (nombreFichero.length() == 23)
        naux = nombreFichero.substring(nombreFichero.indexOf("-") + 6, nombreFichero.indexOf(".txt"));
    //si se trata de un fichero de una consulta B o C previa.
    else if (nombreFichero.indexOf("h") >= 0)
        naux = nombreFichero.substring(nombreFichero.indexOf("h") + 2, nombreFichero.indexOf(".txt"));
    naux = naux.replaceAll("-", "/"); //Para que las DGs sea x/xx/xx en vez de x-xx-xx
    TimeSeries serie = new TimeSeries(naux);
    File archivo = new File(ruta + nombreFichero);
    FileReader fr = null;//w w  w . ja v a  2 s .c  o m
    BufferedReader linea = null;
    String line;
    try {
        fr = new FileReader(archivo);
        linea = new BufferedReader(fr); //Se crea para leer las lineas
        int d = 0, m = 0, a = 0, a1 = 0, m1 = 0, d1 = 0, j, h1, h2, h3;
        double e = 0;
        String aux, h, minutos, segundos;
        int min_ant = 0, sec_ant = 0, vez1 = 0; //min_prim mira si es el primero, para comparar ant y act.
        Day day1 = null;
        while ((line = linea.readLine()) != null) { //Lectura del fichero
            int i = line.indexOf("\t");
            String f = line.substring(0, i);
            String valor = line.substring(i + 1);
            //Obtencion del dia, mes y ao de la fecha.
            j = f.indexOf("-");
            aux = f.substring(0, j);
            a = Integer.parseInt(aux);
            f = f.substring(j + 1);
            j = f.indexOf("-");
            aux = f.substring(0, j);
            m = Integer.parseInt(aux);
            f = f.substring(j + 1);
            j = f.indexOf(" ");
            aux = f.substring(0, j);
            d = Integer.parseInt(aux);
            //Obtencion de la hora de la fecha.
            f = f.substring(j + 1);
            if (fechaInicial.contentEquals(""))
                fechaInicial = d + "/" + m + "/" + a + " " + f; //Variable para la grfica
            fechaFinal = d + "/" + m + "/" + a + " " + f;
            j = f.indexOf(":");
            h = f.substring(0, j);
            f = f.substring(j + 1);
            j = f.indexOf(":");
            minutos = f.substring(0, j);
            segundos = f.substring(j + 1);
            if (a1 == 0 & m1 == 0 & d1 == 0) { //Inicializacin: Primera fecha.
                a1 = a;
                m1 = m;
                d1 = d;
                day1 = new Day(d1, m1, a1);
            } else {
                if (a1 != a) {
                    a1 = a;
                    if (m1 != m)
                        m1 = m;
                    if (d1 != d)
                        d1 = d;
                    day1 = new Day(d1, m1, a1);
                } else if (m1 != m) {
                    m1 = m;
                    if (d1 != d)
                        d1 = d;
                    day1 = new Day(d1, m1, a1);
                } else if (d1 != d) {
                    d1 = d;
                    day1 = new Day(d1, m1, a1);
                }
            }
            //Comprueba si es boolean. Si lo es, se le asigna 0 o 1
            //para poder representarlo en la grfica. Si no, su <<valor>>.
            if (posiblesBooleanos(valor, 1))
                e = 1;
            else if (posiblesBooleanos(valor, 0))
                e = 0;
            else { //NO ES UN BOOLEANO.
                int u = valor.indexOf(" ");
                valor = valor.substring(0, u);
                e = Double.parseDouble(valor);
            }
            //Comprobamos que la hora no coincida, para que si coincide, introducir en la serie slo
            //la primera aparicin de la fecha con su valor, por ser este ms representativo segn lo visto.
            if (vez1 == 0) {
                min_ant = h1 = Integer.parseInt(minutos); //minutos
                h2 = Integer.parseInt(h); //hora
                sec_ant = h3 = Integer.parseInt(segundos); //segundos
                serie.addOrUpdate(new Second(h3, new Minute(h1, new Hour(h2, day1))), e);//Montamos la serie en base a los segundos, minutos, hora y da
                vez1 = 1;
            } else {
                h1 = Integer.parseInt(minutos); //minutos
                h2 = Integer.parseInt(h); //hora
                h3 = Integer.parseInt(segundos); //segundos
                if (min_ant == h1) { //Si el minuto es =, comprobamos los segundos
                    if (sec_ant == h3) {
                    } //Si los segundos son =, no se introduce nada en la serie.
                    else { //Si los segundos son !=, se introduce en la serie.
                        serie.addOrUpdate(new Second(h3, new Minute(h1, new Hour(h2, day1))), e);//Montamos la serie en base a los segundos, minutos, hora y da
                        sec_ant = h3;
                    }
                } else { //Si el minuto es !=, se introduce en la serie.
                    serie.addOrUpdate(new Second(h3, new Minute(h1, new Hour(h2, day1))), e);//Montamos la serie en base a los segundos, minutos, hora y da
                    min_ant = h1;
                    sec_ant = h3;
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (null != fr)
                fr.close(); //Se cierra si todo va bien.
        } catch (Exception e2) { //Sino salta una excepcion.
            e2.printStackTrace();
        }
    }
    return serie;
}

From source file:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.PortCounterPlotWorker.java

private XYDataset createRateDataset(OSM_FabricDeltaCollection deltaHistory, PortCounterName pcn,
        String seriesName) {/*w w w . jav  a 2s.  co  m*/
    TimeSeries series = new TimeSeries(seriesName);

    // iterate through the collection, and build up a time series
    for (int j = 0; j < deltaHistory.getSize(); j++) {
        OSM_FabricDelta delta = deltaHistory.getOSM_FabricDelta(j);

        // find the desired port counter, in this instance
        PFM_PortChange pC = delta.getPortChange(Port);
        long lValue = PFM_PortRate.getChangeRateLong(pC, pcn, PortCounterUnits.MEGABYTES);
        TimeStamp ts = pC.getCounterTimeStamp();

        RegularTimePeriod ms = new FixedMillisecond(ts.getTimeInMillis());
        series.add(ms, (double) lValue);
    }
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);

    return dataset;
}

From source file:com.alibaba.dubbo.monitor.simple.SimpleMonitorService.java

private static void createChart(String key, String service, String method, String date, String[] types,
        Map<String, long[]> data, double[] summary, String path) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
    DecimalFormat numberFormat = new DecimalFormat("###,##0.##");
    TimeSeriesCollection xydataset = new TimeSeriesCollection();
    for (int i = 0; i < types.length; i++) {
        String type = types[i];/*from  w  ww  .  ja va  2  s.c  o  m*/
        TimeSeries timeseries = new TimeSeries(type);
        for (Map.Entry<String, long[]> entry : data.entrySet()) {
            try {
                timeseries.add(new Minute(dateFormat.parse(date + entry.getKey())), entry.getValue()[i]);
            } catch (ParseException e) {
                logger.error(e.getMessage(), e);
            }
        }
        xydataset.addSeries(timeseries);
    }
    JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(
            "max: " + numberFormat.format(summary[0])
                    + (summary[1] >= 0 ? " min: " + numberFormat.format(summary[1]) : "") + " avg: "
                    + numberFormat.format(summary[2])
                    + (summary[3] >= 0 ? " sum: " + numberFormat.format(summary[3]) : ""),
            toDisplayService(service) + "  " + method + "  " + toDisplayDate(date), key, xydataset, true, true,
            false);
    jfreechart.setBackgroundPaint(Color.WHITE);
    XYPlot xyplot = (XYPlot) jfreechart.getPlot();
    xyplot.setBackgroundPaint(Color.WHITE);
    xyplot.setDomainGridlinePaint(Color.GRAY);
    xyplot.setRangeGridlinePaint(Color.GRAY);
    xyplot.setDomainGridlinesVisible(true);
    xyplot.setRangeGridlinesVisible(true);
    DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis();
    dateaxis.setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    BufferedImage image = jfreechart.createBufferedImage(600, 300);
    try {
        if (logger.isInfoEnabled()) {
            logger.info("write chart: " + path);
        }
        File methodChartFile = new File(path);
        File methodChartDir = methodChartFile.getParentFile();
        if (methodChartDir != null && !methodChartDir.exists()) {
            methodChartDir.mkdirs();
        }
        FileOutputStream output = new FileOutputStream(methodChartFile);
        try {
            ImageIO.write(image, "png", output);
            output.flush();
        } finally {
            output.close();
        }
    } catch (IOException e) {
        logger.warn(e.getMessage(), e);
    }
}

From source file:tools.descartes.bungee.chart.ChartGenerator.java

public static XYPlot createIntensityPlot(final List<ArrivalRateTuple> intensities) {
    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    final TimeSeries series = new TimeSeries("load intensity");
    for (ArrivalRateTuple intensity : intensities) {
        long milliseconds = (referenceDate.getTime() / 1000 + (long) Math.floor(intensity.getTimeStamp()))
                * 1000;//from   w w  w  .j av a  2s .c om
        series.add(new FixedMillisecond(milliseconds), intensity.getArrivalRate());
    }
    dataset.addSeries(series);

    XYStepRenderer renderer = new XYStepRenderer();
    //renderer.setSeriesStroke(0, (new BasicStroke(2.0F)));   
    renderer.setSeriesPaint(0, Color.GRAY);
    final NumberAxis rangeAxis = new NumberAxis("Arrival Rate [1/s]");
    //rangeAxis.setRange(0, 220);
    final XYPlot intensityPlot = new XYPlot(dataset, null, rangeAxis, renderer);
    return intensityPlot;
}

From source file:ch.agent.crnickl.demo.stox.Chart.java

private TimeSeries convertToJFCTimeSeries(boolean interpolate, String name, TimeAddressable<Double> ts)
        throws KeyedException {
    Constructor<? extends RegularTimePeriod> constructor = getPeriodConstructor(ts.getTimeDomain());
    TimeSeries timeSeries = new TimeSeries(name);
    for (Observation<Double> obs : ts) {
        Double value = obs.getValue();
        if (ts.isMissing(value)) {
            if (interpolate)
                continue;
        }//w w  w . j  a  v  a2  s  .  co m
        Date date = JavaDateUtil.toJavaDate(obs.getTime());
        RegularTimePeriod period = null;
        try {
            period = constructor.newInstance(date);
        } catch (Exception e) {
            throw K.JFC_PERIOD_ERR.exception(e, date.toString());
        }
        timeSeries.add(period, value);
    }
    return timeSeries;
}

From source file:userInterface.doctor.ReportingPatientVitalHistJPanel.java

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    // TODO add your handling code here:

    TimeSeriesCollection ts = new TimeSeriesCollection();
    TimeSeries object1 = new TimeSeries("RespiratoryRate");
    TimeSeries object2 = new TimeSeries("HeartRate");
    TimeSeries object3 = new TimeSeries("SystolicPressure");
    TimeSeries object4 = new TimeSeries("Weight");

    for (VitalSignInfo vitalsign : patient.getVitalHistory().getVitalHistory()) {

        int rr = (int) vitalsign.getRespRate();
        int hr = (int) vitalsign.getHeartRate();
        int sp = (int) vitalsign.getSystolicBP();
        int wt = (int) vitalsign.getWeight();

        try {/*from w  w  w  .jav a2  s  . c o  m*/
            object1.add(new Second(vitalsign.getTimeStamp()), rr);
            object2.add(new Second(vitalsign.getTimeStamp()), hr);
            object3.add(new Second(vitalsign.getTimeStamp()), sp);
            object4.add(new Second(vitalsign.getTimeStamp()), wt);
        } catch (ParseException ex) {
            //  Logger.getLogger(ReportingPatientVitalHistJPanel.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    ts.addSeries(object1);
    ts.addSeries(object2);
    ts.addSeries(object3);
    ts.addSeries(object4);

    JFreeChart chart = ChartFactory.createTimeSeriesChart("Vital Signs", "TimeStamp", "Vital Sign Values", ts,
            true, true, true);

    chart.setBackgroundPaint(Color.GRAY);
    chart.getTitle().setPaint(Color.red);

    XYPlot xy = (XYPlot) chart.getPlot();
    DateAxis da = (DateAxis) xy.getDomainAxis();
    da.setDateFormatOverride(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"));

    ChartFrame frame = new ChartFrame("Chart for Vital Signs", chart);
    frame.setVisible(true);
    frame.setSize(450, 350);

}

From source file:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.PortCounterPlotWorker.java

private XYDataset createUtilizationDataset(OSM_FabricDeltaCollection deltaHistory, PortCounterName pcn,
        String seriesName) {/*from w w  w .jav  a 2s  .  c o  m*/
    TimeSeries series = new TimeSeries(seriesName);

    // iterate through the collection, and build up a time series
    for (int j = 0; j < deltaHistory.getSize(); j++) {
        OSM_FabricDelta delta = deltaHistory.getOSM_FabricDelta(j);

        // find the desired port counter, in this instance
        LinkedHashMap<String, PFM_PortChange> pcL = delta.getPortChanges();
        PFM_PortChange pC = pcL.get(OSM_Port.getOSM_PortKey(Port));
        PFM_PortRate pR = new PFM_PortRate(pC);
        TimeStamp ts = pC.getCounterTimeStamp();

        // convert rate to utilization
        double lValue = SMT_AnalysisManager.getInstance().getDeltaAnalysis().getPortUtilization(pR, pcn);

        RegularTimePeriod ms = new FixedMillisecond(ts.getTimeInMillis());
        series.add(ms, lValue);
    }
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);

    return dataset;
}

From source file:wsattacker.plugin.dos.dosExtension.chart.ChartObject.java

private synchronized XYDataset createDatasetResponseTime(String type) {

    Map<Integer, LogEntryInterval> currentMap = null;
    String name = null;/* w ww .j  a  v a 2  s. c o  m*/
    if (type.equals("tampered")) {
        currentMap = model.getMapLogEntryIntervalTampered();
        name = "Mean Response Time Tampered Requests"; // Roundtrip Time
    } else if (type.equals("untampered")) {
        currentMap = model.getMapLogEntryIntervalUntampered();
        name = "Mean Response Time Untampered Requests"; // Roundtrip Time
    } else if (type.equals("testprobe")) {
        currentMap = model.getMapLogEntryIntervalTestProbe();
        name = "Mean Response Time Simulated 3rd Party Requests"; // Roundtrip
                                                                  // Time
    } else {
        System.out.println("Invalid type");
    }

    Date currentDate;
    long currentMsTs;
    final TimeSeries series = new TimeSeries(name);
    if (currentMap != null) {
        for (Map.Entry<Integer, LogEntryInterval> log : currentMap.entrySet()) {
            // Create TS from model.startTime and log.getIntervalNumber();
            currentMsTs = model.getTsAttackStart() + log.getValue().getIntervalNumber();
            currentDate = new Date(currentMsTs);
            // System.out.println(name+" Sekunde"+log.getValue().getIntervalNumber()+" TS: "+currentMsTs+" time "+log.getValue().getMeanResponseTime());
            series.add(new Second(currentDate), (log.getValue().getMeanResponseTime()));
        }
    }

    final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
    dataset.setXPosition(TimePeriodAnchor.MIDDLE);

    return dataset;
}

From source file:org.jfree.chart.demo.PriceVolumeDemo1.java

private static IntervalXYDataset createVolumeDataset() {
    TimeSeries timeseries = new TimeSeries("Volume");
    timeseries.add(new Day(2, 1, 2002), 41020D);
    timeseries.add(new Day(3, 1, 2002), 45586D);
    timeseries.add(new Day(4, 1, 2002), 81672D);
    timeseries.add(new Day(7, 1, 2002), 81975D);
    timeseries.add(new Day(8, 1, 2002), 79692D);
    timeseries.add(new Day(9, 1, 2002), 53187D);
    timeseries.add(new Day(10, 1, 2002), 87929D);
    timeseries.add(new Day(11, 1, 2002), 107047D);
    timeseries.add(new Day(14, 1, 2002), 86276D);
    timeseries.add(new Day(15, 1, 2002), 79005D);
    timeseries.add(new Day(16, 1, 2002), 80632D);
    timeseries.add(new Day(17, 1, 2002), 88797D);
    timeseries.add(new Day(18, 1, 2002), 57179D);
    timeseries.add(new Day(22, 1, 2002), 36611D);
    timeseries.add(new Day(23, 1, 2002), 57063D);
    timeseries.add(new Day(24, 1, 2002), 101938D);
    timeseries.add(new Day(25, 1, 2002), 87177D);
    timeseries.add(new Day(28, 1, 2002), 39831D);
    timeseries.add(new Day(29, 1, 2002), 67654D);
    timeseries.add(new Day(30, 1, 2002), 81162D);
    timeseries.add(new Day(31, 1, 2002), 64923D);
    timeseries.add(new Day(1, 2, 2002), 73481D);
    timeseries.add(new Day(4, 2, 2002), 54723D);
    timeseries.add(new Day(5, 2, 2002), 76708D);
    timeseries.add(new Day(6, 2, 2002), 81281D);
    timeseries.add(new Day(7, 2, 2002), 66553D);
    timeseries.add(new Day(8, 2, 2002), 53592D);
    timeseries.add(new Day(11, 2, 2002), 29410D);
    timeseries.add(new Day(12, 2, 2002), 60345D);
    timeseries.add(new Day(13, 2, 2002), 67339D);
    timeseries.add(new Day(14, 2, 2002), 40057D);
    timeseries.add(new Day(15, 2, 2002), 67865D);
    timeseries.add(new Day(19, 2, 2002), 58628D);
    timeseries.add(new Day(20, 2, 2002), 52109D);
    timeseries.add(new Day(21, 2, 2002), 50195D);
    timeseries.add(new Day(22, 2, 2002), 47806D);
    timeseries.add(new Day(25, 2, 2002), 31711D);
    timeseries.add(new Day(26, 2, 2002), 88328D);
    timeseries.add(new Day(27, 2, 2002), 95805D);
    timeseries.add(new Day(28, 2, 2002), 84035D);
    timeseries.add(new Day(1, 3, 2002), 113584D);
    timeseries.add(new Day(4, 3, 2002), 71872D);
    timeseries.add(new Day(5, 3, 2002), 83016D);
    timeseries.add(new Day(6, 3, 2002), 62273D);
    timeseries.add(new Day(7, 3, 2002), 138508D);
    timeseries.add(new Day(8, 3, 2002), 139428D);
    timeseries.add(new Day(11, 3, 2002), 80232D);
    timeseries.add(new Day(12, 3, 2002), 75693D);
    timeseries.add(new Day(13, 3, 2002), 104068D);
    timeseries.add(new Day(14, 3, 2002), 72171D);
    timeseries.add(new Day(15, 3, 2002), 117262D);
    timeseries.add(new Day(18, 3, 2002), 66048D);
    timeseries.add(new Day(19, 3, 2002), 87079D);
    timeseries.add(new Day(20, 3, 2002), 116084D);
    timeseries.add(new Day(21, 3, 2002), 113206D);
    timeseries.add(new Day(22, 3, 2002), 68326D);
    timeseries.add(new Day(25, 3, 2002), 34340D);
    timeseries.add(new Day(26, 3, 2002), 104413D);
    timeseries.add(new Day(27, 3, 2002), 57277D);
    timeseries.add(new Day(28, 3, 2002), 69936D);
    timeseries.add(new Day(1, 4, 2002), 57282D);
    timeseries.add(new Day(2, 4, 2002), 74686D);
    timeseries.add(new Day(3, 4, 2002), 108601D);
    timeseries.add(new Day(4, 4, 2002), 123381D);
    timeseries.add(new Day(5, 4, 2002), 106691D);
    timeseries.add(new Day(8, 4, 2002), 118535D);
    timeseries.add(new Day(9, 4, 2002), 85577D);
    timeseries.add(new Day(10, 4, 2002), 75441D);
    timeseries.add(new Day(11, 4, 2002), 88845D);
    timeseries.add(new Day(12, 4, 2002), 137141D);
    timeseries.add(new Day(15, 4, 2002), 72518D);
    timeseries.add(new Day(16, 4, 2002), 122100D);
    timeseries.add(new Day(17, 4, 2002), 136419D);
    timeseries.add(new Day(18, 4, 2002), 141338D);
    timeseries.add(new Day(19, 4, 2002), 80274D);
    timeseries.add(new Day(22, 4, 2002), 40449D);
    timeseries.add(new Day(23, 4, 2002), 72292D);
    timeseries.add(new Day(24, 4, 2002), 110644D);
    timeseries.add(new Day(25, 4, 2002), 145142D);
    timeseries.add(new Day(26, 4, 2002), 139573D);
    timeseries.add(new Day(29, 4, 2002), 51509D);
    timeseries.add(new Day(30, 4, 2002), 105782D);
    timeseries.add(new Day(1, 5, 2002), 170680D);
    timeseries.add(new Day(2, 5, 2002), 140800D);
    timeseries.add(new Day(3, 5, 2002), 170411D);
    timeseries.add(new Day(6, 5, 2002), 46172D);
    timeseries.add(new Day(7, 5, 2002), 137251D);
    timeseries.add(new Day(8, 5, 2002), 220626D);
    timeseries.add(new Day(9, 5, 2002), 175902D);
    timeseries.add(new Day(10, 5, 2002), 128807D);
    timeseries.add(new Day(13, 5, 2002), 78208D);
    timeseries.add(new Day(14, 5, 2002), 212048D);
    timeseries.add(new Day(15, 5, 2002), 145643D);
    timeseries.add(new Day(16, 5, 2002), 121520D);
    timeseries.add(new Day(17, 5, 2002), 147820D);
    timeseries.add(new Day(20, 5, 2002), 75969D);
    timeseries.add(new Day(21, 5, 2002), 118970D);
    timeseries.add(new Day(22, 5, 2002), 131013D);
    timeseries.add(new Day(23, 5, 2002), 141100D);
    timeseries.add(new Day(24, 5, 2002), 63606D);
    timeseries.add(new Day(28, 5, 2002), 78687D);
    timeseries.add(new Day(29, 5, 2002), 86743D);
    timeseries.add(new Day(30, 5, 2002), 164376D);
    timeseries.add(new Day(31, 5, 2002), 150108D);
    timeseries.add(new Day(3, 6, 2002), 132363D);
    timeseries.add(new Day(4, 6, 2002), 144902D);
    timeseries.add(new Day(5, 6, 2002), 123834D);
    timeseries.add(new Day(6, 6, 2002), 125004D);
    timeseries.add(new Day(7, 6, 2002), 165049D);
    timeseries.add(new Day(10, 6, 2002), 88069D);
    timeseries.add(new Day(11, 6, 2002), 114146D);
    timeseries.add(new Day(12, 6, 2002), 149992D);
    timeseries.add(new Day(13, 6, 2002), 191261D);
    timeseries.add(new Day(14, 6, 2002), 207444D);
    timeseries.add(new Day(17, 6, 2002), 117081D);
    timeseries.add(new Day(18, 6, 2002), 135924D);
    timeseries.add(new Day(19, 6, 2002), 179654D);
    timeseries.add(new Day(20, 6, 2002), 260936D);
    timeseries.add(new Day(21, 6, 2002), 140283D);
    timeseries.add(new Day(24, 6, 2002), 199052D);
    timeseries.add(new Day(25, 6, 2002), 191804D);
    timeseries.add(new Day(26, 6, 2002), 384936D);
    timeseries.add(new Day(27, 6, 2002), 313065D);
    timeseries.add(new Day(28, 6, 2002), 169963D);
    timeseries.add(new Day(1, 7, 2002), 109906D);
    timeseries.add(new Day(2, 7, 2002), 140644D);
    timeseries.add(new Day(3, 7, 2002), 150898D);
    timeseries.add(new Day(5, 7, 2002), 181355D);
    timeseries.add(new Day(8, 7, 2002), 155042D);
    timeseries.add(new Day(9, 7, 2002), 204305D);
    timeseries.add(new Day(10, 7, 2002), 300113D);
    timeseries.add(new Day(11, 7, 2002), 338948D);
    timeseries.add(new Day(12, 7, 2002), 281325D);
    timeseries.add(new Day(15, 7, 2002), 256101D);
    timeseries.add(new Day(16, 7, 2002), 348164D);
    timeseries.add(new Day(17, 7, 2002), 242995D);
    timeseries.add(new Day(18, 7, 2002), 200744D);
    timeseries.add(new Day(19, 7, 2002), 181071D);
    timeseries.add(new Day(22, 7, 2002), 163266D);
    timeseries.add(new Day(23, 7, 2002), 188508D);
    timeseries.add(new Day(24, 7, 2002), 308070D);
    timeseries.add(new Day(25, 7, 2002), 230901D);
    timeseries.add(new Day(26, 7, 2002), 162577D);
    timeseries.add(new Day(29, 7, 2002), 216318D);
    timeseries.add(new Day(30, 7, 2002), 280677D);
    timeseries.add(new Day(31, 7, 2002), 260236D);
    timeseries.add(new Day(1, 8, 2002), 242803D);
    timeseries.add(new Day(2, 8, 2002), 298490D);
    timeseries.add(new Day(5, 8, 2002), 182890D);
    timeseries.add(new Day(6, 8, 2002), 232273D);
    timeseries.add(new Day(7, 8, 2002), 253552D);
    timeseries.add(new Day(8, 8, 2002), 165365D);
    timeseries.add(new Day(9, 8, 2002), 160382D);
    timeseries.add(new Day(12, 8, 2002), 118030D);
    timeseries.add(new Day(13, 8, 2002), 208807D);
    timeseries.add(new Day(14, 8, 2002), 231599D);
    timeseries.add(new Day(15, 8, 2002), 343482D);
    timeseries.add(new Day(16, 8, 2002), 186116D);
    timeseries.add(new Day(19, 8, 2002), 96437D);
    timeseries.add(new Day(20, 8, 2002), 151735D);
    timeseries.add(new Day(21, 8, 2002), 167390D);
    timeseries.add(new Day(22, 8, 2002), 127184D);
    timeseries.add(new Day(23, 8, 2002), 80205D);
    timeseries.add(new Day(26, 8, 2002), 79893D);
    timeseries.add(new Day(27, 8, 2002), 201723D);
    timeseries.add(new Day(28, 8, 2002), 114001D);
    timeseries.add(new Day(29, 8, 2002), 188389D);
    timeseries.add(new Day(30, 8, 2002), 162801D);
    timeseries.add(new Day(3, 9, 2002), 200951D);
    timeseries.add(new Day(4, 9, 2002), 129229D);
    timeseries.add(new Day(5, 9, 2002), 183348D);
    timeseries.add(new Day(6, 9, 2002), 216722D);
    timeseries.add(new Day(9, 9, 2002), 128575D);
    timeseries.add(new Day(10, 9, 2002), 224714D);
    timeseries.add(new Day(11, 9, 2002), 144224D);
    timeseries.add(new Day(12, 9, 2002), 195721D);
    timeseries.add(new Day(13, 9, 2002), 160724D);
    timeseries.add(new Day(16, 9, 2002), 65473D);
    timeseries.add(new Day(17, 9, 2002), 141274D);
    timeseries.add(new Day(18, 9, 2002), 115084D);
    timeseries.add(new Day(19, 9, 2002), 242106D);
    timeseries.add(new Day(20, 9, 2002), 130034D);
    timeseries.add(new Day(23, 9, 2002), 95215D);
    timeseries.add(new Day(24, 9, 2002), 229288D);
    timeseries.add(new Day(25, 9, 2002), 163672D);
    timeseries.add(new Day(26, 9, 2002), 193573D);
    timeseries.add(new Day(27, 9, 2002), 170741D);
    timeseries.add(new Day(30, 9, 2002), 199615D);
    timeseries.add(new Day(1, 10, 2002), 170771D);
    timeseries.add(new Day(2, 10, 2002), 138498D);
    timeseries.add(new Day(3, 10, 2002), 154774D);
    timeseries.add(new Day(4, 10, 2002), 287154D);
    timeseries.add(new Day(7, 10, 2002), 111762D);
    timeseries.add(new Day(8, 10, 2002), 172535D);
    timeseries.add(new Day(9, 10, 2002), 148339D);
    timeseries.add(new Day(10, 10, 2002), 178796D);
    timeseries.add(new Day(11, 10, 2002), 153499D);
    timeseries.add(new Day(14, 10, 2002), 4589D);
    timeseries.add(new Day(15, 10, 2002), 172088D);
    timeseries.add(new Day(16, 10, 2002), 151267D);
    timeseries.add(new Day(17, 10, 2002), 222680D);
    timeseries.add(new Day(18, 10, 2002), 127019D);
    timeseries.add(new Day(21, 10, 2002), 118226D);
    timeseries.add(new Day(22, 10, 2002), 183031D);
    timeseries.add(new Day(23, 10, 2002), 221005D);
    timeseries.add(new Day(24, 10, 2002), 121333D);
    timeseries.add(new Day(25, 10, 2002), 138179D);
    timeseries.add(new Day(28, 10, 2002), 162012D);
    timeseries.add(new Day(29, 10, 2002), 237355D);
    timeseries.add(new Day(30, 10, 2002), 161650D);
    timeseries.add(new Day(31, 10, 2002), 207569D);
    return new TimeSeriesCollection(timeseries);
}