Na potrzeby niekomercyjnego symulatora kolejowego (eu07.pl) przygotowuję program komputerowy, który ma wygenerować model terenu dla kolei piaskowej PMPPW (okolice Sosnowca). Zrzut ekranu (z wczesnej fazy prac) przedstawia ułożenie torów około 1990 roku, rysowanych z pamięci i przy pomocy map górniczych na tle mapy topograficznej:

Chciałbym prosić o pomoc w zakresie przeliczania współrzędnych, ponieważ nie jestem specjalistą w tej dziedzinie, a dostępne w Internecie materiały są mało konkretne lub niezbyt dla mnie zrozumiałe.
Jako osnowę do orientowania obiektów w scenerii 3D dla Symulatora, przyjąłem siatkę kilometrową współrzędnych prostokątnych płaskich w układzie Pułkowo 1942, obecną na wojskowych mapach topograficznych. Dysponuję skanami w dosyć niskiej jakości - uzyskuję rozdzielczość 128 pikseli na kilometr, co pozwala na pozycjonowanie punktów z dokładnością do 8m oraz krzywych do 2m. (Nie wiem, jaka jest niedokładność mapy. Na potrzeby Symulatora jest to wystarczające.) Współrzędne prostokątne płaskie w układzie Pułkowo 1942 zostały wybrane z uwagi na łatwą dostępność map i gwarancję prawidłowego zamknięcia pętli torów o dowolnej średnicy (przynajmniej w zakresie tych 3°).
Niemniej jednak siatka ta nie jest zgodna z WGS84, wymagane jest przeliczanie współrzędnych, aby później można było wykorzystać takie dane, jak SRTM, SWDB, zdjęcia satelitarne i lotnicze, czy dane dla odbiorników GPS.
Byłbym wdzięczny za podanie konkretnych wzorów, które mógłbym użyć w moim programie do przeliczenia współrzędnych geograficznych WGS84 na współrzędne prostokątne płaskie Pułkowo 1942. Ewentualnie wskazanie dostępnych w Internecie źródeł i niekomercyjnego oprogramowania, które mogło by mi pomóc. Głównie chodzi o kod źródłowy, nie o gotowe aplikacje, ponieważ będę potrzebował przeliczać różne dane w postaci wektorowej. Jednorazowe przeliczenie danych innym programem pewnie byłoby przydatne, jednak wolałbym zrobić przeliczenia moim programem, co będzie łatwiejsze dla jego użytkowników w przypadku dokumentowania torowisk w innym obszarze Polski.
Aby wypozycjonować dane SRTM dla mapy topograficznej z siatką kilometrową, postanowiłem zacząć od danych wodnych SWDB (kształty zbiorników wodnych), dołączanych do SRTM. Zrobiłem w tym celu obsługę plików "shapefile" (.shp).
Aby narysować te obrysy na mapie, użyłem funkcji przekształcenia:
x'=a*x+b*y+c*x*y+d
y'=e*x+f*y+g*x*y+h
gdzie x' i y' [m] to współrzędne prostokątne płaskie wg Pułkowo 1942, a x i y [°] to współrzędne geograficzne WGS84.
Następnie metodą prób i błędów dopasowywałem współczynniki tak, aby obrysy pokryły się ze zbiornikami Pogoria III, Zalew Sosina, J. Dziećkowice. Udało się to osiągnąć przy następujących współczynnikach:
a=71350 - [m/°] w poziomie
b=2850 - obrót
c=-0.6544 -skalowanie
d=1510770 - przesunięcie
e=1600 - obrót
f=-111200 - [m/°] w pionie
g=-0.05179 -skalowanie
h=5556800 - przesunięcie
Z kolei dane wyliczone z map topograficznych wyglądają następująco:
- odległość między 19°E a 20°E wzdłuż równoleżnika 51°N: 70406m,
- odległość między 19°E a 20°E wzdłuż równoleżnika 50°N: 71695m,
- odległość między 50°N a 51°N wzdłuż południka 19°E: 111339m,
- odległość między 50°N a 51°N wzdłuż południka 20°E: 111237m.
W efekcie wspomniane trzy zbiorniki pasowały prawie idealnie. Zbiorniki wodne w okolicy Sosnowiec-Mysłowice pasowały w miarę dobrze. Dla porównania zrobiłem mapkę okolicy Koniecpola (13 km od Włoszczowy w stronę Częstochowy), z zawartym tam zbiornikiem. Zbiornik ten odstawał ok. 4km na północny-wschód. Wszelkie próby sprowadzenia go na wskazane na mapie miejsce kończyły się znacznymi odchyleniami wcześniej ustawionych trzech zbiorników.
Pokażę mniej więcej, jak to wygląda. Czerwonym kolorem są tory, a jasnoniebieskim jest zarys zbiorników z SWDB:

Poniżej okolice Koniecpola z zaznaczonym zbiornikiem:

(Przepraszam, jeżeli wyrażam się nieprecyzyjnie, albo mylę pojęcia - nie posiadam wykształcenia kierunkowego, a tematem interesuję się dopiero od paru miesięcy.)
Ra.