OpenRailRouting
github.com
github.com
I'm currently traveling by local rail connections across Germany currently using the Germany ticket (49 euro/month, amazing value). This restricts me to local only connections and it's a nice way to see the country if you are willing to travel at a bit slower pace. I simply do 1-2 hour hops at the time and then get myself an airbnb look around a bit and then move on every few days.
One of my challenges is routing and mapping. Mostly I use the Deutsche Bahn tool for this where you simply enter where you want to go, restrict it to local connections, and then you get your route. There isn't much else that is usable. Google maps is alright for scheduling but you can't restrict it. And mostly it's transit layer is very incomplete.
What's missing is a good global map of all connections everywhere. Which would help me identify easy to get to destinations. Mostly, I'm just figuring out where to go by staring at a map and then figuring that there's probably some sort of rail or bus connection I can use to get from A to a potentially interesting B.
https://www.msn.com/en-xl/news/other/major-construction-begi...
https://db-engineering-consulting.com/en/news/riedbahn-renew...
As an example, in the US, large lumberyards often sit on a rail line to receive deliveries. Often that lumber comes a long way… for instance from the Pacific Northwest to the east coast.
Maybe if I look at this project a bit I’ll understand how you slap a “To:” address on such a rail car.
ISA*00* *00* *02*CN *ZZ*GENERIC *230710*1339* U*00803*006298413*0*P*>
GS*WB*CN*GENERIC*20230710*1336*98826*X*008030
ST*417*988260001
BX*00*R*PP*1257*CN*L*B*N****N
BNX*R**S
N9*BM*1257**20230710*1336
DTM*168*20230710*1336*ET
N7*CN*123456*213360*N*66700******RR****6711*M*****186*128***C214
M7*12345
N8*111111*20230710
F9*070112*WATSON*SK*****071511*S0K4V0
D9*093390*VANCOUVER*BC*****0093900*V5T1E1
N1*SH*GENERIC CARLOAD INC*C5*1111111111111
N3*123 FIRST ROAD
N4*WATSON*SK*S0K 4V0*CA
PER*IC*CONTACT NAME*TE*123-123-1234
N1*CN*GENERIC CONSIGNEE CO*C5*2222222222222
N3*12 SMITH STREET
N4*VANCOUVER*BC*V5K 1P7*CA
N1*PF*GENERIC CARLOAD INC*C5*1111111111111
N3*123 FIRST ROAD
N4*WATSON*SK*S0K 4V0*CA
R2*CN*S****R
LX*1
L5*1*WALLBOARD*3275440*T
L0*1***213360*N***1*CLD
MEA*AI*VOL*250.6041*CR***15
MEA**VWT*0.7167*KC***15
SE*31*988260001
GE*1*98826
IEA*1*006298413
The F9 and D9 lines are the origin and destination stations, respectively. WATSON, SK and VANCOUVER, BC are regulated names and can be used to find actual station coordinates in an industry reference file. These are the start and end points of the shipment from a rail network perspective.There's also a pre-baked route. In this example the route is just "R2*CN*S**R" which basically means the rail cars are never leaving CN (since it's a giant class 1 railroad and this is their example). But in your example of a cross country shipment, the route might look something like:
R2*BNSF*S*CHGO
R2*UP*1*PITTS
R2*NS*2*PHILA
R2*CSXT*D
In this example, the first name is the carrier for that leg, the second value is the role that carrier plays (S = shipper's carrier, 1 = first intermediate carrier, 2 = second intermediate carrier, D = delivery switch carrier), and the last name, if present, is the junction station where the two adjacent carriers will meet. Like the station city+state names before, these junction abbreviations are regulated and can be looked up in industry reference files to find more information. But assume that BNSF and UP are well aware of how they interchange at CHGO.Of course the shipment probably came from some factory and is going to some other factory. Those addresses can be found in the N1*SH (shipper) and N1*CN (consignee) blocks. Obviously the railroad isn't going to drop a group of rail cars at the consignee's street address, but the "delivery switch carrier" railroad in charge of handling that last mile service will have an existing relationship with the consignee and know where to take the cars. They'll often have pre-arranged schedules for when a locomotive will arrive to bring new loads and pull away empties.
[1] https://www.cn.ca/-/media/files/customer-centre/customer-cen...
For all of us poor folk lacking trains and quite seriously high level political influence, this is a theoretical routing tool for planning possible rail routes. Hence the support of its development by the SNCF.
By law, that already is the case across Europe - all you need is a commercial entity, a locomotive (or multiple) that support all the voltages and signalling/trackside security systems used on the route, carriages that are certified (freight cars usually are Europe-wide, passenger cars run under RIC) and operators that have "Streckenkunde" (=they know where signals, switches, street passes etc. are on a route).
There are a handful of people doing just that, in Germany Roland Sandkuhl / LokRapid has gotten incredibly famous after a TV show featuring him and his old-timer Class 219 locomotive has gone viral [1].
[1] https://www.ndr.de/fernsehen/sendungen/hallo_niedersachsen/R...
Mind that in a legal sense he operates no EVU (Eisenbahnverkehrsunternehmen / railway operation company) but a locomotive rental business where he lends his locomotive including engineer (himself) to EVUs.
But small EVUs exist(-ed), like Rail 4U / Barbara Pirch with her E 94 locomotive, which unfortunately had an accident.
https://www.dbinfrago.com/web/schienennetz/leistungen/trasse...
Put another way: You would use this to plan a route for a train service you were thinking of operating, not for trying to find services that already exist.
The OpenRailRouting project however is more for planning purposes (i.e. for the railway companies) to determine how long a train will take from A to B and which exact rails the route will take and which turns are allowed and more.