@Override public Id<Link> getLinkId() { return this.activityFacility.getLinkId(); }
private final void writeF2LFile(final ActivityFacilities facilities, final String file) { log.info(" writing f<-->l connections to "+CONFIG_F2L_OUTPUTF2LFile+"="+file); try (BufferedWriter bw = IOUtils.getBufferedWriter(file)) { bw.write("fid\tlid\n"); for (ActivityFacility f : facilities.getFacilities().values()) { bw.write(f.getId().toString()+"\t"+f.getLinkId().toString()+"\n"); } } catch (IOException e) { throw new RuntimeException("Error while writing given outputF2LFile='"+file+"'.", e); } log.info(" done. (writing f<-->l connections to "+CONFIG_F2L_OUTPUTF2LFile+"="+file+")"); }
private void setLocation(Activity act2, Id<ActivityFacility> facilityId) { // ActivityImpl act = (ActivityImpl) act2; // act.setFacilityId(facilityId); PlanUtils.setFacilityId(act2, facilityId); ActivityFacility facility = this.facilities.getFacilities().get(facilityId); Id<Link> linkId = null; // try to get linkId from facility, else get it from coords. other options not allowed! if (facility.getLinkId() != null) { linkId = facility.getLinkId(); } else { linkId = this.nearestLinks.get(facilityId); } // act.setLinkId(linkId); // act.setCoord(facility.getCoord()); PlanUtils.setLinkId(act2, linkId); PlanUtils.setCoord(act2, facility.getCoord()); }
public static Id<Link> decideOnLinkIdForActivity( Activity act, Scenario sc ) { if ( act.getFacilityId() !=null ) { final ActivityFacility facility = sc.getActivityFacilities().getFacilities().get( act.getFacilityId() );; if ( facility==null ) { throw new RuntimeException("facility ID given but not in facilities container") ; } Gbl.assertNotNull( facility.getLinkId() ); return facility.getLinkId(); } Gbl.assertNotNull( act.getLinkId() ); return act.getLinkId() ; } public static Coord decideOnCoordForActivity( Activity act, Scenario sc ) {
if (activityFacility.getCoord()==null && activityFacility.getLinkId()== null) { throw new RuntimeException("Neither coordinate nor linkId are available for facility id "+ activityFacility.getId()+". Aborting...."); } else if (activityFacility.getLinkId()==null){ if (linkNullWarn==0) { LOGGER.warn("There is no link for at least a facility. Assigning links for such facilities from coords.");
public BestReplyDestinationChoice(Provider<TripRouter> tripRouterProvider, DestinationChoiceContext lcContext, ObjectAttributes personsMaxDCScoreUnscaled, ScoringFunctionFactory scoringFunctionFactory, Map<String, TravelTime> travelTimes, Map<String, TravelDisutilityFactory> travelDisutilities) { super(lcContext.getScenario().getConfig().global()); this.tripRouterProvider = tripRouterProvider; this.scoringFunctionFactory = scoringFunctionFactory; this.travelTimes = travelTimes; this.travelDisutilities = travelDisutilities; this.dccg = (DestinationChoiceConfigGroup) lcContext.getScenario().getConfig().getModule(DestinationChoiceConfigGroup.GROUP_NAME); if (!DestinationChoiceConfigGroup.Algotype.bestResponse.equals(this.dccg.getAlgorithm())) { throw new RuntimeException("wrong class for selected location choice algorithm type; aborting ...") ; } this.lcContext = lcContext; this.scenario = lcContext.getScenario(); this.personsMaxEpsUnscaled = personsMaxDCScoreUnscaled; this.forwardMultiNodeDijsktaFactory = new FastMultiNodeDijkstraFactory(true); this.backwardMultiNodeDijsktaFactory = new BackwardFastMultiNodeDijkstraFactory(true); // create cache which is used in ChoiceSet // instead of just the nearest link we probably should check whether the facility is attached to a link? cdobler, oct'14 this.nearestLinks = new HashMap<>(); for (ActivityFacility facility : this.scenario.getActivityFacilities().getFacilities().values()) { if (facility.getLinkId() != null) this.nearestLinks.put(facility.getId(), facility.getLinkId()); else this.nearestLinks.put(facility.getId(), NetworkUtils.getNearestLink(scenario.getNetwork(), facility.getCoord()).getId()); } initLocal(); }
private void mutateLocations( final String type, final List<Activity> activitiesToMutate) { final Coord coordBarycenter = calcBarycenterCoord( activitiesToMutate ); final double angle = random.nextDouble() * Math.PI; final double distance = nextNormalDouble() * config.getStandardDeviation(); final ActivityFacility fac = getFacility( type, coordBarycenter, angle, distance ); for ( Activity act : activitiesToMutate ) { ((Activity) act).setFacilityId( fac.getId() ); ((Activity) act).setLinkId( fac.getLinkId() ); ((Activity) act).setCoord( fac.getCoord() ); } }
private static void changeLocation( final Collection<Subchain> subchains, final ActivityFacility facility) { for ( Subchain subchain : subchains ) { ((Activity) subchain.getToMove()).setFacilityId( facility.getId() ); ((Activity) subchain.getToMove()).setLinkId( facility.getLinkId() ); ((Activity) subchain.getToMove()).setCoord( facility.getCoord() ); } }
Link link = scenario.getNetwork().getLinks().get(facility.getLinkId());
((Activity) activity).setLinkId(newFacility.getLinkId()); ((Activity) activity).setCoord(newFacility.getCoord()); relocateCounter.incCounter();
Assert.assertEquals("ab", ffs.get(Id.create("0", ActivityFacility.class)).getLinkId().toString()); // home of agent 1 Assert.assertEquals("bc", ffs.get(Id.create("1", ActivityFacility.class)).getLinkId().toString()); // work of agent 1-3 Assert.assertEquals("ab", ffs.get(Id.create("2", ActivityFacility.class)).getLinkId().toString()); // home of agent 2 Assert.assertEquals("ab", ffs.get(Id.create("3", ActivityFacility.class)).getLinkId().toString()); // home of agent 3 Assert.assertEquals("bc", ffs.get(Id.create("4", ActivityFacility.class)).getLinkId().toString()); // home of agent 4 Assert.assertEquals("ca", ffs.get(Id.create("5", ActivityFacility.class)).getLinkId().toString()); // work of agent 4-7 Assert.assertEquals("bc", ffs.get(Id.create("6", ActivityFacility.class)).getLinkId().toString()); // home of agent 5 Assert.assertEquals("bc", ffs.get(Id.create("7", ActivityFacility.class)).getLinkId().toString()); // home of agent 6 Assert.assertEquals("bc", ffs.get(Id.create("8", ActivityFacility.class)).getLinkId().toString()); // home of agent 7 Assert.assertEquals("ca", ffs.get(Id.create("9", ActivityFacility.class)).getLinkId().toString()); // home of agent 8 Assert.assertEquals("ab", ffs.get(Id.create("10", ActivityFacility.class)).getLinkId().toString()); // work of agent 8-10 Assert.assertEquals("ca", ffs.get(Id.create("11", ActivityFacility.class)).getLinkId().toString()); // home of agent 9 Assert.assertEquals("ca", ffs.get(Id.create("12", ActivityFacility.class)).getLinkId().toString()); // home of agent 10
|| this.activityFacilities.getFacilities().isEmpty() || this.activityFacilities.getFacilities().get(act.getFacilityId()) == null || this.activityFacilities.getFacilities().get(act.getFacilityId()).getLinkId() == null) ) { needsXY2Links = true;
for (Id<ActivityFacility> destinationId : this.destinations) { ActivityFacility destinationFacility = this.scenario.getActivityFacilities().getFacilities().get(destinationId); Id<Link> linkId = destinationFacility.getLinkId(); Link destinationLink; if (linkId != null) {
case fromFile: for (ActivityFacility af : activityFacilities.getFacilities().values()){ Assert.assertNotNull(af.getLinkId()); if (facilitiesWithCoordOnly) { for (ActivityFacility af : activityFacilities.getFacilities().values()){ Assert.assertNotNull(af.getLinkId()); Assert.assertEquals("wrong number of facilities", 4, getFacilities(scenario.getConfig().controler().getOutputDirectory()).getFacilities().size(), MatsimTestUtils.EPSILON); for (ActivityFacility af : activityFacilities.getFacilities().values()){ Assert.assertNotNull(af.getLinkId()); for (ActivityFacility af : activityFacilities.getFacilities().values()){ Assert.assertNotNull(af.getCoord()); Assert.assertNotNull(af.getLinkId());
@Test public void testRun_onePerLink_assignLinks() { Fixture f = new Fixture(); FacilitiesFromPopulation generator = new FacilitiesFromPopulation(f.scenario.getActivityFacilities()); generator.setOneFacilityPerLink(true); generator.setAssignLinksToFacilitiesIfMissing(true, f.scenario.getNetwork()); generator.run(f.scenario.getPopulation()); Assert.assertEquals(3, f.scenario.getActivityFacilities().getFacilities().size()); Assert.assertEquals("bc", f.scenario.getActivityFacilities().getFacilities().get(Id.create("bc", ActivityFacility.class)).getLinkId().toString()); Assert.assertEquals("ca", f.scenario.getActivityFacilities().getFacilities().get(Id.create("ca", ActivityFacility.class)).getLinkId().toString()); Assert.assertEquals("ab", f.scenario.getActivityFacilities().getFacilities().get(Id.create("ab", ActivityFacility.class)).getLinkId().toString()); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("1", Person.class)).getSelectedPlan(), "ab", "bc", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("2", Person.class)).getSelectedPlan(), "ab", "bc", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("3", Person.class)).getSelectedPlan(), "ab", "bc", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("4", Person.class)).getSelectedPlan(), "bc", "ca", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("5", Person.class)).getSelectedPlan(), "bc", "ca", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("6", Person.class)).getSelectedPlan(), "bc", "ca", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("7", Person.class)).getSelectedPlan(), "bc", "ca", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("8", Person.class)).getSelectedPlan(), "ca", "ab", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("9", Person.class)).getSelectedPlan(), "ca", "ab", true); assertPlan(f.scenario.getPopulation().getPersons().get(Id.create("0", Person.class)).getSelectedPlan(), "ca", "ab", true); }
Assert.assertEquals(Id.create("Abc", Link.class), fac1b.getLinkId()); Assert.assertEquals(1000, fac1b.getAttributes().getAttribute("population")); Assert.assertEquals(Id.create("Def", Link.class), fac2b.getLinkId()); Assert.assertEquals(1200, fac2b.getAttributes().getAttribute("population")); Assert.assertNull(fac3b.getLinkId()); Assert.assertEquals("pepsiCo", fac3b.getAttributes().getAttribute("owner"));