Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Другие файлы / Лурье И.К. - Геоинформационное картографирование - М., КДУ - 2008.pdf
Скачиваний:
120
Добавлен:
01.05.2023
Размер:
14.5 Mб
Скачать

150

Глава 4. Элементы ГИС-технолосмм

становится равной 1 м, снижаясь до 17 см на 24-м уровне. Важным свойством QTM кодов является тот факт, что длина кода может быть использована, чтобы обозначить индивидуальный уровень позиционной точности, поскольку индивидуальный код указывает на код меньшего треугольника, который надежно включается в него.

а

б

Рис. 4.6. Схема глобальной иерархической триангуляции:

п— схема Даттона; 6 — модель QTM

4.3.Операции с данными в векторном формате

Выше рассматривались технические вопросы ввода и визуализации пространственных данных. Рассмотрим алгоритмические методы формализации этих процессов, наиболее часто используемые в ГИС. Алгоритмы, предназначенные для выполнения технологических процедур (а не только математических вычислений), в большинстве своем основаны на эвристике и используют разные стратегии, направленные на кардинальное сокращение и упрощение поиска решений. Они часто помогают в трудно формализуемых случаях. Основная их задача заключается в построении объекта из набора координат и создании цифрового представления атрибутов и связей.

4.3.1. Представление пространственных объектов и взаимосвязей

Пространственные объекты — точки, линии и полигоны — кодируются с помощью пар координат:

43. Операции с данными в векторном формате

151

точка: (х, у)\

линия: (xv у1), (*2, у2),...(хп, уп)\

полигон: (л:,, у,), (*2, у2),...(хп, уп).

Для построения линии или полигона нужно соединить последовательно каждую пару точек отрезком прямой или плавной линией. Для точечных объектов координаты могут выступать и в роли атрибутов. Для других объектов атрибуты хранятся в таблицах, а координаты — в отдельных файлах; группа координат, определяющая один объект, сопровождается индивидуальным идентификатором (ID).

При построении цифровых баз пространственных данных наиболее сложная проблема — представление взаимосвязей и способы их кодирования.

Можно выделить три вида технологического представления взаимосвязей в пространственных БД.

1.Взаимосвязи, которые используются для построения сложных объектов из простых элементов (например, взаимосвязь между линией и упорядоченным набором определяющих ее точек).

2.Взаимосвязи, которые вычисляются по координатам объектов (например, можно выявить все перекрытия типов почв с одной карты

стипами использования земель на другой карте).

3.Взаимосвязи, которые нельзя вычислить по координатам, — они должны кодироваться при вводе данных (например, можно вычислить, пересекаются ли две линии, но нельзя узнать, как пересекаются дороги, представленные ими, — в месте пересечения перекресток или мост).

Возможности представления взаимосвязей в базе данных ГИС определяют разделение БД на топологические и картографические.

Втопологических базах данных взаимосвязи кодируют и представляют как дополнительные атрибуты. Рассмотрим способы кодирования двух типов объектов: линейных — связи в сетях, и полигональных — связи между полигонами.

Связи в сетях. Сети состоят из объектов двух типов: линии или дуги, состоящие, как правило, из линейных сегментов, носящие общее название «связи» (в некоторых пакетах «звенья») и узлы — пересечения или соединения линий. Для кодирования связей узлам присваиваются дополнительные атрибуты (идентификаторы) — входной и выходной узел (рис. 4.7 а).

152

Глава 4. Элементы ГИС-технолосмм

в

Рис. 4.7. Связи в сетях (а) и между полигонами (б)

В БД таким связям могут соответствовать два типа

записей

(табл. 4.2).

 

 

 

 

 

 

Таблица 4.2. Представление связей в таблицах атрибутов сетей

 

Связи, основанные на дугах

Связи, основанные на узлах*

Дуга

От

К

Прочие

Узлы

Дуги

Прочие

атрибуты

атрибуты

 

 

 

 

 

1

В

А

А1 An

А

1 - 5

А1

An

2

С

В

 

В

3 2 - 1

 

 

3

D

В

 

С

- 4 - 2 5

 

 

4

С

D

 

D

4 - 3

 

 

5

А

С

 

* «-» указывает дугу, выходя-

 

щую из узла.

 

 

 

 

 

 

 

 

Используя подобную структуру, можно двигаться по линиям связей, отыскивая те из них, у которых перекрываются номера узлов.

Связи между полигонами. При работе с площадными объектами большое значение имеет понятие смежности. Для смежных полигонов, имеющих общий участок границы, нет необходимости дублировать запись его координат в БД; хранение данных об общих границах позволяет избежать и дублирования при цифровании, а значит и проблем несовпадения двух вариантов данных. Некоторые системы кодирования требуют присвоения общим дугам атрибутов полигонов, находящихся слева или справа от них. Во многих ГИС-пакетах для хранения этой информации используются три типа записей: таблица атрибутов полигонов, таблица атрибутов дуг и набор пар координат, определяющих

43. Операции с данными в векторном формате

153

геометрию дуг (в пакете ARC/INFO эти файлы имеют расширение PAT, ААТ и ARC соответственно) (рис. 4.7 6) (табл. 4.3).

