Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[META] OSRD - NGE (NetzGrafik-Editor) #7534

Closed
17 of 47 tasks
louisgreiner opened this issue May 28, 2024 · 2 comments
Closed
17 of 47 tasks

[META] OSRD - NGE (NetzGrafik-Editor) #7534

louisgreiner opened this issue May 28, 2024 · 2 comments
Assignees
Labels
kind:meta We do not really have something like 'story' between task and epic. Use that if needed module:operational-studies Multi-train simulation with structured studies management

Comments

@louisgreiner
Copy link
Contributor

louisgreiner commented May 28, 2024

Description

NetzGrafik-Editor (NGE) is an open-source software that enables the creation, modification, and analysis of regular-interval timetable, at a macroscopic level of details, developped by SBB.

This feature is about integrating NGE in OSRD application, synchronizing both workspaces, allowing timetable edition at both microscopic and macroscopic level of details at the same time.

A Proof of Concept has been developped, see dedicated repository.

The PoC functionnalities are:

  • [OSRD -> NGE]
    • import infrastructure from OSRD to NGE (geographical coherence of the nodes that can be filtered by ch code)
    • import timetable from OSRD to NGE (only one way round trip trainruns) with OSRD pathfinding and running times
  • [NGE -> OSRD]
    • add / update / delete elements from timetable in NGE, synchronize changes in OSRD
    • propagate OSRD calculations (pathfinding and running times) in NGE again
  • [Viriato -> OSRD]
    • import an operational study from Viriato to OSRD/NGE (geographical coherence of the nodes that can be filtered by ch code and trainruns from train groups)

The following chart describes the workflow from the PoC:

---
title: Proof of Concept | OSRD - NGE workflow for synchronous workspaces
---
flowchart TD
    OSRD_data_source[OSRD as data source] -- import infra & timetable --> NGE;
    Viriato_data_source[Viriato as data source] -- import infra & train groups --> NGE
    subgraph synchronous_workspace[" "]
        NGE -- create, modify or delete trainruns --> NGE
        NGE -- export trainruns --> OSRD
        OSRD -- (re)calculate pathfindings and running times \n& create, modify or delete train schedules --> OSRD
        OSRD -- update model --> NGE
    end
Loading

The PoC works by running OSRD and NGE as separate services and not automated synchronization.

This would also show that open-source cooperation is powerful and a huge gain of time in software development. See front-end and back-end repositories for contributions.

Contacts: @louisgreiner (SNCF Réseau) - @aiAdrian (SBB CFF FFS)

OSRD - NGE Roadmap

PI9

  • Proof of Concept of the compatibility of OSRD and NGE

PI10


PI 11

Development:

Refinement:

  • Optional propagation of OSRD calculations
  • Optional nodes geographical position recalculation
  • Variants comparison
  • Origin / destination matrix
  • Import macroscopic timetable (Viriato)

PI 12

Development:

  • [OSRD/NGE] Optional propagation of OSRD calculations
  • [OSRD/NGE] Optional nodes geographical position recalculation
  • [NGE] Variants comparison
  • [NGE] Origin / destination matrix
  • [NGE] Import macroscopic timetable (Viriato)

Refinement:

  • Nodes filtering depending on level of detail + look for data on BV types (to enable filtering, level of detail) + UX/UI models/prototypes
  • Exportable train groups
  • Support user for minimal infrastructure creation + UX/UI models/prototypes

PI 13

Development:

  • [OSRD/NGE] Nodes filtering depending on level of detail
  • [OSRD] Exportable train groups

Refinement:

  • Support user for minimal infrastructure creation
  • Variants merging

PI 14

Development:

  • [Feature OSRD/NGE] Support user for minimal infrastructure creation
  • [Feature NGE] Variants merging

Refinement:


