С точки зрения процесса разработки, приложение для ArcGIS Desktop ничем не отличается от других типов программного обеспечения. Поэтому при разработке приложений для ArcGIS Desktop следует пользоваться теми же принципами и практиками разработки программного обеспечения и написания программного кода.
Даже маленькое приложение имеет тенденцию разрастаться до большого и сложного. В случае с примером этой статьи, разработкой Алгоритма кластеризации набора пространственных объектов методом к-средних, я обошелся следующими документами:
· Видение (8 страниц)
· Словарь терминов (1 страница)
· Описание реализации (1 страница)
· Руководство пользователя (3 страницы)
Предоставлю некоторые выдержки из этих документов.
Описание потребностей заинтересованных лиц (Видение):
Потребность | Как удовлетворяется потребность сейчас | Приоритет | Источник |
STRQ1 Кластеризовывать точечные объекты на карте, сохраняя исходные данные | Копируется слой, «вручную» выделяются кластеры по ранее рассчитанным значениям | Высокий | Представитель пользователей Алгоритма |
STRQ2: Метод кластеризации — алгоритм к-средних | Не удовлетворяется, используется другой алгоритм | Средний | Руководитель лаборатории геоинформатики |
STRQ3 Кластеризация должна выполняться на любом компьютере с установленным ПО ArcGIS Desktop (без дополнительного ПО) | Удовлетворяется | Высокий | Руководитель лаборатории геоинформатики |
STRQ4 Алгоритм должен быть настраиваемым для получения результатов различной точности, зависит от времени выполнения Алгоритма | Не удовлетворяется | Средний | Представитель пользователей Алгоритма |
STRQ5: Установка Алгоритма должна быть простой и доступной для неспециалиста в ИТ (может быть выполнена, при необходимости, без администратора) | — | Высокий | Представитель пользователей Алгоритма, Администратор Алгоритма |
STRQ6 Применение Алгоритма (выполнение кластеризации) не должно вызывать сложностей (может быть выполнена кластеризация специалистом с базовыми знаниями ArcGIS) | Не удовлетворяется | Высокий | Представитель пользователей Алгоритма |
STRQ7 Результаты кластеризации могут быть сохранены для дальнейшего применения | Сохраняется набор данных в SHP-файле | Высокий | Представитель пользователей Алгоритма |
STRQ8 Кластеризация может быть применена к любому точечному набору данных, загруженному в ArcGIS | Удовлетворяется | Высокий | Представитель пользователей Алгоритма |
STRQ9 Производительность выполнения кластеризации: 1000 объектов кластеров не более чем за 10 секунд при конфигурации ПК пользователя: CPU 2Ghz, 1Gb RAM | Не удовлетворяется | Высокий | Представитель пользователей Алгоритма |
Аннотация к документу Видение:
Настоящий документ предназначен для формирования и согласования общего представления о проекте реализации Алгоритма кластеризации к-средних (k-means) в среде ArcGIS Desktop. Документ фокусируется на описании заинтересованных лиц и их потребностей, и включает концепцию технического решения.
Метод к-средних является известным алгоритмом кластеризации пространственного расположения объектов. Реализация этого алгоритма в среде ArcGIS Desktop позволит значительно ускорить и повысить качество кластеризации пространственных объектов и сохранять результаты кластеризации для дальнейшего применения.
Документ разработан в соответствии с рекомендациями методологии Rational Unified Process. Термины и определения приведены в документе Словарь терминов.
Видение было проработано за несколько часов, наполнение многих разделов уложилось в одно предложение — это маленький проект разработки. Содержание документа Видение:
1 Назначение и цели Проекта
1.1 Цель реализации Алгоритма
1.2 Постановка проблемы
1.3 Позиционирование Алгоритма
2 Заинтересованные лица и пользователи
2.1 Позиционирование на рынке
2.2 Заинтересованные лица
2.3 Описание пользователей
2.4 Среда работы пользователя
2.5 Описание потребностей заинтересованных лиц
2.6 Альтернативные решения
2.6.1 Продолжать кластеризовывать вручную
2.6.2 Передавать работы по кластеризации на подряд
2.6.1 Передать разработку на подряд
2.6.2 Приобрести готовый алгоритм
3 Описание Алгоритма
3.1 Взаимодействие со смежными системами (компонентами)
3.2 Обзор возможностей Алгоритма
3.3 Допущения и зависимости
3.4 Оценка стоимости
3.5 Лицензирование
4 Возможности (features) Алгоритма
5 Ограничения
6 Показатели качества
7 Другие требования
7.1 Применение стандартов
7.2 Системные требования
7.3 Требования к среде применения
8 Документирование Алгоритма
8.1 Руководство пользователя Алгоритма
8.2 Требования к упаковыванию
Описание реализации разделилось на постановку задачи программирования, ее разделения на подзадачи, поиск литературы и примеров по теме, и определение используемых классов ArcObjects:
Определение задачи
Создать новый точечный слой данных на основе выбранного слоя, выполнить на его наборе данных алгоритм кластеризации к-средних и отметить цветом кластеры объектов.
Разделение на подзадачи
1. Выполнить проверку возможности выполнения операции. Слой должен быть выбран точечный. {Layer, feature type}
2. Вывести окно для ввода параметров кластеризации: количество кластеров и максимально число итераций.
3. Извлечь массив исходных данных: координаты х, у и id объектов исходного точечного слоя. Координаты х, у могут быть как в декартовой, так и в географической системах координат. Используется один алгоритм вычисления евклидового расстояния. {Feature}
4. Применить алгоритм к-средних для выполнения кластеризации. Исходящие данные: массив исходных данных с дополнительным полем «номер кластера», массив центроидов с координатами х, у центроидов.
5. Скопировать набор данных выбранного точечного слоя в папку \output\ в виде SHP-файла. Исходным набором данных может быть SHP-файл или набор данных персональной базы данных MDB. {Workspace, Dataset, copy dataset}
6. Создать в новом наборе данных дополнительное поле «Номер кластера». Заполнить его значениями массива данных. {Dataset, fields}
7. Добавить на карту слой для нового набора данных. {Dataset, Layer}
8. Раскрасить элементы в соответствии с номером кластера, обозначить центроиды. {Feature, Symbol}
Доступные документация и примеры
• Извлечь массив исходных данных
i.
• Добавить на карту слой для нового набора данных
i. Add feature class to ArcMap (ArcGIS Desktop Developers Guide, 274)
• Раскрасить элементы
i. How to make a character marker symbol
ii. Use an AlgorithmicColorRamp to color a ClassBreaksRenderer
iii. Create a custom marker placement for placing markers around a point
iv. Style gallery auto symbol selection (ArcGIS Desktop Developers Guide, 278)
Связанные диаграммы классов
• MxDocument: ArcMapUIObjectModel.pdf
• ILayer, IMap: CartoObjectModel.pdf
• IDataset, IFeature, IFeatureClass, WorkspaceFactory: GeoDatabaseObjectModel.pdf
Важным этапом разработки расширений для ArcGIS является подготовка тестового набора данных. В качестве тестового набора (набор точек) данных я использовал данные об эпицентрах землетрясений в Калифорнии, которые для наглядности разместил на карте США. Скачать тестовый набор данных (карта США не включена).
Тестовый набор данных
После описания реализации и подготовки тестовых набора данных и MXD-проекта, можно приступать непосредственно к программированию.
Скачать PDF-версию с оригинальным оформлением. © Для использования опубликованных на ресурсе материалов достаточно упоминания имени автора и адреса первоисточника. Дата обновления: 2009-01-28.
Комментариев нет:
Отправить комментарий