Package de.hpi.eworld.simulationstatistic.model

Examples of de.hpi.eworld.simulationstatistic.model.StatDataset


              "No visualization technique selected",
              JOptionPane.ERROR_MESSAGE);
    } else {
      logger.debug("Starting map visualization");
      String datasetId = (String) dataSetBox.getSelectedItem();
      StatDataset dataset = StatisticsDataManager.getInstance().getDataset(datasetId);
      if (dataset == null){
        logger.info("Can't start visualization! Dataset is null");
        return;
      }
     
      // get data source (dataset, interval, value) and
      // visualization parameters
      double lowThresh = (Double) lowThreshold.getValue();
      double highThresh = (Double) highThreshold.getValue();
      Value value = Value.valueOf((String) valueBox.getSelectedItem());
      int interval = (Integer) intervalBox.getValue();

      if (!dataset.belongsToCurrentMap()) {
        logger.info("Only data belonging to current map can be visualized!");
        JOptionPane.showMessageDialog(mainView.getComponent(),
                "Data set does not belong to current map!",
                "Can't visualize data",
                JOptionPane.WARNING_MESSAGE);
      }

      // map all edges of the current map to their ids
      Map<String, EdgeModel> edges = new HashMap<String, EdgeModel>();
      for (ModelElement element : ModelManager.getInstance()
          .getAllModelElements()) {
        // for all ways
        if (element instanceof WayModel) {
          WayModel way = (WayModel) element;
          // store all edges
          for (EdgeModel edge : way.getBackwardEdges()) {
            edges.put(edge.getInternalID(), edge);
          }
          for (EdgeModel edge : way.getForwardEdges()) {
            edges.put(edge.getInternalID(), edge);
          }
        }
      }

      EdgeModel currEdge;
      for (StatEdge statEdge : dataset.getInterval(interval).getStatEdges()) {
        // try to get corresponding Edge element
        if ((currEdge = edges.get(statEdge.getId())) != null) {
          // line colors
          if (colorBox.isSelected()) {
            // compute color

            Color lowColor = lowButton.color;
            Color highColor = highButton.color;
            if (dataset.isLaneDataIncluded()) {
              // set color depending on lane values
              for (int i = 0; i < currEdge.getNoOfLanes(); i++) {
                double data = statEdge.getStatLane(i).getValue(
                    value);
                Color color = computeColor(data, lowThresh,
View Full Code Here


    double min = 0;
    double max = 0;
    boolean firstIt = true;
    // iterate over all edges/lanes and find max and min values
    String setId = (String) dataSetBox.getSelectedItem();
    StatDataset dataset = StatisticsDataManager.getInstance().getDataset(
        setId);
    Value value = Value.valueOf((String) valueBox.getSelectedItem());
    if (dataset == null) {
      return;
    }

    StatInterval interval = dataset.getInterval((Integer) intervalBox.getValue());

    /*
     * iterate over all ways and compute mean values for each way. Each
     * string of continuous lanes will later be drawn as one polygon!
     * Therefore each lane number will have its own mean value.
     */
    for (ModelElement element : ModelManager.getInstance()
        .getAllModelElements()) {
      if (element instanceof WayModel) {
        WayModel way = (WayModel) element;
        List<Double> meanData = null;
        if (dataset.isLaneDataIncluded()) {
          meanData = computeWayMeanLanes(way, interval, value);
        } else {
          meanData = new ArrayList<Double>();
          meanData.add(computeWayMeanEdge(way, interval, value));
        }
View Full Code Here

   * if requested and 'update' is true.
   * @param update whether allow computation of thresholds and map update
   */
  private void onIntervalChanged(boolean update) {
    String setId = (String) dataSetBox.getSelectedItem();
    StatDataset dataset = StatisticsDataManager.getInstance()
        .getDataset(setId);
    if (dataset != null){
// TODO
//      String suffix = " (steps " + dataset.getInterval((Integer) intervalBox.getValue()).getBeginTime() +
//        "-" + dataset.getInterval((Integer) intervalBox.getValue()).getEndTime() + ")";
View Full Code Here

  }
 
  @Test
  public void testParseFileInputStreamEdge() {
    testParseFileInputStream("./resources/sumo_edge-lane-dump/edge_aggregated__900.xml");
    StatDataset model = StatisticsDataManager.getInstance().getLastDataset();
    //test absolute numbers
    StatInterval interval0 = model.getInterval(0);
    Assert.assertEquals(3, model.numIntervals());
    Assert.assertEquals(12, interval0.numEdges());
   
    //test edge values
    StatEdge edge1 = interval0.getStatEdge("1fi");
    Assert.assertEquals(30.2, edge1.getValue(Value.TRAVELTIME), 0);
View Full Code Here

 

  @Test
  public void testParseFileInputStreamLane() {
    testParseFileInputStream("./resources/sumo_edge-lane-dump/lane_ aggregated__900.xml");
    StatDataset model = StatisticsDataManager.getInstance().getLastDataset();
    //test absolute numbers
    StatInterval interval0 = model.getInterval(0);
    Assert.assertEquals(3, model.numIntervals());
    Assert.assertEquals(12, interval0.numEdges());
   
    //TODO: test single lane
    StatLane lane1 = interval0.getStatLane("1si_0");
    Assert.assertEquals(51.64, lane1.getValue(Value.TRAVELTIME), 0);
View Full Code Here

   * Test all variants for model creation
   * @throws MalformedURLException
   */
  @Test
  public void testModelAndSetterCreation() throws MalformedURLException{
    StatDataset model1 = new StatDataset();
   
    //initial values
    Assert.assertEquals(false, model1.isAutomaticImport());
    Assert.assertEquals(false, model1.isLaneDataIncluded());
    Assert.assertEquals(false, model1.belongsToCurrentMap());
    Assert.assertEquals(null, model1.getDataURL());
    Assert.assertEquals(null, model1.getDataFile());
    Assert.assertNotNull(model1.getDisplayText());
    Assert.assertNotNull(model1.getId());
    Assert.assertEquals(0, model1.getIntervals().size());
    Assert.assertEquals(0, model1.numIntervals());
   
    //auto import
    model1.setAutomaticImport(true);
    Assert.assertEquals(true, model1.isAutomaticImport());
   
    //lane data
    model1.setLaneDataIncluded(true);
    Assert.assertEquals(true, model1.isLaneDataIncluded());
   
    //current map
    model1.setBelongsToCurrentMap(true);
    Assert.assertEquals(true, model1.belongsToCurrentMap());
   
    //file url
    URL test = new URL("file", null, "C:\\testfile.txt");
    model1.setDataURL(test);
    Assert.assertEquals(test, model1.getDataURL());
    Assert.assertEquals(new File(test.getFile()), model1.getDataFile());
   
    //display text
    String text = "This is model1";
    model1.setDisplayText(text);
    Assert.assertEquals(text, model1.getDisplayText());
   
    //intervals, 'happy path'
    StatInterval interval0 = new StatInterval("interval1", 0, 200);
    StatInterval interval1 = new StatInterval("interval2", 200, 500);
    StatInterval interval2 = new StatInterval("interval3", 500, 1000);
    model1.addInterval(interval0);
    model1.addInterval(interval1);
    model1.addInterval(interval2);
   
    Assert.assertSame(interval0, model1.getInterval(0));
    Assert.assertSame(interval1, model1.getInterval(1));
    Assert.assertSame(interval2, model1.getInterval(2));
   
    Assert.assertEquals(3, model1.numIntervals());
    Assert.assertEquals(3, model1.getIntervals().size());
   
    //reset all values
    model1.clear();
   
    //initial values
    Assert.assertEquals(false, model1.isAutomaticImport());
    Assert.assertEquals(false, model1.isLaneDataIncluded());
    Assert.assertEquals(false, model1.belongsToCurrentMap());
    Assert.assertEquals(null, model1.getDataFile());
    Assert.assertNotNull(model1.getDisplayText());
    Assert.assertNotNull(model1.getId());
    Assert.assertEquals(0, model1.getIntervals().size());
    Assert.assertEquals(0, model1.numIntervals());
   
    //attention - currently wrong order of intervals possible:
    model1.addInterval(interval2);
    model1.addInterval(interval0);
    model1.addInterval(interval1);
    Assert.assertSame(interval2, model1.getInterval(0));
    Assert.assertSame(interval0, model1.getInterval(1));
    Assert.assertSame(interval1, model1.getInterval(2));
  }
View Full Code Here

   * Tests functionality for actually managing the models
   */
  @Test
  public void addingRemovingModelsTest() {
    StatisticsDataManager mm = StatisticsDataManager.getInstance();
    StatDataset model1 = new StatDataset();
    StatDataset model2 = new StatDataset();
    StatDataset model3 = new StatDataset();

    mm.addDataset(model1);
    Assert.assertEquals(model1.getId(), mm.getLastDataset().getId());
    Assert.assertEquals(1, mm.numDatasets());
    Assert.assertEquals(1, mm.getDatasets().size());

    mm.addDataset(model2);
    Assert.assertEquals(model2.getId(), mm.getLastDataset().getId());
    Assert.assertEquals(2, mm.numDatasets());
    Assert.assertEquals(2, mm.getDatasets().size());

    mm.addDataset(model3);
    Assert.assertEquals(model3.getId(), mm.getLastDataset().getId());
    Assert.assertEquals(3, mm.numDatasets());
    Assert.assertEquals(3, mm.getDatasets().size());

    Assert.assertSame(model1, mm.getDataset(model1.getId()));
    Assert.assertSame(model2, mm.getDataset(model2.getId()));
    Assert.assertSame(model3, mm.getDataset(model3.getId()));

    mm.removeDataset(model3.getId());
    Assert.assertEquals(model2.getId(), mm.getLastDataset().getId());
    Assert.assertNull(mm.getDataset(model3.getId()));
    Assert.assertEquals(2, mm.numDatasets());
    Assert.assertSame(model1, mm.getDataset(model1.getId()));
    Assert.assertSame(model2, mm.getDataset(model2.getId()));

    mm.clear();
    Assert.assertNull(mm.getLastDataset());
    Assert.assertNull(mm.getDataset(model3.getId()));
    Assert.assertNull(mm.getDataset(model2.getId()));
    Assert.assertNull(mm.getDataset(model1.getId()));
    Assert.assertEquals(0, mm.numDatasets());
  }
View Full Code Here

    StatisticsDataManager smm = StatisticsDataManager.getInstance();
    smm.clear();
    EdgeModel testEdge = null;

    // create 2 dummy models
    StatDataset model1 = new StatDataset();
    model1.setBelongsToCurrentMap(true);
    StatInterval interval1 = new StatInterval("int1", 0, 100);
    model1.addInterval(interval1);
    StatDataset model2 = new StatDataset();
    model2.setBelongsToCurrentMap(true);
    StatInterval interval2 = new StatInterval("int2", 0, 100);
    model2.addInterval(interval2);

    for (ModelElement element : allElements) {
      if (element instanceof WayModel) {
        WayModel way = (WayModel) element;
        //add way to ModelManager
        mm.addModelElement(way);
       
        List<EdgeModel> edges = way.getBackwardEdges();
        edges.addAll(way.getForwardEdges());
        for (EdgeModel edge : edges) {
          // for each edge in the testcase add a StatEdge to the dummy
          // model...
          // with defaults for the values to be tested for (maxspeed, minspeed,
          // street name) and ...
          // ...without lanes (model1)
          StatEdge edge1 = TestCaseUtil.createTestStatEdge(true,
              false, 0, edge.getInternalID());
          edge1.setMaxSpeed(0);
          edge1.setMinSpeed(0);
          edge1.setStreetName(null);
          interval1.addStatEdge(edge1);

          // ...with same number of lanes as the edge has (model2)
          int lanes = edge.getNoOfLanes();
          //however, eWorlds edges have 1 lane by default, SUMOs do not
          lanes = (lanes == 1)? 0: lanes;
          StatEdge edge2 = TestCaseUtil.createTestStatEdge(true,
              true, lanes, edge.getInternalID());
          edge2.setMaxSpeed(0);
          edge2.setMinSpeed(0);
          edge2.setStreetName(null);
          interval2.addStatEdge(edge2);
         
         
          //System.out.println("Lanes   edge:" + edge.getNoOfLanes() +
          //    "statedge:" + edge2.numLanes());
          // also look for an edge, that has all attributes we want to
          // test for
          if (testEdge == null) {
            if ((edge.getMaxspeed() != 0)
                && (edge.getMinspeed() != 0)
                && (edge.getParentWay().getDescription() != null)) {
              testEdge = edge;
            }//end if
          }//end if
        }//end for edges
      }//end instanceof
    }//end for allElements

    // add models to statmodelmanager and test if testcase data was added to
    // them
    smm.addDataset(model1);
    StatEdge testStatEdge = model1.getInterval(0).getStatEdge(
        testEdge.getInternalID());
    Assert.assertFalse((testStatEdge.getValue(Value.MAXSPEED) == 0));
    Assert.assertFalse((testStatEdge.getValue(Value.MINSPEED) == 0));
    Assert.assertNotNull(testStatEdge.getStreetName());

    smm.clear();
    smm.addDataset(model2);
    testStatEdge = model2.getInterval(0).getStatEdge(
        testEdge.getInternalID());
    Assert.assertFalse((testStatEdge.getValue(Value.MAXSPEED) == 0));
    Assert.assertFalse((testStatEdge.getValue(Value.MINSPEED) == 0));
    Assert.assertNotNull(testStatEdge.getStreetName());
  }
View Full Code Here

   *
   * @param item
   *            the listwidget item to display
   */
  private void displayDatasetItem(ListValue value) {
    StatDataset dataset = getDataset(value);
    if (dataset != null)
      JOptionPane.showMessageDialog(parentWindow,
          dataset.toString(), "Info on statistical dataset",
              JOptionPane.INFORMATION_MESSAGE);
  }
View Full Code Here

  /**
   * Triggers visualization of the current dataset on the map(networkView)
   */
  private void initShowOnMap() {
    StatDataset dataset = getDataset((ListValue) datasetsList.getSelectedValue());
    visualizeWidget.showOnMap(dataset, Value.SPEED);
    //tabWidget.setCurrentIndex(1);
  }
View Full Code Here

TOP

Related Classes of de.hpi.eworld.simulationstatistic.model.StatDataset

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.