Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розд_л 7.doc
Скачиваний:
50
Добавлен:
04.03.2016
Размер:
2 Мб
Скачать
☆

7.5.1. Локальні операції

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

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

Наведемо нижче стислий опис операторів даного класу, що найбільш часто використовуються в сучасних інструментальних ГІС.

Арифметичні оператори

З арифметичних у ГІС зазвичай використовуються (рис. 7.2):

+– оператор додавання;

-– оператор віднімання;

* – оператор множення;

/ – оператор ділення;

** – оператор піднесення до ступеня.

Результатом виконання арифметичних операцій є карта типу real (scalar), тобто набуває речовинних значень.

Оператори порівняння

Операторами порівняння є:

gt(>) – оператор «більше»;

lt(<) – оператор «менше»;

ge() – оператор «більше чи дорівнює»;

le() – оператор «менше чи дорівнює»;

eq(=) – оператор «дорівнює»;

ne() – оператор «не дорівнює».

Результатом виконання операцій порівняння є булівські (логічні) “1 “(так) і “0” (ні).

Логічні оператори

Логічні оператори є операторами логічної чи булевоїалгебри, розділу математики, який вивчає закони алгебри двох значень. Вперше досліджений Джорджем Булем, англійським математиком і логіком ХІХ сторіччя.

Загальний вигляд булівської операції:

Результат=вираження_1операторвираження_2,

де Результат– результуюча карта;оператор – один з булівських операторів;вираження_1ивираження_2– карти.

Результатом виконання логічних операцій є карта типу boolean, тобто карта, яка містить тільки логічні “1“ і/або “0”. Найбільш часто використовуваними логічними операторами є and (логічне “і”),or (логічне “або”),not(логічне “ні”),xor(логічне “або або”) і деякі інші. Операторand є оператором логічного множення, операторor – логічного додавання,not – логічного заперечування.

Просторова інтерпретація операцій логічної алгебри наведена на рис. 7.3.

Операція А and В має результатом “1” у тих місцеположеннях (комірках растра), де одночасно є об’єкти А (наприклад, нееродовані грунти) і В (наприклад, ділянки з ухилом земної поверхні, що не перевищує 3).

Операція А orB(“або”, що не виключає) має результатом “1” у тих місцеположеннях, де є об’єкт А або об’єкт В, включаючи частини території, де ці об’єкти присутні одночасно (наприклад, для ділянок досліджуваної території з нееродованими ґрунтами або з ухилом поверхні менше 3).

Операція А not B має результат “1” для частини об’єкта А, яка не збігається з об’єктом В (наприклад, для ділянок з нееродованими ґрунтами, які мають ухил 3і більше).

Операція А xorBмає результат “1” для об’єктів А або В за винятком ділянок, де ці об’єкти присутні одночасно (наприклад, для ділянок досліджуваної території або з нееродованими ґрунтами, або з ухилом поверхні менше 3).

Т а б л и ц я 7.1. Закони булевої алгебри

Комутативність

Асоціативність

Дистрибутивність

А and B = B and A

A and (B and C) = (A and B) and C

A and (B or C) = (A and B) or (A and C)

A or B = B or A

A or (B or C) = (A or B) or C

A or (B and C) = (A or B) and (A or C)

З операторів логічної алгебри можуть формуватися складні логічні функції на основі законів комутативності,асоціативностіідистрибутивності(табл. 7.1). Перші два мають аналоги у звичайній алгебрі, останній є новим. При цьому ще Буль показав, щоскільки завгодно складну логічну функцію можна записати, використовуючи всього лише три базові логічні операції: складанняx+y (or), множення xy (and) і заперечення ~x (not).

Для логічних функцій без дужок використовується такий порядок обчислень:

  • обчислити операції заперечення;

  • обчислити операції логічного множення;

  • обчислити операції логічного складання.

Порядок дій може бути змінений за допомогою круглих дужок.