FacilitiesReaderMatsimV1( final String externalInputCRS, final String targetCRS, final ActivityFacilities facilities) { this.externalInputCRS = externalInputCRS; this.targetCRS = targetCRS; this.facilities = facilities; this.factory = this.facilities.getFactory(); if (externalInputCRS != null && targetCRS != null) { this.coordinateTransformation = TransformationFactory.getCoordinateTransformation(externalInputCRS, targetCRS); ProjectionUtils.putCRS(this.facilities, targetCRS); } }
public static final ActivityFacilities createFacilityForEachLink(String facilityContainerName, Network network) { ActivityFacilities facilities = FacilitiesUtils.createActivityFacilities(facilityContainerName); ActivityFacilitiesFactory aff = facilities.getFactory(); for (Link link : network.getLinks().values()) { ActivityFacility facility = aff.createActivityFacility(Id.create(link.getId(),ActivityFacility.class), link.getCoord(), link.getId()); facilities.addActivityFacility(facility); } return facilities ; }
private void handleActivities(final Population population) { int idxCounter = 0; ActivityFacilitiesFactory factory = this.facilities.getFactory(); Map<Id<Link>, ActivityFacility> facilitiesPerLinkId = new HashMap<>(); Map<Coord, ActivityFacility> facilitiesPerCoordinate = new HashMap<>();
public static final ActivityFacilities createFacilityFromBuildingShapefile(String shapeFileName, String identifierCaption, String numberOfHouseholdsCaption) { ShapeFileReader shapeFileReader = new ShapeFileReader(); Collection<SimpleFeature> features = shapeFileReader.readFileAndInitialize(shapeFileName); ActivityFacilities facilities = FacilitiesUtils.createActivityFacilities("DensitiyFacilities"); ActivityFacilitiesFactory aff = facilities.getFactory(); for (SimpleFeature feature : features) { String featureId = (String) feature.getAttribute(identifierCaption); Integer numberOfHouseholds = Integer.parseInt((String) feature.getAttribute(numberOfHouseholdsCaption)); Geometry geometry = (Geometry) feature.getDefaultGeometry(); Coord coord = CoordUtils.createCoord(geometry.getCentroid().getX(), geometry.getCentroid().getY()); for (int i = 0; i < numberOfHouseholds; i++) { ActivityFacility facility = aff.createActivityFacility(Id.create(featureId + "_" + i, ActivityFacility.class), coord); facilities.addActivityFacility(facility); } } return facilities ; }
@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()); }
/** * 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_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))); }
@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()); }
ActivityFacilities facilities = scenario.getActivityFacilities(); ActivityFacilitiesFactory factory = facilities.getFactory();
ActivityFacilities facilities = scenario.getActivityFacilities(); ActivityFacilitiesFactory factory = facilities.getFactory();
@Test public void testWriteReadV1_withAttributes() { Scenario scenario = ScenarioUtils.createScenario(ConfigUtils.createConfig()); ActivityFacilities facilities = scenario.getActivityFacilities(); ActivityFacilitiesFactory factory = facilities.getFactory(); ActivityFacility fac1 = factory.createActivityFacility(Id.create("1", ActivityFacility.class), new Coord(10.0, 15.0)); fac1.getAttributes().putAttribute("size_m2", 100); facilities.addActivityFacility(fac1); ActivityFacility fac2 = factory.createActivityFacility(Id.create("2", ActivityFacility.class), new Coord(20.0, 25.0)); fac2.getAttributes().putAttribute("size_m2", 500); facilities.addActivityFacility(fac2); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); new FacilitiesWriter(facilities).write(outStream); /* ------ */ ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray()); ActivityFacilities facilities2 = FacilitiesUtils.createActivityFacilities(); new MatsimFacilitiesReader(null, null, facilities2).parse(inStream); Assert.assertEquals(2, facilities2.getFacilities().size()); ActivityFacility fac1b = facilities2.getFacilities().get(Id.create("1", ActivityFacility.class)); Assert.assertEquals(0, fac1b.getActivityOptions().size()); Assert.assertEquals(1, fac1b.getAttributes().size()); Assert.assertEquals(100, fac1b.getAttributes().getAttribute("size_m2")); ActivityFacility fac2b = facilities2.getFacilities().get(Id.create("2", ActivityFacility.class)); Assert.assertEquals(0, fac2b.getActivityOptions().size()); Assert.assertEquals(1, fac2b.getAttributes().size()); Assert.assertEquals(500, fac2b.getAttributes().getAttribute("size_m2")); }
Scenario scenario = ScenarioUtils.createScenario(ConfigUtils.createConfig()); ActivityFacilities facilities = scenario.getActivityFacilities(); ActivityFacilitiesFactory factory = facilities.getFactory();
@Override protected void setUp() throws Exception { super.setUp(); final Config config = ConfigUtils.createConfig(); final Scenario scenario = ScenarioUtils.createScenario( config ); this.facilities = scenario.getActivityFacilities() ; // create facilities, activities in it and open times final ActivityFacilitiesFactory facilitiesFactory = this.facilities.getFactory(); Coord defaultCoord = new Coord(0.0, 0.0); ActivityFacility testFacility = facilitiesFactory.createActivityFacility(Id.create(0, ActivityFacility.class), defaultCoord) ; this.facilities.addActivityFacility(testFacility); ActivityOption ao = facilitiesFactory.createActivityOption("shop") ; testFacility.addActivityOption(ao); ao.addOpeningTime(new OpeningTimeImpl(6.0 * 3600, 11.0 * 3600)); ao.addOpeningTime(new OpeningTimeImpl(13.0 * 3600, 19.0 * 3600)); // here, we don't test the scoring function itself, but just the method to retrieve opening times // we don't really need persons and plans, they're just used to initialize the ScoringFunction object final PopulationFactory pf = scenario.getPopulation().getFactory(); this.person = pf.createPerson(Id.create(1, Person.class)); Plan plan = pf.createPlan() ; this.person.addPlan(plan); Activity act = pf.createActivityFromCoord("shop", defaultCoord ) ; plan.addActivity(act); act.setFacilityId(testFacility.getId()); act.setStartTime(8.0 * 3600); act.setEndTime(16.0 * 3600); }
this.fromFacility = facilities.getFactory().createActivityFacility(Id.create("fromFacility", ActivityFacility.class), new Coord(0, 1102)); this.toFacility = facilities.getFactory().createActivityFacility(Id.create("toFacility", ActivityFacility.class), new Coord(50000, 898)); facilities.addActivityFacility(this.fromFacility); facilities.addActivityFacility(this.toFacility);
ActivityFacilitiesFactory factory = facilities.getFactory(); if (facilitiesWithCoordOnly) { facilities.addActivityFacility(factory.createActivityFacility(Id.create("1", ActivityFacility.class),