Skip to content

demgen Wiki PL

CrusheerPL edited this page Dec 25, 2022 · 10 revisions

Oto polskie wiki do programu demgen.

Spis treści:

  1. Instalacja
  2. Obsługa programu
  3. Rozwiązywanie problemów
  4. Informacje o programie

Instalacja

Program można zainstalować na dwa sposoby:

Instrukcja instalacji z kodu źródłowego:

  1. Zainstalować ostatnią obsługiwaną przez system wersję programu Visual Studio (min. 2017) wraz z kompilatorem języka C i Windows SDK
  2. Zainstalować środowisko Python (koniecznie z zaznaczoną opcją Add Python to PATH!) i biblioteki wspomniane w tym repozytorium w sekcji Wymagania w pliku README.md
    • komenda w wierszu poleceń uruchomionym jako administrator:

        python -m pip install <nazwa_biblioteki>
      
    • w przypadku instalacji wersji deweloperskiej biblioteki Pillow:

      • pobrać zawartość jej repozytorium, wypakować ZIPa do katalogu C:\

      • otworzyć wiersz poleceń jako administrator i uruchomić następujące komendy zgodnie z następującym szablonem (jedna linia = jedna komenda; ważne jest zachowanie podanej kolejności!):

        set PYTHON=<ścieżka_do_głównego_folderu_Pythona>
        cd /D <ścieżka_do_głównego_folderu_biblioteki_Pillow>\winbuild
        "%PYTHON%\python.exe" build_prepare.py -v --depends=C:\pillow-depends
        build\build_dep_all.cmd
        build\build_pillow.cmd bdist_wheel
        path C:\Pillow\winbuild\build\bin;%PATH%
        "%PYTHON%\python.exe" -m pip install <ścieżka_do_powstałego_pliku_whl>.whl
        "%PYTHON%\python.exe" selftest.py
        
        • Przykład: Python 3.8.10 zainstalowany w katalogu C:\Program Files\Python38, główny folder biblioteki Pillow znajduje się w katalogu C:\

          set PYTHON=C:\Program Files\Python38
          cd /D C:\Pillow-main\winbuild
          "%PYTHON%\python.exe" build_prepare.py -v --depends=C:\pillow-depends
          build\build_dep_all.cmd
          build\build_pillow.cmd bdist_wheel
          path C:\Pillow\winbuild\build\bin;%PATH%
          "%PYTHON%\python.exe" -m pip install C:\Pillow-main\dist\Pillow-9.3.0.dev0-cp38-cp38-win_amd64.whl
          "%PYTHON%\python.exe" selftest.py
          
    • w przypadku instalacji wersji deweloperskiej PyInstallera - w wierszu poleceń otwartym jako administrator uruchomić komendę:

        python -m pip install https://github.com/pyinstaller/pyinstaller/tarball/develop
      
  3. Pobrać kod źródłowy (z repozytorium lub ze strony Releases) i wypakować gdziekolwiek
  4. W nowym folderze znajdą się m.in. kod źródłowy (demgen.py) oraz dwa pliki .spec z konfiguracją dla PyInstallera:
    • Otworzyć wiersz poleceń jako administrator i przejść do tego katalogu (przykład komendy: cd C:\demgen-master)

    • Aby zbudować pakiet dystrybucyjny z programem, uruchomić w wierszu poleceń komendę:

        pyinstaller demgen.spec
      
    • (niezalecane) Albo aby skompilować pojedynczy plik wykonywalny, uruchomić w wierszu poleceń komendę:

        pyinstaller demgen_onefile.spec
      
  5. Docelowe pliki znajdują się w folderze dist w katalogu z kodem źródłowym.
  6. W przypadku pojawienia się po uruchomieniu programu komunikatu z błędem cannot import name 'Blosc' from 'numcodecs', zedytować wykorzystany plik .spec poprzez usunięcie znacznika komentarza z linii nr 10, a następnie powtórzyć krok 4.

Obsługa programu

Przy każdym uruchomieniu demgen sprawdza obecność narzędzi Texconv i GIANTS Texture Tool w jego głównym folderze. Gdy zabraknie tego pierwszego, jest automatycznie pobierana z GitHuba jego najnowsza wersja. W przypadku braku tego drugiego, zostanie wyświetlony odpowiedni komunikat jak na poniższym screenie:

wiki_pl_01.png

Po kliknięciu opcji Tak należy wskazać lokalizację, w której mają być szukane pliki textureTool.exe i textureTool.xml (oczywiście wcześniej pobrany zip z GDN musi być wypakowany). Jeżeli pliki te nie zostaną znalezione przez program bądź szukanie będzie anulowane w momencie wyboru folderu, lub zostanie zaznaczona w komunikacie opcja Nie, pojawi się kolejne okno z informacją, że niektóre funkcje programu mogą nie działać prawidłowo:

