From 95f8e03affb17b3b4dd8cff202523f5b131972df Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Sun, 5 Apr 2026 22:30:15 +0200 Subject: renfe: generate shapes properly and consistently - Update OSRM container to use ALL SPAIN (sorry, Trencelta) - Generate a shape per trip (no trying to reuse, since trains that change stop sequence got wrong shapes) - Add more position corrections for FEVE - Run separate generators for FEVE and Renfe, since sometimes OSRM would pick the one that shouldn't and generate a wrong shape - Add a debug script to generate a trip's visualisation from GTFS, since I was about to lose my mind debugging this pile of crap - Update README (before starting anything else) Time spent: ca. 6 hours Closes #1 --- build_renfe/Dockerfile | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'build_renfe/Dockerfile') diff --git a/build_renfe/Dockerfile b/build_renfe/Dockerfile index f565320..02a8480 100644 --- a/build_renfe/Dockerfile +++ b/build_renfe/Dockerfile @@ -1,25 +1,42 @@ # Use a multi-stage build to download necessary files FROM alpine/curl AS downloader -RUN curl -L https://download.geofabrik.de/europe/spain/galicia-latest.osm.pbf -o /galicia-latest.osm.pbf -RUN curl -L https://raw.githubusercontent.com/railnova/osrm-train-profile/refs/heads/master/basic.lua -o /opt/train.lua +RUN curl -L https://download.geofabrik.de/europe/spain-latest.osm.pbf -o /spain-latest.osm.pbf -FROM osrm/osrm-backend +FROM osrm/osrm-backend AS builder # Copy the downloaded OSM file from the downloader stage -COPY --from=downloader /galicia-latest.osm.pbf /data/galicia-latest.osm.pbf -COPY --from=downloader /opt/train.lua /opt/train.lua +RUN mkdir -p /data/standard /data/narrow +COPY --from=downloader /spain-latest.osm.pbf /data/standard/spain-latest.osm.pbf +COPY --from=downloader /spain-latest.osm.pbf /data/narrow/spain-latest.osm.pbf +COPY ./train_standard.lua /opt/train_standard.lua +COPY ./train_narrow.lua /opt/train_narrow.lua # Extract the map data using osrm-train-profile (by Railnova) -RUN osrm-extract -p /opt/train.lua /data/galicia-latest.osm.pbf +RUN osrm-extract -p /opt/train_standard.lua /data/standard/spain-latest.osm.pbf +RUN osrm-partition /data/standard/spain-latest.osrm # Prepare the map data for routing -RUN osrm-partition /data/galicia-latest.osrm -RUN osrm-customize /data/galicia-latest.osrm +RUN osrm-extract -p /opt/train_narrow.lua /data/narrow/spain-latest.osm.pbf +RUN osrm-partition /data/narrow/spain-latest.osrm + +RUN osrm-customize /data/standard/spain-latest.osrm +RUN osrm-customize /data/narrow/spain-latest.osrm + +RUN rm /data/standard/spain-latest.osm.pbf +RUN rm /data/narrow/spain-latest.osm.pbf + +FROM osrm/osrm-backend + +RUN mkdir -p /data/standard /data/narrow +COPY --from=builder /data/standard/spain-latest.osrm* /data/standard/ +COPY --from=builder /data/narrow/spain-latest.osrm* /data/narrow/ # Expose the OSRM server port -EXPOSE 5000 +EXPOSE 5000 5001 # Start the OSRM server -CMD ["osrm-routed", "--algorithm", "mld", "/data/galicia-latest.osrm"] - +COPY ./start.sh /start.sh +RUN chmod +x /start.sh +EXPOSE 5000 5001 +CMD ["/start.sh"] \ No newline at end of file -- cgit v1.3