Таблица 4.3. Кодирование связей полигонов в таблицах атрибутов

 

PAT

 

ААТ

 

 

 

ARC

 

Атрибу-

Дуги

Спра-

Сле-

От

К

Дуги

Коор-

ID

ты поли-

ва

ва

динаты

 

гонов

 

 

 

 

 

 

 

А

Al An

1

А

0

а

с

1

 

В

 

2

А

С

с

Ь

2

(х>Ю

С

 

3

А

В

Ь

а

3

 

 

 

4

0

в

а

d

4

 

 

 

5

В

с

Ь

d

5

Ш)

 

 

6

0

с

d

с

6

(*>У)

4J.2. Алгоритмы определения пересечения линий

Информация для создания цифровой карты в большинстве случаев собирается и представляется послойно, отражая иерархический процесс ручного картографирования. Большинство ГИСтехнологий анализа и визуализации таких слоев базируется на операции определения пересечения линий. Она является ключевой при выполнении векторных процедур наложения полигонов, слияния

ипоглощения полигонов и линий, удаления остаточных контуров

ит. п., включая выяснение принадлежности точки полигону. Базовой частью алгоритма для этой операции является определение существования точки пересечения двух линейных отрезков, заданных координатами их концов, и вычисление ее координат.

Основной вопрос, который решает этот алгоритм: пересекает ли

линия, соединяющая точки с координатами (xv г/1 > и (х2, у2) одной оцифрованной кривой (линейного объекта или границы полигона),

154

Глава 4. Элементы ГИС-технолосмм

с линией, соединяющей точки (ur

и (u r

v.2) — другой, и если да,

то где?

 

 

Запишем уравнение отрезка в параметрическом виде:

X- х{ + (х2 - х{) t

 

IУ= У\+(Уг~ Ух)*

(4J2)

где t — параметр (0 < t < 1); начальная точка (xv у,) отрезка соответствует t = 0, конечная точка (xv y2)-t = 1. Предполагается, что хотя бы одна из разностей 2 - х^) и 2 - г/,) отлична от 0. Аналогично записывается уравнение отрезка второй линии:

I х= щ+ (м2-

их

\y=v2+(v2-v{)x'

^ 13)

где т - параметр (0 < т < 1).

Точка пересечения (если она есть и находится в пределах

отрезков) определяется системой:

 

2-xx)t-

2 — щ)т= щ- хх

2-У\)*-

(v2~

Щ~У\ .

0<;<1,

0< т< 1.

( 4 1 4 )

Для нахождения решения системы уравнений необходимо определить значения трех детерминантов — главного:

А = (и2

-

и^(у2

-

ух)

-

2

-

xx)(v2

-

v j

(4.15)

и двух частных:

 

 

 

 

 

 

 

 

 

 

 

 

Д(1)

= (и2 -

U])(v2

-

У])

-

(U]

-

X])(v2

-

 

(4.16)

Д(2)

= (х2

-

 

 

у)-(их-

 

х^(у2

 

- у}).

 

Возможны следующие случаи:

1. Если А * 0, то существует единственная искомая точка пере-

сечения отрезков, определяемая известным правилом Крамера: t = А(1)/Д, х = Д(2)/Д и условиями 0 < £ < 1 и 0 < т < 1 .

2. Если = 0, то тогда должны быть Д(1) = 0 и Д(2) = 0. В этом случае отрезки будут частично или полностью совпадать. При этом

43. Операции с данными в векторном формате

155

возможны четыре варианта их взаимного расположения, которые следует рассмотреть для построения топологических связей объектов (например, смежность, совпадение) и определения координат узлов.

Пусть [ау Ь] — отрезок первой линии, а [с, b] — второй, тогда возможные варианты можно представить графически (рис. 4.8).

\b(t =

с(г = 0)

\

0) /

\

a(t = 0)

/ ь

d

 

с~7

d{т = 0Л^

 

 

б

 

a(f=0)

/

=

»

b(t =

 

 

 

В

 

 

Г

Рис. 4.8. Варианты перекрытия отрезков линий

В качестве примера рассмотрим подробнее вариант 1 (рис. 4.8а). Здесь начала и концы исследуемых отрезков расположены в последовательности а, c,b,d и этот случай определяется условиями:

(щ-хх)(щ-х2)<

О ^

yx){vx2)<0

 

2-щ)(х22)<

0

i) (1/2-^2)^°'

(4.17)

при этом перекрытие отрезков образует отрезок [с, Ь], начало которого определяется условием т = 0 из системы (4.13), а конец — условием t = 1 из системы (4.12).

Рассмотрим теперь две сложные линии, состоящие, соответственно, из пх и п2 прямолинейных отрезков. Все пересечения всех отрезков можно найти путем повторения базовых операций (4.12- 4.17), при этом объем необходимых вычислений будет пропорционален произведению (пххп2). Применение различных эвристических приемов позволит сократить число вычислений. Хотя для этого потребуются дополнительные шаги, общее время обработки должно уменьшиться. Рассмотрим два примера таких методов — построение наименьшего описанного прямоугольника, вмещающего какую-либо линию, и выделение монотонных отрезков.