wiki_pl_02.png

Tak wygląda główne okno aplikacji:

wiki_pl_03.png


Tworzenie, otwieranie i zapisywanie konfiguracji

Wprowadzanie potrzebnych danych jest bardzo łatwe - wystarczy wpisać żądaną wartość w odpowiednim polu i wcisnąć ENTER (lub Tab, jeśli chcesz przejść do kolejnego pola).

Aby sprawdzić umiejscowienie obszaru zainteresowania na mapie, należy kliknąć w przycisk Otwórz KML - jeżeli został zainstalowany program G**gle Earth Pro, zostanie on otwarty wraz z utworzoną płaszczyzną. Gdy zajdzie potrzeba, można do woli nanosić poprawki do wprowadzonych danych aż do osiągnięcia pożądanego rezultatu.

Powstałą w ten sposób konfigurację można bez przeszkód zapisać jako plik XML o dowolnej nazwie, by móc jej użyć w przyszłości lub podzielić się nią z innymi - do tego służy przycisk Zapisz konfigurację.

Można również ją załadować poprzez kliknięcie w przycisk ... obok pola Ścieżka do konfigracji:

wiki_pl_04.png

Uwaga:

  1. Po otwarciu pliku XML utworzonego na innym urządzeniu warto zmienić ścieżkę do folderu, do którego mają trafić dane wyjściowe. W przypadku, gdy w tej z XML ustawiono literę dysku wskazującą na nieistniejącą partycję, będzie ona ustawiona na domyślną (patrz lista niżej).
  2. Gdy plik XML jest wadliwy (np. zawiera błędy w składni), pojawi się taki komunikat (ścieżka może być inna, ale zawsze wskazuje na otwierany plik) - wówczas należy go poprawić:

wiki_pl_05.png

  1. Jeżeli w pliku XML brakuje jakiegokolwiek parametru lub jego wartość jest niedozwolona (np. litery w liczbach), zostanie ona ustawiona na domyślną (patrz lista niżej).

  2. Upewnij się, że w ścieżce do folderu, do którego mają być zapisane dane, nie ma polskich znaków - GIANTS Texture Tool ma z nimi problem, czego skutkiem jest brak plików w katalogu textures (tylko jeśli wersja FS jest ustawiona na FS 22, w pozostałych przypadkach wszystko powinno być w porządku).

Struktura pliku konfiguracyjnego:

<?xml version='1.0' encoding='utf-8'?>
<demgenConfig>
  <country value="\kraj\"/>
  <centralPoint latitude="\szer. geogr.\" longitude="\dł. geogr.\"/>
  <terrain size="\wymiary\" metersPerPixel="\rozdzielczość\" rotation="\kąt obrotu (CW)\"/>
  <dataSavingFolder path="\ścieżka/do/folderu/z/danymi/wyjściowymi\"/>
</demgenConfig>

Przykład:

<?xml version='1.0' encoding='utf-8'?>
<demgenConfig>
  <country value="PL"/>
  <centralPoint latitude="50.428465" longitude="21.281471"/>
  <terrain size="1024" metersPerPixel="2.0" rotation="21.37"/>
  <dataSavingFolder path="K:/demgen/test2"/>
</demgenConfig>

Domyślne wartości:

  • Kraj: PL - Polska
  • Współrzędne centralnego punkt mapy:
    • szerokość geograficzna: 0.0º
    • długość geograficzna: 0.0º
  • Parametry terenu:
    • wymiary: 2048 m
    • rozdzielczość (parametr Units per Pixel w GIANTS Editor): 2.0 m/px
    • Kąt obrotu (CW = zgodnie z ruchem wskazówek zegara) - 0.0º
  • Folder z danymi wyjściowymi: demgen_data w głównym katalogu programu.

Generowanie ukształtowania terenu (DEM i obiekty 3D)

Do realizacji tego procesu potrzebne są dane wysokościowe - należy więc najpierw kliknąć przycisk Pobierz dane wysokościowe. Ich pobieranie i przetwarzanie może zająć jakiś czas (podyktowane jest to wielkością żądanego obszaru, prędkością połączenia internetowego oraz wydajnością sprzętu, na którym uruchomiony jest program) i kończy się wyświetleniem tego komunikatu:

wiki_pl_09.png

