portrait

Поиск



[software] [catdoc] [tcl] [geography] [old things]

Концепция функциональной GIS

Этот документ устарел! Текущее описание концепции имеется только в в английской версии, каковое положение и сохранится до тех пор, пока кто-нибудь из русскоязычных членов команды не возьмется поддерживать русскую версию документации. У меня просто нет сил на две версии документации одновременно, поэтому я поддерживаю только английский вариант, как доступный большему числу потенциальных пользователей.
  1. Определение
  2. Точность карты.
  3. Где же контур?
  4. Операции с картами.
  5. Визуализация карт и метаданные.
  6. Масштабный ряд или иерархия регионов
  7. Принципы построения системы
  8. Автоматическая актуализация карт.
В данном тексте предлагается новый подход к представлению пространственной информации. Он не совсем новый. Многие существующие ГИС, особенно ориентированные на обработку снимков, неявно используют его. Но никто еще не пытался в явном виде сформулировать его и показать его достаточность для большинства ГИС-задач.

Определение

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

Почему этого достаточно?

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

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

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

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

Точность карты.

Любая информация о реально существующих объектах имеет ограниченную точность. Поэтому нужно ввести способ оценки точности карт. У проблемы точности карты есть две стороны:
  1. Точность определения координат
  2. Точность информации о значении карты.
Точность определения координат эквивалентна точности проведения контуров исходной карты и обычно не превышает 1-2 мм в масштабе исходной карты. Определенные погрешности вносит и ввод карт в машину, но они обычно на порядок меньше.

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

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

Теория точности измерений количественных показателей и точности интерполяции, напротив, хорошо разработана.

Кроме того существует точность представления чисел в компьютере.

Поэтому для карт количественных параметров кроме разрешения используется понятие Z-точности - минимальная разница между значениями карты, при которых эти значения считаются неравными. Z-точность это

Где же контур?

Во всем вышеизложенном человек привыкший работать с картами не найдет одного важного понятия - контура. Его здесь действительно нет.

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

Для карт классификаций контур --- вещь более устойчивая. Он может измениться если по каким-то причинам изменится классификация либо наши знания о территории.

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

Очевидно, этой операцией надо пользоваться с осторожностью, оставив его для этапов первичного ввода информации и ее обновления.

Операции с картами.

Теперь перейдем к тому, для чего все это затевалось - к операциям анализа карт.

Их можно сразу разделить на две большие группы:

  1. Когда нам в результате нужно получить карту
  2. Когда в результате мы получаем какую-то суммарную информацию (обычно в форме таблицы).
Ограничимся пока первой группой операций.

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

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

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

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

Математически это описывается понятием функционала - операции, которая по нескольким исходным функциям строит результирующую.

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

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

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

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

Очевидно, к операциям 1-й группы композиция применима всегда z=f(g(x)) посчитать не сложнее чем y=g(x) z=f(y).

Сложнее с операциями второй группы, поскольку если в вычислении f(x) участвуют значения g(x+dx) их надо вычислить заранее, а если и они требуют окрестности... Сравните, например, с формулой второй производной сложной функции.

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

Визуализация карт и метаданные.

Дать строгое математическое определение карты конечно хорошо, но исследователи привыкли видеть карту перед глазами.

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

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

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

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

Масштабный ряд или иерархия регионов

. Далеко не всегда работа с картами сводится к работе с одной и той же территорией. Достаточно часто приходится иметь дело с иерархией масштабов и соответствующей ей иерархией территорий.

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

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

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

Регионы имеют иерархическую систему соподчинения. Покажем, что это такое на примере административного деления России.

Регион верхнего уровня - Россия в целом. Характерное разрешение 1-2км, проекция скорее всего коническая. В этот регион входят 86 подрегионов - административных областей. Разрешение в них от 500 до 100 м, а проекция может быть конической, косой азимутальной или UTM(Гаусса), в зависимости от размеров области.

Если деление одного региона сразу на 86 частей кажется слишком мелким, можно ввести промежуточный уровень экономических районов.

Каждая область состоит из районов. При наличии исходных данных можно ввести еще и подрегионы для районов - отдельные хозяйства с разрешением порядка метров (масштаб 1:5000 - 1:10000)

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

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

Принципы построения системы

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

Открыть для редактирования в каждый конкретный момент можно только один слой.

При тыканье мышью в окно карты обычно в каком-то другом окне показывается значение по некоторым выбранным картам (все видимые + те которые пользователь указал явно) в этой точке.

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

Все операции, которые пользователь может произвести из меню системы можно выполнить из программы на Tcl, включая такие как рисование точки или линии в редакторе

Автоматическая актуализация карт.

Для карт созданных в результате операций обработки хранится команда, создавшая карту, и список исходных карт. При визуализации этой карты проверяется, не были ли изменены какие-то из исходных карт, и если да, предлагается повторить генерацию карты.