Sceneria/Kaliska/Etap 3
Etap 2 został zawieszony ze względu na wykrycie błędów w zaokrągleniach współrzędnych torów, a także braków sieci i sygnalizacji na południowym odcinku w opublikowanych plikach (obiekty te były obecne we wcześniejszych paczkach, sprzed obrócenia o 180° w Etapie 1). Wykryte też zostały drobne błędy na linii 131, wymagające ręcznych poprawek (słupy w torach). Wobec tego dalsze automatyczne przeliczenia scenerii uzyskanej w Etapie 2 nie mają sensu, gdyż jedynie utrudnią dokonanie poprawek. Etap 3 będzie bazował na plikach zgodnych z Etapem 1, czyli po obróceniu całości o 180° w osi pionowej.
Spis treści
- 1 Cele etapu
- 2 Regeneracja współrzędnych
- 2.1 Koncepcja rozwiązania
- 2.2 Regeneracja wektorów kontrolnych
- 2.3 Ustawianie linii kierunkowych
- 2.4 Parametry łuków
- 2.5 Korekta długości odcinków prostych
- 2.6 Naprawa rozmiarów kozłów
- 2.7 Konkluzja na podstawie dotychczasowych rezultatów
- 2.8 Wyłączone przywracanie łączenia prostego z łukiem
- 2.9 Porównanie z Wariantem F Etapu 2
- 2.10 Podsumowanie
- 3 Koncepcja przeliczenia do map
- 4 Warianty zakończenia etapu
- 5 Rezultaty prac
- 6 Synchronizacja prac niezależnych
- 7 Zamknięcie etapu
Cele etapu
Głównym celem Etapu 3 jest dalsze wykonanie prac porządkujących. Poza ulepszeniami opisanymi w Etapie 2 (Wariant A), podjęta ma być próba odtworzenia współrzędnych torów przed ich zaokrągleniem. Operacja ta powinna poprawić wrażenia z jazdy, w szczególności przez głowice w skrajnych stacjach, jednocześnie być mniej pracochłonna niż ponowne narysowanie torów. Po osiągnięciu zadowalających rezultatów sceneria będzie mogła być obrócona wg Wariantu F z Etapu 2, albo przeliczona w inny sposób.
Kwestia zaokrągleń współrzędnych
Podczas wyznaczania środków łuków do wykonania obrotów fragmentów scenerii (Wariant D z Etapu 2) okazało się, że w większości przypadków współrzędne końców torów w łuku są zaokrąglone do wielokrotności 0.1m (100mm). Jest to zbyt duże zaokrąglenie, jak na potrzeby symulacji — podczas tworzenia scenerii w Rainsted nawet zaokrąglenie do 0.001m (1mm) dawało problematyczne rezultaty w niektórych przypadkach. Dodatkowe obserwacje wykazały, że zaokrąglenie do 0.1m (100mm) dotyczy współrzędnych przekraczających ±10km, natomiast współrzędne pomiędzy 1km a 10km są zaokrąglone do 0.01m (10mm). Również współrzędne przekraczające ±100km są zaokrąglone do 1m (1000mm). Oznacza to, że współrzędne końców torów są zmiennoprzecinkowe, tzn. mają (tylko) 6 cyfr znaczących. Widoczne też jest to podczas symulacji, w postaci "połamanych" torów na głowicach rozjazdowych, a "połamanie" nie wynika (prawdopodobnie) z niedokładnego ułożenia torów w programie 3DS Max, ale z zaokrąglenia współrzędnych podczas tworzenia pliku SCM.
Wskazane by było opracowanie i uruchomienie algorytmu, który potraktowałby końce odcinków jako liczby zaokrąglone i próbował odtworzyć wartości bardziej dokładne na podstawie współliniowości (regresja liniowa). Algorytm powinien być raczej wykonany na plikach z Etapu 1 (albo 2A), ponieważ tam wiadomo na podstawie wartości współrzędnej, jakie jest jej zaokrąglenie.
Ponieważ wektory kierunkowe odcinków torów są zapisane z dosyć dużą dokładnością, prawdopodobnie mogą one być użyte do odtworzenia współrzędnych sprzed ich zaokrąglenia. Dodatkową informacją jest długość odcinka, wyliczona często z dokładnością 0.1mm. W zasięgu ±1km od OXZ znajdują się dwa łuki i dwa odcinki proste, co daje dokładność 1mm dla współrzędnych. Nie ma odcinków, których obie współrzędne mieściłyby się w zakresie ±100m (dokładność 0.1mm), jednak jest co najmniej kilkanaście odcinków, dla których przynajmniej jedna współrzędna mieści się w tym zakresie.
Podniesienie całości o stałą wartość
Wstępne przymiarki do profilu pionowego wykazały, że największe przewyższenie (około 50m) ma linia 146 (Chorzew Siemkowice – Wyczerpy), a pozostałe odcinki są w okolicy wysokości 190m (Łódź Kaliska: 199m, Zduńska Wola: 178m, Chorzew Siemkowice: 190m). Podniesienie całości na raz mogłoby w przyszłości usprawnić etapowe dodawanie profilu pionowego.
Ponieważ jednym z rozważanych kierunków rozwoju jest wydzielenie południowych torów (LK131) do ulepszenia edytorem RSF, jedną z "dobrych" wysokości będzie wartość zbliżona do wysokości w miejscu łączenia. Wstępnie rozważane są dwa miejsca, określone w PUWG 1992 współrzędną X=409000 oraz X=410000. Wysokości torów w tych miejscach to około 168.7 oraz 169.4 [m n.p.m.]. Ostateczne miejsce łączenia będzie wybrane po szczegółowym zapoznaniu się z trasą w tych punktach (np. łączenie nie powinno wypadać na łuku pionowym, a miejsca załomów profilu pionowego nie zostały jeszcze ustalone). Bardziej dokładna wartość zostanie wyliczona po zakotwieniu niwelety do punktów o potwierdzonym kilometrażu oraz naniesieniu profilu pionowego, a korekta o kilkadziesiąt centymetrów nie będzie mocno zauważalna.
Dodanie 169 do wysokości zostało uruchomione jako opcja (zaptaszenie) w menu Operacje. Zmianę wysokości można zatem wykonać razem z przeliczaniem do map (niezależnie od wybranego wariantu), jak również niezależnie — na plikach przed przeliczaniem albo już po przeliczeniu.
Odcięcie LK146
Możliwe jest odcięcie linii kolejowej 146 pomiędzy stacją Chorzew Siemkowice a stacją Rząsawa do dalszego przetwarzania w osobnym procesie. Linia mogłaby być następnie usunięta z pierwotnych plików na rzecz dołączania przerobionego odcinka. Ze względu na niską jakość LK146 (brak terenu i otoczenia) można by w miarę szybko wprowadzić ulepszenia przy pomocy edytora RSF (naliczenie kilometrażu, dodanie profilu pionowego, dodanie podtorza wszytego w teren NMT-100, dodanie ścian lasów) bez czekania na algorytmy przeliczeniowe dla pozostałej części.
Odcięcie LK131
Na południe od stacji Zduńska Wola Karsznice można by odciąć linię kolejową 131, i podobnie jak 146 przeprowadzić ulepszenia edytorem RSF, a usunąć ten odcinek z pierwotnych plików. Niemniej wyzwaniem może być ponowne podłączenie trasy do stacji Zduńska Wola Karsznice. Jednym z rozwiązań może być wydzielenie Zduńskiej Woli (odcięcie pozostałych torów), ewentualnie odcięcie może objąć mniejszy obszar, aby do minimum ograniczyć konflikt z pracą innych autorów.
Przebudowa Zduńskiej Woli
Opcją do rozważenia może być przebudowa Zduńskiej Woli. Pliki scenerii zostałyby podzielone na trzy części pomiędzy Zduńską Wolą a sąsiednimi stacjami. Obiekty środkowej części zostałyby dostosowane do map i ulepszone w osobnym procesie. Zewnętrzne części zostałyby jedynie obrócone i przesunięte, aby dopasować się do zmian w środkowej części. Z założenia zmiany w środkowej części miałyby być alternatywą do dostosowania od razu całości do map i mniej lub bardziej rozwiązaniem kwestii nieprawidłowego umiejscowienia stacji Zduńska Wola Karsznice. Zduńska Wola mogłaby funkcjonować niezależnie od trasy Łódź — Ostrów Wlkp. jako połączenie z Częstochową, a dostosowanie i dołączenie torów do Łodzi oraz Ostrowa Wlkp. można by wykonać później.
Pozostałe możliwe zmiany
Zaproponowane zmiany nie mają na celu poprawienia detali w scenerii, ale opracowanie i ulepszenie algorytmów, umożliwiających ulepszenie scenerii. Samo ich uruchomienie może być wykonane w dowolnym czasie, o ile tylko dopilnowane będzie sprawdzenie poprawności po wykonaniu algorytmu.
- Sortowanie sieci trakcyjnej (ułożenie przęseł w jednym kierunku, potrzebne w razie przeniesienia do RSF). Dostępny dotychczas algorytm wymaga wyszukania sekcji z zaburzoną kolejnością, a następnie ręcznego ustalenia kierunku przęseł. Zwykle jedno przęsło w naprężaniu jest odwrócone. Zalecane jest ukierunkowanie przęseł zgodnie ze wzrostem kilometrażu (jako ogólna zasada ułatwiająca porządki). Na stacjach węzłowych sieć ustawiamy zgodnie ze wzrostem kilometrażu dla linii o najmniejszym numerze, a ewentualna zmiana kierunku dla linii zaczyna się na najbliższym naprężaniu na zewnątrz semaforów wjazdowych.
- Poprawki nazewnictwa rozjazdów oraz semaforów (wg schematów stacji, plus unikalne przedrostki). Jest zrobiona obsługa zasięgu nazewnictwa, która weryfikuje przedrostki. Po przeniesieniu do RSF można dosyć sprawnie ponadawać numerację rozjazdom, uzyskując następnie plik INI z listą zmian.
- Dodanie odcinków izolowanych na stacjach. Można wykonać zarówno edytorem SCM albo RSF. Wymagane jest wcześniejsze uporządkowanie nazewnictwa rozjazdów (przedrostek stacji, podkreślenie, numer rozjazdu).
- Grupowanie odcinków izolowanych rozjazdów i utworzenie skryptów sterujących. Wymagane jest wcześniejsze uporządkowanie nazewnictwa rozjazdów.
- Zmiana profili podsypki na 2-5-13.
- Wydzielenie napędów rozjazdów. Algorytm w edytorze SCM potrafi rozdzielić "podsypki z napędem" na osobne wpisy podsypek i osobne napędów, wg wytycznych z 2017 roku. Wymaga to następnie przetestowania misji. Mogą być wymagane zmiany w sterowaniu (zamiana "+ " na ":- " oraz "- " na ":+ ", z pomocniczą wartością przejściową).
- Korekta rozjazdów krzyżowych (położenie "a" względem "b", skierowanie odcinków punktem 1 do iglic), wymiana zwrotników. Potrzebne będą zmiany w sterowaniu misji, być może dodanie ustawienia rozjazdów, dla których wcześniej było wykorzystane położenie domyślne. Rezultaty trzeba przetestować.
Regeneracja współrzędnych
Algorytm odtworzenia współrzędnych powinien wykonywać rozpoznanie:
- Linii prostych.
- Łuków wpisanych w kąt tworzony prostymi.
- Linii równoległych (prostych i łuków).
- Poszerzeń torów.
- Rozjazdów i kierunków skośnych.
Dla każdej z powyższych kategorii powinien utworzyć listę współrzędnych oryginalnych i skorygowanych oraz równanie dopasowujące. Następnie dopasowanie powinno być ocenione, czy równie dobrze zgadza się w zakresie innej kategorii. Może się okazać, że poprawę współrzędnych uda się uzyskać jedynie na niektórych obszarach scenerii.
Koncepcja rozwiązania
Plan jest taki, aby tory przenieść do RSF i zapisać dwie ich kopie w osobnych warstwach. Jedna warstwa będzie korygowana i eksportowana, natomiast druga będzie służyła do wyliczenia zmian współrzędnych. Wyliczenia pomocnicze (równania linii, środki okręgów) będzie można zapisać jako linie kierunkowe oraz parametry łuków. Użycie obiektów z RSF będzie wygodniejsze niż tworzenie specjalnych struktur do zapisania parametrów równań (tzn. na potrzeby obiektów wczytanych z SCM). Przypisania torów do linii kierunkowych będzie można użyć następnie do przeliczenia obiektów niweletami.
W Rainsted 163 dodana została opcja eksportu z SCM do RSF z utworzeniem kopii odcinków torów w warstwie niwelet (0x71). Odcinki niwelet jednak będą wykorzystywane niestandardowo, wyłącznie jako przechowanie pierwotnych współrzędnych do sprawdzania, czy korekty współrzędnych odcinków torów nie przekroczyły prawdopodobnego zaokrąglenia (np. 0.05 dla zakresu od 10km do 100km od osi OX albo OZ) oraz zapamiętanie długości odcinka i wektorów kontrolnych. Warstwa niwelet została wybrana ze względu na możliwość filtrowania obiektów do zaznaczenia i wyświetlenia. Być może sensowniej by było umieścić kopie torów w innej warstwie torów, natomiast byłby wtedy problem z możliwością niezależnego wybrania odcinka z odpowiedniej warstwy (brak definiowanych zakresów warstw).
Regeneracja wektorów kontrolnych
Pierwszym krokiem do usunięcia nadmiernych zaokrągleń ma być regeneracja wektorów kontrolnych odcinków prostych w oparciu o długość odcinka oraz kąty wektorów kontrolnych sąsiednich odcinków (Rainsted 165). Algorytm bazuje na założeniu, że nadmiernie zaokrąglone (100mm) są współrzędne końców odcinków, natomiast ich długości oraz wektory kontrolne mają dużo mniejszy błąd zaokrąglenia (podane są z dokładnością 1mm albo 0.1mm). Pozwoli to w drugiej kolejności ustalić (mimo zaokrągleń), które odcinki są współliniowe i jakie współrzędne powinny mieć końce, gdyby nie były nadmiernie zaokrąglone. Odtworzone wektory kontrolne będą następnie przydatne do wyznaczenia współliniowości odcinków i dobrania linii kierunkowych dla ciągu odcinków prostych.
Ustawianie linii kierunkowych
Punktem wyjścia jest paczka kaliska v3.2b.7z z 2022-04-18. Jeśli pojawi się jakaś nowsza, zostanie zweryfikowany zakres zmian i odpowiednio do tego albo zostanie utworzony nowy plik RSF do powtórzenia operacji, albo prace będą kontynuowane z uwzględnieniem konieczności dokonania pewnych poprawek na koniec. Po wstępnym dokonaniu korekt odcinków wychodzi 13107 prostych, 1615 łuków (wycinków okręgu) oraz 1504 innych geometrii (łuki nie zachowujące symetrii, poszerzenia rozstawu torów odcinkami typu S). Łącznie 16226 odcinków (w tym zwrotnice, dla których jest uwzględniany pierwszy tor). Ulepszanie pliku RSF będzie prowadzone w kierunku doklejania odcinków prostych do linii kierunkowych, wstawiania obiektów parametrów łuku oraz korekt współrzędnych w taki sposób, aby odległość pomiędzy końcami w miarę możliwości zgadzała się z pierwotnie wyliczoną długością. Statystyka logarytmiczna niezgodności rzeczywistej długości dla odcinków prostych: 486 (<1mm), 2544 (1mm do 1cm), 7700 (1cm do 1dm), 172 (1dm do 1m), 217 (więcej niż 1m). Po wstępnym doklejeniu 1374 odcinków prostych (10%) do linii kierunkowych statystyka nie zmieniła się znacząco. Łącznie z odcinkami rozpoznanymi jako łuki, statystyka jest następująca: 529, 2752, 8485, 668, 297 (uwzględnione jest 78% odcinków).
Parametry łuków
Również metodą najmniejszych kwadratów są korygowane środki okręgów. Z kolei przy wyliczaniu równania prostej zawierającej linię kierunkową uwzględniane są również wierzchołki parametrów łuku, jeśli do odcinków prostych przylega łuk z parametrami.
Aby wyliczenia metodą najmniejszych kwadratów zostały uznane za wiążące, wyznaczony promień łuku musi być bliski wpisanemu (wstępne kryterium to różnica ±1.5m). Co najmniej w jednym przypadku wyliczony promień wychodził 850m, a wpisany był 900m, co prowadziło do błędów w wyliczaniu linii kierunkowych. Być może miejsce to zawiera krzywe przejściowe, ale na obecnym poziomie jakości scenerii krzywe przejściowe są bezużyteczne, jeżeli większość końców ma współrzędne zaokrąglone do wielokrotności 0.1m (wrażenia z jazdy po krzywej przejściowej są zaburzane nadmiernymi zaokrągleniami).
Korekta długości odcinków prostych
Kolejnym mechanizmem korygującym jest sprawdzanie sąsiednich odcinków prostych parami. Jeśli suma długości tych odcinków różni się o więcej niż 1mm od zapamiętanych pierwotnych długości, to punkt pomiędzy tymi odcinkami jest przesuwany o 1mm. Uzyskany rezultat w postaci statystyki błędów: 9201, 953, 1571, 532, 305. Ponad 60% odcinków uzyskało już dobrą długość, a ilość błędów centymetrowych zmniejszyła się poniżej 30%. W statystyce są też łuki, które nie były modyfikowane.
Naprawa rozmiarów kozłów
Przejrzenie największych błędów (>1m) wykazało, że dużą część z nich stanowią długości torów w kozłach, niezgodne zupełnie z prawdopodobnymi rozmiarami. Dodany został algorytm rozpoznający kozły i poprawiający długości. Jako kozioł traktowany jest odcinek, który nie ma podłączenia od strony punktu 2. Odcinek ten powinien mieć około 3.5m długości (wpisane 2m). Kolejny odcinek (od punktu 1) powinien mieć różnicę wysokości równą 0.8 i około 0.7 w planie, co daje długość 1.063m (wpisane 1m), kolejny w poziomie długości 0.3m w poziomie (wpisane 0.2m) i ostatni 0.9 w wysokości i 0.5 w planie, co daje 1.0296m długości (wpisane 1m). Razem z prowizoryczną korektą odcinków łukowych daje to następującą statystykę błędów długości: 9756 (<1mm), 1069 (<1cm), 1433 (<1dm), 480(<1m), 134 (>=1m). Ostatnie błędy (>=1m) dotyczą odcinków łuków, dla których występują znaczne rozbieżności pomiędzy długością wyliczoną a zapisaną i nie jest znana ich przyczyna, a także niektórych rozjazdów krzyżowych.
Konkluzja na podstawie dotychczasowych rezultatów
Ponieważ ponad 10800 odcinków (około 67%) ma już akceptowalny błąd, a ponad 20% nie ma zapisanej długości (albo jednoznacznej geometrii), analizowanie pozostałych 13% może już nie wnieść istotnych korzyści. Odcinków poza granicą 100km od osi układu jest niewiele (pętla za Olechowem) i nie ma sensu się nimi zajmować (zaokrąglenia współrzędnych rzędu 0.5m). Odcinki w zakresie poniżej 100km mają maksymalny błąd współrzędnej równy 0.06m, co przekłada się na graniczny błąd długości równy 0.17m (współrzędna pionowa nie ma błędu, bo nie przekracza 100m). Odcinki o większej różnicy mogą być traktowane jako posiadające błędnie zapisaną długość i być ignorowane przy korygowaniu końców.
Wobec dużych braków i różnic w zapamiętanych długościach oraz niejednoznacznych geometrii odcinków, nie jest możliwe dokładne odtworzenie wszystkich współrzędnych końców (przynajmniej prostymi metodami). Nie jest to również konieczne — do dalszego ulepszenia scenerii wskazane będzie uzyskanie możliwie najlepszych linii kierunkowych dotychczasowych torów, co pozwoli przeliczyć scenerię do zgodności z mapami. Odtworzenie dokładnych współrzędnych i wyznaczenie linii prostych (kierunkowych) nie zostało wykonane w przypadku Linii 61, co się przełożyło na niedokładności torów po przesunięciach i obrotach oraz ogrom pracy potrzebnej do wyprostowania tych niedokładności.
Dodatkowym argumentem za ograniczeniem prób korygowania końców są odcinki zaburzające sensowny układ trasy (czyli na zmianę odcinki proste i łuki). Na przykład odcinek o nazwie "n907", który przesuwa oś toru o około 5m w bok. W kilku miejscach są też łuki połączone bezpośrednio z rozjazdami oraz łuki odwrotne (zmiana rozstawu torów) zrobione pojedynczym odcinkiem "S". Dalsze postępowanie z takimi miejscami wymaga porównania z układem torów na mapach. Ponieważ z tego względu nie da się ulepszyć obecnego stanu, w dalszej kolejności prac wskazane by było przekształcenie torów do zgodności z mapami i decydowanie na tej podstawie o każdym fragmencie osobno.
Wyłączone przywracanie łączenia prostego z łukiem
Ponieważ w ramach przymiarek do przeliczenia scenerii dodawane są linie kierunkowe oraz parametry łuków, nieznacznie (albo czasem znacznie) zmienia to punkty zakończenia łuku. Ponieważ punkty te są wyznaczane z kątów i promienia łuku, nie ma sensu ich przywracać do pierwotnej wartości, skoro geometria łuku jest prawidłowa. Łuki i tak wymagają dodania krzywych przejściowych, co z kolei będzie miało wpływ na sieć trakcyjną. A póki co ważniejszym celem jest wyznaczenie kątów dla odcinków współliniowych, aby dobrać kąty obrotu. Przykładowo, łuk przy torze "sieradzwarta_peron1" ma zakończenia odpowiadające promieniowi 900m, natomiast z metody najmniejszych kwadratów bardziej pasuje promień 850m. Przyczyną takiego stanu może też być użycie krzywych przejściowych w tym miejscu, ale jest to jedno z nielicznych miejsc, gdzie dodano krzywe przejściowe.
Porównanie z Wariantem F Etapu 2
Aby ocenić wpływ regeneracji współrzędnych na scenerię, torom w plikach z Wariantu F Etapu 2 został zmieniony rozstaw na 1m, a także zdezaktywowane zostały zwrotnice. Zmodyfikowane w ten sposób tory zostały dodatkowo dołączone do scenerii (z obniżeniem o 5cm, aby nie łączyły się z torami użytkowymi). Różnice są słabo dostrzegalne, w niektórych miejscach stan torów wygląda nieco lepiej, w innych jakby wzmocnione zostały błędy (nierówności torów). Niemniej wygląd "zepsutych rozjazdów krzyżowych" nie zmienił się znacząco. Podczas jazdy LK131 i LK146 widoczne jest, że tor "poprzedni" zmienia pozycję względem aktualnego, więc jazda może się wydawać bardziej płynna.
Poza wykrzywionymi rozjazdami krzyżowymi sceneria posiada inne zaburzenia, np. nierównoległość torów w okolicach przejazdów, zmiany rozstawu torów na mostach, a także przy niektórych łukach są odcinki jakby odchylające w przeciwną stronę. Bez znajomości rzeczywistej trasy trudno stwierdzić jednoznacznie, czy są to błędy scenerii, czy jednak odzwierciedlenie rzeczywistości. Pozostaje zatem dopasowanie do map, jako ostateczna weryfikacja poszczególnych wątpliwości.
Podsumowanie
Regeneracja współrzędnych pozwala ustalić lepsze parametry linii kierunkowych dla wykonanych następnie obrotów. Natomiast ustalenie dokładniejszych wartości dla współrzędnych torów nie wnosi istotnej wartości i nie poprawia widocznych błędów w torach. Ewentualnie przydatne mogłoby być porównanie torów pierwotnych oraz tych ze zregenerowanymi współrzędnymi (wizualnie albo jako wrażenia z jazdy) i użycie dokładniejszych wartości współrzędnych dla wybranych odcinków torów, jeśli efekty zmiany są zauważalne.
W dalszym dopasowaniu do map mogą być korygowane linie kierunkowe, a przez to wyjdą inne wartości regenerowanych współrzędnych. Zmiany w liniach kierunkowych będą wynikały z dopasowania do map, w szczególności w zakresie łuków o niewielkich kątach (dwie linie kierunkowe zamiast jednej, albo jedna zamiast dwóch — o niewielkiej różnicy kątów).
Koncepcja przeliczenia do map
W przypadku Linii 61 zostały użyte dwa algorytmy przeliczania: na części wschodniej przesuwanie i obracanie prostokątów (następnie poprawki edytorem RSF), a na zachodniej przeliczanie niweletami (skalowanie). Natomiast Linia 139 miała na tyle nieduże rozbieżności, że mogła zostać przeniesiona do RSF, gdzie każdy odcinek toru był odpowiednio poprawiany algorytmami edytora (np. z użyciem linii kierunkowych i obiektów parametrów łuku). Ze względu na dużo większy rozmiar scenerii oraz skalę niedokładności, użycie powyższych metod wydaje się być mocno pracochłonne.
Alternatywną metodą przeliczenia ma być wygenerowanie obszarów dla metody przesuwania i obracania prostokątów. Dodatkowymi obszarami przekształcenia będą łuki (w postaci trójkątów). Po takim przekształceniu sceneria powinna nadawać się do użytku i dość dobrze pasować do map. Ewentualnie do ręcznego poprawienia będzie sieć trakcyjna na łukach, jeśli kąt łuku zostanie znacznie zmieniony. Będzie to też odpowiadało przeliczeniu niweletami, ale w przypadku niwelet niezbędne by było zablokowanie kilometrażu na każdym połączeniu odcinka prostego z łukiem.
Korekta Wariantu F
W związku z ulepszonym algorytmem dopasowania linii kierunkowych do istniejących torów, skorygowane nieznacznie zostały kierunki torów. Azymut toru przed stacją Rząsawa (łączenie LK146 z LK1) został ustalony na 178.9811° (w sensie kąta wyliczonego dla linii kierunkowej), natomiast połączenie LK146 do LK131 na 80.9836°. Odczytane ze scenerii kąty to odpowiednio 134.1833° oraz 37.1830°. Wyliczone obecnie kąty obrotu to 44.7978° oraz 43.8006°, podczas gdy poprzednio obliczone były 44.8007° oraz 43.7865°. Zmiany kątów będą miały nieznaczny wpływ na docelowe położenie końców odcinków, jednak nadal zachowana jest koncepcja realizacji wariantu. Połączenie pomiędzy LK146 a LK131 znajdzie się w punkcie X=-52000 Z=-34640.0164, co jest przesunięciem o około 33cm względem stanu z Etapu 2.
Wariant G: próba przeliczenia LK146
W ramach korekty łuków i wyznaczenia prostokątów pomiędzy nimi została ułożona niweleta LK146 na ortofotomapie. Wyznaczone łuki zostały skojarzone z tymi w scenerii. Wstępne rezultaty przeliczenia są zadowalające, jednak odcinek będzie potrzebował ręcznych poprawek.
- Odcinki proste pomiędzy łukami są skalowane, co ma wpływ na sieć trakcyjną. W szczególnych przypadkach doprowadza do zbyt długich przęseł, psuje też przęsła naprężania, które mają stałą odległość od słupa kotwiącego. Wskazana by była korekta mocowań do miejsc widocznych na ortofotomapie, przynajmniej w najbardziej newralgicznych miejscach.
- Przeliczenie kolejnych trzech łuków dawało duże błędy skalowania, w efekcie odcinki z bliskich sobie łuków zostały potraktowane jako jeden większy łuk, a drobny łuk po przeciwnej stronie został pominięty. Odcinki składowe tego łuku wymagają poprawek.
- Wskazane by było dopasować głowice rozjazdowe do miejsc widocznych na mapach i dobrać parametry tak, by nie były skalowane.
- Przejazdy w scenerii są bliskie tym widocznym na mapach, wypadałoby je dostosować, modyfikując skalowanie. Przynajmniej jeśli przesunięcie jest niewielkie.
- Dopasowanie całej scenerii do map tą metodą raczej będzie wymagało dużej ilości poprawek, więc lepszym rozwiązaniem może być dopasowanie tylko stacji węzłowych i pominięcie miejsc, których dostosowanie do map będzie wymagało znacznej korekty detali (czyli raczej w kierunku zachowania długości łuku niż przeliczenia promienia do rzeczywistego).
- Korekty skalowania będą wprowadzane w ramach dalszego rozwoju Wariantu G (zachowane będą współrzędne skrajnych odcinków).
- Kolejne możliwe ulepszenia tego odcinka to ustawienie profilu pionowego, dodanie słupków hektometrowych, wygenerowanie podtorzy i ścian lasu oraz podział na komórki z wyśrodkowaniem obiektów. Zaburzy to zgodność z Wariantem F. Jednocześnie dodanie profilu pionowego może utrudnić wprowadzenie korekt sieci trakcyjnej.
W związku z wydzieleniem LK146, dalsze prace nad tym fragmentem będą opisywane na osobnej stronie, dotyczącej tylko LK146, a dalsze przeliczenia pozostałej części trasy nie będą go uwzględniać.
Kwestia skalowania głowic
Scenerie do MaSzyny były budowane z użyciem rozjazdów o skosie 1:8.7857192453929776240776066680375, zamiast typowych 1:9. Ponieważ jest już możliwość skalowania odcinków pomiędzy łukami, można by przy okazji "naprawić" skos torów. Da się to zrobić w taki sposób, że na pierwotnej głowicy będą wyznaczane odcinki o długości np. 100m (200m), a w docelowym obszarze będzie to odpowiadało odcinkowi długości 97.6191m (195.2382m). Unormowanie skosu pozwoli sprawniej skorygować np. rozjazdy krzyżowe, których geometrię będzie można przygotować edytorem RSF.
Testowo została przeskalowana stacja Biała Pajęczańska — skrajne rozjazdy są przesunięte w miejsca widoczne na ortofotomapie, a skos został przeliczony na 1:9. Ponieważ głowice te nie są duże, nie wniosło to istotnego efektu. Skalowanie pozostałych stacji na LK146 wydaje się bezcelowe, bo i tak trzeba dokonać wielu poprawek w zakresie sieci trakcyjnej. Niemniej test można uznać za udany i próbować skalowania innych stacji, o bardziej rozbudowanych głowicach.
Przeliczenie LK131
Tory LK146 zostały przeliczone z użyciem 12 linii kierunkowych, zbliżoną liczbę ma odcinek Zduńska Wola — Chorzew Siemkowice, a także odcinek Łódź — Zduńska Wola. Mimo że LK146 jest dużo krótsza niż każdy z tych dwóch odcinków, to jednak stopień skomplikowania może być podobny. Ale może też okazać się, że na tych dwóch odcinkach są inne niespodzianki.
W pliku Kaliska3_109.RSF (12h3m2s) zostały dodane linie kierunkowe dla niwelety LK131 (16 sztuk) oraz parametry łuków do pierwotnych torów. Obiekty te mają posłużyć do zdefiniowania obszarów przeliczenia. Jednak, ze względu na niejednoznaczne ułożenie łuków oraz konieczność modyfikacji położenia stacji Zduńska Wola Karsznice, proces ten nie ma obecnie jednoznacznie określonego celu — przeliczenie LK131 może stwarzać problemy z przejezdnością pomiędzy stacją Zduńska Wola a stacją Chorzew Siemkowice.
Zduńska Wola: druga prowizorka
Przeliczenie w Etapie 2 obejmowało korektę położenia stacji Zduńska Wola Karsznice (względem linii 14 oraz stacji Zduńska Wola), która była niezbędna do "trafienia" linią 131 w stację Chorzew Siemkowice. Ułożenie torów na północ od stacji Zduńska Wola Karsznice było wykonane prowizorycznie, z przeginaniem jednego łuku i prostowaniem drugiego, aby niewielkim nakładem pracy (korekta wektorów kontrolnych) uzyskać przejezdność odkręconych o 50° torów.
Obecnie linia 131 została w większości naciągnięta na ortofotomapę (spodziewane są jedynie drobne korekty), również stacja Zduńska Wola Karsznice trafiła we "właściwe" miejsce (z opcją na ewentualne późniejsze pozycjonowanie głowic). Aby póki co nie ruszać linii 14 i łącznic do niej, zostały dopasowane odcinki na północ od stacji Zduńska Wola Karsznice, z użyciem przekształceń łuków. Przekształcenie to będzie następnie testowane na przełomie 2022/2023, aby zlokalizować potencjalne problemy oraz udoskonalić algorytmy przeliczenia i ewentualnie skorygować niektóre miejsca. Ponieważ co do zasady przeliczenie jest zgodne z Wariantem F Etapu 2 (zachowuje w takiej samej postaci część północną oraz miejsce łączenia LK146, nie zmienia wysokości torów ani innych parametrów), będzie wprowadzone jako Wariant F Etapu 3.
Wstępna ocena prac z końca 2022 roku
Paczka kaliska3f-220417.7z zawiera przeliczone pliki i jest publikowana jako baza do oceny jakości przeliczenia. Widoczne są zaburzenia w sieci trakcyjnej oraz błędy geometrii na łukach dla toru odległego od linii przeliczenia (pewnie trzeba by udoskonalić algorytm przeliczania wektorów kontrolnych) — nie było to zauważalne na jednotorowej LK146. Wobec tego najbardziej sensowym rozwiązaniem wydaje się przeliczanie niewielkich odcinków, przenoszenie do RSF i korygowanie tam od razu błędów. Po przejrzeniu błędów i udoskonaleniu LK146 można by podobny proces wykonać na LK131 (jako jeden albo dwa pliki RSF).
W wyniku zaobserwowanych artefaktów na torze odległym od niwelety poprawiony został algorytm przeliczania tych torów, z uwzględnieniem różnicy promienia odcinków. Przeliczone w ten sposób odcinki wyglądają lepiej niż rezultat poprzedniego algorytmu.
Warianty zakończenia etapu
Próba ulepszenia scenerii poprzez odtworzenie współrzędnych końców sprzed ich zaokrąglena wraz z uwzględnieniem zapamiętanej długości dała rezultaty niejednoznaczne. Z jednej strony ponad 66% odcinków można poprawić, z drugiej jednak widoczne są zaburzenia geometrii torów, które wymagają pogłębionej analizy. W związku z próbą zgrubnego przeliczenia w Etapie 2, oznaczenia wariantów będą kontynuowane.
Pominięte zostały warianty od B do E. Wariant B nie wnosi zmiany jakościowej, dopasowuje do mapy tylko fragment łuku (jedynie umieszczając zachodnią część w miejscu przyjętym dla pozostałych wariantów). Warianty C nie wnoszą istotnej wartości w zakresie części południowej. Wariant D wyprowadza tor na stację Rząsawa, jednak nie obejmuje obcięcia, umożliwiającego przejezdność przez łączenie przed Rząsawą. Wariant E to obcięcie torów na łączeniu z Rząsawą, nie daje jednak opcji na wykorzystanie samej LK146 w połączeniu z Częstochową.
Do czasu zamknięcia Etapu 3 realizacje wariantów mogą dawać różne rezultaty w kolejnych wersjach Rainsted. W związku z dopasowaniem do map mogą być korygowane linie kierunkowe oraz modyfikowane łuki pierwotnego układu torów (Wariant A). Przeliczenie LK131 może być dodane do Wariantu F. W przypadku znalezienia istotnych błędów w LK146 (wymagających zmiany na etapie przeliczenia) może być skorygowany Wariant G.
Wariant A
Aby rezultaty prac przydały się możliwie szybko innym użytkownikom, będzie udostępniany plik torów, w którym zostaną poprawione niektóre współrzędne końców. Skorygowane będą tylko te końce pomiędzy odcinkami, gdzie albo oba odcinki uzyskały długość zgodną z zapisaną, albo odcinek z "dobrą" długością łączy się z innym, który zapisanej długości nie miał, albo będzie to punkt pomiędzy prostą a łukiem, lepiej pasujący do geometrii łuku. Plik będzie z grubsza przejrzany pod kątem poprawienia widocznych błędów. Nie będą modyfikowane wektory kontrolne, co mogłoby zaburzyć geometrię (np. zamiana odcinka typu "S" na prosty).
Bazą do realizacji wariantu są pliki z paczki kaliska v3.2b.7z, stanowiącej stan prac z dnia 2022-04-17. Pliki z paczki zostały przyjęte bez zmian do podkatalogu kaliska1. Następnie plik tory.scm został wczytany do Rainsted i specjalnym algorytmem zostały przesłane do niego współrzędne 19709 końców odcinków (60% wszystkich) z edytora RSF, w którym tory były optymalizowane. Następnie przy pomocy SVN zostały przejrzane wszystkie wpisy eventów, które mogły ulec uszkodzeniu (gdyż Rainsted nie obsługuje wszelkich możliwych własności formatu tekstowego).
- Przywrócone zostały wpisy wielokrotnych eventów w torach: n143, n313, n363, n1134, n1138, rt401, aaa1, n4617, n4921, n5022, n5023, mecka2, n5656, n6076, n6077, n6085, n8506, n10035, n12876 (nie są to wszystkie tory z wielokrotnymi eventami, ale pozostałe nie zostały zmodyfikowane).
- Opcjonalne parametry torów (np. event1, isolated) zostały posortowane alfabetycznie. Dotyczy to torów: n156, n157, n160, radliczyce_tor3, n161, ra_i12, n4006, n4675, n4692, n4705, n4711, n4726, n4730, n4732, n5581, n5582, zwkn, zwk_s, zwk_p, n5759, n6076, n6077, zwk_r12_null, zwk_r, n7453, n7455, n7456, kl1, lkta, n8755, n8758, n8775, n8777, n8779, n8783, n8785, n8790, n8804, n8813, n8817, n8818, n8824, ch201, n8827, n8843, n8846, n8847, n8852.
- Przywrócone zostały komentarze wewnątrz wpisów, w torach: lok25o, lk_peron3_tor7.
- Ubocznym efektem przetworzenia pliku przez Rainsted jest zaokrąglenie współrzędnych i wektorów kontrolnych do 4 cyfr po kropce dziesiętnej. Nie były wykonane inne operacje na wektorach kontrolnych (np. rozpoznanie odcinków prostych i zerowanie kontrolnych w takim przypadku).
- Ponieważ przesunięte są końce odcinków torów, może mieć to wpływ na współpracę z siecią trakcyjną — może być konieczna nieznaczna korekta pojedynczych przęseł.
Wariant F
Realizacja tego wariantu umożliwia prowadzenie ruchu pomiędzy Zduńską Wolą a Częstochową (rozwijaną w ramach Linii 61) — dalej dostępne jest połączenie do Kluczborka, Opola, Toszka, Katowic oraz granicy ze Słowacją (a ostatnio również w stronę Kielc). Jednak nie ułatwi to wykonania ulepszeń stacji, czy profilu pionowego, ponieważ przeliczona w ten sposób trasa tylko zgrubnie pasuje do map.
Bazą do przeliczenia jest plik torów, uzyskany w Wariancie A. Poza wypisanymi tam torami, wielokrotne eventy są przywracane również w kilku innych torach. Wykonywane są też dodatkowe poprawki (korekta przechyłek, dostosowanie wektorów kontrolnych w zmienionych łukach).
W ramach dalszych testów przeliczania prostokątami i kątami ustalone zostały parametry dla przeliczenia LK131 oraz (już niezgodnego z mapami) dopasowania połączenia stacji Zduńska Wola Karsznice z północną częścią torów, przeliczoną zgodnie z Wariantami C/D/E/F Etapu 2. Stan docelowy jest taki, że algorytmy "2E"/"2F" będą przeliczać LK131 w uproszczony sposób, natomiast "3F" bardziej dokładny (z opcją na późniejsze dopracowanie szczegółów, np. korektę położenia głowic, przy czym Wariant F nie będzie zmieniany w zakresie północnych torów). Tory LK131 nadjają się do odcięcia na południe od stacji Zduńska Wola Karsznice w celu oddzielenia do osobnego procesu ulepszania.
Wariant G
Jako rozwinięcie Wariantu F oraz test nowego narzędzia "prostokąty i kąty" powstała koncepcja wydzielenia LK146 wraz z przeliczeniem odcinków prostych do mapy. Ponieważ zmiana niektórych promieni łuków jest znaczna (1000m => 2000m, 1800m => 1000m), celem tego wariantu jest ustalenie, czy lepiej zachować dotychczasowy promień (do poprawienia później), czy można poprawić od razu. Zmiana promienia będzie się wiązała ze skalowaniem odcinków oraz sieci trakcyjnej na łuku, co zapewne będzie wymagało ręcznych poprawek rezultatu. Pozostawienie dotychczasowych promieni łuków może dać lepsze rezultaty krótkoterminowo, może to jeszcze zależeć od zmiany kąta łuku.
Wydzielony fragment torów będzie mógł być ulepszany niezależnie (np. edytorem RSF), będzie się również nadawał do połączenia od strony Częstochowy oraz do pozostałej trasy, obróconej wg Wariantu F (po uwzględnieniu korekty punktu łączenia). Podjęta będzie też próba przywrócenia zaginionej sygnalizacji z pierwotnych plików (sprzed Etapu 1). Zależnie od rezultatów, kolejnym krokiem będzie albo wydzielenie LK131 z przeliczeniem do map, albo alternatywny (do Wariantu F) sposób przeliczenia trasy Łódź – Ostrów, ewentualnie Sieradz – Ostrów.
Wydzielony odcinek ma prawie 39km. Ponieważ przy jednym z łuków wyszło dość znaczne skalowanie, może ono zaburzać np. sieć trakcyjną. Pozostaje też kwestia głowic rozjazdowych, które nie powinny być skalowane. Wypadało by również przesunąć głowice do miejsc, gdzie są widoczne na mapach. W związku z tym Wariant G zostanie ograniczony do wydzielenia LK146 i albo wydzielone obiekty będą przetwarzane edytorem RSF, albo przeliczenie to będzie jeszcze korygowane, by uzyskać lepszy efekt przed dalszą edycją. Jednak głównym celem nie jest ulepszenie tego odcinka, a raczej przetestowanie algorytmów przeliczających.
Rezultaty prac
Zmienione pliki są do pobrania pod adresem http://rainsted.com/warsztat/Kaliska.
kaliska v3.2b.7z
Bazą do realizacji etapu są pliki z paczki kaliska v3.2b.7z, stanowiącej stan prac z dnia 2022-04-17. Pliki z paczki zostały przyjęte bez zmian do podkatalogu kaliska1.
- Archiwum kaliska3a-220417.7z zawiera przetworzony plik torów w zakresie zaokrąglenia współrzędnych, będący podstawą do ewentualnych dalszych przeliczeń. W miarę możliwości wszelkie zmiany zostały porównane przez SVN, czy ich zakres nie doprowadził do uszkodzeń wpisów. Paczka nie była testowana. Zachowana jest pełna zgodność logiczna i wymienność plików ze stanem po obrocie o 180° (Etap 1).
- Archiwum kaliska2f-220417.7z zawiera przeliczone i pocięte pliki torów wg poprawionego Wariantu F Etapu 2 (odcięcie LK1 i wydzielenie LK146). Jest to nakładka na paczkę kaliska2f-210526.7z z Etapu 2. Wstępnie testowany był przejazd ET42-021 od Dionizowa do Częstochowy Osobowej. Pozostałe pliki nie zostały przeliczone, tak więc nie są uwzględnione zmiany w innych obiektach (które pewnie zostały zmodyfikowane przez prawie rok pomiędzy udostępnieniem paczek). Niemniej realizacja Wariantu F ma głównie charakter demonstracyjny, w zakresie możliwości zgrubnego dopasowania do map i połączenia z Linią 61.
- Archiwum kaliska3g-220417.7z zawiera przeliczone obiekty linii 146 wg Wariantu G. Jest to nakładka na paczkę kaliska2f-210526.7z z Etapu 2, głównie demonstracja efektów przeliczenia. Sieć trakcyjna oraz mosty zostały przeniesione do pliku z torami (puste pliki są dołączone, aby nadpisać nimi wcześniejsze, z obiektami). Sygnalizatory są uzupełnione z plików z 2019 roku (przed przeliczeniem zostały obrócone o 180° względem OXZ).
- Archiwum RSF.Kaliska3_133.7z zawiera plik RSF z torami oraz sygnalizacją, również częściowo dodane są linie kierunkowe i parametry łuków. Dodatkowo pierwotne współrzędne odcinków są zapisane w warstwie niwelet, co było używane do zwiększenia dokładności współrzędnych. Poza tym ułożone są niwelety LK146 i LK131 (używane do przeliczenia obiektów; bez kalibracji kilometrażu; bez weryfikacji profilu pionowego). Paczka publikowana w związku z tymczasowym spowolnieniem dalszych prac — jeśli być może będzie się komuś chciało poustawiać linie kierunkowe na ortofotompach (dla LK14 i pozostałych), to pewnie przyspieszy to dopracowanie procesu przeliczania.
- Archiwum kaliska3f-220417.7z zawiera przeliczone i pocięte pliki torów wg Wariantu F (odcięcie LK146 i dalej). Wraz z kaliska3g-220417.7z jest to nakładka na paczkę kaliska2f-210526.7z. Pociąg z ET42-021 od Dionizowa dojechał do stacji Chorzew Siemkowice, gdzie został skierowany w stronę Herbów. Pociąg z ZWK utknął na rozjazdach. W związku ze spowolnieniem dalszych prac, w najbliższym czasie nie będzie dopracowana przejezdność ani drobiazgi w otoczeniu. Paczka jest publikowana jako baza do oceny jakości przeliczenia. Widoczne są zaburzenia w sieci trakcyjnej oraz błędy geometrii na łukach dla toru odległego od linii przeliczenia (pewnie trzeba by udoskonalić algorytm ustawiania promienia i przeliczania wektorów kontrolnych) — nie było to zauważalne na jednotorowej LK146.
Synchronizacja prac niezależnych
Wg stanu na połowę stycznia 2023, wstępnie dopasowane do map zostały linie 131 oraz 146, wymagają następnie oceny skali koniecznych do wprowadzenia poprawek. Odcinki te nie są objęte głównymi misjami scenerii, być może jest to powiązane z brakiem terenu oraz otoczenia. Przeliczenia scenerii dokonać można przy użyciu Rainsted, wybierając ręcznie każdy plik osobno (jest ich kilkanaście). Aby sceneria po przeliczeniu nadawała się do użytku, należy dokonać drobnych napraw (ewentualnie naprawić pliki przed przeliczeniem). Głównie dotyczy to niestykających się torów, niezgodnych przechyłek oraz zepsutych przęseł sieci trakcyjnej.
Wg stanu na połowę stycznia 2023 północna część torów (trasa Łódź – Ostrów Wlkp.) może mieć poprawioną jakość poprzez przeliczenie wg Wariantu F. Wariant ten nie jest zalecany do przeniesienia na niego prac, ponieważ teoretycznie istnieje możliwość lepszego przeliczenia już istniejącymi narzędziami, ale dopiero po odpowiednim przygotowaniu danych. Najprawdopodobniej rezultat lepszego przeliczenia będzie wymagał wprowadzenia korekt w miejscach, które zostaną przy tym nieznacznie uszkodzone (np. zbyt odległe od siebie słupy, likwidacja błędów torach). Jednocześnie Wariant F jest póki co dostępnym i możliwie prostym sposobem na ulepszenie scenerii, a nie istnieją żadne plany ani terminy na uzyskanie ewentualnego lepszego rezultatu.
Możliwość przeniesienia prac na Wariant F:
- Należy utworzyć podkatalogi kaliska1/ i kaliska2/, zawartość najlepiej wziąć pod śledzenie wersji (np. SVN). Użycie katalogu kaliska/ nie jest zalecane ze względu na możliwą kolizję z innymi zmianami, które tam są dokonywane.
- Stabilny (przejezdny) stan z katalogu kaliska/ należy skopiować do kaliska1/, a następnie przeliczyć przy użyciu Rainsted do kaliska2/ (podczas przeliczania jest wykonywana podmiana ścieżki do zapisu pliku). Zacząć można od udostępnionej paczki (tam jest podkatalog kaliska2f/).
- Należy przeprowadzić testy na scenerii otrzymanej w kaliska2/, w zakresie zgodności z dotychczasowymi doświadczeniami na pierwotnych plikach.
- W razie potrzeby poprawić błędy w podkatalogu kaliska1/, a po ich przetestowaniu zintegrować do plików w kaliska/.
- W razie pozytywnej oceny rezultatów przeliczeń można dalsze prace kontynuować na plikach kaliska2/.
Sugestie w zakresie reorganizacji scenerii:
- Ograniczenie liczby plików. Połączyć w jeden można niewielkie pliki infrastruktury istotnej, np. "lampy.scm", "wskazniki.scm", "sygnalizacja.scm", "przejazdy.scm", "przytorowe.scm", "hekto.scm". Najlepiej aby połączony plik miał inną nazwę. Inny przykład to połączenie plików "drogi.scm" oraz "znaki.scm". Mniejszą liczbę plików jest łatwiej przeliczyć i trudniej jakiś zgubić, a w Rainsted wyświetlą się powiązania.
- Likwidacja wektorów kontrolnych dla odcinków prostych. Można użyć Rainsted albo innego narzędzia, które porówna współrzędne i zamieni je na zera, gdy jedynie się różnią znakiem (uważać trzeba na odcinki "S" przy zmianie rozstawu torów).
Zamknięcie etapu
Dotychczasowe efekty realizacji Etapu 3:
- ustalenie lepszych linii kierunkowych oryginalnych torów scenerii, przez co dokładniejszych kątów dla przeliczenia,
- ulepszenie przeliczania prostokątami o skalowanie wzdłużne oraz skalowanie łuków,
- ustalenie lepszego miejsca łączenia LK146 do LK131 (w sensie komórek),
- wydzielenie LK146 w stanie zdatnym do dalszego przetwarzania ku większej zgodności z rzeczywistością,
- ustalenie przeliczenia LK131 wraz z prowizorycznym połączeniem w Zduńskiej Woli,
- utworzona paczka z plikami do przetestowania i oceny dopasowania do map linii 131.
Ponieważ bazą do dalszych zmian jest koncepcja połączenia z Częstochową wg Wariantu F z Etapu 2 (ale nie uzyskane wtedy pliki), prace będą się raczej koncentrować na uzyskaniu jeszcze lepszego dostosowania do map niż np. w zakresie nazewnictwa urządzeń czy sterowania ruchem.
Etap zostanie zamknięty w przypadku publikacji scenerii "Kaliska" o strukturze innej niż zgodna z uzyskaną w Etapie 1, np. gdyby sceneria została przesunięta o wektor, obrócona, przekształcona zgodnie z Wariantem F albo gdyby została zmieniona wysokość torów. Inną przyczyną zakończenia Etapu 3 może być publikacja alternatywnej wersji którejś ze stacji węzłowych (Łódź, Zduńska Wola, Ostrów Wielkopolski, Chorzew Siemkowice) lub trasy przyległej (np. dodatkowy odcinek LK131) — co zmieni priorytety. Etap może być również zamknięty w przypadku uzyskania zadowalającego efektu (np. dopasowanie do map plus profil pionowy).