Code Monkey home page Code Monkey logo

trainsplorer's Introduction

the trainsplorer (aka osm-signal)

Build Status IRC chat @ #trainsplorer on freenode IRC chat logs GNU AGPLv3 licensed

What is this?

This is an in-development project that processes Network Rail's Open Rail Data feeds - absorbing all sorts of information about train schedules, and keeping a record of current and historic live train data. The eventual end goal of the project is to link this information into OpenStreetMap geodata, in order to provide cool things like a live map of train locations (approximately, that is), predictions on level crossing opening & closing times, and the ability to find out which trains are going to pass any location on the railway at any given time. It's all written in Rust as well, because Rust is cool.

However, it's very much not done yet! Watch this space for further stuff! Also, feel free to join the chatroom (#trainsplorer on chat.freenode.net), if you'd like to discuss the project (or anything about trains in general, really). (We also keep logs for that chatroom, in case you're interested in seeing what we've been up to.)

What are all these moving parts?

This repository contains many individual Rust crates. Here's a short overview of what they do:

  • atoc-msn: parses the Master Station Names (MSN) file from the Rail Delivery Group's Industry Data dataset
  • ntrod-types: parses data from the Network Rail open data feeds, specifically the SCHEDULE, Train Movements, reference data, and VSTP feeds
  • osms-db: the main database library for the project; handles storing data into and retrieving data from a PostgreSQL database, as well as performing some other handy utility functions, such as navigating between two points on the railway
  • osms-db-setup: builds on osms-db, and contains a utility for loading data into the database in the first place
  • osms-nrod: connects to the Network Rail STOMP messaging service and the National Rail Enquiries Darwin feed, and processes real-time train data, storing it in the database using osms-db
  • osms-darwin: used for testing the Darwin feed
  • osms-web: a fancy webserver with lots of buttons to press that enables people to admire the wonderful collections of data in the database
  • doc: that's not a crate, that's a directory containing mostly incoherent design notes and the like

Can I have some screenshots?

Yes! That's what osms-web is for, after all. Here you go:

'search for trains' interface' movement search interface train details schedule details

Licensing

All crates in this repository are free software: you can redistribute them and/or modify them under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The atoc-msn, national-rail-departures, and ntrod-types crates are also licensed under Apache 2.0 and MIT terms. This means that you can use these crates (but only these crates) under AGPLv3, MIT, or Apache 2.0 at your option.

trainsplorer's People

Contributors

bors[bot] avatar dependabot-support avatar eeeeeta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

trainsplorer's Issues

geo_process_schedule is just wrong

  • It doesn't seem to handle navigation failures very gracefully - it should try with the next possible station instead of just giving up.
  • Departure/arrival actions should be matched up (starts_path on the dep, ends_path on the corresponding arr).

Seriously, when did this get rewritten into total garbage!?

osms-db-setup has multiple issues

  • It hangs after making all the ways, which is pretty bad (and might lead to frustrated operators).
  • The help instructions for setup tell you to run nrod after osm, which is entirely the wrong order.
  • The code's a bit of a mess.
  • The IRC notification thingie is dodgy as hell:
    • not all messages may get delivered, depending on when it exits
    • if it can't connect to IRC, the whole thing stops (!!!)
    • it's a bit spammy anyway

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.