User Tools

Site Tools


events:newsletter:2022-10

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
events:newsletter:2022-10 [2023-01-17 14:41]
evictionbot Evict 56independent
— (current)
Line 1: Line 1:
-====== [en] October 2022 Newsletter ====== 
-**Note** This newsletter is now in writing early to make up for two late newsletters. Hopefully this newsletter is more polished given more time. 
  
-===== Blog Summary ===== 
-No blog has been published for october. 
-===== Special Features ===== 
-==== Timetabling ==== 
-Timetables are vital to a rail network. Without any form of train-timing, it becomes impossible to tell when you need to get onto a train and where it goes. 
- 
-=== No Timetabling === 
-What you have built probably follows this system. It is one of the simplest to set up and maiintain. It involves trains stopping at a set time at stations before continuing, without departing at a proper time. It's literally station tracks, signals, and trains. 
- 
-This type is used on metros, where high frequencies make timetabling unnecessary, as the next train is only a few minutes away (i hope). 
- 
-However, when trains become less frequent, one needs timetables. 
- 
-=== Interval-based timetables === 
-Instead of a train stopping for a set amount of time, a train stops, waits x seconds, and then waits for a certain time to leave. Times are every y units apart. 
- 
-For example, a train could pull into a station, wait 10 seconds, and then wait until the time is a multiple of 5. This allows a good interval between trains to be kept, improving frequency and reliability. 
- 
-This is quite easy to implement. Observe the following code: 
- 
-<code> 
-minuteleave = 5 -- How many minutes between leaving? 
-loitertime = 30 -- Minimumm amount of seconds to sit 
- 
-if event.type = "train" then 
-    atc_send("B0OLA0") 
-    atc_set_text_inside("Train at station") 
- 
-end 
- 
-interrupt(loitertime) 
- 
-if os.date().min%5 = 1 then 
-    atc_set_text_inside("Doors closing, departing soon") 
-    atc_send("OC") 
-    atc_set_text_inside("Departing") 
-    atc_send("A1OCSM") 
-end 
-</code> 
- 
-=== Realistic timetables === 
-Look at the timetable for [[https://www.realtimetrains.co.uk/search/detailed/gb-nr:SDB|Sandbach]]. What do you see? Lots of trains. Plenty of them are skipping trains, such as a "high-speed" (i doubt the credibility of that claim, living in Spain) Avanti trains going directly from Crewe to Manchester, some of them are high-speed long cargo trains (i miss them, living in Spain), and a few more are local services run by Northen. 
- 
-How would we prepare a timetable? Let's start from one of the terminii, Crewe. Here is where the Northbound trains start. Let's build a pseudo-timetable with frequencies: 
- 
-^ Service type^ Frequency ^ 
-| Avanti skipping | n*15 | 
-| Northen trains | (n*15)+(15/2) | 
-| Cargo trains | (n*30)+(15/4) | 
- 
-Let's go over how this works. 
- 
-First, let's assume n is a number which goes up in 1. From this, if the 1^^st^^ Avanti Skipping train came in, it would arrive at xx:15, and then the second at xx:30, and the third at xx:45. xx represents the hour and what you do with the number determines what minute the train arrives. 
- 
-We have also offsetted the number to allow a northen train to arrive 7.5 minutes after the Avanti train has, at which time it will have left and zipped past, clearing the section. 
- 
-So, now that we have the arrival frequencies for Crewe, all that we need to do for the rest of the line is to find out the time between stations:  
- 
-== With several calculations == 
-**Note** The spreadsheet you need is [[https://ufile.io/6m7cvfpo|Here]]. 
- 
-We need this data: 
- 
-  * A train's maximumm speed 
-  * A train's acceleration and decceleration 
-  * Distance between stations 
- 
-From this, we can figure out what the train will do. 
- 
-Let's say the distance to Sandbach was 10 km. The line's maximumm speed is 110 MPH (177 km/h, 50 m/s), and let's assume the acceleration and decelleration is 1 (m/s)/s, a normal figure for a train. 
- 
-Here is the hard part: we have to calculate the time. I reccomend you use the timetable calculator spreadsheet i added, which automatically calculates times given the data. It'll help preserve your sanity (Rows A and D-G will have to be filled out manually, sometimes a manual override of B, which contains the time of next station's departure assuming 1 minute stopping for convinience). 
- 
-So, we enter the data and the time of travel is about 3 minutes, and we arrive in Sandbach at xx:18 after departure at xx:00. (I have also added the rest of the line with wrong distances based off wrong data to provide the rest of the example in another sheet). 
- 
-Now, there will inevitably be delays which offsets the train. Maybe the train slows down after meeting a temporary speed restriction or takes a diversion route. Anyways, now the time of arrival for the terminal station is offset and the entire train falls off-schedule. I suggest you give the train a bit of a longer stopping time like 15 or 30 minutes. This allows the train to be cleaned and for any delay to hit a nice soft safety buffer instead of pushing the train off-schedule. 
- 
-To maintian this, all you need is interval timetabling - ensure the train leaves at a set time of a specific station, and all is well as the train can just wait for the next departure event in case of delay. 
- 
-For the other trains, just enter the stations which you do stop at. An Avanti train may only stop at Crewe and Manchester Piccadilly, so include those stations as well as the total distance of the line.  
- 
-We still aren't finished. Now we need to take data from the spreadsheet and put the data into a timetable. I have already made a timetable template, but you'll have to fix it if it's broken. You can copy this into a word processor and format it until it fits your standard. 
- 
-This timetable is quite useful. A person at a station can use the time to see what time the next train is, and a person in a train can use the time to see where their station is on the time dimension. 
- 
-And from there, you can publish the spreadsheet (specifically range A21:E36) and hang it up in stations and other places people would like to see the time of their train.  
- 
-== With Timing == 
-Launch a train and then ride it to the next station. How long did it take? Record the time taken. 
- 
-Gather a few rows of this data, one for each train, and calculate the average. 
- 
-This is the space between stations which you can put into your timetable. 
- 
-=== Conclusion === 
-We have seen the three main timetable systems as well as the ability to easily create our own timetables. Here is a reminder of what to use each for: 
- 
-^ System^ Description ^ Best Usecase ^ 
-| No timetables | Relies on a train stopping at a station for a set time before departing, trains come any time | Frequent metro systems such as the London Underground | 
-| Interval-based timetables | Trains stopping and waiting for a specific time at stations | Really rural stations where trains are not freqeuent and it'd be nice to know the train will only depart at 15 minute intervals, or train spacing at terminii | 
-| Detailed Timetables | A timetable showing what time a train will arrive and depart at each station | Most railways | 
- 
-==== Designing a railway line ==== 
-I have recently been very hard at work on a Costa Brava railway route. It services one of the most [populated parts of Catalonia, Spain without rail], with a design speed of 250 km/h. 
- 
-=== Design === 
-I decided on a track between Blanes and Figureres closely following the coast.  
- 
-Then, i began thinking about surrounding infrastructure taking examples from the real-world. For example, the Netherlands features park-and-rides at the stations, but mainly for bikes. I decided that to build bike paths between stations and surrounding towns and areas. This has the distinct advantage of avoiding cars, which are wildly space-inneficent, a practical example later. 
- 
-=== Segment on cars and transport options === 
-I used to go to a large school in the UK of 1,500 students in the centre of a large village. A lot of people walked home, including me. For those in other towns, a bus took them away, and for the few rare people wholives anywhere else, a trickle of private cars escorted them away. 
- 
-And then i moved to Spain, where i go to an international school of less then 1000 sutdents. Due to being away from almost everything, everyone gets there by car. There is constant slow circulation of MASSIVE cars and a need to be constantly aware of your environment. Is there a car moving towards me? Who did that car honk to? Where is my parent's car? Where do the drivers want me stand? 
- 
-=== Redrafting === 
-This was the proposal done, a series of villages connected by a few disparate railway lines. I shelved it for a few weeks before revisiting it. 
- 
-I removed the line which went through the mountains without regard, a very expensive procedure to access important towns of Tossa de Mar and Lloret de Mar, which could be served by buses instead I decided instead a line with two forks, one at Llagostera, and another at Palafrugell. These help give connections to two series of settlements, one up to Flaça and one up to Figueres. 
- 
-And then, at Llagostera, one line serves Barcelona with a junction at Sils, and another directly connecting to Girona's lines. 
- 
-=== Lines and Services === 
-I had basically finished writing about the physical infrastrucutre. Now it was time to think about different services. 
- 
-And then i thought about services. Catalonia hosts three main types of service running on conventional rail. The first, Regional, stops at //every// station along the way. These don't need to be fast due to the short distance between stations. Another service, the //Media Distancia// stops at towns along the way. These should go a bit faster. The final type, //Alvia// treats conventional rail like a AVE (high-speed) line. It stops at major stations. I chose the interchanges Palafrugell and Llagostera, where one can change for a local train to go to different destinations.  
- 
-Here is where we encounter a problem. Historically, Spain and Portugal used a different guage from mainland Europe because there was tension with France at the time. A slightly wider gauge, Iberian gauge, was chosen to prevent France invading by train. This means that the Alvia services will have to be able to change gauge. Luckily, this problem has been fixed. There exists a train model which can change gauge at 30 km/h. 
- 
-I decided to connect Sils to the AVE network, add a train storage and maintenence area, and add a small booth where the gauge is changed so Alvia trains can then take the AVE line to Barcelona. 
- 
-=== Going Deeper With Design === 
-Now we have a basic sketch of what we want this railway to be, we can go even deeper. The design speed of the line stretches from 140 km/h, the limit on the existing Girona-Figueres mainline, to 250 km/h, comparable to the speed of trains on some AVE lines. 
- 
-I calculated the curve radii and then designed the railway line. It helps to start out with a sketch of the destinations the line connects, which you can follow, taking care to avoid demolishing houses or other buildings with your railway line (which people seem to hate for some reason). This will be covered later on. 
- 
-Now, let's talk about making a slighly less rushed timetable. Let's pick and choose lines and services. There will be three different services on the Figueres-Barcelona line (Regional, Media Distancia, Alvia), and two different services on the Girona ring line (Regional, Media Distancia, and no Alvia because it will be a waste). 
- 
-This is 5 services in total per direction. Here they are below: 
- 
-^ Train^ Type ^ Line ^ 
-| 1 | R | Figureres-Barclona via CB | 
-| 2 | MD |~| 
-| 3 | R | Girona loop | 
-| 4 | Alvia | Figureres-Barcelona via CB | 
-| 5 | MD | Girona loop | 
- 
-We can now take the frequency we want and multiply it by the amount of trains it takes to repeat the loop. I have chosen 15 minutes, which is a perfectly good frequency for a mainline like this. This means that the loop repeats every 75 minutes. In other words, a transpotter only has to stand around for 75 minutes before they've recorded all the trains they want (unless they're also spotting cargo, but that's for later). 
- 
-=== Drawing the map. === 
-Great! We have the design speicifcations, services, and a timetable. let's now make a map. 
- 
-I have chosen Google Maps, despite being propietary, due to a lack of other good programs. Google Maps offers: 
- 
-  * Satellite view as a default, letting you see property lines 
-  * Good sense of how mountains are like 
-  * Powerful drawing tools 
-  * A selection of information you can add to the map to help you 
- 
-So, let's go to work. Start a new path and begin clicking to lay a series of points. All you need to do is connect the big towns along the line roughly. You'll refine it  later. You should really connect until a major junction. Then make a new path. 
- 
-Once finished, put all your paths in a folder and take a deep breath. Zoom out and review your line. What's wrong?  
- 
-Let's refine. Take out your paths, use a different colour, and begin drawing. Avoid: 
- 
-  * Going through towns, destroying tons of houses 
-  * Being too far from towns 
-  * Bending too much, lowering top speed 
- 
-=== Applying it to Minetest === 
-So far, we have only covered creating a railway in real life. Whilst this is very helpful for recovering after your local Dr Beeching, this is the //Advtrains// newsletter and not the //Realtrains// newsletter, so let's apply it to Minetest. 
- 
-The first parts are relatively relevant: Find a population centre without rail and figure out how to get a line there. If you want to be realistic, avoid mountain ranges and massive bodies of water. These are quite expensive to cross. You'll also need to figure out the curve radii. Advtrains has a rather small minimal curve radius of 4, but none of your passengers would like such a steep turn as their hot coffee would be thrown to the side. The details are put below, but if you would like to kill your passengers with 3rd degree coffee burns (or you don't serve coffee), you can skip the process. 
- 
-== Design Speed and Radii == 
-First we need to figure out the design speed of the line. Usually, it is 20 m/s, but some crazy people increase the speed of advtrains to high speeds. These can be as high as 1000 m/s. Let's take a range of speeds from 10 to 100 m/s, increasing in 10s each time. For our example, let's say our railway line goes at 60 m/s, which itself is a margin of 40 m/s, the top speed of lines on 56i-mtserver.  
- 
-Now we need our cants and cant deficencies. For some reasons cants have not been or can't be included in Advtrains, so we have a choice between a "pretend cant" of 15 cm, pretending Advtrains has this feature, or a cant of 0 cm. We also need a cant deficency. We'll choose 10 cm. Here is a table of speeds, cants, and the radii of each curve (calculated with a handy [[/browse/formulas/Minimum+railway+curve+radius+%28by+the+track+gauge+and+the+cant%29|calculator]] (In case you're intrested in the formula, it's (G*v^2)/g*(c+d), where G is track gauge (1435), v is speed in m/s, g is standard gravity, c is cant, and d is deficency))): 
- 
- 
-^ Speed (m/s)^ Cant (cm) ^ Cant deficency (cm) ^ Radii (m) ^ 
-| 10 | 0 | 10 | 146 | 
-|~| 15 |~| 59 | 
-| 20 | 0 | 10 | 585 | 
-|~| 15 |~|  234 | 
-| 30 | 0 | 10 | 1317 | 
-|~| 15 |~| 527 | 
-| 40 | 0 | 10 | 2341 | 
-|~| 15 |~| 937 | 
-| 50 | 0 | 10 | 3658 | 
-|~| 15 |~| 1463 | 
-| 60 | 0 | 10 | 5267 | 
-|~| 15 |~| 2107 | 
- 
-We can clearly see how the curve radii reacts: 
- 
-  * As speed increases, curve radii increases 
-  * As cant increases, curve radii decreases 
-  * As cant deficency increases, curve radii decreases 
- 
-Let's explain some terminology here. A cant is the difference in height between the inner and outer rail, making the rail effectively tilt. This forces trains to lean into corners, just like a motorcyclist or cyclist does, to reduce the lateral force (which can make cups of hot coffee fall onto the little baby placed in a sweet little cot on the floor). It also has the benifit of balancing wear on the rails. 
- 
-The cant deficency is how much more the railway should be canted to match the train's speed. This results in some lateral force, which can actually be a good idea (as many passengers become sick when a tilting train //exactly// matches a curve, see APT-P). In case you're wondering why you can't just add the cant deficency to how canted the track already is, it's because with a cant deficency a stopped train won't derail, just sit hopelessly canted because it can't move 
- 
-These figures are taken from uncited sources on Wikipedia, stating that cant on European railways is usually around 150 mm and deficency on TGVs (France's high-speed railways) is about 101 mm, which i rounded down to 100 mm. 
- 
-We aren't finished yet. A curve in Advtrains is actually a polygon instead of a continuous movement from a given direction. Instead of being able to smoothly change from one angle to another, you instead have to use sharp turns to sharply adjust your course sharply one direction, in 22.5° increments. For example, to perform a 360° turn, one needs 16 segments. To figure out the length of this from the radii, one only needs the formula s =2*r*sin(pi/16), where r is the curve radius and s is the side length. An [[https://www.vcalc.com/wiki/Length%20of%20the%20Sides%20of%20a%20Polygon%20based%20on%20the%20Outer%20Radius%20and%20Number%20of%20Sides|Online Calculator]] is freely available for this purpose.  
- 
-== Grade == 
-The steepest grade Advtrains thinks a train can handle is a 1 in 2. This is extremely steep, so we will use a more realistic grade. A realistic grade is generally 1 in 100. This means that every 100 metres you're allowed to move up 1 metre. The only way we can replecate this is by a long 97 m section of flat rail and then a 3 metre slope up to 1 m. Let's pretend this 97 m section is just to regain speed lost on the slope. 
- 
-This means, that, for example, a kilometre of rail, you're only allowed 10 m of vertical change. 
- 
-== Maps == 
-Once we have our radii and design speed, we can work on maps.  
- 
-I suggest you work with [[https://wiki.minetest.net/Minetestmapper|MinetestMapper]]. Make a command to generate a map of the area your railway line will cross.  
- 
-Once done, you can grab your map, your favourite drawing program, and begin drawing. Ensure that at every point you curve, you keep to a side length that is suitable for the design speed of the line. 
- 
-Ensure you notate embankments and dams where you can't keep to the contours of the land, and ensure to bend around mountains when they get in the way. 
- 
-== Example Proposal == 
-Here is an example of how to write a proposal, if you wish to: 
- 
-> == Introduction ==== 
-> I propose a new railway line between town A and town B, connecting the towns and their people, creating better links. It will be a high-speed line designed for 200 km/h (55 m/s). 
- 
-> == Route ==== 
-> The route has a curve radius of x with a grade of 1 in 100. The route also connects smaller villages and houses along the way with local services along with direct connection with express services. A map is shown below: 
- 
-> == Economic Benifits ==== 
-> This new railway line will help improve the travel times between the two towns, allowing their industrial areas to be more-well connected. Paying passengers from whistle-stops will also help make the line pay for itself. Buisnesspeople can also take the train to visit meetings and improve the economy of the whole server.  
- 
-> == Risks ==== 
-> The high-speed of this line introduces a massive risk in terms of level crossing, which often have silly youths playing around in front of trains. This problem will be fixed by water buckets used to flush the teenagers off the level crossing 30 seconds before the train arrives. Birdges crossing the railway will have mini-fences added to preven people climbing onto the track. 
- 
-You can waffle on as much as you like to continue your cause. 
- 
- 
-==== Preventing Railway Deaths ==== 
-Railways have caused more then 500 deaths on 56i-mtserver. This is absolutely tragic and each of these deaths could be prevented. Let's look at how each death was caused: 
- 
-**Disclaimer:** (Data from the //Office of National Statistics// (ONS) on 56i-mtserver; is taken as is without any factchecking put in place to ensure validity. The ONS has still not produced any form of reputable scientific paper discussing how the data came to be and these are purely estimates) 
- 
-^ Percentage^ Cause ^ Breakdown ^ 
-| 36% | Being hit by a train after getting off at the station | 23% died on the tracks, 10% after lag caused them to die, and 3% died by jumping off the train in the wrong place | 
-| 21% | Getting hit by a train after Tresspass | 18% were within 100 m of buildings, 3% were out in the wilderness | 
-| 14% | Level Crossing deaths | 10% entered the level crossing during bells rining, 3% died after not clearing the level crossing when bells started ringing, and 1% died after lag caused them to be hit by a train with no warning | 
-| 10% | Falling off a high place after Tresspass | 6% jamp off a train, 5% climbed onto the bridge | 
-| 8% | Suicide | 4% got hit by a train, and 4% jamp off a high place | 
-| 8% | Being coaxed onto the tracks to have items stolen | | 
-| 3% | Hit during work | 2% died after not knowing there was a train approaching, 1% fell off a high place | 
- 
-=== Causes of Death === 
-36%, the highest amount of deaths, occured after people got hit by a train in stations. This is normally due to leaving the train improperly, such as using shift+e, which could potentially drop players onto the tracks.  
- 
-Let's look at the second biggest number. 21% of people died after trespassing. On 56i-mtserver, much of the tracks are either confined (by their location; either a tunnel or high bridge) or unprotected. Tresspassing usually occurs on unprotected tracks as people look for a shortcut. 
- 
-14% of people died in a level crossing. Level crossings are inherently unsafe. They expose the track surface to the public, who can then walk down the tracks or linger.  
- 
-Let's cover the rest of the percentages. Falling off a high place only occurs during tresspass, which often comes from nearby stations. However, placing signage warning of the risks has been proven to drastically reduce incidents. Quite famously, Am central station (within the town all noobs spawn in), features a flood of red signage near one of the viaduct exits, which activates a "primal fear" within players to shock them into staying on the platform. Suicide is preventable with safety nets and strong fences wherever there are heights, and coaxing can be prevented by banning players which are the perpetuators of these incidents.  
- 
-=== Prevention === 
-The best way to prevent train alighting deaths is education - all stations should come with a message telling you which button to press to leave, preventing people from leaving too early or late. 
- 
-Tresspassing occurs most frequently within 100 m of buildings. Quite often, this occurs whilst trying to cross the tracks rather then mess around on them. Crossing the tracks is often facilitated by a foot or bike crossing, which helps redirect the problem to level crossings. Fencing should also be applied near tracks. It is reccomended to emplace paths to allow people to walk parallel to the tracks. The latest advice suggests building a path on both sides of the track outside the fence, and on at least one side within the fence. It is further reccomended to ensure the outer paths are 2-4 metres wide and the inner path is at least 1 m wide. 
- 
-The inner path should be used for maintenence workers only and should be used by maintenence workers all the way from track entry to the site of work. The outer path should be a communal space for everybody else to use, with signs pointing towards the nearest level crossings. Paths should only be built where there is a risk of tresspassing occuring, such as near population centres. Fences should be built at least 200 m further then any outer path.  
- 
-At level crossings, , we have a few solutions: 
- 
-  * Build automatic fencing around the track, which raises or retracts depending on wether there is a train approaching 
-  * Security officers who shout at misuse 
-  * Education 
-  * No level crossing  
- 
-Of course, lingering and tresspass only become a problem once trains are running. To prevent people being hit, there is an automatic warning system which alerts as soon as a train is on approach. Now, this approach is given by braking distance. At 3 m/s/s of deceleration at 40 m/s, this is only 267 m in which the train's precense is warned of. At full speed, this distance can be covered in 6 seconds. Obviously, a better warning system is needed. 
- 
-Being hit during work is the rarest form of death, but is still notable. The most common type of work is interlocking work. To help keep the site safe and sterile (no routes being set), a signal is set to red ahead of the one that work is being performed on, which stops any train movement on the affected tracks. However, the opposite track is often left clear, which can kill workers when they accidentally walk onto it. 
- 
-The second most common form of death is during work on landscaping and ballast. To prevent disruption to service, trains are still allowed to run, often at full speed. This means that whilst crossing tracks, workers get hit. 
- 
-Also, TOWS (Train Operated Warning System) should be implemented in busy areas or areas where work is done. This system works by detecting a train in advance, ringing a siren until the train passes. This system could either be switched on or off or kept on all the time, such as in level crossings. 
- 
-=== Conclusion === 
-We have covered all the prevention measures for train deaths and how to prevent your tracks being blood-stained. 
- 
-Implementation of these features should be done as soon as possible on your server to prevent death.