Шукати в цьому блозі

четвер, 2 лютого 2012 р.

Контроль топології цифрових карт

Процедура контролю топології цифрових карт в Digitals запускається командою Карта/Контроль...  Внизу робочого екоану програми автоматично з'явиться вікно з переліком всіх виявлених помилок. Перевірка топології виконується тільки з проекціями об'єктів на площину XOY, тобто без врахування висоти Н. Протокол перевірки записується автоматично в папку Digitals\Control\Logs\.





Крім топології, можлива також перевірка розміщення підписів та умовних знаків. В папці \Digitals\Control  повинен знаходитись сценарій, що описує правила перевірки для відповідного масштабу, наприклад 10000.mcs, 2000.mcs, и т.д.

Контроль побудований на основі сценаріїв перевірки - текстових файлів з розширенням .mcs (Map Control Script). Кожен такий сценарій (файл) містить набір правил для перевірки карти.  Правило задає умову, виконання якої генерує помилку. Кожне правило знаходиться всередині  секції, зарезервована назва якої визначає тип перевірки. Наприклад, перевірка значень параметрів, перевірка перетину об'єктів, перевірка належності об'єктів полігону, та ін.

Наприклад:
 [Parameters] Помилки значень параметрів
61220000:11=; В об'єкті %L1 не заповнений параметр %P

Це правило задає умову, що якщо об'єкти з кодом шару 61220000 містять незаповнений параметр з кодом 11, то буде показане повідомлення про помилку: В об'єкті %L1 не заповнений параметр %P , де замість %L1 буде підставлена назва шару об'єкта, а замість %P - назва параметру, значення якого незаповнене. 

Ліва частина правила (до двокрапки) задає фільтр відбору об'єктів для перевірки, права частина (після двокрапки) фільтр для відбору параметрів чи об'єктів, з якими буде виконуватись первірка . У якості фільтру може виступати не тільки список кодів шарів але і спеціальні символи, що позначають типи об'єктів:


F - рамка (Frame)
P - будь-який точковий об'єкт (Point)
L - будь-який лінійний об'єкт (Line)
A - будь-який полігональний об'єкт (Area)
O - будь-який інший об'єкт : таблиці, зображення...  (Other)
S - цей самий об'єкт (Self)
N - об'єкт з того ж шару
* - всі об'єкти (крім прихованих шарів)

Додаткові можливості:
*,1,2 - всі об'єкти, крім тих, що належать шарам з ID 1, ID 2.
L,-1,-2 або А,-1,-2 і т.д. - перевіряє всі лінійні (чи полігональні, чи інші можливі об'єкти), крім шарів з  ID 1, ID 2. Також можливий варіант запису без мінусів, тобто  L,1,2 або А,1,2.



Щоб не перераховувати кожен раз довгий список кодів, його можна присвоїти спеціальній змінній:

$Угіддя=30000,30050,30060,30080,30090,30100,30110,30120,30130,30140,30150,30160,30170

і потім вже використовувати в описі умов.

Для перевірки значень параметрів передбачеені наступні операції порівняння:

= - рівний
> - більший
< - менший
/ - кратний
\ - не кратний
<> - не рівний
>= - більший або рівний 
<= - менший або рівний

Використання логічних операторів (AND, OR і т.п.) в сценаріях перевірки не передбачено.

Приклад:


 [Parameters] Помилка значення параметру
21100000:-2\5; Висота %L1 не кратна 5

перевіряється значення параметру Z (код -2) на кратність 5 для об'єктів з шару, що має код 21100000.

Топологічні пеервірки виконуються попарно. Кожен об'єкт з лівої частини (до двокрапки) звіряється з об'єктами з правої частини. Наприклад:

 [Not Inside] Помилка не належності
$Угіддя: 20000;  Об'єкт %L1 не вкладений в об'єкт %L2


Дане правило перевіряє для кожного об'єкту із шарів угідь наявність батьківського об'єкту (об'єкту, в якому він знаходиться) з шару з кодом 20000 (IN4_Ділянка). Якщо такий об'єкт не буде знайдено, згенерується помилка. 

 [Intersect] Помилка перетину
*: *; Об'єкт %L1 перетинається з об'єктом %L2

Це правило забороняє будь-які пеертини на карті. 


Редагувати сценарії перевірки можна або в будь-якому текстовому редакторі, або на закладці  Правка сценарію вікна перевірки.



Розробники Digitals створили універсальний файл сценаріїв перевірки Control.mcs, який перевіряє найбільш типові помилки і мало залежить від використовуваного класифікатора. Сценарій вирішує задачу перевірки топологічної цілостності файлів In4, XML, а также топооснови для ГІС. Наприклад, знаходить найбільш поширену проблему, що виникає при збереженні в ArcGis Shape - точкові об'єкти в лінійних шарах або незамкнуті полігони в полігональних. Також помилкою вважається прилягання до лінії без вузлової точки.


Після того, як завантажили цей файл і помістили його в папку \Digitals\Control , потрібно програмній константі ControlScript присвоїти значення Control.mcs:
ControlScript= Control.mcs
Якщо потрібно використати файл перевірки із стандартною назвою (який повинен знаходитись в папці \Digitals\Control ), що відповідає масштабу карти, то цій змінній нічого не потрібно присвоювати.



Раджу також відвідати гілки форуму для користувачів Digitals:
Система контроля качества цифровых карт
Новые возможности программы
Модуль контроля топологии и параметров карты в Digitals
Универсальный скрипт контроля карт (поиска ошибок)

Немає коментарів:

Дописати коментар