Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Printsipi_GIS_A5_Shipulin

.pdf
Скачиваний:
61
Добавлен:
02.03.2016
Размер:
7 Мб
Скачать
☆

1

1

4

 

7

6

5

 

 

8

8

9

 

 

 

 

 

 

 

 

 

 

 

 

1

3

2

 

4

6

6

 

 

5

9

8

 

 

 

+

 

 

 

 

=

 

 

 

4

2

1

 

3

5

8

 

 

7

7

9

 

 

 

 

 

 

 

 

 

 

 

 

Вхідний шар 1

Вхідний шар 2

 

Вихідний шар

Рис. 5.5.2 – Ілюстрація підсумовування даних при накладенні растрових шарів.

5.5.2 Булева алгебра в топологічному накладенні

Для реалізації топологічного накладення в ГІС використовується алгебра логіки. Це розділ математичної логіки, що вивчає логічні операції над висловами. Її основоположником був англійський математик Джордж Буль (G.Bool). У алгебрі логіки істиннісні значення висловів прийнято позначати числами 1 (істина – true) і 0 (хибність – false). Кожній логічній операції відповідає функція, що набуває значень 1, 0. Такі функції називаються функціями алгебри логіки або булевими функціями.

Щоб визначити, чи є певний стан достеменним або помилковим, в просторовому аналізі використовуються логічні оператори булевої алгебри, які позначаються AND (І), OR (АБО), NOT (НЕ) в текстовому

форматі, і відповідно I, U, ¬ у символьному форматі.

Два вхідних шару топологічного накладення можна розглядати як два набори даних – набір А і набір B. Для них визначають наступні базові логічні операції:

 

логічна операція кон'юнкція A I B –

визначає пересічення

 

двох наборів даних, що ідентифікує ті сутності, які належать і

 

набору А і набору B (істинно А і В);

 

 

логічна операція диз'юнкція A U B –

визначає об'єднання

 

двох наборов даних, що ідентифікує ті сутності, які належать

 

набору А або набору B (істинно А або В);

логічна операція заперечення А ¬ B – визначає різницю двох наборов даних, що ідентифікує ті об'єкти які належать А, але

не B (істинно не В).

Ці співвідношення можна візуалізувати за допомогою діаграм Венна.

270

A AND B

A OR B

A NOT B

Рис. 5.5.3 – Діаграми Венна

Використовуючи базові логічні операції можна описати складні логічні функції.

Булеву алгебру застосовують в обчисленні або моделюванні нових об'єктів в топологічній оверлейній обробці для систем, заснованих як на векторних, так і на растрових моделях. Ці операції можуть застосовуватися до всіх типів даних – булевих, відносних, інтервальних, порядкових або номінальних.

5.5.3 Векторні оверлейні оператори

5.5.3.1 Класифікація векторних оверлейних операцій

Топологічні векторні оверлейні операції можна класифікувати за двома підставами [58]:

1)за типами елементів, що містяться в шарах для накладення (або за шарами, що містять точкові, лінійні або полігональні елементи)

