English version

Program narzędziowy netgen

Program netgen pomaga w przygotowaniu mapy dla autoroutingu. Przygotowanie polega na numeracji dróg oraz wskazaniu miejsc łączenia sie dróg czyli węzłów. Węzły generowane są przez program netgen w miejscach gdzie dwie lub więcej dróg posiadają punkt wspólny. Program netgen może generować węzły także na końcach dróg.

Podczas rysowania mapy łatwo doprowadzić do sytuacji gdy punkty dróg nie pokrywają się dokładnie. W takim wypadku węzeł nie zostanie wygenerowany. Jeśli w rzeczywistości drogi sie łączą to taka sytuacja jest błędna. Wykrywanie takich niedokładnie narysowanych dróg jest trudne dlatego program netgen zawiera kilka funkcji wspomagających. Pierwszą z nich jest "dociąganie" blisko położonych punktów. Program netgen wyszukuje na mapie punkty dróg położone w niewielkiej odległości od siebie i przesuwa je tak, aby się pokryły. W ten sposób netgen koryguje drobne niedociągnięcia autora mapy. Drugą funkcją wspomagającą wyszukiwanie błędów jest wizualizacja węzłów. Przy pomocy netgen-a można wygenerować listę węzłów w formacie OZIExplorer. Tak zapisane węzły można nałożyć na mapę w programie GPSMapEdit i sprawdzić, czy znajdują się we wszystkich miejscach, w których znaleźć się powinny.

Kolejna funkcja to wizualizacja ślepych końców dróg. Często niedokładne narysowanie drogi powoduje, że jej koniec, który powinien łączyć się z inna drogą pozostaje z niczym nie połączony (ślepy). Wychwytywanie takich błędów ułatwia możliwośc wygenerowania listy punktów będących ślepymi końcami dróg. Naturalnie ślepe końce dróg istnieją w rzeczywistości. Aby uniknąć ich umieszczania w liście punktów służącej wyszukiwaniu błędów można je na mapie oznaczyć stawiając punkt typu "koniec drogi". Sukcesywne oznaczanie prawidłowych końców ślepych dróg doprowadzi do sytuacji gdy lista będzie zawierać tylko błędy.

Wykrywanie zbyt bliskich węzłów. Przy tworzeniu mapy należy pamiętać o zachowaniu minimalnej odległości między węzłami siatki dróg. Netgen umożliwia sprawdzanie czy minimalna odległość w każdym przypadku została zachowana.

Rozcinanie pętli. Drogi umieszczone na mapie przeznaczonej do autoroutingu nie mogą zawierać pętli. Innymi słowy droga nie może przecinać się sama z sobą. W celu usuwania niedozwolonych pętli w netgenie zaimplementowano funkcję rozdzielania dróg zawierających pętle na mniejsze niezapętlone części. Netgen posiada ograniczone możliwości usuwania pętli. Aktualnie rozcinanie pętli wykonywane jest tylko dla dróg z jedna pętlą.

Wykrywanie przecięć bez węzłów Niedokładne rysowanie dróg na mapie może doprowadzić do sytuacji gdy w miejscu przecinania sie dwóch dróg nie ma węzła mimo iż w rzeczywistości skrzyżowanie istnieje. Netgen potrafi wskazywać takie miejsca. Należy pamiętać, że operacja wyszukiwania przecięć jest bardzo czasochłonna.

Netgen został napisany dla potrzeb tworzenia UMP-Łódź, ale wkrótce po napisaniu znalazł zastosowanie w projekcie UMP Warszawa. Pod wpływem potrzeb twórców UMP Warszawa program został znacznie rozbudowany i udoskonalony. Do rozwoju netgen-a przyczynił się zwłaszcza Alf/red/.

Liczne pytania skłoniły mnie do opisania sposobu wykorzystania netgena na przykładzie przygotowywania UMP-Łódź. Mapa edytowana jest przy pomocy programu MapEdit. Cała mapa zwarta jest w jednym pliku lodz.mp. Proces jej przygotowywania przebiega następująco.

  1. Po dodaniu nowych elementów mapy na podstawie zebranych śladów, uruchamiam netgen celem sprawdzenia poprawności mapy:
    netgen -c -b -x -r 0.00008 -e 0.00002 -N < lodz.mp > lodz.wpt
    Użyte opcje powodują:
  2. Jeśli netgen nie sygnalizuje błędów w mapie przechodzę do punktu 3. Jeśli netgen sygnalizuje istnienie błędów, wczytuję plik lodz.wpt do programu MapEdit wraz z plikiem mapy (lodz.mp). Przeglądam listę punktów wskazanych przez netgen posiłkując sie opcją View/List of Waypoints, Tracks, Routes. Poprawiam błędy wskazane przez netgen. Prawidłowe końce ślepych dróg oznaczam punktami typu 0x1709 aby wyłączyć je z listy generowanej przez netgen przy następnym sprawdzaniu. Prawidłowe przecięcia dróg bez węzłów (wiadukty) oznaczam punktami typu 0x1708. Również one zostana wyłączone z listy generowanej przez netgen przy kolejnym sprawdzaniu mapy. Powracam do punktu 1
  3. Usuwam z mapy polskie znaki diakrytyczne przy pomocy programu tr, wynik zapisuję do pliku lodz_bezpol.mp. Generuję mapę z informacjami dla autoroutingu poleceniem:
    netgen -b -R -t39 -r 0.00008 -e 0.00002 < lodz_bezpol.mp > build.mp
    Linia typu 39 jest używana do kreślenia restrykcji
  4. Zip-uję plik build.mp i wysyłam do kompilacji na mapcenter2.