gantt
    title OSRD - NGE Gantt diagram
    dateFormat YYYY-MM-DD

    PI11                                           : pi11, 2024-06-17, until pi12
    Integration 1 (osrd-nge project)               : ticket-1, 2024-06-17, until s11-1
    NGE translation                                : ticket-5, 2024-06-17, until s11-1
    End sprint 1                                   : milestone, s11-1, 2024-06-28,
    Integration 2 (integrate in front)             : ticket-2, after s11-1, 2024-07-07
    Integration 3 (import scenario)                : ticket-3, 2024-06-17, until s11-4
    End sprint 2                                   : milestone, s11-2, 2024-07-12,
    Integration 4 (handle NGE actions)             : ticket-4, after s11-2, until s11-4
    End sprint 3                                   : milestone, s11-3, 2024-07-26,
    End sprint 4                                   : milestone, s11-4, 2024-08-09,
    Release NGE integration                        : ticket, after s11-4, until pi12

    PI12                                           : pi12, 2024-09-02, until pi13
    Optional propagation of OSRD calculations      : ticket-6, 2024-09-02, until s12-2
    Optional nodes geographical position recalculation: ticket-7, 2024-09-02, until s12-2
    Variants comparison                            : ticket-8, 2024-09-02, until s12-3
    Origin / destination matrix                    : ticket-9, 2024-09-02, until s12-3
    Import macroscopic timetable (Viriato)         : ticket-10, 2024-09-02, until s12-3
    End sprint 1                                   : milestone, s12-1, 2024-09-13,
    End sprint 2                                   : milestone, s12-2, 2024-09-27,
    End sprint 3                                   : milestone, s12-3, 2024-10-11,
    End sprint 4                                   : milestone, s12-4, 2024-10-25,

    PI13                                           : pi13, 2024-11-18, until pi14
    Nodes filtering depending on level of detail   : ticket-11, 2024-11-18, 28d
    Exportable train groups                        : ticket-12, 2024-11-18, 28d

    PI14                                           : pi14, 2025-01-01, 21d
    Support user for minimal infrastructure creation: ticket-13, 2025-01-01, 14d
    Variants merging                               : ticket-14, 2025-01-01, 14d
Loading

Future (potential) features

  • Different views available in NGE:
    • Restricted view: only nodes where any trainrun stops
    • Normal view: only nodes where any trainrun stops or passes by
    • Complete view: all nodes from infrastructure
  • Switch between point and node view for a node, without loss of information
    • can merge multiple points / nodes, and the associated trainrunSections
    • with minimal configuration if node is not defined
  • Implement different modes of use of NGE:
    • "Shared": normal mode (back-end and front-end enabled)
    • "Standalone": portable mode (back-end disabled, only front-end enabled)
    • "LocalStorage": webapp mode (back-end disabled, front-end enabled and persistance in browser cache)

Specific needs

  • Handle trains as group (describing their own paths and frequencies), export them on different scenarios (on different infrastructures, more or less permissively, if their nodes are not the same etc...)
  • Deactivate trains from their base frequency (only 7am, 8am, 11am etc...)
  • Different synchronizations (geographical realignment, running times and pathfinding recalculations)
  • Synchronize only selected / by zone the nodes or trains, not whole the scenario
  • Able to import from database:
    • nodes to add to current infrastructure
    • train families if the current infrastructure allows it
@aiAdrian
Copy link

Once the Netzgrafik-Editor is integrated into OSRD we shall check whether we have to change some Netzgrafik-Editor data structure to ensure that all component works as they are required for taktfahrtplan, especially editing, streckengrafik, ...

@louisgreiner louisgreiner added module:operational-studies Multi-train simulation with structured studies management kind:meta We do not really have something like 'story' between task and epic. Use that if needed labels May 30, 2024
@louisgreiner
Copy link
Contributor Author

Not relevant to keep it as issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:meta We do not really have something like 'story' between task and epic. Use that if needed module:operational-studies Multi-train simulation with structured studies management
Projects
None yet
Development

No branches or pull requests

2 participants