Uwaga - tylko dla obszaru Słowacji: jeżeli w konfiguracji kraj został ustawiony na SK - Słowacja, program poprosi dodatkowo o plik GeoTIFF z danymi wysokościowymi, który należy wcześniej przygotować:

  • otwórz klienta mapy ZBGIS® (https://zbgis.skgeodesy.sk/mkzbgis/en/teren/export)
  • sprawdź, czy dostępne są dane dla interesującego Cię miejsca (obszary z zieloną obwódką = dane są dostępne)
  • zmień opcje Select Export Region with (Výber priestorového rozsahu) na Shape (ohradou) i File Format (Formát údajov) na TIFF
  • wprowadź swój adres e-mail w polu E-mail
  • zaznacz pole I agree to the license terms. (Súhlasím s licenčnými podmienkami.)
  • wyznacz interesujący cię obszar (powierzchnia musi być mniejsza niż 400 km²; rysowanie zakończ podwójnym kliknięciem), wszystko powinno być mniej więcej jak na poniższym screenie:

wiki_pl_06.png

  • kliknij Export (Exportovať). Po jakimś czasie na podany adres e-mail przyjdzie wiadomość z linkiem do pobrania (jest on aktywny przez 24 godziny od momentu wysłania wiadomości):

wiki_pl_07.png

  • Pobranego zipa ExportDMR wypakuj do dowolnego folderu. Potrzebny z niego jest plik o nazwie dmr.tif, i to jego należy wybrać.

Wciśnięcie przycisku Generuj DEM spowoduje powstanie dwóch obrazów PNG o nazwie map_dem - jeden w 16-bitowej skali szarości (map_dem_16bit.png), a drugi w 8-bitowych kolorach RGB (map_dem_8bit.png), jednak oba zawierają w sobie pobrane wcześniej te same dane. Na wyjściu tworzony jest również plik tekstowy demStats z wartościami wysokości najniższego i najwyższego punktu, ich różnicy i parametru Height Scale. Te same statystyki pokazują się w komunikacie końcowym (przykład na poniższym screenie):

wiki_pl_08.png

Potem zostaje tylko podmiana pliku map_dem w Twojej mapie z jego nowo powstałą wersją (zalecane jest wykorzystanie pliku map_dem_16bit.png). Jeżeli wartość Height Scale w pliku demStats jest inna niż 255, otwórz i3D mapy w edytorze tekstu, znajdź w linijce <TerrainTransformGroup parametr heightScale i zmień jego wartość na tę wcześniej wymienioną.

W pliku XML mapy należy zmienić wartości parametrów width i height na takie, jakie zostały wprowadzone na wejściu.

Opcjonalnie, aby utworzyć modele 3D z podzielonym na równe części (kwadraty 1024x1024) ukształtowaniem terenu, trzeba kliknąć w przycisk Generuj modele 3D terenu - pliki OBJ z nimi zostaną zapisane w katalogu staticTerrain i mogą być otwarte w różnych edytorach grafiki 3D, np. w Blenderze.


Tworzenie i implementacja tekstur terenu

Tymczasowe tekstury terenu utworzone na podstawie zdjęć lotniczych są pomocne m.in. podczas malowania upraw/roślinności czy ustawiania obiektów (np. budynków).

Pierwszym krokiem do ich otrzymania jest wybór wersji FS, do której ma być tworzona mapa. Następnie należy zaznaczyć, co ma być pobrane przez program - zdjęcia lotnicze do tekstur, cieniowanie terenu (1 obraz), czy wszystko.
Pobieranie rozpoczyna się wraz z kliknięciem w przycisk Pobierz zdjęcia. Gotowe tekstury w formacie DDS zostaną zapisane w folderze textures.

Uwaga:

  • Jeśli żadne z pól nie zostanie zaznaczone, pojawi się informacja, że nic nie zostało pobrane:

wiki_pl_10.png

  • Jeśli wybrano FS 22, wymagana jest obecność narzędzia GIANTS Texture Tool w głównym katalogu programu. W razie jego braku, tekstury w formacie PNG zostaną zapisane w folderze textures_png (wymagana ręczna konwersja do DDS BC7), a także pojawi się ten komunikat:

wiki_pl_11.png

Aby zapisać pliki weightmap (*_weight.png) dla tych tekstur, należy kliknąć w przycisk Generuj weightmapy, a następnie wybrać lokalizację folderu z danymi Twojej mapy (najczęstsze ich nazwy to data, mapDE, map01, etc., ale zawsze zawierają w sobie wspomniane wcześniej pliki).

W katalogu assets znajdują się pliki potrzebne podczas implementacji nowo utworzonych tekstur do mapy, podzielone na kilka folderów (zawartość każdego jest przystosowana pod standardy odpowiedniej wersji FS).

W folderze z i3d mapy należy utworzyć katalog textures, a w nim jeszcze jeden o nazwie terrain - do niego wkleja się tekstury ortho**_diffuse i - jeśli nie jest to mapa do FS 13 - ortho_normal z katalogu assets.
Dotyczy wyłącznie FS 19 i FS 13: pobierz stąd zipa z przeskalowanymi teksturami terenu (wybierz tego odpowiadającego twojej czystej mapie), a następnie wypakuj jego zawartość tam, gdzie są wcześniej wklejone tekstury (chyba że podano inaczej - sprawdź dołączony do archiwum plik README.txt, jeśli jest):

tx11.png

tx12.png

Pora na edycję samego pliku i3d mapy:

  • wklej do niego we wskazane miejsca skopiowane z pliku XML *x*_FS**_extraLines (odpowiedniego do wersji FS i wielkości terenu) dodatkowe linijki. Nie zapomnij o dostosowaniu wklejonych ścieżek do plików weightmap (ortho**_weight), by zgadzały się ze stanem faktycznym.
  • dotyczy wyłącznie FS 22: znajdź linijkę ze ścieżką do terrainShader.xml i usuń z niej $data/shaders/ tak jak na poniższym screenie, dodatkowo do folderu z i3d mapy wklej zmodyfikowany terrainShader.xml z katalogu assets/FS22.

wiki_pl_12.png

  • dotyczy wyłącznie FS 19: usuń $data/maps/ ze ścieżek prowadzących do tekstur terenu ($data/maps/textures/terrain/, z wyjątkiem tych z dopisanym dalej ground/). Rezultat powinien być mniej więcej taki jak na poniższym screenie (ułożenie ścieżek może być różne):

tx14.png

Usuń pliki z nazwami kończącymi się na .cache (jeśli są) z folderu, gdzie znajduje się i3d mapy:

96.png

W tym momencie tekstury ze zdjęć lotniczych powinny być widoczne w GIANTS Editor, jak i w FS.

Rozwiązywanie problemów

Uwaga: lista aktualizowana na bieżąco.

  1. Po uruchomieniu demgen.exe nic się nie dzieje, nie pojawia się żadne okno. (Problem pojawia się po wydaniu nowej wersji DirectXTex)

    • Program utknął na etapie pobierania texconv.exe - pobierz ten plik ręcznie z innej dostępnej wersji (np. z wydania October 2022 pod tym linkiem), przenieś do katalogu z programem demgen i uruchom jeszcze raz.
  2. Brak tekstur terenu w folderze textures.

    • upewnij się, że w ścieżce do folderu, do którego mają być zapisywane dane, nie ma znaków diakrytycznych (typu ę, ś, ą, ć, ż). Problem z ich interpretacją występuje w chyba każdym programie ze studia GIANTS (od którego pochodzi Texture Tool).

Informacje o programie

Wersja: 1.0.1.
Autorzy:

  • główny kod programu, przekład funkcji 'wgs84_to_sjtsk' na język Python, ikona: crpl - Licencja BSD 3-Clause
  • oryginalny kod źródłowy funkcji 'wgs84_to_sjtsk' w języku JavaScript: Tomáš Pecina (tomas@pecina.cz), https://www.pecina.cz/krovak.html

Dziennik zmian

v1.0.1 (2022-12-02):

  • poprawiono interpretację wprowadzanych współrzędnych w formacie "stopnie, minuty, sekundy" bez uwzględnienia kierunku (N/S, E/W)
  • PL: zmieniono adres usługi pobierania zdjęć lotniczych, dotychczas używany powróci wraz z dodaniem odpowiedniej funkcji do programu

v1.0.0 (2022-09-04):

  • pierwsze wydanie

Generowane przez program pliki są opracowaniami publicznie dostępnych danych (produkty lotniczego skanowania laserowego oraz zdjęcia) pochodzących z niniejszych instytucji:

Dotyczy tylko skompilowanych paczek:

  • wbudowane środowisko Python 3.8.10, będące rozwiązaniem otwartoźródłowym, zostało wykorzystane na licencji Python Software Foundation.
  • wbudowane wymagane do poprawnego działania programu biblioteki do Pythona 3.8, będące rozwiązaniami otwartoźródłowymi, zostały wykorzystane zgodnie z ich odpowiednimi licencjami - więcej informacji w pliku LICENSES_builtInSoftware.txt w głównym katalogu repozytorium..

Wszelkie modyfikacje dozwolone, tak samo jak i kopiowanie zawartości tego repozytorium do różnych hostingów, pod warunkiem wskazania oryginalnych autorów i źródła. W razie wystąpienia problemów z działaniem - daj znać.
Z programu korzystasz wyłącznie na własną odpowiedzialność.