21 package org.matsim.analysis.linkpaxvolumes;
23 import org.apache.commons.csv.CSVFormat;
24 import org.apache.commons.csv.CSVPrinter;
31 import java.io.IOException;
32 import java.util.SortedSet;
33 import java.util.TreeSet;
44 this.columnSeparator = sep;
45 this.numberOfHours = linkPaxVolumesAnalysis.getNumberOfHours();
50 SortedSet<Id<Link>> linkIdsSorted =
new TreeSet(network.
getLinks().keySet());
52 String[] header = {
"link",
"vehicles",
"passengersInclDriver"};
55 CSVFormat.DEFAULT.withDelimiter(columnSeparator.charAt(0)).withHeader(header))
57 for (
Id<Link> linkId : linkIdsSorted) {
58 printer.print(linkId);
63 }
catch (IOException e) {
70 SortedSet<Id<Link>> linkIdsSorted =
new TreeSet(network.
getLinks().keySet());
71 SortedSet<String> networkModesSorted =
new TreeSet(linkPaxVolumesAnalysis.getNetworkModes());
73 String[] header = {
"link",
"networkMode",
"hour",
"vehicles",
"passengersInclDriver"};
76 CSVFormat.DEFAULT.withDelimiter(columnSeparator.charAt(0)).withHeader(header))
78 for (
Id<Link> linkId : linkIdsSorted) {
79 for (String networkMode : networkModesSorted) {
81 getVehicleVolumesForLinkPerNetworkMode(linkId, networkMode));
83 getPaxVolumesForLinkPerNetworkMode(linkId, networkMode));
85 printer.print(linkId);
86 printer.print(networkMode);
88 printer.print(hourlyVehicleVolumes[hour]);
89 printer.print(hourlyPassengerVolumes[hour]);
94 }
catch (IOException e) {
105 SortedSet<Id<Link>> linkIdsSorted =
new TreeSet(network.
getLinks().keySet());
106 SortedSet<String> passengerModesSorted =
new TreeSet(linkPaxVolumesAnalysis.getPassengerModes());
108 String[] header = {
"link",
"passengerMode",
"hour",
"vehicles",
"passengersPossiblyInclDriver"};
111 CSVFormat.DEFAULT.withDelimiter(columnSeparator.charAt(0)).withHeader(header))
113 for (
Id<Link> linkId : linkIdsSorted) {
114 for (String passengerMode : passengerModesSorted) {
116 getVehicleVolumesForLinkPerPassengerMode(linkId, passengerMode));
118 getPaxVolumesForLinkPerPassengerMode(linkId, passengerMode));
120 printer.print(linkId);
121 printer.print(passengerMode);
123 printer.print(hourlyVehicleVolumes[hour]);
124 printer.print(hourlyPassengerVolumes[hour]);
129 }
catch (IOException e) {
136 SortedSet<Id<Link>> linkIdsSorted =
new TreeSet(network.
getLinks().keySet());
137 SortedSet<Id<VehicleType>> vehicleIdsSorted =
new TreeSet(linkPaxVolumesAnalysis.getVehicleTypes());
139 String[] header = {
"link",
"vehicleType",
"hour",
"vehicles",
"passengersInclDriver"};
142 CSVFormat.DEFAULT.withDelimiter(columnSeparator.charAt(0)).withHeader(header))
144 for (
Id<Link> linkId : linkIdsSorted) {
147 getVehicleVolumesForLinkPerVehicleType(linkId, vehicleTypeId));
149 getPaxVolumesForLinkPerVehicleType(linkId, vehicleTypeId));
151 printer.print(linkId);
152 printer.print(vehicleTypeId);
154 printer.print(hourlyVehicleVolumes[hour]);
155 printer.print(hourlyPassengerVolumes[hour]);
160 }
catch (IOException e) {
166 if (volumes != null) {
167 return linkPaxVolumesAnalysis.getVolumePerHourFromTimeBinArray(volumes);
174 if (volumes != null) {
175 return linkPaxVolumesAnalysis.getVolumePerDayFromTimeBinArray(volumes);
void writeLinkVehicleAndPaxVolumesPerNetworkModePerHourCsv(String fileName)
int [] calcHourlyValuesOrZero(int[] volumes)
void writeLinkVehicleAndPaxVolumesPerPassengerModePerHourCsv(String fileName)
void writeLinkVehicleAndPaxVolumesAllPerDayCsv(String fileName)
static BufferedWriter getBufferedWriter(URL url, Charset charset, boolean append)
int calcDailyValueOrZero(int[] volumes)
Map< Id< Link >, ? extends Link > getLinks()
final String columnSeparator
void writeLinkVehicleAndPaxVolumesPerVehicleTypePerHourCsv(String fileName)
int [] getPaxVolumesForLink(final Id< Link > linkId)
final LinkPaxVolumesAnalysis linkPaxVolumesAnalysis
LinkPaxVolumesWriter(LinkPaxVolumesAnalysis linkPaxVolumesAnalysis, Network network, String sep)