2)за типом операції (наприклад, генерування вихідного шару операціями з'єднання, пересічення або іншими булевими операціями).

Класифікація векторних оверлейних операцій за типами елементів

кожного шару.

Векторні оверлейні операції включають накладення точкових, лінійних або полігональних просторових об'єктів одного шару на полігональні просторові об'єкти другого шару.

Табл. 5.5.1 ідентифікує оверлейні опції для кожної можливої комбінації типів елементів, що містяться у двох вхідних шарах.

271

Таблиця 5.5.1 – Класифікація векторних оверлейних операцій за типами елементів

Тип

Точка

Лінії

Полігони

елементів

 

 

 

Точка

Накладення

Точка на лінії

Точка в полігоні

 

точок

(Point–in–Line)

(Point–in–Polygon)

 

(Point–on–Point)

 

 

Лінії

Точка на лінії

Накладення

Лінія в полігоні

 

(Point–in–Line)

ліній

(Line–in–Polygon)

 

 

(Line–on–Line)

 

Полігони

Точка в полігоні

Лінія в полігоні

Накладення

 

(Point–in–

(Line–in–

полігонів

 

Polygon)

Polygon)

(Polygon–on–

 

 

 

Polygon)

Класифікація векторних оверлейних операцій за типом операції

Тип оверлейної операції визначається комбінацією використання логічних операторів. При цьому кожна комбінація вироблятиме різний вихідний шар. Різні програмні продукти ГІС можуть мати свої назви операцій. Наприклад, ArcGIS 9.х має інструменти оверлейних операцій, наведені в табл. 5.5.2.

Таблица 5.5.2 - Інструменти оверлейних операцій в ArcGIS 9.х

Інструмент

Опис

 

Цей інструмент створює клас просторових

Erase

об'єктів з тих просторових об'єктів або частин

(Стирання)

просторових об'єктів, які знаходяться поза

 

стираючим класом просторових об'єктів

 

Цей інструмент комбінує частини просторових

Identity

об'єктів, які накладаються ідентичними

(Ідентичність)

просторовими об'єктами для створення нового

 

класу просторових об'єктів

272

 

Продовження таблиці 5.5.2.

 

Цей інструмент створює новий клас

Intersect

просторових об'єктів з пересічних просторових

(Пересічення)

об'єктів, загальних в обох класах просторових

 

об'єктів

 

Створює тип з'єднання таблиць, в якому поля з

Spatial Join

таблиці атрибутів одного шару приєднані до

(Просторове

таблиці атрибутів другого шару на підставі

з'єднання)

відносного місця розташування просторових

 

об'єктів у двох шарах

Symmetrical

Цей інструмент створює клас просторових

Difference

об'єктів з тих вхідних і оверлейних

(Симетрична

просторових об'єктів або частин просторових

різниця)

об'єктів, що не накладають

 

Цей інструмент створює новий клас

Union

просторових об'єктів, комбінуючи просторові

(Об'єднання)

об'єкти і атрибути кожного класу просторових

 

об'єктів

 

Цей інструмент оновлює атрибути й геометрію

Update

вхідного класу просторових об'єктів або шару

(Оновлення)

оновлюючим класом просторових об'єктів або

 

шаром, яким вони накладаються

5.5.3.2 Алгоритми векторних оверлейних операцій

З можливих комбінацій накладання точкових, лінійних або полігональних просторових об'єктів одного шару на полігональні просторові об'єкти другого шару основними є три наступні алгоритми обробки:

"Точка в полігоні" (Point–in–Polygon)

"Лінія в полігоні" (Line–in–Polygon)

"Полігон на полігоні" (Polygon–on–Polygon), іншими словами

"Оверлей полігонів" (Polygon Overlay).

273

Алгоритм операції "Точка в полігоні"

Операція "Точка в полігоні" (Point–in–Polygon) ідентифікує полігон, в який падає кожна точка. Результатом накладення "Точка в полігоні" є множина точок з додатковими атрибутами полігону, в межах якого знаходяться точки.

Алгоритм операції "Точка в полігоні" наступний:

1)Спочатку використовується екстент полігону (мінімальний обмежувальний прямокутник). Якщо точка лежить зовні екстента полігону, тоді вона також повинна знаходиться поза полігоном. У такому разі аналіз закінчений (приклад на рис. 5.5.4 а). Але якщо точка падає всередину екстента, потрібне продовження обробки.

2)У одному напрямі від вибраної точки викреслюється лінія паралельно осі або X або Y, яка є направленим променем, званим інколи "половиною лінії".

3)Потім розраховують число пересічень цієї "половини лінії" з

межею полігону. Якщо результат – парне число, то це вказує на те, що точка знаходиться поза полігоном. Якщо результат – непарне число, то це вказує на те, що точка падає всередину полігону.

Описаний алгоритм аналізу "Точка в полігоні" працює також і для окремих випадків: а) острівних полігонів, б) полігонів з дірами, в) увігнутих полігонів. Приклади цих окремих випадків показані на

