ИЗМЕРЕНИЕ ДЛИНЫ ЛИНЕЙНЫХ ОБЪЕКТОВ
Мы знаем, что помимо поверхностей существуют три типа объектов: точечные, линейные и площадные. Точки не имеют пространственных измерений, линии одномерны, области имеют два измерения: длину и ширину Поскольку точки не имеют пространственной протяженности (а только значения атрибутов), они выпадают из данного рассмотрения.
Линии имеют одну меру величины - длину, если не считать значения иных атрибутов, которые могут просто выбираться из БД. Но, как мы увидим, длины линий также могут использоваться в качестве атрибутов, по которым может проводиться классификация линейных объектов. Определение длины вертикальных или горизонтальных линий в растре проводится подсчетом числа ячеек, через которые линия проходит, и умножением его на размер одной ячейки (разрешение) растра. Если линия занимает 15 ячеек по вертикали при разрешении растра 50 метров, то ее общая длина составит 15 х 50 = 750 метров. Аналогично - для горизонтали.
Но если линия ориентирована не точно по горизонтали или вертикали, наш метод не будет точным. Например, если линия проходит точно по диагоналям ячеек, то ее длина будет очевидно больше (в данном случае в √2 (примерно 1.414) раз), чем произведение разрешения на число ячеек. То есть, для таких линий нужно использовать разрешение растра, умноженное на √2..Тем не менее, оказывается, что многие простые растровые системы только лишь подсчитывают число ячеек растра и используют это число в качестве длины, оставляя за пользователем вычисление реальной длины. Более совершенные системы используют простую тригонометрию для определения реальной длины линии, имеющей произвольную ориентацию [Environmental Systems Research Institute, 1993].
Более сложная проблема возникает, когда мы имеем дело сизвилистой(sinuous) линией, проходящей случайным образом по растру. Если для ее кодирования используется метод присутствия/отсутствия, то вполне вероятно, что такая линия будет выглядеть как некоторое число пар, троек или больших групп ячеек растра, представляющих непрямые части линии. В таком случае может оказаться достаточным простой подсчет числа ячеек, через которые проходит линия, так как точное ее расположение внутри ячеек все равно неизвестно. На самом деле, способность ГИС выполнять тригонометрические операции при подсчете длины представляет небольшую ценность в подобных случаях, так как линейные объекты не так хорошо представляются ячейками растра, которые так или иначе дискретизируют непрерывное пространство. Иначе говоря, точное положение линейного объекта не известно для любой ячейки растра. В зависимости от разрешения растра и извилистости линии, вполне возможно, что целые петли могут быть представлены лишь одной ячейкой растра; в таком случае длина будет преуменьшена независимо от метода ее определения (Рисунок 8.1). Поэтому, если проводимый вами анализ активно использует измерение линейных объектов, то, по возможности, следует использовать векторную структуру данных.
Рисунок 8.1. Линейный объект при низком разрешении. Недостатки измерения длины в растре на примере извилистой реки, целые излучины которой оказываются содержащимися в пределах одной ячейки растра.
Определение длины линейного объекта в векторной системе гораздо более точно (как и само представление линии), чем подсчет ячеек растра. Для каждого прямого отрезка из образующих линию система хранит координаты крайних точек, из которых может быть получена по теореме Пифагора длина этого отрезка. Просто сложив длины всех отрезков линии, мы получим точное значение ее общей длины. Нужно только помнить, что векторное представление линейных объектов также использует своего рода дискретизацию, когда кривые участки линии аппроксимируются прямыми отрезками, и чем больше таких отрезков используется, тем точнее представление объекта в этой структуре данных и тем точнее будет полученное значение общей длины линии.
Дата добавления: 2016-02-24; просмотров: 1808;