Forum QGIS

Pełna wersja: Obliczenia na wektorach i kalkulator pól - pytania
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Mam kilka problemów dotyczących obliczeń na warstwach wektorowych i zmiany tabeli atrybutów w dosyć złożonej bazie danych. Przeglądałem forum w poszukiwaniu odpowiedzi na nurtujące mnie pytania, jednak nic pomocnego nie znalazłem (lub nie zadziałało to, co uważałem za pomocne). Dlatego założyłem nowy wątek.
Moje dane to m. in. warstwy poligonów w plikach shp. W każdej tabeli jest ponad 20 000 wierszy, co z miejsca uniemożliwia mi manualną modyfikację danych. Jedna warstwa przedstawia powierzchnie dróg w Kielcach, druga to budynki w Kielcach.
Oto moje pytania:
1. Jak zmierzyć powierzchnię wszystkich poligonów na warstwie oraz w obszarze ograniczonym jakimś poligonem w granicach miasta (np powierzchnię dróg w dzielnicy)?
2. Jak zmierzyć powierzchnię wszystkich obiektów w mieście lub w dzielnicy miasta oznaczonych w tabeli atrybutów np. jako 'budynki mieszkalne'?
3. Jak zmodyfikować tabelę atrybutów w następującym przypadku:
w warstwie 'budynki', w kolumnie 'type' mam 34 unikalne wartości (symbolizujące rodzaje budynków, np. budynek mieszkalny, budynek przemysłowy itd.). Chciałbym zmienić nazwę w kolumnie 'type' np z 'budynek przemysłowy' na 'przemysłowy', 'budynek mieszkalny' na 'mieszkalny' lub 'buydynek mieszkalny' na 'mieszkalny' (literówka jest celowa ponieważ w bazie danych mam takie błędy)?
4. Dodałem w do tabeli kolumnę o nazwie 'id' (real 10 znaków). Co zrobić, aby program uzupełnił kolumnę 'id' (lub stworzył nową) przypisując każdemu z typów zabudowy (lub dróg) unikalny identyfikator cyfrowy, (najlepiej taki, który ja sam sprecyzuje)? (np dla type 'mieszkalny' id '1', dla type 'przemysłowy' id '2' itd.).

Z góry dziękuję za pomoc w rozwiązaniu powyższych pytań Shy. Myślę, że kolejne wynikną w takcie dalszej pracy. Będę je umieszczał w tym temacie.
Pozdrawiam.
Witam
Na początek należy stworzyć dodatkową kolumnę w tabeli, która zawierać będzie powierzchnie każdego z poligonów (kalkulator pól i wyrażenie $area).

ad. 1 i 2
Aby policzyć powierzchnię wszystkich poligonów (np. dróg) wejdź w wektor->narzędzia analizy->podstawowe statystyki. Wybierz teraz kolumnę która zawiera powierzchnię poligonów i kliknij OK. Wśród obliczonych statystyk powinna być suma powierzchni wszystkich poligonów.
Aby zliczyć powierzchnię poligonów konkretnego typu, najpierw za pomocą kreatora zapytań w tabeli atrybutów wybierz wszystkie 'budynki mieszkalne'. Teraz podobnie jak w poprzednim przykładzie za pomocą narzędzia 'Podstawowe statystyki' można policzyć sumę powierzchni zaznaczonych poligonów (trzeba zaznaczyć taką opcję).
Jak chcesz policzyć powierzchnię poligonów ograniczonych innym poligonem należy skorzystać z wtyczki 'zapytanie przestrzenne' i zaznaczyć poligony budynków lub dróg, które zawierają się w danej dzielnicy. Po wybraniu odpowiednich poligonów można znów skorzystać z Podstawowych statystyk. Najlepiej żeby drogi były przycięte do granic dzielnic (można to zrobić za pomocą narzędzia przytnij z menu Wektor->Narzędzia geoprocesingu).

ad. 3
za pomocą kalkulatora pól użyj funkcji replace(type,'budynek ',''), gdzie type to nazwa kolumny. Podobnie dla innych przypadków.

ad.4
Tutaj chyba trzeba ręcznie dla każdego typu. Najpierw kreatorem zapytań wybierz wszystkie budynki danego typu, a później kalkulatorem pól przypisz im wartość id (zaznacz opcję 'aktualizuj wybrane pola')

Mam nadzieję, że zrozumiale to wszystko napisałemWink
Dziękuję. Wszystko działa jak należy Smile.
Teraz wystąpił problem z georeferencerem, ale o tym w innym temacie.