Ở Thụy Sĩ có một bản đồ thời gian thực hiển thị tàu hỏa và giao thông công cộng theo thời gian thực. Khi phóng to vào thành phố, bạn có thể xem giao thông công cộng theo thời gian thực, và còn tìm được cả thuyền
Bật/tắt các tùy chọn khác sẽ thấy được nhiều thông tin hơn nữa https://maps.trafimage.ch/ch.sbb.netzkarte?lang=en&baselayer...
Đây là một bản đồ rất hay và hữu ích để nắm sơ bộ quanh mình có bao nhiêu tàu tại một thời điểm nhất định, nhưng điều quan trọng là nó không phải dữ liệu vị trí thực tế
Có vẻ nó kết hợp lịch chạy tàu với độ trễ dự kiến để ước tính vị trí trên đường ray. Không rõ SBB muốn giữ chỉ báo trễ ở mức thấp, hay xem việc công khai dữ liệu thực là rủi ro bảo mật, nhưng đã nhiều lần tôi thấy nó trông như dữ liệu giả
Ví dụ, chuyến tàu tôi đi từng dừng vài phút giữa hai ga, nhưng trên bản đồ lại hiển thị như thể nó đã chạy tiếp qua vài ga kế tiếp; khi tàu bắt đầu chạy lại, ứng dụng hiển thị trễ 8 phút
Cũng nhiều lần tôi nhìn ra ngoài cửa sổ thấy tàu vừa vào ga, trong khi trên bản đồ nó đã có vẻ đang chạy giữa các ga
Công nghệ của Signalbox được nói là khớp các snapshot dữ liệu smartphone với dữ liệu quỹ đạo tàu để xác định thiết bị đang ở trên chuyến tàu nào
Việc dùng các thuật toán nâng cao vẫn hoạt động được ngay cả với dữ liệu bị hỏng nặng, và có thể xác định smartphone đang ở loại tàu nào mà không cần theo dõi vị trí nền hay phần cứng, là một cách làm khá thú vị
Theo kinh nghiệm thì nó hoạt động khá tốt. Đứa con 7 tuổi của tôi thích ngắm tàu, nên tôi thường dùng bản đồ này để xem khi nào tàu sẽ chạy qua
Không hoàn hảo, nhưng khá ổn
Tôi tò mò không biết ứng dụng nào luôn được cho phép truy cập vị trí và đang gửi dữ liệu đó cho họ
Hay thật. Tôi vốn thích bản đồ nên rất dễ bị cuốn hút, nhưng khi kiểm tra lúc 4:41 chiều PDT, tức 12:41 sáng giờ London, thì quanh London có cực kỳ nhiều tàu
Giờ đó mọi người đi tàu để làm gì vậy?
[Sửa: thêm PM]
carto.tchoo không cung cấp vị trí thực tế theo thời gian thực. Nó chỉ truy cập thông tin khởi hành, dừng, trễ và hủy chuyến, rồi nội suy vị trí dựa trên đó
Vì vậy nếu tàu chạy với nửa tốc độ hoặc đang dừng mà chưa bị ghi nhận là trễ chính thức, vị trí sẽ không khớp với thực tế
Tiêu đề khá quan trọng. Nếu không có chữ real-time, bài này có lẽ cũng đã không được chú ý tương tự
Nếu điều thú vị là số lượt upvote, thì nghĩa là có nhiều người quan tâm đến mạng lưới đường sắt Anh hơn mạng lưới đường sắt Pháp, và đó là câu chuyện về thành phần dân số
Hoặc điểm mấu chốt có thể là bản của Anh là thời gian thực còn bản của Pháp thì không. Tôi phóng to lên cũng không thấy có gì chuyển động
Cũng không có gì đáng ngạc nhiên. Hễ liên quan đến đường sắt thì bất cứ thứ gì thuộc bản Pháp luôn hoàn thiện hơn bản Anh
Sẽ hay hơn nếu có phần giải thích kỹ thuật, thay vì chỉ là một bản đồ giao thông công cộng nữa https://vgcgroup.co.uk/news/signalbox-for-train-locations/
Xem bài này thì dữ liệu chủ yếu đến từ thông tin tín hiệu đường sắt, và có vẻ “AI” được đưa vào phần nào đó. Tôi tò mò khoảng cách giữa các tín hiệu đường sắt thường là bao nhiêu, AI được huấn luyện bằng gì, và những nội dung vượt ra ngoài việc chỉ xem bản đồ
Tôi từng thử làm thứ như thế này, và câu trả lời là khó
Có một hàng đợi thông điệp có thể xác định vị trí được báo cáo gần nhất của tàu. Tùy theo tuyến, có thể tạo một bản đồ thời gian thực khá chính xác, nhưng trước tiên phải tham chiếu địa lý tất cả mã định danh vị trí sang tọa độ đông/bắc
Tuy nhiên, nhiều tuyến chỉ báo cáo lần di chuyển cuối cùng tại điểm dừng ở ga. Chủ yếu là các tuyến địa phương, nên cách tiếp cận tốt nhất có vẻ là xây dựng một dạng mạng định vị suy đoán có tính đến loại tàu và mức sử dụng mạng lưới
Khoảng cách giữa các tín hiệu đường sắt thay đổi rất nhiều tùy theo nhiều yếu tố: cách vận hành tín hiệu, giãn cách chạy tàu mong muốn, tốc độ khai thác tối đa, quãng đường phanh dịch vụ của đoàn tàu ở tốc độ tuyến, bố trí đường ray ảnh hưởng đến an toàn như ghi đường sắt, số đèn màu của tín hiệu, khoảng cách nhìn thấy tín hiệu, việc tầm nhìn tín hiệu có bị ảnh hưởng bởi chói nắng hay không, v.v.
Hơn nữa, điều này còn giả định đoạn tuyến đó thực sự dùng tín hiệu bên đường. Phần lớn mạng lưới là như vậy, nhưng cũng có khá nhiều ngoại lệ dùng tín hiệu trong buồng lái hoặc điều khiển tàu dựa trên máy tính
Không liên quan gì đến trang web đó, nhưng trên các đoạn tuân theo nguyên tắc phân khu bằng mạch điện đường ray, “thông tin tín hiệu” mà bài viết nói tới gần như chắc chắn là nguồn Train Describer của Network Rail. Nguồn này báo cáo headcode cho các berth tín hiệu trong sơ đồ đường ray, và hệ thống tín hiệu tự động chuyển headcode khi tàu kích hoạt các mạch điện đường ray liên tiếp hoặc đi qua bộ đếm trục
Train Describer chỉ có thể báo cáo headcode bên trong berth, mà berth có thể khá dài. Nó không cung cấp tiến trình tàu theo từng giây, nên nhiều khả năng công cụ lập bản đồ của trang này đang tự nội suy để khiến ký hiệu vị trí tàu trông như đang “di chuyển” theo thời gian thực. Dù thuật toán hay đầu vào mô hình là gì, gọi nó là “AI” thì tính cụ thể về kỹ thuật sẽ biến mất
Nếu tôi thiết kế, tôi có lẽ sẽ kết hợp hạng tàu, loại phương tiện và tốc độ tuyến để ước tính vị trí hiện tại trong phân khu đó. Rồi phải đưa ra quyết định sản phẩm: khi tính sai vị trí thì để biểu tượng tàu trên bản đồ nhảy giật cục, hay làm mượt để hấp thụ sai số dần qua đoạn tiếp theo nhằm tránh dịch chuyển đột ngột
Ở các khu vực khác, vị trí tàu có thể được báo cáo bằng GPS trên phương tiện được trang bị, còn một số nơi việc tàu đi qua lại phụ thuộc vào báo cáo thủ công của nhân viên tín hiệu, nên có thể không có nhiều dữ liệu để suy luận vị trí thời gian thực trên bản đồ. Việc lấy được nhiều dữ liệu thời gian thực chính xác từ ứng dụng smartphone nghe rất khó xảy ra, nhưng có thể dùng như đầu vào nhiễu và không hoàn chỉnh để cải thiện mô hình về cách một đoàn tàu thường đi qua một berth cụ thể
Cũng có bản đồ cho mạng lưới đường sắt Séc. Đây là một trong những mạng dày đặc nhất thế giới, thậm chí có thể là dày đặc nhất: https://grapp.spravazeleznic.cz
Tất nhiên cũng có bản Slovakia, và trải nghiệm người dùng tốt hơn nhiều https://mapa.zsr.sk/index.aspx
Bản Ba Lan, giống như mạng lưới đường sắt của họ, vẫn có cảm giác tụt lại một hai thế hệ. Dù vậy cũng phải nói là họ đang đầu tư lớn để bắt kịp https://portalpasazera.pl/MapaPociagow
Khoan đã, trên các bản đồ này chẳng có con tàu nào cả!
Trước đây tôi có tìm hiểu một chút về GTFS(gtfs.org). Đây là định dạng feed dữ liệu dùng cho cả lịch trình và cập nhật thời gian thực, dựa trên protobuf, và được các trang như thế này sử dụng rộng rãi
Phần lớn feed vị trí GTFS cần API key, nhưng cũng có vài nơi chia sẻ công khai cập nhật vị trí thực tế
Các dịch vụ như Google Maps cũng dùng cách này khi tích hợp thông tin lịch trình giao thông công cộng. Chỉ cần có quyền truy cập thì bản thân việc tạo bản đồ bằng cập nhật thời gian thực là tương đối đơn giản
GTFS được dùng rộng rãi và “chuẩn hóa”, nhưng đi vào chi tiết thực tế thì khá là vùng vô pháp
Trong 2 năm làm dự án cá nhân lúc rảnh là http://mobility-bot.com/, tôi đã parse feed thông báo GTFS của một số nhà cung cấp, và hầu như nhà cung cấp nào cũng cần làm sạch dữ liệu trong pipeline. Cần các việc như sửa lỗi Unicode, ánh xạ lại ID tuyến và cơ quan, viết lại để tiêu đề và mô tả không giống hệt nhau
Ngoài ra còn phải quan sát và thu thập dữ liệu theo thời gian để có một corpus dùng khái quát hóa các quy tắc parse và làm sạch
Việc hầu hết các dự án kiểu này tập trung vào một nhà cung cấp hoặc một nhóm nhỏ nhà cung cấp có liên quan là lựa chọn khôn ngoan. Ngay khi thử tổng hợp nhiều nguồn, vấn đề trở nên khó hơn rất nhiều
Có vẻ như bản đồ này chỉ hiển thị đường sắt mặt đất tiêu chuẩn. Nếu thêm cả mạng lưới đường sắt đô thị như London Underground hay đường sắt nhẹ, tram ở Manchester thì ít nhất sẽ có thêm vài trăm phương tiện nữa
Bản đồ cũng có cả Tyne and Wear Metro ở vùng Đông Bắc nước Anh. Dù chưa hoàn hảo, nhưng trong số các công cụ theo dõi tàu theo thời gian thực mà tôi từng thấy, đây chắc chắn là cái hữu ích nhất
Ở Anh có khá nhiều hệ thống đường sắt không thực sự ăn khớp với nhau, và chất lượng cũng như mức độ hữu dụng của các ứng dụng cũng rất khác nhau
1 bình luận
Ý kiến trên Hacker News
Ở Thụy Sĩ có một bản đồ thời gian thực hiển thị tàu hỏa và giao thông công cộng theo thời gian thực. Khi phóng to vào thành phố, bạn có thể xem giao thông công cộng theo thời gian thực, và còn tìm được cả thuyền
Bật/tắt các tùy chọn khác sẽ thấy được nhiều thông tin hơn nữa
https://maps.trafimage.ch/ch.sbb.netzkarte?lang=en&baselayer...
Có vẻ nó kết hợp lịch chạy tàu với độ trễ dự kiến để ước tính vị trí trên đường ray. Không rõ SBB muốn giữ chỉ báo trễ ở mức thấp, hay xem việc công khai dữ liệu thực là rủi ro bảo mật, nhưng đã nhiều lần tôi thấy nó trông như dữ liệu giả
Ví dụ, chuyến tàu tôi đi từng dừng vài phút giữa hai ga, nhưng trên bản đồ lại hiển thị như thể nó đã chạy tiếp qua vài ga kế tiếp; khi tàu bắt đầu chạy lại, ứng dụng hiển thị trễ 8 phút
Cũng nhiều lần tôi nhìn ra ngoài cửa sổ thấy tàu vừa vào ga, trong khi trên bản đồ nó đã có vẻ đang chạy giữa các ga
Công nghệ của Signalbox được nói là khớp các snapshot dữ liệu smartphone với dữ liệu quỹ đạo tàu để xác định thiết bị đang ở trên chuyến tàu nào
Việc dùng các thuật toán nâng cao vẫn hoạt động được ngay cả với dữ liệu bị hỏng nặng, và có thể xác định smartphone đang ở loại tàu nào mà không cần theo dõi vị trí nền hay phần cứng, là một cách làm khá thú vị
Không hoàn hảo, nhưng khá ổn
Trong khi đó, tàu liên thành phố ở Mỹ, nếu ra khỏi Northeast Corridor, thì ở tình trạng khá đáng buồn
https://asm.transitdocs.com/
https://amtraker.com/map
Hay thật. Tôi vốn thích bản đồ nên rất dễ bị cuốn hút, nhưng khi kiểm tra lúc 4:41 chiều PDT, tức 12:41 sáng giờ London, thì quanh London có cực kỳ nhiều tàu
Giờ đó mọi người đi tàu để làm gì vậy?
[Sửa: thêm PM]
Bản của Pháp cũng đáng xem: https://carto.tchoo.net
Trông có vẻ hoàn thiện hơn. Một bài HN tương tự trước đây không được chú ý, nên việc bản của Anh lên top khá thú vị
https://news.ycombinator.com/item?id=45249351
Vì vậy nếu tàu chạy với nửa tốc độ hoặc đang dừng mà chưa bị ghi nhận là trễ chính thức, vị trí sẽ không khớp với thực tế
Hoặc điểm mấu chốt có thể là bản của Anh là thời gian thực còn bản của Pháp thì không. Tôi phóng to lên cũng không thấy có gì chuyển động
Sẽ hay hơn nếu có phần giải thích kỹ thuật, thay vì chỉ là một bản đồ giao thông công cộng nữa
https://vgcgroup.co.uk/news/signalbox-for-train-locations/
Xem bài này thì dữ liệu chủ yếu đến từ thông tin tín hiệu đường sắt, và có vẻ “AI” được đưa vào phần nào đó. Tôi tò mò khoảng cách giữa các tín hiệu đường sắt thường là bao nhiêu, AI được huấn luyện bằng gì, và những nội dung vượt ra ngoài việc chỉ xem bản đồ
Có một hàng đợi thông điệp có thể xác định vị trí được báo cáo gần nhất của tàu. Tùy theo tuyến, có thể tạo một bản đồ thời gian thực khá chính xác, nhưng trước tiên phải tham chiếu địa lý tất cả mã định danh vị trí sang tọa độ đông/bắc
Tuy nhiên, nhiều tuyến chỉ báo cáo lần di chuyển cuối cùng tại điểm dừng ở ga. Chủ yếu là các tuyến địa phương, nên cách tiếp cận tốt nhất có vẻ là xây dựng một dạng mạng định vị suy đoán có tính đến loại tàu và mức sử dụng mạng lưới
Hơn nữa, điều này còn giả định đoạn tuyến đó thực sự dùng tín hiệu bên đường. Phần lớn mạng lưới là như vậy, nhưng cũng có khá nhiều ngoại lệ dùng tín hiệu trong buồng lái hoặc điều khiển tàu dựa trên máy tính
Không liên quan gì đến trang web đó, nhưng trên các đoạn tuân theo nguyên tắc phân khu bằng mạch điện đường ray, “thông tin tín hiệu” mà bài viết nói tới gần như chắc chắn là nguồn Train Describer của Network Rail. Nguồn này báo cáo headcode cho các berth tín hiệu trong sơ đồ đường ray, và hệ thống tín hiệu tự động chuyển headcode khi tàu kích hoạt các mạch điện đường ray liên tiếp hoặc đi qua bộ đếm trục
Train Describer chỉ có thể báo cáo headcode bên trong berth, mà berth có thể khá dài. Nó không cung cấp tiến trình tàu theo từng giây, nên nhiều khả năng công cụ lập bản đồ của trang này đang tự nội suy để khiến ký hiệu vị trí tàu trông như đang “di chuyển” theo thời gian thực. Dù thuật toán hay đầu vào mô hình là gì, gọi nó là “AI” thì tính cụ thể về kỹ thuật sẽ biến mất
Nếu tôi thiết kế, tôi có lẽ sẽ kết hợp hạng tàu, loại phương tiện và tốc độ tuyến để ước tính vị trí hiện tại trong phân khu đó. Rồi phải đưa ra quyết định sản phẩm: khi tính sai vị trí thì để biểu tượng tàu trên bản đồ nhảy giật cục, hay làm mượt để hấp thụ sai số dần qua đoạn tiếp theo nhằm tránh dịch chuyển đột ngột
Ở các khu vực khác, vị trí tàu có thể được báo cáo bằng GPS trên phương tiện được trang bị, còn một số nơi việc tàu đi qua lại phụ thuộc vào báo cáo thủ công của nhân viên tín hiệu, nên có thể không có nhiều dữ liệu để suy luận vị trí thời gian thực trên bản đồ. Việc lấy được nhiều dữ liệu thời gian thực chính xác từ ứng dụng smartphone nghe rất khó xảy ra, nhưng có thể dùng như đầu vào nhiễu và không hoàn chỉnh để cải thiện mô hình về cách một đoàn tàu thường đi qua một berth cụ thể
Cũng có bản đồ cho mạng lưới đường sắt Séc. Đây là một trong những mạng dày đặc nhất thế giới, thậm chí có thể là dày đặc nhất: https://grapp.spravazeleznic.cz
https://mapa.zsr.sk/index.aspx
Bản Ba Lan, giống như mạng lưới đường sắt của họ, vẫn có cảm giác tụt lại một hai thế hệ. Dù vậy cũng phải nói là họ đang đầu tư lớn để bắt kịp
https://portalpasazera.pl/MapaPociagow
Một ứng dụng hay với các tính năng hữu ích
Đây là bản đồ tàu giá rẻ ở Anh mà tôi làm
https://www.map.signalbox.io/?location=@52.86376,-2.32537,4....
Và đây là bản đồ tàu ở Anh, tuy là “công ty tư nhân” nhưng không nhận trợ cấp
https://www.map.signalbox.io/?location=@52.86376,-2.32537,4....
Lại còn là bản đồ tàu cung cấp được thứ tạm gọi là thông gió nhờ thực tế là nó lao nhanh xé gió
https://www.map.signalbox.io/?location=@52.86376,-2.32537,4....
Trước đây tôi có tìm hiểu một chút về GTFS(gtfs.org). Đây là định dạng feed dữ liệu dùng cho cả lịch trình và cập nhật thời gian thực, dựa trên protobuf, và được các trang như thế này sử dụng rộng rãi
Phần lớn feed vị trí GTFS cần API key, nhưng cũng có vài nơi chia sẻ công khai cập nhật vị trí thực tế
Các dịch vụ như Google Maps cũng dùng cách này khi tích hợp thông tin lịch trình giao thông công cộng. Chỉ cần có quyền truy cập thì bản thân việc tạo bản đồ bằng cập nhật thời gian thực là tương đối đơn giản
Trong 2 năm làm dự án cá nhân lúc rảnh là http://mobility-bot.com/, tôi đã parse feed thông báo GTFS của một số nhà cung cấp, và hầu như nhà cung cấp nào cũng cần làm sạch dữ liệu trong pipeline. Cần các việc như sửa lỗi Unicode, ánh xạ lại ID tuyến và cơ quan, viết lại để tiêu đề và mô tả không giống hệt nhau
Ngoài ra còn phải quan sát và thu thập dữ liệu theo thời gian để có một corpus dùng khái quát hóa các quy tắc parse và làm sạch
Việc hầu hết các dự án kiểu này tập trung vào một nhà cung cấp hoặc một nhóm nhỏ nhà cung cấp có liên quan là lựa chọn khôn ngoan. Ngay khi thử tổng hợp nhiều nguồn, vấn đề trở nên khó hơn rất nhiều
Có vẻ như bản đồ này chỉ hiển thị đường sắt mặt đất tiêu chuẩn. Nếu thêm cả mạng lưới đường sắt đô thị như London Underground hay đường sắt nhẹ, tram ở Manchester thì ít nhất sẽ có thêm vài trăm phương tiện nữa
Ở Anh có khá nhiều hệ thống đường sắt không thực sự ăn khớp với nhau, và chất lượng cũng như mức độ hữu dụng của các ứng dụng cũng rất khác nhau