рис.5.5.4.

а)

б)

в)

Рис. 5.5.4 – Накладення "Точка в полігоні"

Проблеми виникають, якщо а) точка знаходиться точно на кордоні, б) точка знаходиться на вузлі або вершині, в) сегмент лінії колінеарний "половині лінії". У цих випадках, індивідуальні пакети ГІС використовують їх власні правила рішення.

274

Приклад використання аналізу "Точка в полігоні": визначення числа правопорушень, зафіксованих в точковому шарі, по міліційних ділянках.

Алгоритм операції "Лінія в полігоні"

Полігональні просторові об'єкти одного вхідного шару можуть бути накладені на лінії (дуги) другого вхідного шару. Лінія може складатися з багатьох сегментів. Аналіз "Лінія в полігоні" ідентифікує полігон, який містить кожну лінію або сегменти лінії. Результатом накладення "Лінія в полігоні" є новий шар, що містить лінії з додатковими атрибутами полігонів, в які падають лінії.

Оскільки лінії і полігони складені з сегментів, аналіз "Лінія в полігоні" вимагає визначення: перетинається чи будь-який з цих сегментів з лінією, що накладається. Завдання визначення, перетинаються чи два сегменти лінії, вирішується за раніше наведеними математичними залежностями в розділі 5.2.

Рис.5.5.5 – Накладення "Лінія в полігоні"

Геоінформаційні системи використовують наступний алгоритм.

1)Щоб зменшити число необхідних обчислень використовуються екстенти елементів. Якщо екстент лінії повністю знаходиться зовні екстента полігону, лінія ясно знаходиться поза межами полігону, і на цьому аналіз закінчується. Інакше потрібне продовження обробки (наприклад, рис. 5.5.5).

2)Оскільки лінія може бути складена з багатьох лінійних сегментів, кожен сегмент лінії має бути випробуваний на пересічення або вкладення в межах полігону.

275

3)Полігони можуть мати угнутості або дірки всередині них, тому не достатньо визначити, чи лежать обоє кінця сегменту лінії в межах полігону. Щоб вирішити це завдання, і полігон, і сегмент лінії повертають так, щоб сегмент лінії став паралельним до однієї осі.

4)Щоб визначити, чи знаходиться кожен кінець сегменту усередині або поза полігоном, від кожного кінця сегмента викреслюють лінію паралельно осі або X або Y, яка є направленим променем. Потім використовують критерій "Половини лінії" (описаний в аналізі "Точка в полігоні") відносно кількості точок пересічення променя з межею полігону. Слід зауважити, що точки пересічення "Половини лінії" не обов'язково можуть бути точкою пересічення сегмента.

5)Якщо результат тестування за допомогою “ Половини лінії” показує, що обидві точки сегмента знаходяться всередині полігону і немає пересічень сегмента, то вся лінія знаходиться всередині полігону. Інакше якщо початкова точка сегмента розташована поза полігоном і перша частина сегмента лінії знаходиться поза полігоном до першої точки пересічення сегмента, друга частина сегмента лінії розташована всередині полігону до наступної точки пересічення сегменту, і так далі.

6)Ця процедура застосовується для кожного з сегментів лінії, що формують лінію, яка аналізується.

Приклад використання аналізу "Лінія в полігоні": визначення локалізації трубопроводів у межах кварталів міста.

Алгоритм операції "Полігон на полігоні"

Процес "Полігон на полігоні" спільно обробляє полігони, що накладаються, від двох вхідних шарів, щоб створити нові полігони у вихідному шарі. Результатом аналізу "Полігон на полігоні" є вихідний шар, що містить нові полігони з атрибутами від кожного з двох оверлейних полігонів.

Оскільки кордони полігонів утворені з сегментів ліній, аналіз "Полігон на полігоні" вимагає визначення того, чи перетинаються ці сегменти оверлейних ліній. Обробка для аналізу "Полігон на полігоні" є, по суті, теж сама, що й аналіз "Лінія в полігоні".

276