Krótką informację o używaniu netgen można uzyskać uruchamiając:
netgen -?

Program netgen jest rozpowszechniany na zasadach licencji GNU GPL.


Pobieranie

Netgen 1.22bugfix Szybka poprawka dla błędu występującego gdy algorytm sprawdzania integranlości sieci routingu napotka drogę bez węzłów.

Wersja źródłowa
netgen-1.22bugfix.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.22bugfix.tar.bz2
Wersja dla MS Windows netgen-win-1.22bugfix.zip

Netgen 1.22ts Rozszerzenie komunikatu diagnostycznego dotyczącego błędnej restrykcji.

Wersja źródłowa netgen-1.22ts.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.22ts.tar.bz2
Wersja dla MS Windows netgen-win-1.22ts.zip

Netgen 1.22 Poprawki drobnych błędów.

Wersja źródłowa netgen-1.22.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.22.tar.bz2
Wersja dla MS Windows netgen-win-1.22.zip

Netgen 1.21 Wsparcie dla [SIGN].

Wersja źródłowa netgen-1.21.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.21.tar.bz2
Wersja dla MS Windows netgen-win-1.21.zip

Netgen 1.20 Wskazywanie nieużywanych punktów maskujących.

Wersja źródłowa netgen-1.20.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.20.tar.bz2
Wersja dla MS Windows netgen-win-1.20.zip

Netgen 1.19 Obsługa parametrów ForceClass i ForceSpeed.

Wersja źródłowa netgen-1.19.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.19.tar.bz2
Wersja dla MS Windows netgen-win-1.19.zip

Netgen 1.18 Konfigurowalna lista typów łączników. Zaimplementowane poszukiwanie "dziur" w siatce dróg.

Wersja źródłowa netgen-1.18.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.18.tar.bz2
Wersja dla MS Windows netgen-win-1.18.zip

Netgen 1.17 Usunięte podwójne parsowanie danych wejściowych. Dodany algorytm korekcji klas dróg wzorowany na Maproute Stanisława Kozickiego.

Wersja źródłowa netgen-1.17.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.17.tar.bz2
Wersja dla MS Windows netgen-win-1.17.zip

Netgen 1.14 Poprawiony błąd w algorytmie wyszukiwania przecięć

Wersja źródłowa netgen-1.14.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.14.tar.bz2
Wersja dla MS Windows netgen-win-1.14.zip

Netgen 1.13 Rozszerzony zbiór routowalnych typów linii

Wersja źródłowa netgen-1.13.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.13.tar.bz2
Wersja dla MS Windows netgen-win-1.13.zip

Netgen 1.12 Poprawiony błąd klasyfikacji węzłów

Wersja źródłowa netgen-1.12.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.12.tar.bz2
Wersja dla MS Windows netgen-win-1.12.zip

Netgen 1.11 Ulepsznone maskowanie ślepych końców

Wersja źródłowa netgen-1.11.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.11.tar.bz2
Wersja dla MS Windows netgen-win-1.11.zip

Netgen 1.10 Zwiększona elastyczność maskowania ślepych końców

Wersja źródłowa netgen-1.10.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.10.tar.bz2
Wersja dla MS Windows netgen-win-1.10.zip

Netgen 1.09 Kolejne poprawki Marcina Rudowskiego - maskowanie przecięć

Wersja źródłowa netgen-1.09.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.09.tar.bz2
Wersja dla MS Windows netgen-win-1.09.zip

Netgen 1.08 Poprawki Marcina Rudowskiego

Wersja źródłowa netgen-1.08.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.08.tar.bz2
Wersja dla MS Windows netgen-win-1.08.zip

Netgen 1.07 Nowy algorytm obliczania przecięć zaimplementowany przez Marcina Rudowskiego

Wersja źródłowa netgen-1.07.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.07.tar.bz2
Wersja dla MS Windows netgen-win-1.07.zip

Netgen 1.06 Poważne usprawnienia szybkościowe Marcina Rudowskiego

Wersja źródłowa netgen-1.06.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.06.tar.bz2
Wersja dla MS Windows netgen-win-1.06.zip

Netgen 1.05

Wersja źródłowa netgen-1.05.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.05.tar.bz2
Wersja dla MS Windows netgen-win-1.05.zip

Netgen 1.04

Wersja źródłowa netgen-1.04.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.04.tar.bz2
Wersja dla MS Windows netgen-win-1.04.zip

Netgen 1.03 zoptymalizowany pod względem szybkości przez Marcina Rudowskiego

Wersja źródłowa netgen-1.03.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.03.tar.bz2
Wersja dla MS Windows netgen-win-1.03.zip

Netgen 1.02

Wersja źródłowa netgen-1.02.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.02.tar.bz2
Wersja dla MS Windows netgen-win-1.02.zip

Netgen 1.01

Wersja źródłowa netgen-1.01.tar.bz2
Statycznie skompilowana wersja dla Linuksa netgen-linux-static-bin-1.01.tar.bz2
Wersja dla MS Windows netgen-win-1.01.zip


Ostatnia aktualizacja strony nastąpiła 4 pazdziernika 2009 r.

Autor strony: Mariusz Dąbrowski (mgd4 na poczta onet pl)