Ананьев Вячеслав Александрович, компания «ДАТА Ист», г.Новосибирск, Тел./факс: (383) 3-320-320, e-mail: ananev@dataeast.ru, web: www.dataeast.ru
Foresteris an easy to use and forester-friendly GIS. It helps Foresters to manage and plan their resources.
О проекте
Управление лесными ресурсами в масштабах страны – дело непростое, даже если страна не очень большая, такая как Великобритания. Объем задач, решаемых Forestry Commission – государственной службой, ответственной за управление лесными территориями, огромен. Достаточно сказать, что она является самым крупным землеустроителем и организатором зон отдыха в стране.
Задачи Forestry Commission – это, в большинстве своем, задачи управления ресурсами, территориями и инфраструктурой на них. Поэтому применение технологий геоинформационных систем (ГИС) в повседневной деятельность этой организации является жизненно необходимым. Проект и одноименная система FORESTER – это тот ГИС-инструментарий, который позволяет успешно и эффективно решать такие задачи, используя весь потенциал и возможности платформы ESRI ArcGIS.
История
История проекта FORESTER насчитывает уже много лет. Рождение системы состоялось благодаря подписанию соглашения о ГИС-поддержке между Forest Enterprise – подразделением Forestry Commission, ответственным за управление и развитие британских лесов, и компанией ESRI (UK), что положило начало разработке комплексного расширения FORESTER под платформу ESRI ArcView GIS.
Одной из основных целей при создании системы было по максимуму использовать возможности самого приложения ArcView, не создавая отдельного продукта. Это сэкономило время разработки и позволило сконцентрировать внимание непосредственно на модулях и задачах предметной области. Программной средой разработки системы стал скриптовый язык Avenue. FORESTER – одно из самых больших расширений, когда-либо написанных на Avenue под платформу ArcView GIS.
Уже с первых шагов планировалось, что система охватит все подразделения Forest Enterprise по стране и будет управлять внушительным набором пространственных данных с возможностью многопользовательского доступа к ним. Поэтому в качестве платформы доступа к данным было решено использовать ArcSDE на основе СУБД Oracle8i. Время показало надежность такого решения, и до сих пор платформа ArcSDE/Oracle остается основой для управления пространственными данными системы.
После выхода новой платформы ArcGIS 8 в 2001 году было принято решение о миграции на нее расширения FORESTER. Реализация этого решения требовала новых знаний и опыта разработки под новую платформу. Поэтому ESRI (UK) заключила договор о сотрудничестве с Data East, LLC, одной из первых компаний, начавших успешную разработку сложных решений на базе ArcGIS/ArcObjects. С этого момента Data East стала не только активным участником процесса миграции системы на новую платформу, но и постоянным партнером ESRI (UK) по другим проектам. При этом система FORESTER, пройдя этап успешной миграции, продолжает развиваться уже на новой платформе ArcGIS 9, прирастая все новыми и новыми возможностями.
Функциональные возможности
FORESTER – это многомодульная система с возможностью добавления новых компонентов (рис. 1). На данный момент система включает широкий спектр модулей и инструментов, охарактеризуем основные из них.
Рис. 1. Основные функции системы FORESTER.
Рис. 2. Инструменты редактирования инвентаризационных данных.
Набор модулей управления инвентаризационными данными (лесными участками, см. рис. 2), в который входят:
- иерархическая модель данных для хранения базовой информации о лесных угодьях на уровне лесничеств, кварталов, выделов и их компонентов
- инструменты редактирования данных о лесных участках, обеспечивающие многопользовательское редактирование пространственных и атрибутивных данных в единой БД Oracle (отслеживается также вся история изменений)
- инструменты идентификации, поиска и фильтрации инвентаризационных данных с возможностью экспорта результатов в другие приложения (MS Excel)
- инструмент групповой обработки атрибутивных данных лесных участков (массовое применение операций)
- набор инструментов для определения областей и циклов прореживания леса.
Набор инструментов для создания и редактирования генерального плана вырубки и посадки лесных участков через «сценарии», т.е. варианты планирования вырубки/посадки с возможностью выбора наилучшего из них на основе результатов прогноза выработки древесины.
Модуль прогнозирования выработки древесины, позволяющий применить конкретный сценарий развития участка леса к текущим данным и оценить результат в виде таблиц, диаграмм и графиков. Наиболее важные результаты расчетов могут быть сохранены в исходных данных, для дальнейшего использования при планировании.
Модуль поддержки удаленного редактирования данных (в том числе инвентаризационных и сценариев), позволяющий «извлекать» часть данных из основной БД и редактировать их на местности. Отредактированные таким образом данные затем могут быть легко импортированы обратно в основную БД, заменив собой старые данные.
Набор инструментов тематического картографирования с возможностью сохранения подготовленных макетов карт в базе данных для последующей печати или использования другими пользователями (рис. 3, 4).
Рис. 3. Подготовка карт для выполнения работ – редактирование содержимого карты.
Рис. 4. Подготовка карт для выполнения работ – создание макетов для печати.
Модуль, автоматизирующий создание и оформление пакета картографических материалов для сторонних организаций, непосредственно выполняющих операции на лесных участках, такие как прореживание, вырубка, посадка и других.
Модуль автоматизированного обновления инвентаризационных и других данных в основной БД для отражения изменений в подотчетных территориях за счет покупки/продажи земель.
Инструменты визуализации будущего состояния леса на основе информации из генерального плана вырубки/посадки и результатов прогнозирования.
Модуль для приложения ArcGlobe: 3D-визуализация лесных массивов. Этот компонент системы позволяет не только оценить реальный ландшафт леса в 3D, взглянув на него с различных точек обзора, но и динамически отследить районы вырубки и посадки при редактировании данных сценариев.
Выше перечислены не все модули системы, а только базовые, спроектированные уже несколько лет назад и пережившие не одну версию продукта.
FORESTER – «живая» система, постоянно развиваемая и совершенствуемая. Разрабатываются все новые и новые компоненты. В частности, не так давно были введены в эксплуатацию модули по поддержке дорожной сети и универсальный модуль генерации отчетов на основе моделей геообработки данных (Geoprocessing Models). Существующие модули также не остаются без поддержки и периодически совершенствуются или заменяются, в зависимости от текущих потребностей. Учитывая свою долгую историю, а также «переезд» на платформу ArcGIS, можно сказать, что система постоянно эволюционирует.
Рис. 5. 3D визуализация в ArcGlobe – динамическое отслеживание изменений в планах по вырубке/посадке.
Рис. 6. Модуль работы с дорожной сетью, демонстрация новой архитектуры для подключения других модулей.
Новая архитектура системы
Стабильная потребность в наращивании возможностей системы и специфика работы с данными привели к разработке универсальной среды для интегрирования новых модулей. Для этого требовалось решить целый набор задач:
- Максимально упростить регистрацию и подключение нового модуля к системе. Каждый модуль имеет свою функциональность и набор данных, которые должны стать частью общей системы и следовать общим правилам. Модуль может содержать в себе не одну команду или инструмент, и их требуется как-то упорядочить и привязать к модулю.
- Согласовать модули и типы поддерживаемых БД. Некоторые модули не могут работать на определенных конфигурациях БД, например на тех, которые были созданы для работы в поле (персональные данных геоданных). Поэтому, когда пользователь открывает такую БД, эти модули не должны быть доступны.
- Учесть модули, «мешающие» работе друг друга, т.е. использующие общие данные. Все связанные модули, кроме работающего, должны быть блокированы.
- Обеспечить гибкую систему защиты системы и назначать привилегии пользователям только на определенные для них администратором модули и их данные.
- Создать некий набор программных шаблонов и компонентов, ускоряющих разработку нового модуля или даже помогающих реализовать новый модуль на основе уже имеющегося.
Все эти задачи, кроме последней – более глобальной, были решены внедрением модели безопасности системы (Security Model). Модель вводит ключевое понятие «роли», как набора привилегий на определенные модули и их данные. В зависимости от статуса пользователя в организации, администратор системы назначает ему соответствующий набор «ролей» и, таким образом, дает доступ к определенному набору модулей и данных.
Модель также позволяет описать все метаданные о новом модуле простым добавлением записей в специальный набор таблиц. Метаданные включают в себя название модуля, его внутренний идентификатор, команды и инструменты модуля, типы БД, с которыми модуль работает, и список «мешающих» модулей. Используя эту информацию, система формирует индивидуальную рабочую среду при запуске FORESTER в рамках ArcMap.
Все это гарантирует безопасный доступ к системе и, одновременно, простоту ее расширения.
Рис. 7. Инструмент фильтрации (выборки) объектов в слое.
Задача по упрощению и ускорению создания самих новых модулей решается в общем случае созданием некой платформы, библиотеки компонентов и утилит. Естественно, по мере разработки системы на платформе .NET такая работа велась и ведется. Но здесь стоит выделить несколько подходов, которые помогли перейти от индивидуальной реализации каждого модуля к заимствованию архитектуры других модулей или даже построению новых модулей на основе уже имеющихся. Данные методики были выработаны и прошли проверку временем именно благодаря постоянному развитию и совершенствованию системы в целом. Можно смело сказать, что FORESTER – это универсальная среда для интегрирования новых модулей.
Стандартизация компонентов модулей
При переносе модулей со старой платформы ArcView 3.x, а также при разработке новых модулей было замечено, что, несмотря на то, что большинство из них работает со своими данными, функционально многие из них можно разделить на несколько стандартных компонентов и некоторый специфический функционал. К числу стандартных можно отнести следующие компоненты:
- Инструмент идентификации объектов – аналог стандартного диалога идентификации (Identify) в ArcMap, но обычно требующий больше возможностей по отображению связанных и зависимых данных, а также значений атрибутов объектов данных.
- Инструмент построения выборок (фильтрация объектов слоя) – аналог диалогов выборки по атрибутам, местоположению и выборки графикой в ArcMap, но, опять же, позволяющий фильтровать по полям из связанных таблиц, удобно представлять фильтр-значения, перемещаться визуально по выборке и делать экспорт в Excel атрибутов выделенных объектов данных.
- Набор инструментов редактирования данных модуля (Edit Toolbox) – аналог стандартного редактора ArcMap Editor, но с более удобным интерфейсом, специальным набором команд и задач и поддержкой блокирования данных при одновременном редактировании несколькими пользователями. Более того, требуется отслеживать все изменения данных в специальных таблицах аудита.
- Инструмент экспорта части данных модуля в отдельную БД для редактирования на местности, позволяющий затем закачать измененные данные обратно с согласованием всех конфликтов без участия пользователя. Это более сложный аналог функционала «Удаленное редактирование» (Disconnected Editing) в ArcMap.
- Диалог управления легендами слоев. Поскольку каждый модуль оперирует своими данными, и они должны быть представлены в карте в виде слоя, нужен инструмент задания способа отображения слоя (легенды). Он должен быть достаточно универсальным для всей системы.
Кроме этого, в ближайшее время планируется выделить в группу стандартных следующие компоненты:
- менеджер групп, позволяющий группировать произвольные наборы объектов данных для моделирования каких-то отношений между ними
- менеджер массового изменения свойств объектов данных (Bulk data update manager), позволяющий быстро изменить определенные свойства множества выделенных объектов.
Реализация набора таких компонентов в системе дала возможность резко ускорить подключение модулей для работы с новыми данными. Естественно, что новые данные и модули, их обслуживающие, требуют зачастую каких-то своих алгоритмов и инструментов, но базовые операции для доступа к данным и их редактирования уже могут быть выполнены в рамках этого набора стандартных компонентов.
Унификация доступа к данным
Одной из основных проблем стандартизации компонентов модулей было обеспечение работы каждого такого компонента с данными конкретного модуля, которые, естественно, могли сильно отличаться по своей структуре от данных любого другого модуля. Анализ существующих модулей позволил выделить общие правила в структуре их данных, которые помогли создать свою «локально-универсальную» модель доступа к данным. Данные большинства новых модулей отлично в нее вписываются и автоматически становятся доступны через универсальные компоненты системы. Основные идеи модели доступа к данным изложены ниже.
Вводится понятие «объекта данных» (Data Object) как некоего «черного ящика» для доступа к данным модуля. Его появление обосновывается рядом факторов. Во-первых, практически любой модуль системы оперирует вполне определенным и ограниченным набором объектов данных. Примеры объектов данных: квартал, выдел, контракт (как территория выполнения работ), собственник, сегмент дороги и т.д. Эти понятия определяют разные «типы» объектов данных. Их не очень много в системе, а тем более в одном из новых, планируемых к подключению, модулей. Следовательно, их можно программно «описать», или реализовать.
Во- вторых, каждый объект данных обладает рядом свойств – атрибутов (полей), и одним из них зачастую является геометрия объекта (SHAPE). Атрибуты могут по-разному представлять свои значения: напрямую, через домен значений, закодированными (для конфиденциальности) и т.п.
В-третьих, объект данных может быть связан с одним или несколькими объектами другого типа (наличие отношений). Причем, поскольку каждый объект реализован отдельно, он сам знает и отвечает за свои отношения с другими объектами.
Таким образом, «объект данных» – это представление определенного объекта или явления в системе и, одновременно, некий уровень абстракции над физическим хранилищем: записью в таблице или классе пространственных объектов (Feature Class).
В принципе, ничего нового в таком подходе нет. ESRI вводит понятие объекта данных в своих классах Row и Feature из библиотеки ArcObjects. Но на практике они, к сожалению, слишком универсальны и неудобны, объект должен скрывать гораздо больше информации о своих свойствах и поведении в себе самом. ESRI на этот случай предлагает и более универсальное решение – реализацию своих собственных объектов (custom features) в рамках модели ArcObjects. Казалось бы, это именно то, что требуется. Однако такой подход имеет несколько серьезных недостатков: Custom Features труднее создавать и поддерживать, нет требуемой независимости хранилища данных от объекта-представления (идет «привязка» новых типов объектов к таблицам, где хранятся их атрибуты), замедляется доступ к таблицам с нестандартными объектами; атрибуты объектов (поля) плохо приспособлены для нестандартного использования и т.п.
Именно в силу этих и других причин, а также дополнительной гибкости, которую дает платформа .NET в сравнении с COM, и была выбрана собственная модель реализации доступа к данным.
Стандартизация компонентов интерфейса пользователя
Методика создания и, тем более, использования универсальных компонентов интерфейса пользователя присутствует в большинстве приложений. Это дает заметный выигрыш по времени и по качеству при разработке продуктов. Поэтому при создании стандартных компонентов системы был также реализован набор полезных визуальных компонентов. Некоторые из них настолько универсальны, что не только применяются сразу в нескольких стандартных компонентах системы, но и могут быть использованы в новых специализированных модулях. Вот только некоторые из них: комбинированный список слоев карты, набор инструментов для работы с выборками в слое, инструмент копирования геометрии объектов между слоями, таблица атрибутов объекта данных, иерархическое дерево объектов данных с возможностью фильтрации, атрибутивный фильтр объектов слоя и т.д. Многие из таких визуальных компонентов реализованы в виде панелей инструментов, которые легко встраиваются в любой новый диалог.
Преимущества использования
Рассмотрев возможности и способы расширения системы, следует перечислить основные преимущества, которые система предоставляет конечному пользователю.
Интеграция данных. База пространственных данных под управлением ArcSDE/Oracle обеспечивает актуальность и совместное использование информации различными подразделениями организации. Между модулями также происходит динамический обмен данными: инвентаризационные данные и результаты планирования непосредственно применяются в операционных модулях, например, в модуле контрактов на подряды.
Упрощение процедуры сбора данных. Интуитивно понятный набор инструментов позволяет легко и точно вносить изменения в пространственные данные. Кроме того, есть возможность взять часть данных в поле для редактирования на местности с последующим обновлением основной БД. При этом система отслеживает такие области удаленного редактирования и предотвращает конфликты.
Моделирование и планирование развития территорий. «Сценарии» помогают выбрать наиболее адекватную модель развития территории, оптимизировать затраты, достичь максимальной выработки древесины и многое другое.
Инструменты подготовки отчетов существенно упрощают процедуры взаимодействия со сторонними организациями. К примеру, процедуры экологического и социального контроля.
Система не требует специального обучения и подготовки. Многие люди с навыками работы в ArcMap могут быстро начать работать с системой.
Контроль доступа к данным и модулям. Система позволяет настроить рабочую среду пользователя в соответствии с его ролью в организации, тем самым обеспечивая безопасность данных.
В итоге, система предоставляет удобную и устойчивую рабочую среду и обеспечивает баланс социальных, экономических и экологических требований.
Перспективы
Возможности системы FORESTER позволяют выходить за рамки ее первоначальных задач по управлению лесными ресурсами, что иллюстрируется ее новыми модулями управления дорожной сетью и туристической инфраструктурой.
Более того, система может быть легко адаптирована для нужд других организаций. Это демонстрирует пример организации NWSS (Native Woodland Survey of Scotland), которая начала использовать часть системы для своих задач, применяя готовые инструменты и при этом работая на другом наборе данных. Есть и другие организации, заинтересованные в этом продукте для решения своих более специфических задач. Все это говорит о востребованности системы и гибкости её архитектуры.
Итак, FORESTER – это готовое рабочее решение для управления данными о лесных ресурсах (и не только), имеющее возможность расширяться и легко адаптироваться под нужды конкретных пользователей и организаций.