Atrybut funkcyjny w GeoMedia obliczający liczbę poligonów


Tomasz Bartuś



OPROGRAMOWANIE:

Geomedia Professional: 06.01.11.13

PROBLEM:

Mamy dwie klasy o geometrii poligonowej:

  • geologia_litostratygrafia (Fig. 1),
  • siatka - siatka kwadratowa o boku 500 m. (Fig. 2)
Fig. 1. Klasa: geologia_litostratygrafia
Fig. 1. Klasa: geologia_litostratygrafia

Fig. 2. Klasa: siatka
Fig. 2. Klasa: siatka (nałożona na klasę geologia_litostratygrafia)

Stawiamy sobie za cel obliczenie liczby platów poligonowych klasy geologia_litostratygrafia, przypadajacych na kazde oczko klasy siatka (Fig. 3).

Fig. 3. Liczba poligonowych płatów klasy geologia_litostratygrafia przypadających na przykładowe oczko klasy siatka
Fig. 3. Liczba poligonowych płatów klasy geologia_litostratygrafia przypadających na przykładowe oczko klasy siatka

UWAGA!

Dlaczego mowa o płatach, a nie prościej o poligonach? Już tłumaczę:

Aby dokonać niezbędnych obliczeń będziemy musieli skorzystać z narzędzia: Aggregation, a także wykorzystać odpowiednio zbudowany atrybut funkcyjny. Aby skorzystac z agregacji, musimy wcześniej dokonac przypisania poligonów do odpowiednich oczek siatki. Dokonamy tego wykorzystując narzędzie Spartial Intersection. Narzędzie to wyznaczy nam intersekcje (efekt nałożenia dwóch poligonowych klas na siebie). Klasa wydzieleń geologicznych zostanie podzielona na n kwadratów, identycznych z poligonami klasy siatka. Każdy poligon klasy geologia_litostratygrafia otrzyma dodatkowy atrybut określający, do którego z oczek siatki został przypisany (w którym oczku siatki jest położony).

No dobrze, ale co się stanie z dużymi poligonami, które zostały rozdzielone, i w obrebie jednego oczka siatki występuja w dwóch bądź większej liczbie fragmentów np: jedno wydzielenie rozdzielone w obrębie jednego oczka osadami dolinnymi (Fig. 4)?

Fig. 5. Efekt działania polecenia Generate Base Geometry
Fig. 5. Efekt działania polecenia Generate Base Geometry

Fig. 4. Dwa płaty jednego poligonu klasy geologia_litostratygrafia przypadające na przykładowe oczko klasy siatka (1)

Fig. 4. Dwa płaty jednego poligonu klasy geologia_litostratygrafia przypadające na przykładowe oczko klasy siatka (2)
Fig. 4. Dwa płaty jednego poligonu klasy geologia_litostratygrafia przypadające na przykładowe oczko klasy siatka

Przed dokonaniem intersekcji, stanowiły one jedna całość, w związku z czym posiadały jeden identyfikator ID. Po dokonaniu intersekcji, zostały rozdzielone granicami klasy siatka. Doszło więc do ich podzielenia na mniejsze fragmenty, które dalej nazywam płatami. Płaty, pomimo tego, że nie stykają się ze sobą, ciągle posiadają ten sam ID odziedziczony po swoim rodzicu, z którego zostały wydzielone.

Gdybyśmy prowadzili dalsze obliczenia, bez dodatkowych poprawek i utworzyli w module Aggregation atrybut funkcyjny w postaci

COUNT(Detail.IntersectionGeometry)

otrzymamy liczby poligonów oparte na geometrii czyli ID. W ten sposób ich liczba będzie równa bądź niższa od rzeczywistej liczby platów (w naszym przypadku powyższy atrybut funkcyjny zwróciłby liczbę: 4 bo płaty 1 i 4 są częściami jednego obiektu). Ten problem należy rozwiązać.

ROZWIĄZANIE:

  1. W oknie dialogowym Feature Class, otwieramy kolejno klasę punktów (np: geologia_litostratygrafia) i klasę siatki (np: siatka) i zmieniamy mazwy ich kluczy podstawowych na intuicyjne, kolejno: ID_geologia_litostratygrafia oraz ID_siatka. Krok ten nie jest konieczny ale ułatwi nam późniejsze prace.
  2. Obliczamy iloczyn przestrzenny Spartial intersection klasy wydzielen geologicznych (geologia_litostratygrafia) i klasy siatki (siatka) (zapytanie wynikowe: geol_lito_siatka). Każdy z wydzielen geologicznych otrzymuje w ten sposób dodatkowy atrybut opisujący jego położenie względem oczek siatki (ID_siatka).
  3. W oknie dialogowym Tools->Generate Base Geometry, tworzymy zapytanie, które uprości geometrię zapytania geol_lito_siatka do pojedynczych obiektów. Należy wybrać typ topologii dla generowanego zapytania - w tym przypadku "Face" (Fig. 5).
  4. Fig. 5. Efekt działania polecenia Generate Base Geometry
    Fig. 5. Efekt działania polecenia Generate Base Geometry
  5. Jeżeli w wyniku operacji Generate Base Geometry, zwrócone zostały poligony oraz punkty przecięcia będące efektem wcześniejszej operacji Spartial Intersection. Musimy teraz pozbyć się punktów i utworzyć zapytanie dające w efekcie wyłącznie obiekty o geometrii powierzchniowej
  6. Otwiieramy okno: Analysis->Functional Atributes i przy pomocy utworzonego atrybutu:

    FILTERAREAL(Input.IntersectionGeometry)
    tworzymy zapytanie o poligony (geol_lito_siatka_BaseGeometry). W wyniku jego działania otrzymujemy zapytanie złożone wyłącznie z obiektów poligonowych (Fig. 6)
  7. Fig. 6. Dwa osobne poligony utworzone z rozłączenia płatów poligonu pierwotnego (1)  Fig. 6. Dwa osobne poligony utworzone z rozłączenia płatów poligonu pierwotnego (2)
    Fig. 6. Dwa osobne poligony utworzone z rozłączenia płatów poligonu pierwotnego

  8. Za pomoca polecenia Aggregation, dla każdego okna siatki, dokonujemy obliczeń liczby wszystkich płatów (poligonów). Aggregate to summary features in: siatka; From detail features in: geol_lito_siatka_BaseGeometry; Spartial Aggregation: touch; Attribute Aggregation Id_siatka/Id_siatka; Output: NEW. Tworzymy atrybut funkcyjny dla każdego okna siatki obliczający liczbę wszystich płatów (nazwa: L_platow):
  9. COUNT(Detail.IntersectionGeometry)
  10. W wyniku uruchomienia utworzonego zapytania otrzymujemy siatkę, w którego atrybutach odnajdziemy L_platow (Fig. 7).

    Fig. 7. Liczba płatów obliczona dla wybranego oczka siatki  Fig. 7. Liczba płatów obliczona dla wybranego oczka siatki
    Fig. 7. Liczba płatów obliczona dla wybranego oczka siatki

 
 

