So, hello everyone, we start with the next project, the next routing project, and I'm
really pleased that Janik Fossil came all the way here from Montreal, Canada, and is
going to present us Transit Network Planning for everyone.
It's a great project to show how a research project is going into real life, and he just
or the project just went open source last autumn, so we're really excited to see what
you, yeah, what your project is about.
Thank you.
Bonjour, hi everyone, I'm really happy to, I always find a good excuse to come to Foss
them, so, as Melia said, I'm from Montreal, I live in a, in a borough called Verdun, which
is still in the island of Montreal, a little bit far from the subway, so I have to rely
on buses to get everywhere on the network.
Luckily Montreal is a well-grid, it's a grid-based city, so it's really easy to pass bus line
about everywhere, but the problem I have, every time I try to get the bus, they all seems
to be in sync, even if I have like three or four lines, I look at the schedule and there's
like no bus available right now, and I ask myself, can I find a way to prove that and
ask the city council or the transit agency, there's a problem there.
Actually a couple of years back, I started about paying a couple of friends at the Polytechnic
University on a software project called Transition, which is a transit planning tool, which is
aimed for transit planner at first, but as much as you want to make a really good tool
for transit planner, people are working in transit agency, our ultimate goal is to make
the tool as easy to use for every citizen, everybody, to actually solve and understand
what are the transit problem and come up with a solution that everybody can bring.
We are really far from that goal, but we want to make it as easy as like your favorite
city simulation game.
So as I said, we are a research group based in Polytechnic Montreal called Cher Mobility.
It's a mix of transit engineers who studied transit problem, mobility problem, but we
have also other people like we have an economist, and we have a few software folks to help with
the software development.
Being an engineering school, we tend to work with applied solutions, so we develop a few
tools over the year.
We have Evolution, which is a travel survey platform, I'll talk a bit more later.
We have a tool for congestion, dashboarding, tax dashboarding, and the one I'm talking
about today, the tool about transit planning.
So if you're a transit professional, your main day job is to actually draw new lines
for your city.
There's more analysis to that, but this is the main thing that the tool will provide
you.
You have the map of the city and you can just add new stops, you can add lines, draw where
they go, or you can just import a GTS file for your network or export them as you go.
This is Brussels, I just imported the whole city and can just go and try to work on that
and see where are the problems or what we can improve.
We have the concept of variant or scenario, so basically you want to do some studies and
like maybe exclude some part of the line or exclude some mode of transportation, like
some people only like buses, they just want to take bus, so you will study maybe your
network that way.
We have a schedule editor or viewer, basically you can just see all the schedule, you can
edit it.
We have a simple edition, like you can tell I have five bus for this line, it'll just
like generate your schedule considering the time to go over the route, the dwell time
at every stop in there.
We are not aiming to make a tool to operate the network, like OSRD before, it's more tailored
to like actual scheduling of your train in real life.
We want to keep it more eye level, like what's the idea of the planning?
If you are a small city, small transit agency, you can use that to do your operation, it's
simple enough, it will give you some information, if you enter the schedule it will tell you
how many buses you need, so we can give quick estimate, but we will not consider things
like scheduling of staff, maintenance, another issue in there, so we want to keep it more
eye level, at least at this point in time.
So the first kind of analysis we do, and like the Lotus project presented before, is routing.
So basically the same simple problem, you have a source, a destination, we allow it
to specify a bunch of parameters to represent what Felix was talking about, different kind
of needs for different kind of people, do you want to do multiple connection or not,
are they older people, do you want to walk less, they walk slower, that kind of things.
We can calculate like the best route or we can show you all the different alternatives.
So if you want to go from the ground plus to here at 9am this morning to get in time,
the best option you will give you is the 95 bus, but there was 17 other alternatives
that was like in range to get here in time.
We show you transit, we show you walking, we are walking on the modes, like adding cycling
or adding like, fix parking like park and ride, there is a lot of like complicated problem
to combine network like cycling and ride, there is a lot of difficulty in there and
I am really looking at like what do you do if you can save us some time to do that there.
I was talking about variant, I am sometime a bus knob, I take the bus a lot at home,
so when I go, especially on this side of the Atlantic I try to stick to rails, so I excluded
all the buses and this is like the best route if I want to keep on metal road.
The second kind of allow this really use in transit planning is the accessibility map.
The idea there is to specify a point in the region and it will show you the area you can
reach in a specific amount of time.
In this example I show you like from this place what you can reach in like 15, 30 and
45 minutes, you can specify this area and the main interest of the tool you can do like
one point at a time, if you want to do a real analysis you will want to do a lot of them
and that is what the tool provides.
Also for the routing part you can just upload a file of like origin for the accessibility
map or origin destination for the routing and then you can do like real life analysis
of like all your movement in a day and see what's best in your network.
Every time you will get some, a bunch of statistics for the accessibility map the interesting part
is like how many square kilometers you can reach in a specific time.
If we use the same variant excluding the bus network you see you reach a little bit less
if you stick to rail and you have about like 10 square kilometers less.
So that's an interesting thing to analyze, like if you have some new lines you do the
analysis with the new line without the line you compare the results in there.
We are currently working on new views like to especially do this diff and so that by
having to look at the map yourself we're going to show you like okay this is the difference
between the two analysis that you did and the statistic difference between those two
are a solution that you are exploring for your network.
A third analysis that we do we have a simulation and optimization algorithm.
It's based on a genetic algorithm.
So basically the idea you can provide like either your existing network, add a bunch
of new lines or create some random lines in your network and using some simulated trips
or actual trips if you have the data there we'll try to find the best route, the best
line to put in your network to reduce the overall transit time for your population.
You can keep other parameters like I want to keep the cost constant to what I have right
now so I will not add new trains, new buses or you can give it like okay I have some extra
budget I can do like 10% more in there.
For some of the city we studied we showed that we can by using that kind of algorithm
reduce the overall transit time of user by about 15%.
Some user will get worse but most of the user will have better time.
And we did that for real for some cities.
This is Ramanville.
It's a town about 80,000 people sitting mostly between Montreal and Quebec City and they
came to us with their actual network and they were like yeah it doesn't serve our user
well.
We want to have something better.
So we just ran the algorithm and give them that.
So if you compare quickly you see like the same overall idea with the lines.
We started with some what they have but we explored some space around that.
For this case we draw the line ourselves.
We have a couple of students working on algorithm to just generate new line automatically instead
of having you and tried to add the new idea there.
So this is actually being implemented right now as a new network for that city.
Another real study that we did, there's an idea to add a new subway line that would
go diagonally in Montreal, a project that we called the pink line.
Might not go but there's a lot of idea floating around but the city and the government came
to us like okay can you show us what would be the impact of adding that lines to the
city.
So basically using the batch routing capability of the tool and using actual travel survey
data from a previous study.
We are able to simulate all the movement of people with the line and without the line
and we've seen some interesting result that overall adding that line will reduce transit
time by about 5% for the whole population.
Interestingly we've shown that the people who would get the most benefits from that
line would be people who actually use car right now.
So hopefully adding that would shift some mode of transportation from car to some other
better transit solution.
This is the overall map of the city with like that project and all the currently project
being constructed in Montreal and in blue we show like we show where most people would
get at least like a two-minute improvement in their transit in average with a new city.
So all is the tool build basically it's a web application, it's run on Node.js.
We mostly write, we convert all the code to TypeScript to have at least something that
is not too awful to maintain.
All component in C++ and Rust in the back end we try to move more and more of the component
in Rust just to make improve the maintainability and it's all running on top of PostGIS and
PostGeshQL.
For the basic routing as most people use OpenSuite.NET data we use OSRM to do the basic
route on the road unlike pedestrian path.
We didn't modify the basic profile to have more accurate results especially for buses
in cities.
You want to be more accurate because a bus is not a car, a bus cannot go on every street
necessarily or cannot turn as easily as other cars so we have some specific mode for that.
Same with MOTIS we actually looking at also looking at Valhalla maybe it could give us
some improvement in our operation.
For the transit part we develop a tool car, TR routing, it's a standalone component also
available.
We implemented the connection scale algorithm, reference to the paper there from some people
at the car street investment technology.
Really efficient algorithm, we add a transit, a trip-based algorithm before but we used
that.
It's mostly in C++ at this point, wanted to convert to Rust but maybe I can just use
MOTIS in there that part and don't have to worry about it.
But if we want to do planning we have to do some data, like if you're a transit agency,
if you're a city government you have that already probably but if you're a citizen you
need to find that data somewhere.
Luckily most of what we need to do the planning is available in OpenSuite.NET.
The basic part of the road network, all the pedestrian path, rail line, it's mostly all
in there.
So you can go around, use the SRM, do some quick planning there, you have everything
that you need.
If you want to do population and trip-based analysis you will need to simulate a population.
Even there OpenSuite map can help us.
If you have all the building drawn on the map you can extrapolate a little bit your population.
If it's residential building you know some people will probably live there.
You can see where the population is debuted in the city.
And on the other side, if you have the POI, the point of interest, all the other building,
all the shops, all the school, all the like industry, so you know where people usually
go in the day.
So we can just simulate what is that in our general algorithm, you actually use that kind
of information and just create trips to do the analysis in there.
OpenSuite map is pretty good but it's not always good enough for what we need.
We estimate we have to spend a little bit of time validating the data to make sure we have
the accurate result.
You can use as is but you might get error in there.
For like a dense urban environment like Montreal, like Brussels, we spend about 25 hours per
square kilometer doing the validation.
For suburban environment, 10, maybe 10 hours per square kilometer in the rural side, maybe
a couple of hours.
The good thing is as long as when it's done, when it's done, you just have to make sure
new exit don't break everything but the information will be there.
What do we look at when we do the validation?
What are the important things we need?
The first part is make sure we have all the link between the pedestrian network, the cycling
network with the rest of the road network.
If you have things like the tram stop near the ULB, there's a lot of pedestrian path
going in and out.
If we didn't have connection well between all those time, the routing algorithm would
not be able to just get you from the tram network to the campus or we'll find a route
that goes around.
It's really important to make sure you have all the correct access tag so we have to go
look at everything in that and even add maybe some connection between street to go around
in there.
We'll usually split the sidewalk and the cycling path.
I know it's a little bit a debate in the open stream map community, should you split
the sidewalk or just use the sidewalk tag?
But at least for us, we get a really more accurate result if we split the sidewalk.
For big street, having a few meters difference between the middle of the road and the sidewalk
that can be more easy to go around.
We also know the quality of the road there.
We don't use that information yet in our routing.
We want to get there and be able to tell people, yeah, this route, if you walk on that street,
there's a large, large, large wall on the street.
It's more fun to walk there versus some of the road.
Whenever I plan from my place to the subway, I always take the road that the tool proposed
me because it's more fun to go on that other road because there's shops, there's more
life, so it's more interesting.
The other thing, we will add doors to big buildings, like big building, like university
like that.
If we use the center, the centroid of the building, we might route you on the completely
other side of the building.
If it's a big one, maybe that will end up being a different bus completely.
We need to make sure to know where are the main entrance.
We're going to go and add that, like big shopping center, things like that, industry
big warehouses.
We're going to spend time just mixing the street, our well-aligned, the one-way out
there that will be useful to ride cars and buses.
Make sure we have the speed limit.
We can consider that in the transit time of a vehicle.
Since we have OpenStreetMap open, we'll just try to add all the point of interest that
we can find, and at least the name and the type that will help the algorithm in there.
We can go further when we have time.
We can have reserve line for buses.
We would like to automate a little bit more of that with using MapRulet or the task manager
from the OpenStreetMap community.
We are not there yet, but it's going there.
For the population, I've talked a little bit about the OSM building.
What we tend to use a lot is the land use register.
A lot of government will provide that for free, or at least you can request information
to that.
Basically, the information about all the building in a specific area.
You know the building type.
You can find out the population on there or the interest, where people want to go in there.
You might want to use the census information that most government will provide.
The difficulty there is the general area is really big.
It will often cover multiple blocks in the city, so it will cover multiple bus lines
or stops.
It won't be hard to find exactly where some people would come from.
We are trying to work on some ideas, some algorithm to spread the population in some
sensible way to be able to simulate based on that, but it's still a work on progress.
Lastly, if you have travel surveys, and if you're not familiar to that idea, most of
the agency will spend time once in a while to just go and ask most users where they are
coming from, where they are going, why they are traveling, and they're going to do that
by phone, sending mail, or just stop people on the network and ask them where they are
going.
That's really useful information.
You can take that and do an exact simulation of your specific day, but that data is not
generally available.
If you're a researcher, you can have access to it, but a general citizen will not have
that.
That's why we try to get the population and just simulate that kind of movement there.
It will be interesting to know to get at some point, if we can anonymize the information,
use the same idea, spread the population somehow, and make that private-free in there.
I talked about the evolution tool earlier.
It's a web-based kind of survey platform that can be used for that, which is all the plug-ins
to actually ask people about where they're going, where they're coming from, more specifically
like from a date or survey monkey kind of thing.
As we're talking, we also research groups, so there's a couple of challenges to bring
stuff to the real world.
How do we make sure the things we do are actually useful?
The first thing would be the code is open source.
As most research, I really strongly believe everything should be open source.
Trying to get the student to work in the open source would be a good first step.
It's not there yet.
A lot of people want to go as fast as they can and just finish their thesis and give
us the code at the end that we have to, as a research professional, do a lot of cleanup
and make sure it works for everybody, but it would be a good way.
The other thing we do is we make sure we partner with actual transit agency.
Like in Quebec, we work with almost all the main transit agencies for a major city.
We actually have them use the tool, give us feedback.
We sit with them and ask them what kind of study do you do and sometimes we do a batch
routing thing and then we take the CSV file and then we do some Excel and then we do some
Python script and be like, okay, what if we just give you a button that would just give
you that and have a quick plug-in to open in QGIS?
We try with those ideas in there.
As I said, we are far from done.
We have currently 450 open issues.
Not all bug reports, yeah, there's some, but stuff like improving the UI, implementing
new algorithms, trying to integrate some of the tools in there, but yeah, it's a work
in progress and we always open to review pull requests.
As for my original problem, I ran a batch on a batch accessibility map, so basically
from my place every five minutes, how far could I reach in the city for like 60 minutes.
I got this really big association, that kind of showed me there's some kind of a problem
with the schedule, especially around this 1030 mark where I dip about by almost 15 square
kilometers.
I remember every time I tried to go out of the house at that time, which is a good time
to start working, 1030, and there's no bus available.
So I think there's a problem there, it's not highly scientific so far, I'm just like
a computer engineer trying to fake myself into transit engineering, but I think there's
a problem there.
So that's it, thank you.
If you have any questions, do you think it would make sense to use that same tool to
work at a different scale, for example, drawing train lines at the scale of a country, for
example, would it make sense to do a transition scale?
So the question is, does it make sense to work at the higher scale, like country level?
I think so.
I think right now the performance of the tool might not be there yet.
We kind of tend to, when I do work on Montreal as a world, that's starting to things getting
slow, we are hitting limits, so at this point we are trying to increase the scalability
of that, and we definitely want to go at that level, especially at what depends on the size
of the country, like Canada, why it might be a bit too big, but at least province level,
we definitely want to be able to do that.
I think that the first for me, there are two main problems in Brussels, is the transportation
of people, and I think it's important to inform the people, which go with all mode of transportation,
with indication when is the next bus, when is the next trolley, and when is the next train,
and so on, also for bicycle users to pay in the train, because it's expensive, it will
have to go with the train, it's more bicycle, not for me, for computer, it should be good
to have an announcement in every place, in the motorways, so in the plane, in the trains,
and so it can be so computerized.
Yeah, it's interesting comment, and yeah, that's where we want to make the tool for people,
but I know a lot of politicians, and I want to make the tool as good for them to actually
be able to try it by themselves and understand the problem.
We often have people come to Catherine, which is the head of the research lab, and like
they asked them for studies, but they are not always implemented, but if people can just
see for themselves what would be the improvement, that could be interesting in there.
Maybe one last question, it's short, very short.
Yeah, very short one.
That's the comment, it doesn't make sense to actually sort of like adapting the network
to the city, how can we adapt the city to the network, and where can we build new development
and new residential plan, new residential area.
That's a really interesting idea, we never thought of that, but maybe there's something
we can find a way to implement and see where there's potential to redevelop the city maybe
and increase density in some places.
Thank you for your time.