Як перетворити точки в лінії, початківцям

Операція дуже популярна, і безкоштовних засобів на цю тему ви знайдете безліч - колекція ESRI рясніє засобами такого роду. Завдання здається простий, але однозначне рішення в ГІС знайти важко. У чому тут може бути заковика? - Скажете ви. З'єднати найближчі точки, й усе!

Так, ось в такому простому випадку прокладка лінії очевидна, і ніяких складнощів виникнути не повинно. Але ось інший розклад положення точок:

Тут видно, що бувають випадки, коли варіант з'єднання не єдиний. При прокладанні лінії з "північного заходу", від точки "А", програма навіть може зайти "в глухий кут", так як варіанти прокладки до А1 і А2 рівнозначні (цікаво, що при прокладці з південного сходу такої заковики не виникає, Б явно тяжіє до А1). Це означає що автоматизований процес в загальному випадку не спрацює, і, швидше за все, програмами такого роду потрібна деяка інтерактивність, полуавтоматічность. Тому не варто спокушатися скриптами, які обіцяють миттєве об'єднання ваших ліній по інтуїтивним алгоритмам - вони працюють, але тільки при дуже простих конфігураціях вихідних точок. Крім того, робота з вибору найближчій точки повільна, і програми, очевидно, будуть "гальмувати" на великих Шейп.

Все це означає, що справжні ГІС-засоби повинні бути влаштовані якось по-іншому. Вони і влаштовані: є безліч засобів, які працюють вже на пронумерованих точках. В такому випадку лінія створюється адекватно і швидко, але як же інтуїтивне зчленування? Воно розумно лише для невеликих обсягів, а в інших випадках варто його виділяти в окрему дослідницьку задачу - адже крім вищеописаного, в одному шарі буває ще й не одна, а безліч ліній, і потрібно самі точки попередньо групувати в майбутні окремі лінії. А якщо, в загальному випадку, таких груп безліч і вони накладаються один на одного і самі на себе?

Гаразд, нехай по номерам. Де взяти хоч такий ГІС-інструмент? Користувачам ArcINFO завдання знайома, стандартні інструменти там є. У ArcView найбільш вдалим нам здається модуль "Edit Tools". Спочатку він призначався для редагування ліній, але починаючи з третьої версії в ньому з'явився потужний розділ конвертації всього і вся в що завгодно. Для роботи з ним потрібно мати в таблиці точок всього дві колонки - номер лінії і порядковий номер точки в цій лінії. Заповніть їх як треба, і приступимо. Скрипт можна скачати тут у версії 3.6.

Встановлюємо модуль, запускаємо в ньому Convert / Points to Polyline. Скрипт запитує де номер лінії (ID), потім де порядковий номер точок (Order), і справа в капелюсі - осічок майже не буває. Воно і зрозуміло, легко йому, якщо все вже ручками пронумеровано!

З недоліків варто відзначити, що він часом псує поле ID в таблиці - замінює його на ET_ID, так що це не смертельно. Скрипт працює дуже стабільно, є в ньому і інші "топологічні" функції. Версія 3.6 для AV тепер безкоштовна, конвертуйте скільки душі завгодно!

А як же все-таки пронумерувати сотні точок, ну хоча б якщо порядок наочний? Це окреме завдання, і хитрощі тут можуть бути наступні: як порядкового номера іноді годиться. координата X або Y! Edit Tools, на щастя, розуміє не тільки цілочисельний порядок. Якщо є підозри, що точки були намальовані строго одна після іншої, скористайтеся одним з скриптів, який нумерує рядки просто "по черзі", наприклад, ось цим. Можливо, допоможуть і інші ваші атрибути - наприклад, висота Z, призначений для користувача індекс точки (A, B, С і т.п.). У будь-якому випадку перед складанням ліній варто перевірити нумерацію: побачити на власні очі майбутні лінії можна шляхом расраскі точок по їх групам, порядок добре ілюструється розфарбуванням точок "градуйованими символами" щодо майбутнього порядку.

Що для ArcMap? Там ці кошти є в Toolbox, але для їх роботи потрібно знову-таки ArcINFO. На щастя, старий добрий EdiTools і тут допоможе, скачайте його і вперед - конвертація в ньому знову-таки безкоштовна. Так, тепер він називається GeoWizards, але працює так само чітко.

От і все. Вдалих Вам ліній!

Схожі статті