5.5.3.3 Базові оверлейні операцій векторних моделей

Векторна оверлейна обробка використовує заздалегідь згадані булеві логічні операції AND, OR, і NOT, щоб визначити пересічення

(Intersection) або об'єднання (Union) двох шарів, і доповнення

(Complement) одного шару в систему.

Векторна оверлейна обробка використовує також булеві відношення включення (Inclusion (позначення )) і виключення (Exclusion (позначення )), щоб визначити, яка частину шару або міститься або не міститься в межах другого шару в системі.

Наприклад, розглянемо два шара A, B у ГІС:

Операція “ A B ” визначає частину шару А, яка міститься в шарі

B.

Операція “ A B ” визначає частину шару А, яка не міститься в шарі B.

Існують багаточисельні векторні оверлейні операції, проте всі

вони є похідними від чотирьох базових операцій: Union, Intersection, Inclusion, Exclusion [58].

Об'єднання

Об'єднання (Union) аналогічне булеву логічному операторові OR (АБО), де всі елементи від обох вхідних шарів присутні у вихідному шарі. Цей інструмент будує новий клас просторових об'єктів комбінуванням просторових об'єктів і атрибутів кожного класу просторових об'єктів. Об'єкти вхідного шару розбиваються об'єктами оверлейного шару, що пересікають їх. Атрибути об'єктів вхідного шару містять атрибути об'єктів вхідного і оверлейного шару.

а)

б)

в)

Рис. 5.5.6 – Об'єднання полігональних об'єктів двох шарів: а) вхідний шар 1, б) оверлейний шар 2, в) вихідний шар 3

277

Операція об'єднання двох шарів може бути подана у формі булевої алгебри

Шар 1 U Шар 2 = Шар 3.

(5.5.1)

Пересічення

Пересічення (Intersection) аналогічне булеву логічному оператору AND (І), обчислює геометричне пересічення вхідних і оверлейних об'єктів. Об'єкти або частини об'єктів, загальні для всіх шарів і класів об'єктів, будуть записані в результуючий клас. Об'єкти вхідної карти, які не покриті об'єктами оверлейної карти, ігноруються. Атрибути полігонів вихідної карти містять атрибути полігонів вхідної і оверлейної карти.

а)

б)

в)

Рис.5.5.7 – Пересічення полігональних об'єктів двох шарів: а) вхідний шар 1, б) оверлейний шар 2, в) вихідний шар 3

Операція пересічення двох шарів двох полігональних шарів може бути подана у формі булевої алгебри

Шар 1 I Шар 2 = Шар 3 .

(5.5.2)

Включення

Операція включення (Inclusion) визначає частину оверлейного шару, який міститься у вхідному шарі. Вихідний шар міститиме всі елементи першого вхідного шару, а також всі елементи другого вхідного шару, що існують в географічному просторі першого вхідного шару. Включення використовує вхідний шар як шаблон, в якому об'єкти оверлейного шару відсікаються по ребрах і об'єднуються

278

а)

б)

в)

Рис. 5.5.8 – Включення полігональних об'єктів двох шарів а) вхідний шар 1, б) оверлейний шар 2, в) вихідний шар 3

Операція включення двох шарів двох полігональних шарів може бути подана у формі булевої алгебри

(Шар 2 Шар 1) U Шар 1 = Шар 3.

(5.5.3)

Виключення

Операція виключення (Exclusion) “A B” визначає частину вхідного шару, яка не міститься в оверлейному шарі. Вихідний шар міститиме тільки ті елементи першого вхідного шару, які не є географічним простором другого вхідного шару. Виключення використовує оверлейний шар як шаблон, яким об'єкти вхідного шару відсікаються по його ребрах.

а)

б)

в)

Рис. 5.5.9 – Виключення полігональних об'єктів двох шарів: а) вхідний шар 1, б) оверлейний шар 2, в) вихідний шар 3

Операція виключення двох полігональних шарів може бути подана у формі булевої алгебри

Шар 1 Шар 2 = Шар 3 .

(5.5.4)

279