Смекни!
smekni.com

Традиционная картография и геоинформационная система (стр. 4 из 6)

Главным критерием выбора формы ввода данных является тип источника данных: для снимков предпочтительнее использовать сканирование, карты можно цифровать или сканировать. Другой критерий связан с типом модели используемой базы данных: сканирование лучше подходит для растровой модели, цифрование - для векторной.

Есть много способов ввода данных. Одни выглядят примитивными, вроде помещения прозрачной сетки на карту. Другие - более современны, так, например, используют устройства цифрового ввода - дигитайзеры и сканеры. Перед тем, как использовать структуры данных, модели и системы, необходимо преобразовать нашу реальность в форму, понимаемую компьютером. Методы, при помощи которых это будет сделано, зависят в некоторой степени от имеющегося оборудования и от конкретной системы. Во-первых, подсистема ввода спроектирована для переноса графических и атрибутивных данных в компьютер. Во-вторых, она должна отвечать хотя бы одному из двух фундаментальных методов представления графических объектов - растровому или векторному. В-третьих, она должна иметь связь с системой хранения и редактирования, чтобы гарантировать сохранение и возможность выборки того, что мы введем, и давать возможность устранять ошибки и вносить изменения по мере необходимости.

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

Хотя преобразование между векторной и растровой формами - дело достаточно обычное, есть несколько вещей, о которых следует помнить. Чаще всего при преобразовании векторов в растр результаты получаются визуально удовлетворительными, но методы растеризации могут давать результаты, которые не удовлетворительны для атрибутов, представляющие каждую ячейку. Это особенно верно вдоль границ областей, где имеется неопределенность с присвоением ячейкам растра атрибутов с одной или другой стороны границы. С другой стороны, преобразуя растр в вектора, вы можете сохранить подавляющее большинство атрибутивных данных, но визуальные результаты будут час-то отражать блочный, лестничный вид ячеек растра, из которых преобразование было произведено. Существуют алгоритмы сглаживания этого лестничного эффекта, использующие математические методы сплайн-интерполяции. Не вдаваясь в подробности, укажем, что это просто графический прием, сглаживающий зубчатые линии и острые углы. Как ранее указывалось, существуют многие инструменты для ввода в ГИС векторных данных. Ограничим обсуждение дигитайзерной оцифровкой как распространенным "классическим" методом. Некоторые программы требуют ввода точек в определенной последовательности, в то время как другие этого не требуют. Документация и/или сама программа сообщит вам об этом. Кроме того, программа укажет, какие пронумерованные кнопки используются для ввода конкретных типов объектов. Одни кнопки используются для указания положения точечных объектов, другие - для обозначения концов прямых отрезков, третьи - для смыкания многоугольников. Многие ошибки оцифровки, особенно у новичков, происходят вследствие нажимания не тех кнопок, что требуется. Конкретная процедура оцифровки зависит также от структуры данных, которая используется программой. Одни требуют указания положений узлов, другие - нет. Одни требуют явного кодирования топологии во время оцифровки, другие используют программные методы построения топологии после того, как база данных заполнена. Правила различны для разных программ, и нужно заблаговременно просмотреть соответствующую документацию для выяснения этих стратегий. Эта работа может рассматриваться как часть процесса подготовки карты, а не самой оцифровки.

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

Ввод растровых данных следует иной стратегии, нежели ввод векторных данных. Растровый ввод иногда все еще делается с использованием накладной сетки, когда атрибуты вводятся последовательно, друг за другом. Широкая доступность сканеров быстро вытесняет этот трудный метод ввода, однако его применение хорошо иллюстрирует разные методы, используемые программами оцифровки для ввода ячеек растра. В прошлом часто использовался также метод оцифровки растра с помощью дигитайзера, когда полученный с дигитайзера контур объекта в виде векторов затем заполняется пикселями уже самой программой оцифровки.

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

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

5. Компоновка

Компоновка - это процесс сборки программы из объектных модулей, в котором производится их объединение в исполняемую программу и связывание вызовов внешних функций и их внутреннего представления (кодов), расположенных в различных объектных модулях.

Компоновка это процесс, который позволяет правильно связать каждое вхождение идентификатора с одним конкретным объектом или функцией. Все идентификаторы имеют один из трех атрибутов компоновки, тесно связанных с их контекстом: внешняя компоновка, внутренняя компоновка или отсутствие компоновки. Эти атрибуты определяются местоположением и форматом объявлений, а также явным (или неявным по умолчанию) использованием спецификатора класса памяти static или extern.

Каждое вхождение конкретного идентификатора с типом компоновки external представляет тот же самый объект или функцию во всем множестве файлов и библиотек, составляющих программу. Каждое вхождение конкретного идентификатора с типом компоновки internal представляет тот же самый объект или функцию только в пределах одного файла. Идентификаторы с типом компоновки no (отсутствие) представляет уникальные элементы программы.

Ниже приводятся правила внешней (external) и внутренней (internal) компоновки: любой идентификатор объекта или файла, имеющий файловый контекст, будет иметь внутренний тип компоновки, если его объявление содержит спецификатор класса памяти static. Для С, если один и тот же идентификатор в пределах одного файла появляется и с внутренним, и с внешним типом компоновки, то идентификатор будет иметь внутренний тип компоновки; если объявление идентификатора объекта или функции содержит спецификатор класса памяти extern, то идентификатор имеет тот же тип компоновки, что и видимое объявление идентификатора с файловым контекстом. Если такого видимого объявления не имеется, то идентификатор будет иметь внешний тип компоновки; если функция объявлена без спецификатора класса памяти, то ее тип компоновки определяется, как если бы был использован спецификатор класса памяти extern; если идентификатор объекта с файловым контекстом объявлен без спецификатора класса памяти, то идентификатор имеет внешний тип компоновки.