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

ArcGIS Desktop: 23MB (73MB)
ArcGIS Pro: 94MB (1,07GB)
 

1. Wstęp do GIS

Wykład 1: Wstęp do GIS
 
Ćwiczenie 1: Wycieczka po San Diego. Wstęp do ArcGIS
 
Wykład 2: Aplikacja ArcGIS
Ćwiczenie 2: Szacowanie szkód wywołanych przez tornado. Od metainformacji do wyników analizy
 
Wykład 3: Rozwiązywanie zadań przy użyciu GIS
Ćwiczenie 3: Wybór lokalizacji dla centrum młodzieżowego. Zapytania atrybutowe i przestrzenne
 

2. Symbolizacja map

Wykład 4: Symbole i adnotacje
Ćwiczenie 4: Lokalizacja ośrodka dziennego dla seniorów. Symbolizacja i etykietowanie obiektów na mapach
 
Wykład 5: Symbole bazujące na atrybutach
Ćwiczenie 5: Lokalizacja ośrodka dziennego dla seniorów. Symbole oparte na atrybutach
 
Wykład 6: Metody klasyfikacji danych
Ćwiczenie 6: Lokalizacja ośrodka dziennego dla seniorów. Klasyfikacja danych
 
Wykład 7: Mapy gęstości i proporcji
Ćwiczenie 7: Lokalizacja ośrodka dziennego dla seniorów. Mapy gęstości i normalizacja danych
 

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
 
Ćwiczenie 12: Salzburg. Geobaza wspierająca branżę turystyczną
 
 

5. Tworzenie i edycja danych

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

6. Analizy GIS

Wykład 16: Procedura analiz GIS
 
Ćwiczenie 17: Poszukiwania nieruchomości spełniającej kryteria. Definiowanie problemu i wybór danych do analiz
 
Wykład 17: Zapytania atrybutowe i przestrzenne, łączenie tabel
 
Ćwiczenie 18: Poszukiwania nieruchomości spełniającej kryteria. Analiza GIS
 
Wykład 18: Prezentacja wyników analiz
 
Ćwiczenie 19: Poszukiwania nieruchomości spełniającej kryteria. Przygotowanie mapy prezentacyjnej
 
Ćwiczenie 20: Poszukiwania nieruchomości spełniającej kryteria. Tworzenie raportów
 

7. Geoprzetwarzanie i modelowanie

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

8. Tworzenie profesjonalnych map

Wykład 21: Elementy mapy, praca w widoku układu
 
Ćwiczenie 24: Przetarg na zakup drewna. Praca z układami
 
Wykład 22: Tworzenie profesjonalnych map
 
Ćwiczenie 25: Siedliska nietoperzy w południowo zachodniej części Ameryki Północnej. Tworzenie profesjonalnych map"