Informacje wstępne

 
 
 
 

Dane

 
 
Dane (arch.: 23MB, po rozpak.: 73MB)
 
 
 

Ćwiczenia

 
 

1. Wstęp do GIS

 
 
 
 
Wykład 1: Wstęp do GIS
 
Ćwiczenie 1: Wstęp do ArcGIS: Wycieczka po San Diego
 
Wykład 2: Aplikacja ArcGIS
Ćwiczenie 2: Szacowanie szkód wywołanych klęskami żywiołowymi
 
Wykład 3: Rozwiązywanie zadań przy użyciu GIS
Ćwiczenie 3: Wybór lokalizacji dla centrum młodzieżowego
 
 
 

2. Symbolizacja map

 
 
 
 
Wykład 4: Symbole i adnotacje
Ćwiczenie 4: Symbolizacja i etykietowanie obiektów na mapach
 
Wykład 5: Symbole bazujące na atrybutach
Ćwiczenie 5
 
Wykład 6: Metody klasyfikacji danych
Ćwiczenie 6: Klasyfikacja
 
Wykład 7: Mapy gęstości i proporcji
Ćwiczenie 7
 
 
 

3. Układy współrzędnych i odwzorowania kartograficzne

 
 
 
 
Wykład 8: Układy współrzędnych geograficznych
Ćwiczenie 8: Położenie kabla transatlantyckiego. Modyfikacje układów współrzędnych
 
Wykład 9: Odwzorowania kartograficzne
Ćwiczenie 9: Położenie kabla transatlantyckiego. Właściwości odwzorowań kartograficznych
 
 
 

4. Organizacja danych geograficznych

 
 
 
 
Wykład 10: Modele danych geograficznych
Ćwiczenie 10: Ocena zagrożenia powodziowego. Analiza danych geograficznych
 
Wykład 11: Geobazy
Ćwiczenie 11: Ocena zagrożenia powodziowego. Tworzenie przestrzennej bazy danych
 
 
 

5. Tworzenie i edycja danych

 
 
 
 
Wykład 12: Tworzenie i edycja danych GIS
Ćwiczenie 12: Centrum handlowe Galeria. Modyfikacja śladów budynków
 
Wykład 13: Topologia
Ćwiczenie 13: Centrum handlowe Galeria. Modyfikacja obiektów z zachowaniem topologii
 
Wykład 14: Edycja atrybutów obiektów
Ćwiczenie 14: Centrum handlowe Galeria. Modyfikacja atrybutów
 
Wykład 15: Tworzenie nowych obiektów
Ćwiczenie 16: Tworzenie nowych klas i ich atrybutów
 
 
 

6. Analizy GIS

 
 
 
 
Wykład 16: Procedura analiz GIS
Ćwiczenie 17: Definiowanie problemu i wybór danych do analiz
 
Wykład 17: Zapytania atrybutowe i przestrzenne, łączenie tabel
Ćwiczenie 18: Analiza GIS
 
Wykład 18: Prezentacja wyników analiz
Ćwiczenie 19: Przygotowanie map do prezentacji
 
Ćwiczenie 20: Tworzenie raportów
 
 
 

7. Geoprzetwarzanie i modelowanie

 
 
 
 
Wykład 19: Geoprzetwarzanie
Ćwiczenie 21: Ocena zniszczeń pożarowych
 
Wykład 20: Modele i modelowanie
Ćwiczenie 22: Tworzenie i obsługa prostych modeli
 
Ćwiczenie 23: Praca z istniejącymi modelami
 
 
 

8. Tworzenie profesjonalnych map

 
 
 
 
Wykład 21: Elementy mapy, praca w widoku układu
Ćwiczenie 24: Mapa zasobów drewna obszarów National Forest Tongass
 
Wykład 22: Tworzenie profesjonalnych map
Ćwiczenie 25: Profesjonalna mapa "Siedliska nietoperzy w południowo-zachodniej części Ameryki Północnej"