demgen Wiki PL - CrusheerPL/demgen GitHub Wiki
Oto polskie wiki do programu demgen.
Spis treści:
Instalacja
Program można zainstalować na dwa sposoby:
- pobranie archiwum ZIP demgen-1.x.x.zip (najnowsza wersja) ze strony Releases i wypakowanie go do dowolnego folderu (opcja najprostsza i dla każdego)
- zbudowanie pliku wykonywalnego z kodu źródłowego (dla użytkowników zaawansowanych - instrukcja poniżej).
Instrukcja instalacji z kodu źródłowego:
- Zainstalować ostatnią obsługiwaną przez system wersję programu Visual Studio (min. 2017) wraz z kompilatorem języka C i Windows SDK
- 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 kataloguC:\
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
-
- Pobrać kod źródłowy (z repozytorium lub ze strony Releases) i wypakować gdziekolwiek
- 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
-
- Docelowe pliki znajdują się w folderze
dist
w katalogu z kodem źródłowym. - 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:
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:
Tak wygląda główne okno aplikacji:
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:
Uwaga:
- 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).
- 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ć:
-
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).
-
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 naFS 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:
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
) naShape
(ohradou
) iFile Format
(Formát údajov
) naTIFF
- 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:
- 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):
- 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):
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:
- 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 folderzetextures_png
(wymagana ręczna konwersja do DDS BC7), a także pojawi się ten komunikat:
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):
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 zmodyfikowanyterrainShader.xml
z kataloguassets/FS22
.
- 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 dalejground/
). Rezultat powinien być mniej więcej taki jak na poniższym screenie (ułożenie ścieżek może być różne):
Usuń pliki z nazwami kończącymi się na .cache
(jeśli są) z folderu, gdzie znajduje się i3d mapy:
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.
-
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.
- Program utknął na etapie pobierania
-
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).
- upewnij się, że w ścieżce do folderu, do którego mają być zapisywane dane, nie ma znaków diakrytycznych (typu
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 ([email protected]), 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:
- Polska: Główny Urząd Geodezji i Kartografii (GUGiK) - https://www.gov.pl/web/gugik, https://geoportal.gov.pl/
- Czechy: Czech Office for Surveying, Mapping and Cadastre (Český úřad zeměměřický a katastrální, ČÚZK) - https://cuzk.cz/, https://geoportal.cuzk.cz/
- Słowacja: Geodesy, Cartography and Cadastre Authority of the Slovak Republic (Úrad geodézie, kartografie a katastra SR, ÚGKK) - https://www.skgeodesy.sk/, https://www.geoportal.sk/
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ść.