Forum QGIS
Warstwa shp z wysokościami budynków - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: Warstwa shp z wysokościami budynków (/thread-1971.html)



Warstwa shp z wysokościami budynków - idzi - 05-02-2022

W jaki sposób utworzyć warstwę SHP z wysokościami budynków na podstawie danych LoD1/LoD2 z geoportalu.
Potrzebuję utworzyć SHP z wysokościami budynków celem zaimportowania jej do programi iNoise
problemy, jakienapotkałem to:
1. Po eksporcie warstwy do SHP ok. 50% budynków ma błędne geometrie.
2. W jaki sposób do pola tabeli SHP zapisać wysokość budynku. We właściwościach obiektu — pochodne są pola "Z interpolowane" (rozumie, że to teren przy punkcie) i "Z najbliższego wierzchołka" czyli chyba rzędna dachu budynku. Po odjęciu tych dwóch wartości będę miał wysokość budynku tylko jakie parametry muszę wpisać np. w kalkulatorze pól?

Może jest jakiś inny, prostszy sposób na uzyskanie warstwy SHP z geometriami i wysokościami budynków?


RE: Warstwa shp z wysokościami budynków - jerresso - 05-02-2022

1. Popraw geometrię (jest takie polecenie/algorytm)?
2. Stwórz odpowiednie polecenie w kalkulatorze pół w stylu "pole_1" - "pole_2"


RE: Warstwa shp z wysokościami budynków - idzi - 05-02-2022

Dziękuję za zainteresowanie tematem, ale:
1. Poprawianie geometrii niewiele daje, bo warstwa SHP z GML LoD zawiera nakładające się obiekty, masę zduplikowanych węzłów i niedomknięte poligony. Przy kilkudziesięciu i więcej obiektach to automatycznie się nie da.
2. I tu jest problem, bo nie znalazłem funkcji, która wyciąga z geometrii obiektu wartość "closest vertex z"

Znalazłem rozwiązanie trochę na około wykorzystując specyfikę plików LoD z Geoportalu więc za jakiś czas może nie działać.


1. Pobrać z Geoportalu BDOT10k
2. Wczytać warstwę budynki np. PL.PZGiK.333.0807__OT_BUBD_A
3. jeśli mamy potrzebę to Usunąć zbędne budynki
4. Pobrać budynki 3D z Geoportalu
5. Zaznaczuć te co nas interesują i skopiować
6. Wkleić na warstwę tymczasową
7. Do Wklejonej warstwy tymczasowej dodać pole H
8. Uzupełnić pole H formułą: z(end_point( $geometry ))-z(start_point($geometry))
z(start_point($geometry)) zwraca wartość z pierwszego punktu geometrii i jest to rzędna terenu
z(end_point( $geometry )) zwraca wartość z ostatniego punktu geometrii i tak się składa, że jest to wartość rzędnej dachu
9. Złączyć warstwę z budynkami z BDOT10k z wklejoną warstwą tymczasową polami identyfikującymi budynki zaznaczając do podłączenia pole z wyliczoną wysokością budynku H
10. Zapisać nową warstwę z budynkami i ich wysokością.


RE: Warstwa shp z wysokościami budynków - lisek87 - 09-02-2022

czesc,
Qgis domyślnie nie odczytuje poprawnie plików CityGML dlatego proponuje następującą scieżkę:
LOD1:
1. Pobrać citygml-tools (v 1.4.4) i wykonać konwersję plików do formatu cityjson
2. Za pomocą wtyczki CityJSON Loader wczytać plik z opcja "load semantic surfaces"
3. obliczyć wartości z (min i max) za pomocą narzędzia "wyodrębnij wartość Z"
4. Znajdz obiekty, których min = max - tak uzyskasz powierzchnie budynków prosto z citygml
5. Jeśli nie zależy Ci na faktycznej wysokosci (poligon 2d) to usuń duplikaty i gotowe
6. Załaduj ponownie ten sam plik cityJSON bez opcji "load semantic surfaces", oblicz wysokość budynku odejmując min i max wys jak w punkcie 3
7. podłącz dane z punktu 6 do utworoznej warstwy z punktu 5 po np. buildingID

Lod2:
1 i 2 j.w
3. W lod 2 masz podział na odpowiednie klasy w polu "surface.type". Ciebie bedzie interesować "Groundsurface"
4. powtorz punkty 6 i 7

Mam nadzieje, że pomogłem Smile


RE: Warstwa shp z wysokościami budynków - idzi - 17-02-2022

Dziękuje — będę testował Smile