Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add parking tests and comments #3637

Merged
merged 11 commits into from
Dec 11, 2024
Prev Previous commit
Next Next commit
adapt parking tests and refactor FacilityBasedParkingManager
paulheinr committed Dec 11, 2024
commit f03dd91bd53abdd90ba4a5c5676eccd31d49ed39

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@ public ZoneParkingManager(Scenario scenario, String[] pathToZoneTxtFiles) {
/**
* reads in a tabular file that declares which link id's are in the monitored zone
* the part between the last '/' and the file type extension in the given path is considered to be the zone name
*
* @param pathToZoneFile
*/
void readZone(String pathToZoneFile) {
@@ -88,12 +89,12 @@ private void calculateTotalZoneParkCapacity(String zoneName) {
public boolean parkVehicleHere(Id<Vehicle> vehicleId, Id<Link> linkId, double time) {
if (parkVehicleAtLink(vehicleId, linkId, time)) {
for (String zone : this.linksOfZone.keySet()) {
if (linksOfZone.get(zone).contains(linkId) && this.facilitiesPerLink.containsKey(linkId)) {
if (linksOfZone.get(zone).contains(linkId) && this.parkingFacilitiesByLink.containsKey(linkId)) {
double newOcc = this.occupationOfZone.get(zone) + 1;
if (this.totalCapOfZone.get(zone) < newOcc) {
String s = "FacilityID: " + this.parkingLocations.get(vehicleId);
String t = "Occupied: " + this.occupation.get(this.parkingLocations.get(vehicleId));
String u = "Capacity: " + this.parkingFacilities.get(this.parkingLocations.get(vehicleId)).getActivityOptions().get(
String t = "Occupied: " + this.infoByFacilityId.get(this.parkingLocations.get(vehicleId)).occupation;
String u = "Capacity: " + this.parkingFacilitiesById.get(this.parkingLocations.get(vehicleId)).getActivityOptions().get(
ParkingUtils.ParkingStageInteractionType).getCapacity();
String v = "TotalCapacityOnLink: " + getNrOfAllParkingSpacesOnLink(linkId);
throw new RuntimeException("occupancy of zone " + zone + " is higher than 100%. Capacity= " + this.totalCapOfZone.get(
@@ -105,8 +106,9 @@ public boolean parkVehicleHere(Id<Vehicle> vehicleId, Id<Link> linkId, double ti
}
}
return true;
} else
} else {
return false;
}
}

@Override
@@ -116,9 +118,9 @@ public boolean unParkVehicleHere(Id<Vehicle> vehicleId, Id<Link> linkId, double
// we assume the person parks somewhere else
} else {
Id<ActivityFacility> fac = this.parkingLocations.remove(vehicleId);
this.occupation.get(fac).decrement();
this.infoByFacilityId.get(fac).occupation--;

Id<Link> parkingLink = this.parkingFacilities.get(fac).getLinkId();
Id<Link> parkingLink = this.parkingFacilitiesById.get(fac).getLinkId();
for (String zone : this.linksOfZone.keySet()) {
if (linksOfZone.get(zone).contains(parkingLink)) {
double newOcc = this.occupationOfZone.get(zone) - 1;
@@ -135,8 +137,9 @@ public boolean unParkVehicleHere(Id<Vehicle> vehicleId, Id<Link> linkId, double


public double getOccupancyRatioOfZone(String zone) {
if (!(this.linksOfZone.keySet().contains(zone)))
if (!(this.linksOfZone.keySet().contains(zone))) {
throw new RuntimeException("zone " + zone + " was not defined. thus, could'nt calculate occupancy ratio.");
}

return (this.occupationOfZone.get(zone) / this.totalCapOfZone.get(zone));
}
Original file line number Diff line number Diff line change
@@ -28,7 +28,9 @@ public class DistanceMemoryParkingSearchLogic implements ParkingSearchLogic {

private static final Logger logger = LogManager.getLogger(DistanceMemoryParkingSearchLogic.class);

private static final boolean doLogging = false;
// static {
// Configurator.setRootLevel(org.apache.logging.log4j.Level.DEBUG);
// }

private Network network;
private HashSet<Id<Link>> knownLinks;
@@ -48,9 +50,7 @@ public Id<Link> getNextLink(Id<Link> currentLinkId, Id<Link> destLinkId, Id<Vehi
int nrKnownLinks = 0;
Id<Link> nextLink = null;

if (doLogging) {
logger.info("number of outlinks of link " + currentLinkId + ": " + outLinks.size());
}
logger.debug("number of outlinks of link {}: {}", currentLinkId, outLinks.size());

for (Link outLink : outLinks) {
Id<Link> outLinkId = outLink.getId();
@@ -61,31 +61,22 @@ public Id<Link> getNextLink(Id<Link> currentLinkId, Id<Link> destLinkId, Id<Vehi
if (distToDest < shortestDistance) {
nextLink = outLinkId;
shortestDistance = distToDest;
if (doLogging) {
logger.info("currently chosen link: " + nextLink + " distToDest: " + shortestDistance);
}
logger.debug("currently chosen link: {} distToDest: {}", nextLink, shortestDistance);
} else if (distToDest == shortestDistance) {
String message = "link " + nextLink + " and link " + outLinkId + " both are " + distToDest + "m away from destination.";
if (MatsimRandom.getRandom().nextBoolean()) {
nextLink = outLinkId;
}
if (doLogging) {
logger.info(message + " link " + nextLink + " is chosen.");
}
logger.debug("{} link {} is chosen.", message, nextLink);
} else {
if (doLogging) {
logger.info("link " + outLinkId + " was not chosen because it is " + distToDest + "m away whereas shortest distance is " + shortestDistance);
}
logger.debug("link {} was not chosen because it is {}m away whereas shortest distance is {}", outLinkId, distToDest,
shortestDistance);
}
}
}
if (doLogging) {
logger.error("vehicle " + vehicleId + " knew " + nrKnownLinks + " out of " + outLinks.size() + " outlinks of link " + currentLinkId);
}
logger.debug("vehicle {} knew {} out of {} outlinks of link {}", vehicleId, nrKnownLinks, outLinks.size(), currentLinkId);
if (outLinks.size() == nrKnownLinks) {
if (doLogging) {
logger.error("vehicle " + vehicleId + " knows all outlinks of link " + currentLinkId);
}
logger.debug("vehicle {} knows all outlinks of link {}", vehicleId, currentLinkId);

//return random Link
int index = MatsimRandom.getRandom().nextInt(outLinks.size());
@@ -97,12 +88,11 @@ public Id<Link> getNextLink(Id<Link> currentLinkId, Id<Link> destLinkId, Id<Vehi
}

if (nextLink == null) {
throw new RuntimeException("the next Link Id for vehicle " + vehicleId + " on current link " + currentLinkId + " couldn't be calculated" +
throw new RuntimeException("the next Link Id for vehicle " + vehicleId + " on current link " + currentLinkId + " couldn't be " +
"calculated" +
".");
}
if (doLogging) {
logger.error("vehicle " + vehicleId + " takes link " + nextLink + " as next link");
}
logger.debug("vehicle {} takes link {} as next link", vehicleId, nextLink);
this.knownLinks.add(nextLink);
return nextLink;
}
Original file line number Diff line number Diff line change
@@ -69,7 +69,7 @@ public NearestParkingSpotSearchLogic(Network network, ParkingRouter parkingRoute
this.parkingManager = parkingManager;
this.canReserveParkingSlot = canReserveParkingSlot;
this.canCheckParkingCapacitiesInAdvanced = canCheckParkingCapacitiesInAdvanced;
activityFacilities = ((FacilityBasedParkingManager) parkingManager).getParkingFacilities();
activityFacilities = ((FacilityBasedParkingManager) parkingManager).getParkingFacilitiesById();
currentLinkIdx = 0;
triedParking = new HashSet<>();
nextLink = null;
@@ -83,26 +83,30 @@ public Id<Link> getNextLink(Id<Link> currentLinkId, Id<Link> baseLinkId, Id<Vehi
double maxParkingDuration, double nextPickupTime, boolean passangerInteractionAtParkingFacilityAtEndOfLeg,
Coord coordOfAttraction) {
double maxAdditionalDistanceToAttraction = Double.MAX_VALUE;
// if a passenger interaction take place at a facility the walking distance to the attraction should be not extended by the value of maxAdditionalDistanceToAttraction
// if a passenger interaction take place at a facility the walking distance to the attraction should be not extended by the value of
// maxAdditionalDistanceToAttraction
if (passangerInteractionAtParkingFacilityAtEndOfLeg) {
if (Double.isNaN(distanceFromBaseToAttraction))
if (Double.isNaN(distanceFromBaseToAttraction)) {
findDistanceBetweenBaseLinkAndAttraction(baseLinkId, coordOfAttraction);
}
maxAdditionalDistanceToAttraction = 200.;
}
if (actualRoute == null) {
actualRoute = findRouteToNearestParkingFacility(baseLinkId, currentLinkId, canCheckParkingCapacitiesInAdvanced, now,
maxParkingDuration,
passangerInteractionAtParkingFacilityAtEndOfLeg, maxAdditionalDistanceToAttraction, coordOfAttraction);
if (!passangerInteractionAtParkingFacilityAtEndOfLeg)
if (!passangerInteractionAtParkingFacilityAtEndOfLeg) {
checkIfDrivingToNextParkingLocationIsPossible(currentLinkId, baseLinkId, now, nextPickupTime);
}
triedParking.clear();
} else if (currentLinkId.equals(actualRoute.getEndLinkId()) && !skipParkingActivity) {
currentLinkIdx = 0;
actualRoute = findRouteToNearestParkingFacility(baseLinkId, currentLinkId, canCheckParkingCapacitiesInAdvanced, now,
maxParkingDuration,
passangerInteractionAtParkingFacilityAtEndOfLeg, maxAdditionalDistanceToAttraction, coordOfAttraction);
if (!passangerInteractionAtParkingFacilityAtEndOfLeg)
if (!passangerInteractionAtParkingFacilityAtEndOfLeg) {
checkIfDrivingToNextParkingLocationIsPossible(currentLinkId, baseLinkId, now, nextPickupTime);
}
}
if (actualRoute != null) {
actualRoute.setVehicleId(vehicleId);
@@ -130,14 +134,16 @@ public Id<Link> getNextLink(Id<Link> currentLinkId, Id<Link> baseLinkId, Id<Vehi
*/
private void findDistanceBetweenBaseLinkAndAttraction(Id<Link> baseLinkId, Coord coordOfAttraction) {
for (ActivityFacility activityFacility : activityFacilities.values()) {
if (activityFacility.getLinkId().equals(baseLinkId))
if (activityFacility.getLinkId().equals(baseLinkId)) {
distanceFromBaseToAttraction = NetworkUtils.getEuclideanDistance(activityFacility.getCoord(),
coordOfAttraction);
}
}
}

/**
* Checks if it is possible to drive to the new parking facility and to drive back to the base without extending the startTime of the following activity.
* Checks if it is possible to drive to the new parking facility and to drive back to the base without extending the startTime of the following
* activity.
* If the resulting parking time at the new facility is less then 5 minutes the vehicle will drive directly to the next activity location.
*
* @param currentLinkId
@@ -148,17 +154,20 @@ private void findDistanceBetweenBaseLinkAndAttraction(Id<Link> baseLinkId, Coord
private void checkIfDrivingToNextParkingLocationIsPossible(Id<Link> currentLinkId, Id<Link> baseLinkId, double now, double nextPickupTime) {
double expectedTravelTimeFromParkingToBase;

if (actualRoute == null)
if (actualRoute == null) {
expectedTravelTimeFromParkingToBase = this.parkingRouter.getRouteFromParkingToDestination(baseLinkId, now,
currentLinkId).getTravelTime().seconds(); //TODO better: use the nextLink for the check
else
} else {
expectedTravelTimeFromParkingToBase = this.parkingRouter.getRouteFromParkingToDestination(baseLinkId, now,
actualRoute.getEndLinkId()).getTravelTime().seconds();
}
double minimumExpectedParkingDuration = 5 * 60;
double travelTimeNextPart;
if (actualRoute == null)
if (actualRoute == null) {
travelTimeNextPart = 0.;
else travelTimeNextPart = actualRoute.getTravelTime().seconds();
} else {
travelTimeNextPart = actualRoute.getTravelTime().seconds();
}

if ((nextPickupTime - now - travelTimeNextPart - expectedTravelTimeFromParkingToBase) < minimumExpectedParkingDuration) {
actualRoute = this.parkingRouter.getRouteFromParkingToDestination(baseLinkId, now,
@@ -168,8 +177,9 @@ private void checkIfDrivingToNextParkingLocationIsPossible(Id<Link> currentLinkI
}

public Id<Link> getNextParkingLocation() {
if (actualRoute == null)
if (actualRoute == null) {
return null;
}
return actualRoute.getEndLinkId();
}

@@ -208,45 +218,54 @@ private NetworkRoute findRouteToNearestParkingFacility(Id<Link> baseLinkId, Id<L
NetworkRoute selectedRoute = null;
double minTravelTime = Double.MAX_VALUE;
for (ActivityFacility activityFacility : activityFacilities.values()) {
if (triedParking.size() == activityFacilities.size())
if (triedParking.size() == activityFacilities.size()) {
triedParking.clear();
if (!passangerInteractionAtParkingFacilityAtEndOfLeg && triedParking.contains(activityFacility.getId()))
}
if (!passangerInteractionAtParkingFacilityAtEndOfLeg && triedParking.contains(activityFacility.getId())) {
continue;
}
if (canCheckParkingCapacitiesInAdvanced) {
if (((FacilityBasedParkingManager) parkingManager).getNrOfFreeParkingSpacesOnLink(activityFacility.getLinkId()) < 1)
if (((FacilityBasedParkingManager) parkingManager).getNrOfFreeParkingSpacesOnLink(activityFacility.getLinkId()) < 1) {
continue;
}
}
double latestEndOfParking = now + maxParkingDuration;
// checks if parking slot is now open and still open when the parking will finish; if no openingTime is set, we assume that it is open the hole day
// checks if parking slot is now open and still open when the parking will finish; if no openingTime is set, we assume that it is open
// the hole day
ActivityOption parkingOptions = activityFacility.getActivityOptions().get("parking");
if (!parkingOptions.getOpeningTimes().isEmpty()) {
if (parkingOptions.getOpeningTimes().first().getStartTime() > now && parkingOptions.getOpeningTimes().first().getEndTime() < latestEndOfParking)
if (parkingOptions.getOpeningTimes().first().getStartTime() > now && parkingOptions.getOpeningTimes().first()
.getEndTime() < latestEndOfParking) {
continue;
}
}
//check if approx. the max parking time at facility will not exceed, assumption: "parking duration - 30 minutes" is parking Time.
if (activityFacility.getAttributes().getAsMap().containsKey("maxParkingDurationInHours")) { //TODO vielleicht etwas sparsamer machen
double maxParkingDurationAtFacility = 3600 * (double) activityFacility.getAttributes().getAsMap().get("maxParkingDurationInHours");
if (maxParkingDuration - 30*60 > maxParkingDurationAtFacility)
if (maxParkingDuration - 30 * 60 > maxParkingDurationAtFacility) {
continue;
}
}

//TODO beschreiben was passiert
if (passangerInteractionAtParkingFacilityAtEndOfLeg) {
double distanceBetweenThisParkingFacilityAndTheAttraction = NetworkUtils.getEuclideanDistance(activityFacility.getCoord(),
coordOfAttraction);
if (distanceBetweenThisParkingFacilityAndTheAttraction - distanceFromBaseToAttraction > maxDistanceFromBase)
if (distanceBetweenThisParkingFacilityAndTheAttraction - distanceFromBaseToAttraction > maxDistanceFromBase) {
continue;
}
}
// create Euclidean distances to the parking activities to find routes only to the nearest facilities in the next step
Coord coordBaseLink = network.getLinks().get(baseLinkId).getCoord();
Coord coordCurrentLink = network.getLinks().get(currentLinkId).getCoord();

double distanceBaseAndFacility = NetworkUtils.getEuclideanDistance(activityFacility.getCoord(), coordBaseLink);
double distanceCurrentAndFacility;
if (passangerInteractionAtParkingFacilityAtEndOfLeg)
if (passangerInteractionAtParkingFacilityAtEndOfLeg) {
distanceCurrentAndFacility = 0.;
else
} else {
distanceCurrentAndFacility = NetworkUtils.getEuclideanDistance(activityFacility.getCoord(), coordCurrentLink);
}

double distanceForParking = distanceBaseAndFacility + distanceCurrentAndFacility;
euclideanDistanceToParkingFacilities.put(distanceForParking, activityFacility);
@@ -261,19 +280,23 @@ private NetworkRoute findRouteToNearestParkingFacility(Id<Link> baseLinkId, Id<L
double expectedTravelTimeFromParkingToBase = getExpectedTravelTime(baseLinkId, now, activityFacility.getLinkId());
double expectedTravelTimeFromCurrentToParking = getExpectedTravelTime(activityFacility.getLinkId(), now, currentLinkId);
double expectedParkingTime = maxParkingDuration - expectedTravelTimeFromCurrentToParking - expectedTravelTimeFromParkingToBase;
if (expectedParkingTime > maxParkingDurationAtFacility)
if (expectedParkingTime > maxParkingDurationAtFacility) {
continue;
}
}
counter++;
if (passangerInteractionAtParkingFacilityAtEndOfLeg && euclideanDistanceToParkingFacilities.size() > triedParking.size())
if (triedParking.contains(activityFacility.getId()))
if (passangerInteractionAtParkingFacilityAtEndOfLeg && euclideanDistanceToParkingFacilities.size() > triedParking.size()) {
if (triedParking.contains(activityFacility.getId())) {
continue;
if (passangerInteractionAtParkingFacilityAtEndOfLeg && euclideanDistanceToParkingFacilities.size() == triedParking.size())
}
}
if (passangerInteractionAtParkingFacilityAtEndOfLeg && euclideanDistanceToParkingFacilities.size() == triedParking.size()) {
triedParking.clear();
}
NetworkRoute possibleRoute = this.parkingRouter.getRouteFromParkingToDestination(activityFacility.getLinkId(), now,
currentLinkId);
// reason is that we expect that the driver will always take the nearest possible getOff point to reduce the walk distance for the guests
if (passangerInteractionAtParkingFacilityAtEndOfLeg){
if (passangerInteractionAtParkingFacilityAtEndOfLeg) {
selectedRoute = possibleRoute;
nearstActivityFacility = activityFacility;
break;
@@ -292,8 +315,9 @@ private NetworkRoute findRouteToNearestParkingFacility(Id<Link> baseLinkId, Id<L
minTravelTime = calculatedTravelTime;
nearstActivityFacility = activityFacility;
}
if (counter == numberOfCheckedRoutes)
if (counter == numberOfCheckedRoutes) {
break;
}
}

if (selectedRoute == null) {
141 changes: 141 additions & 0 deletions contribs/parking/src/main/resources/parkingsearch/population10.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE population SYSTEM "http://www.matsim.org/files/dtd/population_v5.dtd">

<population>

<!-- ====================================================================== -->

<person id="0">
<plan selected="yes">
<act type="home" link="114" end_time="07:00:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:00:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<!-- ====================================================================== -->

<person id="1">
<plan selected="yes">
<act type="home" link="114" end_time="07:01:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:01:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="2">
<plan selected="yes">
<act type="home" link="114" end_time="07:02:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:02:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="3">
<plan selected="yes">
<act type="home" link="114" end_time="07:03:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:03:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="4">
<plan selected="yes">
<act type="home" link="114" end_time="07:04:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:04:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="5">
<plan selected="yes">
<act type="home" link="114" end_time="07:05:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:05:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="6">
<plan selected="yes">
<act type="home" link="114" end_time="07:06:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:06:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>


<person id="7">
<plan selected="yes">
<act type="home" link="114" end_time="07:07:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:07:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="8">
<plan selected="yes">
<act type="home" link="114" end_time="07:08:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:08:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

<person id="9">
<plan selected="yes">
<act type="home" link="114" end_time="07:09:00"/>
<leg mode="car">
</leg>
<act type="work" link="349" end_time="08:09:00"/>
<leg mode="car">
</leg>
<act type="home" link="114"/>
</plan>

</person>

</population>
Original file line number Diff line number Diff line change
@@ -33,6 +33,14 @@ void testParking1() {
validate();
}

@Test
void testParking10() {
Config config = getConfig(getParkingConfig());
config.plans().setInputFile("population10.xml");
run(config);
validate();
}

@Test
void testParking100() {
Config config = getConfig(getParkingConfig());
@@ -62,6 +70,26 @@ private void run(Config config) {
}

private void validate() {
comparePopulation();
compareEvents();
compareCsv("0.parkingStats.csv");
compareCsv("0.parkingStatsPerTimeSteps.csv");
}

private void compareCsv(String fileName) {
String parkingStatsOut = utils.getOutputDirectory() + "/ITERS/it.0/" + fileName;
String parkingStatsIn = utils.getInputDirectory() + "/" + fileName;
MatsimTestUtils.assertEqualFilesLineByLine(parkingStatsIn, parkingStatsOut);
}

private void compareEvents() {
String expectedEventsFile = utils.getInputDirectory() + "/output_events.xml.gz";
String actualEventsFile = utils.getOutputDirectory() + "/output_events.xml.gz";
ComparisonResult result = EventsUtils.compareEventsFiles(expectedEventsFile, actualEventsFile);
Assertions.assertEquals(ComparisonResult.FILES_ARE_EQUAL, result);
}

private void comparePopulation() {
Population expected = PopulationUtils.createPopulation(ConfigUtils.createConfig());
PopulationUtils.readPopulation(expected, utils.getInputDirectory() + "/output_plans.xml.gz");

@@ -73,10 +101,5 @@ private void validate() {
double scoreCurrent = actual.getPersons().get(personId).getSelectedPlan().getScore();
Assertions.assertEquals(scoreReference, scoreCurrent, MatsimTestUtils.EPSILON, "Scores of person=" + personId + " are different");
}

String expectedEventsFile = utils.getInputDirectory() + "/output_events.xml.gz";
String actualEventsFile = utils.getOutputDirectory() + "/output_events.xml.gz";
ComparisonResult result = EventsUtils.compareEventsFiles(expectedEventsFile, actualEventsFile);
Assertions.assertEquals(ComparisonResult.FILES_ARE_EQUAL, result);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;1;1;1;0;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;1;1;0;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;5;10;5;5;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;10;5;5;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;5;104;5;99;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;26;10;16;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;107;10;97;0;0;0
314;-300.0;-810.0;314_curbside;5.0;5;30;5;25;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;3
09:15;0;0;1
09:30;0;0;2
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;1;1;1;0;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;1;1;0;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;5;10;5;5;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;5;5;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;10;5;5;0;0;0
314;-300.0;-810.0;314_curbside;5.0;5;5;5;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;5;100;5;95;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;90;10;80;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;100;10;90;0;0;0
314;-300.0;-810.0;314_curbside;5.0;5;95;5;90;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;7
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;0;0;0;0;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;0;0;0;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;0;0;0;0;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;0;0;0;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;0;0;0;0;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;0;0;0;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;1;1;1;0;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;1;1;0;0;0;0
314;-300.0;-810.0;314_curbside;5.0;0;0;0;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;5;10;5;5;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;0;0;0;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;10;5;5;0;0;0
314;-300.0;-810.0;314_curbside;5.0;1;1;1;0;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;0
09:15;0;0;0
09:30;0;0;0
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linkId;X;Y;parkingFacility;capacity;EndOccupation;reservationsRequests;numberOfParkedVehicles;rejectedParkingRequest;numberOfWaitingActivities;numberOfStaysFromGetOffUntilGetIn;numberOfParkingBeforeGetIn
114;-300.0;-790.0;114_curbside;5.0;5;106;5;101;0;0;0
149;300.0;-190.0;149_curbside;5.0;0;24;10;14;0;0;0
349;300.0;-210.0;349_curbside;5.0;0;102;10;92;0;0;0
314;-300.0;-810.0;314_curbside;5.0;5;22;5;17;0;0;0
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
time;rejectedParkingRequest;foundParking;unpark
09:00;0;0;2
09:15;0;0;3
09:30;0;0;2
09:45;0;0;0
10:00;0;0;0
10:15;0;0;0
10:30;0;0;0
10:45;0;0;0
11:00;0;0;0
11:15;0;0;0
11:30;0;0;0
11:45;0;0;0
12:00;0;0;0
12:15;0;0;0
12:30;0;0;0
12:45;0;0;0
13:00;0;0;0
13:15;0;0;0
13:30;0;0;0
13:45;0;0;0
14:00;0;0;0
14:15;0;0;0
14:30;0;0;0
14:45;0;0;0
15:00;0;0;0
15:15;0;0;0
15:30;0;0;0
15:45;0;0;0
16:00;0;0;0
16:15;0;0;0
16:30;0;0;0
16:45;0;0;0
17:00;0;0;0
17:15;0;0;0
17:30;0;0;0
17:45;0;0;0
18:00;0;0;0
18:15;0;0;0
18:30;0;0;0
18:45;0;0;0
19:00;0;0;0
19:15;0;0;0
19:30;0;0;0
19:45;0;0;0
20:00;0;0;0
20:15;0;0;0
20:30;0;0;0
20:45;0;0;0
21:00;0;0;0
21:15;0;0;0
21:30;0;0;0
21:45;0;0;0
22:00;0;0;0
22:15;0;0;0
22:30;0;0;0
22:45;0;0;0
23:00;0;0;0
23:15;0;0;0
23:30;0;0;0
23:45;0;0;0
24:00;0;0;0