|
| 1 | +# Finland Digitraffic Rail Live Smoke 2026-05-31 |
| 2 | + |
| 3 | +## Scope |
| 4 | + |
| 5 | +Implemented and deployed the Phase 5 Digitraffic Rail live-trains publisher for Finland. |
| 6 | + |
| 7 | +Source endpoints: |
| 8 | + |
| 9 | +```text |
| 10 | +https://rata.digitraffic.fi/api/v1/train-locations/latest/ |
| 11 | +https://rata.digitraffic.fi/api/v1/live-trains |
| 12 | +``` |
| 13 | + |
| 14 | +No API key is required. |
| 15 | + |
| 16 | +## Local Verification |
| 17 | + |
| 18 | +Command: |
| 19 | + |
| 20 | +```text |
| 21 | +py -3 -m publishers.digitraffic_rail_trains.digitraffic_rail_trains_publisher --dry-run --once |
| 22 | +``` |
| 23 | + |
| 24 | +Result: |
| 25 | + |
| 26 | +```text |
| 27 | +Received 80 train positions from Digitraffic Rail |
| 28 | +Cycle complete: 80 published, 0 skipped, 0 errors |
| 29 | +``` |
| 30 | + |
| 31 | +## Live Bootstrap |
| 32 | + |
| 33 | +Bootstrap command on Oracle host: |
| 34 | + |
| 35 | +```text |
| 36 | +python3 -m publishers.digitraffic_rail_trains.bootstrap_digitraffic_rail_trains --force-sml |
| 37 | +``` |
| 38 | + |
| 39 | +Created resources: |
| 40 | + |
| 41 | +| Resource | ID | |
| 42 | +| --- | --- | |
| 43 | +| Procedure `urn:os4csapi:procedure:digitraffic-rail-trains:v1` | `04j0` | |
| 44 | +| System `urn:os4csapi:system:digitraffic-rail-trains-feed:v1` | `067g2` | |
| 45 | +| Datastream `digitrafficRailTrainPosition` | `07i02` | |
| 46 | +| Root deployment `urn:os4csapi:deployment:digitraffic-rail-trains-demo:v1` | `06j02` | |
| 47 | +| Feed deployment `urn:os4csapi:deployment:digitraffic-rail-trains-feed:v1` | `06jg2` | |
| 48 | + |
| 49 | +SensorHub returned HTTP 500 during the system SensorML PUT, matching the known SensorHub quirk where resource persistence can still succeed. The system and datastream were verified afterward through the public proxy. |
| 50 | + |
| 51 | +## Live Publish |
| 52 | + |
| 53 | +One manual publish cycle on the Oracle host succeeded: |
| 54 | + |
| 55 | +```text |
| 56 | +Connected: sys=067g2 ds=07i02 |
| 57 | +Received 80 train positions from Digitraffic Rail |
| 58 | +Cycle complete: 80 published, 0 skipped, 0 errors |
| 59 | +``` |
| 60 | + |
| 61 | +Persistent service installed and started: |
| 62 | + |
| 63 | +```text |
| 64 | +digitraffic-rail-trains-publisher.service |
| 65 | +``` |
| 66 | + |
| 67 | +Service log verification: |
| 68 | + |
| 69 | +```text |
| 70 | +Active: active (running) |
| 71 | +Connected: sys=067g2 ds=07i02 |
| 72 | +Received 80 train positions from Digitraffic Rail |
| 73 | +Cycle complete: 80 published, 0 skipped, 0 errors |
| 74 | +``` |
| 75 | + |
| 76 | +## Public Proxy Verification |
| 77 | + |
| 78 | +Verified through: |
| 79 | + |
| 80 | +```text |
| 81 | +https://ogc-csapi-explorer.pages.dev/api/osh |
| 82 | +``` |
| 83 | + |
| 84 | +Representative latest observation response: |
| 85 | + |
| 86 | +| Field | Value | |
| 87 | +| --- | --- | |
| 88 | +| System ID | `067g2` | |
| 89 | +| System name | `Digitraffic Rail Live Trains Feed - Finland` | |
| 90 | +| Datastream ID | `07i02` | |
| 91 | +| Datastream output | `digitrafficRailTrainPosition` | |
| 92 | +| Sample train | `11190` | |
| 93 | +| Sample category | `Locomotive` | |
| 94 | +| Sample operator | `vr` | |
| 95 | +| Sample timestamp | `2026-05-31T08:12:22Z` | |
| 96 | + |
| 97 | +## Notes |
| 98 | + |
| 99 | +The publisher uses a Finland-wide bounding box and caps each cycle at 80 train positions to avoid overwhelming the Explorer map while keeping the source explicitly Finnish. |
0 commit comments