public final ActivityFacilityImpl createAndAddFacility(final Id<ActivityFacility> id, final Coord center) { return createAndAddFacility(id, center, null); }
public static ActivityFacilities createActivityFacilities(String name) { return new ActivityFacilitiesImpl( name ) ; }
public void run(ActivityFacilitiesImpl facilities) { System.out.println(" running " + this.getClass().getName() + " module..."); TreeSet<Id<ActivityFacility>> fid_set = new TreeSet<Id<ActivityFacility>>(); Iterator<Id<ActivityFacility>> fid_it = facilities.getFacilities().keySet().iterator(); while (fid_it.hasNext()) { Id<ActivityFacility> fid = fid_it.next(); ActivityFacility f = facilities.getFacilities().get(fid); Coord coord = f.getCoord(); double x = coord.getX(); double y = coord.getY(); if (!((x < this.maxX) && (this.minX < x) && (y < this.maxY) && (this.minY < y))) { fid_set.add(fid); } } System.out.println(" Number of facilities to be cut = " + fid_set.size() + "..."); fid_it = fid_set.iterator(); while (fid_it.hasNext()) { Id<ActivityFacility> fid = fid_it.next(); facilities.getFacilities().remove(fid); } System.out.println(" done."); } }
public void testRunAlgorithms() { final ActivityFacilitiesImpl facilities = new ActivityFacilitiesImpl(); // create 2 facilities facilities.createAndAddFacility(Id.create(1, ActivityFacility.class), new Coord(1.0, 1.0)); facilities.createAndAddFacility(Id.create(2, ActivityFacility.class), new Coord(2.0, 2.0)); // create an algo and let it run over the facilities MockAlgo1 algo1 = new MockAlgo1(); algo1.run(facilities); assertEquals("TestAlgo should have handled 2 facilities.", 2, algo1.getCounter()); }
/** * finds the node nearest to <code>coord</code> * * @param coord the coordinate to which the closest node should be found * @return the closest node found, null if none */ @Override public ActivityFacility getNearestFacility(final Coord coord) { if (this.facilitiesQuadTree == null) { buildQuadTree(); } return this.facilitiesQuadTree.getClosest(coord.getX(), coord.getY()); }
/** * finds the nodes within distance to <code>coord</code> * * @param coord the coordinate around which nodes should be located * @param distance the maximum distance a node can have to <code>coord</code> to be found * @return all nodes within distance to <code>coord</code> */ @Override public Collection<ActivityFacility> getNearestFacilities(final Coord coord, final double distance) { if (this.facilitiesQuadTree == null) { buildQuadTree(); } return this.facilitiesQuadTree.getDisk(coord.getX(), coord.getY(), distance); }
public static ActivityFacilities createHexagonLayer(double minX, double minY, double maxX, double maxY, int maxDiameter_m) { LOG.info("Start creating measure points on a hexagon pattern."); double inRadius_m = Math.sqrt(3) / 4 * maxDiameter_m; int skippedPoints = 0; int setPoints = 0; ActivityFacilitiesImpl measuringPoints = (ActivityFacilitiesImpl) FacilitiesUtils.createActivityFacilities("accessibility measuring points"); int columnNumber = 1; for (double x = minX; x < (maxX - 1./2 * maxDiameter_m); x += (3./4 * maxDiameter_m)) { for (double y = minY; y <= maxY; y += (2 * inRadius_m)) { double centerX = x; double centerY; if (columnNumber % 2 != 0) { centerY = y; } else { centerY = y + inRadius_m; } if (centerX <= maxX && centerX >= minX && centerY <= maxY && centerY >= minY) { Coord center = new Coord(centerX, centerY); measuringPoints.createAndAddFacility(Id.create(setPoints, ActivityFacility.class), center); setPoints++; } else skippedPoints++; } columnNumber++; } LOG.info("Created " + setPoints + " inside the boundary. " + skippedPoints + " lie outside."); LOG.info("Finished creating measure points on a hexagon pattern."); return measuringPoints; }
MutableScenario(Config config) { this.config = config; this.network = NetworkUtils.createNetwork(this.config); this.population = PopulationUtils.createPopulation(this.config, this.network); this.facilities = new ActivityFacilitiesImpl(); this.households = new HouseholdsImpl(); this.lanes = LanesUtils.createLanesContainer(); this.vehicles = VehicleUtils.createVehiclesContainer(); this.transitVehicles = VehicleUtils.createVehiclesContainer(); this.transitSchedule = new TransitScheduleFactoryImpl().createTransitSchedule(); this.config.network().setLocked(); }
int leis_cnt = 0; for (ActivityFacility f : facilities.getFacilities().values()) { Iterator<String> at_it = f.getActivityOptions().keySet().iterator(); while (at_it.hasNext()) { System.out.println(" leis_cnt = " + leis_cnt); for (ActivityFacility f : facilities.getFacilities().values()) { Iterator<? extends ActivityOption> a_it = f.getActivityOptions().values().iterator(); while (a_it.hasNext()) {
measuringPoints.createAndAddFacility(Id.create(setPoints, ActivityFacility.class), center); setPoints++;
@Test public void testAddActivityFacility() { ActivityFacilities facilities = new ActivityFacilitiesImpl(); ActivityFacilitiesFactory factory = facilities.getFactory(); ActivityFacility facility1 = factory.createActivityFacility(Id.create(1, ActivityFacility.class), new Coord((double) 200, (double) 5000)); Assert.assertEquals(0, facilities.getFacilities().size()); facilities.addActivityFacility(facility1); Assert.assertEquals(1, facilities.getFacilities().size()); ActivityFacility facility2 = factory.createActivityFacility(Id.create(2, ActivityFacility.class), new Coord((double) 300, (double) 4000)); facilities.addActivityFacility(facility2); Assert.assertEquals(2, facilities.getFacilities().size()); }
static Plan createPlanFromFacilities(ActivityFacilitiesImpl layer, Person person, String mode, String facString) { Plan plan = PopulationUtils.createPlan(person); String[] locationIdSequence = facString.split(" "); for (int aa=0; aa < locationIdSequence.length; aa++) { ActivityFacility location = layer.getFacilities().get(Id.create(locationIdSequence[aa], ActivityFacility.class)); Activity act; act = PopulationUtils.createAndAddActivity(plan, "actAtFacility" + locationIdSequence[aa]); act.setFacilityId(location.getId()); act.setEndTime(10*3600); if (aa != (locationIdSequence.length - 1)) { PopulationUtils.createAndAddLeg( plan, mode ); } } return plan; }
measuringPoints.createAndAddFacility(Id.create( setPoints , ActivityFacility.class), center); setPoints++;
@Test public void testAddActivityFacility_sameId() { ActivityFacilities facilities = new ActivityFacilitiesImpl(); ActivityFacilitiesFactory factory = facilities.getFactory(); ActivityFacility facility1 = factory.createActivityFacility(Id.create(1, ActivityFacility.class), new Coord((double) 200, (double) 5000)); ActivityFacility facility2 = factory.createActivityFacility(Id.create(1, ActivityFacility.class), new Coord((double) 300, (double) 4000)); Assert.assertEquals(0, facilities.getFacilities().size()); facilities.addActivityFacility(facility1); try { facilities.addActivityFacility(facility2); Assert.fail("Expected exception, got none."); } catch (IllegalArgumentException expected) {} Assert.assertEquals(1, facilities.getFacilities().size()); Assert.assertEquals(facility1, facilities.getFacilities().get(Id.create(1, ActivityFacility.class))); }
/** * Yes, it's just a remove on a Map. But we don't know what kind of map * is used internally, and if the map is modifiable at all... */ @Test public void testRemove() { ActivityFacilities facilities = new ActivityFacilitiesImpl(); ActivityFacilitiesFactory factory = facilities.getFactory(); ActivityFacility facility1 = factory.createActivityFacility(Id.create(1, ActivityFacility.class), new Coord((double) 200, (double) 5000)); ActivityFacility facility2 = factory.createActivityFacility(Id.create(2, ActivityFacility.class), new Coord((double) 300, (double) 4000)); facilities.addActivityFacility(facility1); facilities.addActivityFacility(facility2); Assert.assertEquals(2, facilities.getFacilities().size()); Assert.assertEquals(facility1, facilities.getFacilities().remove(Id.create(1, ActivityFacility.class))); Assert.assertEquals(1, facilities.getFacilities().size()); }
@Test public void testAddActivityFacility_addingTwice() { ActivityFacilities facilities = new ActivityFacilitiesImpl(); ActivityFacilitiesFactory factory = facilities.getFactory(); ActivityFacility facility1 = factory.createActivityFacility(Id.create(1, ActivityFacility.class), new Coord((double) 200, (double) 5000)); ActivityFacility facility2 = factory.createActivityFacility(Id.create(2, ActivityFacility.class), new Coord((double) 300, (double) 4000)); Assert.assertEquals(0, facilities.getFacilities().size()); facilities.addActivityFacility(facility1); facilities.addActivityFacility(facility2); Assert.assertEquals(2, facilities.getFacilities().size()); try { facilities.addActivityFacility(facility1); Assert.fail("Expected exception, got none."); } catch (IllegalArgumentException expected) {} Assert.assertEquals(2, facilities.getFacilities().size()); }