Технические науки
УДК 621.383+621.548+662.63+631.95
ОСНОВЫ ГЕОИНФОРМАЦИОННОЙ СИСТЕМЫ В ОСВОЕНИИ ПУСТЫННОЙ
ЭКОСИСТЕМЫ КАРАКУМЫ (Часть 1)
А. М. Пенджиев, Туркменский государственный архитектурно-строительный институт (Туркменистан, Ашхабад), e-mail: [email protected]
Аннотация. В статье рассматривается геоинформационные системы (ГИС) и создание геоинфармационных технологии (ГИТ), которые позволяют оперативно и подробно анализировать на основе имеющейся географически привязанной информации различные альтернативные варианты для проведения оценки проектирования установок в той или иной области энергетики c целями обеспечения устойчивого развития в освоение пустыни Каракумы. В особой степени это относится к энерговодообеспечение объектам и системам, с использованием возобновляемых источников энергии в связи с их высокой пространственной и временной неравномерностью и изменчивостью. В соответствии со стоящими задачами, определяющими необходимые расчетные параметры, и встают требования к исходной физико-географической, природно-климатической, метрологической и информации потенциала, необходимой для создания базы данных ГИС технологии. Оценки возобновляемых энергоресурсов и его распределения по территории затруднено ограниченностью объема энергопотенциала по времени и в пространстве. С помощью ГИС можно решить энергетические, экономические, экологические, социальные вопросы и возможности смягчения изменения климата на основе энергетических установок, и их ресурсы, выгоды, цели и задачи на научно-методических основах в области освоение пустыни Каракумы для реализации государственных программ Туркменистана энерговодообес-печения региона. На основе ГИС возможности составление карт на цифровой основе местности в пустынной зоне Туркменистана.
Ключевые слова: геоинфармационная система, возобновляемая энергетика, технический, экологический, экономический потенциал и ресурсы, освоение пустыни Каракумы, развития пастбищ Туркменистана.
BASES OF GEOINFORMATION SYSTEM IN DEVELOPMENT OF DESERTED
KARAKUM ECOSYSTEMS (PART 1)
Abstract. The article considers geoinformation systems (GIS) and the creation of geoinfarmation technologies (GIT) that allow the rapid and detailed analysis, based on available geographically related information, of various alternative options for assessing the design of installations in a particular energy field with the goals of sustainable development in the development of the desert The Karakum. Particularly, this refers to energy supply to objects and systems, using renewable energy sources due to their high spatial and temporal unevenness and variability. In accordance with the tasks that determine the necessary design parameters, there are requirements to the initial physico-geographical, natural-climatic, metrological and information potential required to create a database of GIS technology. Estimates of renewable energy resources and their distribution across the territory are hampered by the limited volume of energy potential in time and space. With the help of GIS, it is possible to solve energy, economic, environmental, social issues and opportunities for mitigating climate change on the basis of power plants, and their resources, benefits, goals and objectives on the scientific and methodological basis in the development of the Karakum Desert for the implementation of Turkmenistan's state programs of energy savings -the region's cave. Based on GIS, it is possible to draw maps on a digital basis in the desert region of Turkmenistan.
Keywords: Geoinformation system, renewable energy, technical, ecological, economic potential and
resources, development of Karakum Desert, development of pastures of Turkmenistan.
Введение
Приоритетная позиция Туркменистана на ГА ООН. В сентября 2014 г. - состоялась открытие 69-й сессии Генеральной Ассамблеи ООН (ГА ООН), в ходе которой по пору-чению Президента Туркменистана Гурбангулы Бердымухамедова туркменская делегация озвучила приоритетные позиции нашей страны и представила новые инициативы лидера нации по вопросам глобальной и региональной проблематики, сформулированные в конкретных предложениях по дальнейшему наращиванию конструктивного международного взаимодействия на пяти ключевых направлениях.
В их числе — сохранение и укрепление всеобщего мира и безопасности, сотрудничество в энергетической и транспортной сфере, гуманитарные вопросы и права человека, экология и защита окружающей среды.
Экология и защита окружающей среды. В целом это направление учитывает широкий спектр экологических проблем в Средней Азии в регионе Каспийского моря, Туркменистан предлагает комплексный подход к их решению. Именно этот принцип - сбалансированного развития - положен в основу природоохранной политики Президента Гурбангулы Бердымухамедова и всех осуществляемых в ее рамках программ. Рациональное использование водных и земельных ресурсов, восстановление плодородия почв, озеленение, сохранение биологического разнообразия, совершенствование природоохранного законодательства - в каждой из этих областей наша страна за годы государственной независимости накопила большой позитивный опыт, который сегодня востребован как на региональном, так и глобальном уровне.
Ратифицировав ряд важных природоохранных конвенций ООН, в том числе по борьбе с опустыниванием, Туркменистан принял на себя повышенные обязательства по осуществлению планов и программ в области охраны и рационализации природо-пользования.
Так, особое внимание Правительство Туркменистана уделяет вопросам сохранения пустыни Каракумы, ландшафты и недра которой содержат уникальную флору и фауну, колоссальные природные богатства - обширные пастбища, значительные рекреационные и энергетические ресурсы. Ярким примером эффективного решения задач по формированию прочных основ экологической безопасности не только Туркменистана, но и всей Центральной Азии служит строительство в Центральных Каракумах Туркменского озера «Алтын асыр». Главная цель этого беспрецедентного по своим масштабам и значению инвестиционного проекта - коренным образом улучшить состояние орошаемых земель и одновременно решить множество проблем, связанных с засолением почв, заболачиванием и засухой [1] .
Всего за несколько лет после ввода в строй первой очереди этого грандиозного гидротехнического комплекса, предназначенного для сбора коллекторно-дренажных минерализованных вод с сельскохозяйственных угодий всех велоятов (облостях) страны, прилегающих к нему территория преобразовалось до неузнаваемости.
Большое внимание уделяется сегодня и заповедным зонам крупнейшей на континенте пустыни. Напомним, что в прошлом году, в соответствии с Постановлением Президента Туркменистана Гурбангулы Бердымухамедова, на севере Ахалского велаята был создан Государственный природный заповедник «Берекетли Гарагум», общая площадь которого
составляет 87 тысяч 800 гектаров. Помимо проведения комплексных научных исследований экологической тематики, разработки научных основ рационального природопользования, развитие сети особо охраняемых государством территорий этот заповедник будет способствовать реализации огромного туристического потенциала нашей страны, создаст основу для развития экологического туризма в условиях аридной зоны.
В стране функционирует уникальный в своем роде Национальный институт пустынь, растительного и животного мира - крупнейший в Центральной Азии научно-исследовательский центр по решению глобальной проблемы опустынивания. Специалистами этого института разработана концепция мониторинга опустынивания для различных территорий и сфер землепользования, что помогает обдуманно проводить хозяйственную деятельность в соответствии с требованиями охраны окружающей среды.
Одним из серьезных экологических вызовов современности является засоление вод и деградация орошаемых земель. Начале августа 2014 года было ознаменовано проведенном важного международного форуме, посвященного данной проблематике, двухдневной конференции «Экономическая оценка деградации земель», организованной Правительством Туркменистана в сотрудничестве с Секретариатом Конвенции ООН по борьбе с опустыниванием.
Инициированный Президентом Гурбангулы Бердымухамедовым данный форум был призван ознакомить мировое сообщество с реализуемой в нашей стране политикой в области охраны окружающей среды и экологической безопасности, определить национальные и региональные приоритеты для Центральноазиатских государств, а также служить укреплению глобального взаимодействия в сфере борьбы с опустыниванием.
Как отметила выступившая на конференции представитель Секретариата Конвенции ООН по борьбе с опустыниванием г-жа Луис Бейкер, нынешний ашхабадский форум, впервые проводимый в регионе Центральная Азия, является признанием высокого международного авторитета Туркменистана как страны, занимающей лидирующие позиции в решении задач охраны окружающей среды и рационального природополь-зования.
Располагая большим позитивным опытом, Туркменистан предлагает активи-зировать сотрудничество в этом сегменте экологической безопасности со специализированными структурами ООН. В ноябре текущего года в нашей стране будет проведен еще один важный форум - Международное совещание на уровне министров «Между-народного центра сельскохозяйственных исследований в засушливых регионах» (ICARDA), к участию в котором туркменская сторона приглашает представительные делегации всех заинтересованных государств.
Присоединившись к ряду значимых природоохранных конвенций ООН, Туркменистан намерен и впредь принимать самое активное участие в глобальных усилиях по решению важнейших задач, в том числе по сохранению уникальных, но чрезвычайно уязвимых экосистем, принятию мер по минимизации негативного воздействия на окружающую среду нанесенного ранее экологического ущерба, повышению экологического образования.
Уже сегодня в стране эффективно внедряются современные схемы и методы производства, позволяющие минимизировать негативные последствия для окружающей среды. Поддерживая усилия международного сообщества по сокращению выбросов пар-никовых газов, Туркменистан переходит к использованию современных экологически чистых и ресурсосберегающих технологий в промышленном секторе.
Огромная работа выполняется и в рамках разработанных и успешно реализуемых все последние годы под руководством туркменского лидера «Национальной стратегии по изменению климата» и «Национальной лесной программы Туркменистана», призванных сохранить и приумножить многообразие и красоту уникальной природы туркменской земли.
В числе других важных международных инициатив - разработка специальной Программы ООН по спасению Арала, нашедшая широкую поддержку со стороны всего мирового сообщества.
Важнейшим вопросом, выходящим далеко за региональные рамки, обозначена и экология региона Каспийского моря, стремительно превращающегося в один из круп-нейших мировых центров добычи и транспортировки углеводородов. Как неоднократно заявлял Президент Гурбангулы Бердымухамедов, общая задача прикаспийских государств — совместить объективные экономические интересы с действенными мерами по сохранению биоразнообразия этого уникального водоема.
В целях выработки адекватных решений, в том числе политико-правового характе-ра, Туркменистан выступил с инициативой организации Каспийского экологического форума в качестве постоянно действующего органа для рассмотрения вопросов охраны окружающей среды в Каспийском бассейне и выработки соответствующих предложений и рекомендаций.
В числе первостепенных задач, без решения которых трудно говорить об устой-чивом развитии в Средней Азии, обозначено и спасение Арала. Неоднократно отмечая необходимость комплексного подхода мирового сообщества к решению этого вопроса, туркменская сторона, выступала с предложением приступить к выработке эффективных мер и реализации конкретных планов по стабилизации и улучшению сложившейся ситуации в рамках Специальной Программы ООН для Арала.
Все это наглядно свидетельствует об особом значении, придаваемом углублению и расширению сотрудничества с крупнейшими международными организациями и, в первую очередь, ООН, выступающей востребованной временем площадкой для ведения продуктивного и наиболее эффективного диалога по актуальным вопросам со-временности, в том числе проблемам экологического плана [Газета «Нейтральный Туркменистан» 13.09.2014
г.] .
Учитывая широкий спектр вопросов, включенных в повестку дня общемирового форума, Туркменистан рассматривает нынешнюю 69-ю сессию Генеральной Ассамблеи Организации Объединенных Наций как важный этап в деле последователь консолидации международных усилий по решению ключевых вопросов глобальной повестки, утверждению лидирующей роли ООН. В деле сохранения и упрочения всеобщего мира, стабильности и безопасности, реализации в полном объеме заявленных Целей Тысячелетия, неуклонного выполнения государствами-членами взятых на себя обязательств по обеспечению устойчивого развития в свете договоренностей, достигнутых по итогам Саммита «РИО+20».
Именно в рамках заинтересованного широкого дна: на уровне ООН должны быть приняты ответственные и предельно конкретные решения нацеленные на эффекта мобилизацию политико-дипломатических, финансово-экономических, организационных и технических ресурсов мирового сообщества успешного выполнения намеченных перспектив планов, призванных обеспечить счастливое будущее, сохранить и сберечь уникальность нашей планеты Земля для нынешнего и всех грядущих поколений [1].
Учитывая выше поставленные задачи, автор в статье пытается применить ГИС технологий для решения важных вопросов устойчивого развития в освоение пустыни Каракумы. Он осознает, что при написании статьи не все задуманное удалось реализовать в полном объеме и прекрасно понимает, что он делает первые шаги в этом направлений, поэтому имеется недостатки как в теоретическом плане, так в прикладной и практической части. Но тем не мене вопрос использования ГИС на современном этапе развития в области энерговодообеспечения и смягчения антропогенных нагрузок на окружающую среду с помощью использования возобновляемых источников энергии и освоения пустыни Каракумы для устойчивого развития стоит остро. Использованные материалы и методика подхода могут быть полезны для применения их не только в Туркменистане, но и в других странах мира.
1. Основы геоинформационные системы в области осваения путыни Каракумы
Ведение народного хозяйства страны невозможно без детального изучения ее территории. Современная техника геодезических и съемочных работ обеспечивает получение точной топографической карты, характеризующей географический ландшафт по его основным элементам. Эта карта, кроме непосредственного обслуживания народнохозяйственных нужд, дает еще основу для изучения страны в геологическом, гидрогеологическом, почвенном, ботаническом и других отношениях. На основе этой карты составляются различные общегеографические и специальные карты [4-6].
В науках о Земле информационные технологии породили геоинформатику и географические информационные системы (ГИС). Любая ГИС представляет из себя систему для сбора, хранения, анализа и представления картографической информации. Геоинформационные системы могут включать природную, биологическую, культурную, демографическую или экономическую информацию.
Для использования в ГИС данные должны быть преобразованы в подходящий цифровой формат. Процесс преобразования данных с бумажных карт в компьютерные файлы называется оцифровкой. В современных ГИС этот процесс может быть автоматизирован применением сканерной технологии, что особенно важно при выполнении крупных проектов. Если объем работ небольшой, можно вводить данные с помощью дигитайзера. Многие данные уже переведены в форматы, напрямую воспринимаемые ГИС-пакетами [9,11,12,21].
ГИС хранит информацию о реальном мире в виде набора тематических слоев, которые объединены на основе географического положения.
ГИС может работать с двумя существенно различающимися типами данных - векторными и растровыми. В векторной модели информация о точках, линиях и полигонах кодируется и хранится в виде набора координат X и Y.
Растровая модель оптимальна для работы с непрерывными свойствами. Растровое изображение представляет собой набор значений для отдельных элементарных составляющих (ячеек). Оно подобно отсканированной карте или картинке. Вся изучаемая территория разбивается на элементы регулярной сетки или ячейки. Каждая ячейка содержит только одно значение. Она является пространственно заполненной, поскольку любое местоположение на изучаемой территории соответствует ячейке растра, иными словами, растровая модель оперирует элементарными местоположениями. В большинстве растровых моделей
данных наименьшей единицей является квадрат или прямоугольник. Такие единицы известны как сетка, матрица или пиксель. Множество ячеек образует решетку, растр, матрицу.
Бурное развитие геоинформатики порождает немало приложений, в которых используется та или иная цифровая модель рельефа (ЦМР) земной поверхности. Подавляющее число таких приложений, например, прогноз наводнений, обеспечение безопасности полетов, объемное представление карты на экране компьютера и т.п., требуют по возможности наиболее точных моделей. Зачастую требования по точности ЦМР можно удовлетворить, создавая модели на основе цифровых топографических карт соответствующего масштаба, содержащих информацию о рельефе в виде изолиний, отметок высот, отметок урезов воды и т.п. Процесс создания модели рельефа (в триангуляционном или матричном виде) по цифровым данным такого типа в настоящее время хорошо изучен и реализован во многих ГИС-пакетах.
Цифровая модель рельефа, ЦМР - это средство цифрового представления 3-мерных пространственных объектов (поверхностей, рельефов) в виде трехмерных данных как совокупности высотных отметок или отметок глубин и иных значений аппликат (координаты Z) в узлах регулярной сети с образованием матрицы высот, нерегулярной треугольной сети или как совокупность записей горизонталей (изогипс, изобат) или иных изолиний [6-9].
Многие специалисты считают, что ГИС данные можно взять из интернета и все получится, но это не совсем так в каждой природно-климатической зоне имеются свои нюансы положительное и отрицательное и при составление технико-экономическое обоснование (ТЭО) для освоения пустынь строительство объектов, газопроводов, пастбищных хозяйств и так далее при этом не нарушая экосистему Каракумы.
Целью раздела статьи является возможности разработки программного модуля обработки и отображения картографической информации на цифровой карте местности при освоений пустынную зону Каракумы в Туркменистане.
В процессе описания статьи рассматривались следующие задачи возможности использования ГИС технологии в освоение пустынной зоны:
- обзор технологий и систем ГИС;
- системное и функциональное проектирование программного модуля;
- разработка программного модуля с использованием сред программирования Visual C++ 6.0, Qt 3.3.3;
- проведение тестирования программного модуля;
- разработка руководства пользователя программного модуля;
- технико-экономическое обоснование;
- разработка раздела по охране труда.
Данном разделе рассматривается возможности разработка программного модуля, который должен выполнять следующие функции поставленной задачи:
- загрузка, отображение цифровой карты местности (ЦКМ), прокрутка и зуммирование изображения загруженной цифровой карты местности (с использованием функций существующей библиотеки картографического обеспечения);
- создание, редактирование и сохранение списка стандартных высот для объектов цифровой карты местности (по видам объектов, согласно классификатора условных знаков);
- расчет матрицы превышений на фоне цифровой карты местности (с учетом списка стандартных высот, соответствующих данному участку местности);
- создание и редактирование матрицы корректировок.
Задача расчета матрицы превышений может решаться как однократно для вполне определенных заданных значений высот рельефа местности, растительности, гидрографии, промышленных объектов, населенных пунктов т. п., так и многократно, а также по мере необходимости при изменении:
- данных о рельефе, гидрографии, растительности;
- положения и состояния промышленных объектов, автомобильных и железных дорог или населенных пунктов.
Исходными данными для программного модуля являются:
- несколько файлов цифровой карты местности с расширением UTP;
- файл - классификатор условных знаков объектов местности с расширением
- файл стандартных высот объектов местности (по видам объектов, согласно классификатора условных знаков);
- файл матрицы высот с расширением BMH;
- файл матрицы превышения с расширением BMH2.
Форматы файлов UTP, BMH, BMH2 являются внутренними для существующей библиотеки картографического обеспечения. Библиотека содержит все необходимые функции для работы с файлами указанных форматов.
Файлы цифровой карты местности содержат пространственные, количественные, качественные и описательные характеристики объектов. Один из предоставляемых файлов является базовым, т.е. покрывает весь интересующий регион и содержит минимальный набор объектов. Остальные файлы ЦКМ соответствуют листам карт масштаба 1:200000 или 1:500000.
Объекты карты распределены по слоям (гидрография, границы и т.д.). Отображение карты производится последовательно слой за слоем в соответствии с классификатором.
Файл классификатора объектов карты содержит данные об их представлении на экране при отображении ЦКМ в зависимости от масштаба отображения.
Файл матрицы высот содержит данные о возвышении земной (водной) поверхности относительно уровня Балтийского моря в каждой точке местности. Данные содержатся в матричном виде, в файле также хранится информация о размере ячейки (шага матрицы), регионе охвата [9,11,12,21].
Файл превышения высот содержит данные о возвышении верхней поверхности сооружений, растительного покрова относительно земной поверхности в каждой точке местности. Формат файла матрицы превышений такой же, как у файла матрицы высот.
Файл стандартных высот объектов местности представляет из себя список возможных видов объектов (согласно используемого классификатора условных знаков) и соответствующих им значений стандартных высот, хранимый в виде обычного текстового файла.
Для улучшения зрительного восприятия слоев и ускорения процесса их отображения можно применять функции упрощенной отрисовки объектов из существующей библиотеки картографического обеспечения.
Степень детализации отображаемой карты может изменяться установкой минимального размера отображаемого объекта (предусмотреть соответствующие элементы интерфейса). Размер задается в единицах измерения экранной системы координат, т.е. в пикселях [9,11,12,21].
Для реализации функций загрузки, отображения, прокрутки и зуммирования ЦКМ предусмотреть соответствующие элементы интерфейса (например, меню главного окна или кнопки).
Разрабатываемый программный модуль должен функционировать в среде операционной системы Microsoft Windows 2000/XP, желательно также предусмотреть при разработке интерфейса возможность функционирования программы в операционной системе RedHat Linux 7.3/8. Поэтому предлагается интерфейс приложения разрабатывать с использованием библиотеки QT (версии 3.1.2/3.3.3).
2. Научный обзор: геоинформационных программы, модули и системы.
2.1. Обзор геоинформационных систем
Понятие о геоинформационных системах и технологиях. Создание карт и географический анализ не являются чем-то абсолютно новым. Технологии ГИС предоставляют новый, более соответствующий современности, более эффективный, удобный и быстрый подход к анализу проблем и решению задач, стоящих перед человечеством в целом, и конкретной организацией или группой людей, в частности. Они автоматизируют процедуру анализа и прогноза. До начала применения ГИС лишь немногие системы обладали искусством обобщения и полноценного анализа географической информации с целью обоснованного принятия оптимальных решений, основанных на современных подходах и средствах [9,11,12,21].
Основное отличие ГИС от просто информационной системы в том что, ГИС - информационная система, обеспечивающая сбор, хранение, обработку, доступ, отображение и распространение пространственно координированных (пространственных) и атрибутивных данных. ГИС содержит данные о пространственных объектах в форме их цифровых представлений (векторных, растровых), включает соответствующий задачам набор функциональных возможностей ГИС, в которых реализуются операции геоинформационных технологий, поддерживается программным, аппаратным, информационным, нормативно-правовым, кадровым и организационным обеспечением. ГИС различаются предметной областью информационного моделирования, к примеру, городские ГИС, или муниципальные ГИС, природоохранные ГИС, среди них особое наименование, как особо широко распространенные, получили земельные информационные системы. Проблемная ориентация ГИС определяется решаемыми в ней задачами (научными и прикладными), среди них инвентаризация ресурсов (в том числе кадастр), анализ, оценка, мониторинг, управление и планирование, поддержка принятия решений. Интегрированные ГИС совмещают функциональные возможности ГИС и систем цифровой обработки изображений (данных дистанционного зондирования) в единой интегрированной среде. Пространственно-временные ГИС оперируют пространственно-временными данными. Реализация геоинформационных проектов, создание ГИС в широком смысле слова, включает этапы: исследования, технико-экономическое обоснование, оценку соотношения «затраты / прибыль», системное проектирование ГИС, тестирование на небольшом территориальном фрагменте, создание опытного образца, внедрение ГИС в эксплуатацию и использование. Научные, технические, технологические и прикладные аспекты проектирования, создания и использования ГИС изучаются наукой геоинформатикой.
Хотя большинство ГИС преимущественно используются управления объектами на сравнительно больших территориях, однако, они могут быть применены и предприятиями, имеющих на своем балансе здания, сооружения, инженерные коммуникации. Для таких систем хорошо подходят корпоративные ГИС. Задача любой корпоративной системы - снизить издержки работы за счет наведения порядка в том, с чем до этого работали на бумаге, ускорить доступ к информации, автоматизировать проведение расчетов, которые на компьютере производятся, естественно, быстрее и с меньшей вероятностью возникновения ошибки, чем на бумаге. Для получения лучших результатов такие системы должны обладать интеллектуальными свойствами.
Работающая ГИС включает в себя пять ключевых составляющих: аппаратные средства, программное обеспечение, данные, исполнители и методы [1].
Аппаратные средства, которые используются в ГИС - это компьютер, на котором запущена ГИС и средства ввода-вывода пространственной информации (дигитайзеры, плоттеры и др.). В настоящее время ГИС работают на различных типах компьютерных платформ, от централизованных серверов до отдельных или связанных сетью настольных компьютеров.
Программное обеспечение ГИС содержит функции и инструменты, необходимые для хранения, анализа и визуализации географической (пространственной) информации. Ключевыми компонентами программных продуктов являются: инструменты для ввода и оперирования географической информацией; СУБД; инструменты поддержки пространственных запросов, анализа и визуализации (отображения); ГИП для легкого доступа к инструментам.
Данные - это вероятно наиболее важный компонент ГИС. Данные о пространственном положении объектов (географические данные) и связанные с ними табличные данные могут собираться и подготавливаться самим пользователем, либо приобретаться у поставщиков
W W п
на коммерческой или другой основе. В процессе управления пространственными данными ГИС интегрирует пространственные данные с другими типами и источниками данных, а также может использовать СУБД, применяемые многими организациями для упорядочивания и поддержки имеющихся в их распоряжении данных.
Широкое применение технологии ГИС невозможно без людей (исполнителей.), которые работают с программными продуктами и разрабатывают планы их использования при решении реальных задач. Пользователями ГИС могут быть как технические специалисты, разрабатывающие и поддерживающие систему, так и обычные сотрудники (конечные пользователи), которым ГИС помогает решать текущие каждодневные дела и проблемы [6-9].
Успешность и эффективность (в том числе экономическая) применения ГИС во многом зависит от правильно составленного плана и правил работы, которые составляются в соответствии со спецификой задач и работы каждой организации.
В настоящее время российские и зарубежные производители предлагают широкий спектр геоинформационных систем. Можно привести наиболее популярные из них.
GIS MapInfo - содержит всю информацию (графическую, текстовую и др.) в таблицах. Пользователь управляет процессами создания картографической информации и тематических слоев через графический интерфейс, который выражается в виде меню и системы контекстных подсказок. MapInfo имеет встроенную реляционную СУБД, работающую по SQL-запросам с файлами в различных форматах.
BusinessMAP - пакет начального уровня для решения бизнес задач, таких как поддержка продаж и маркетинг, на основе включенных в него (в основном по США) или уже имеющихся в готовом виде данных.
Atlas GIS - удобный пакет для конечного пользователя со всеми стандартными функциями, имеющимися в простых настольных ГИС системах. Включает разнообразные готовые данные, в том числе по России. Основное назначение - бизнес приложения.
ArcView GIS - настольная ГИС с развитыми функциями пространственного анализа, многие из которых добавляются к базовому набору в виде дополнительных модулей. Работает на разных платформах.
ARC/INFO - профессиональная ГИС для решения задач структурирования и управления данными, ведения базы данных. Работает на разных платформах. ГИС для рабочей группы (уровня отдела или небольшой фирмы, в которых постоянно ведется разработка ГИС проектов). По мере расширения сферы деятельности и усложнения выполняемых задач целесообразно распределить их решение между несколькими продуктами. Такая ГИС обычно базируется на разделяемой базе пространственных данных, поддерживаемой и обновляемой с помощью разных продуктов и обеспечивающей работу «конечных» пользователей на персональных компьютерах в пределах данной рабочей группы или отдела. Конкретное предлагаемое решение зависит от типов используемых данных, выбранной программной среды, аппаратного обеспечения и ряда других факторов. ГИС уровня предприятия (корпоративная ГИС). Обеспечивает всю организацию пространственной информационной поддержкой. В такую ГИС можно встроить сотни специализированных приложений с дополнительными средствами пространственных запросов, расширенного анализа, отображения и представления данных. В качестве компонентов системы такого уровня могут использоваться серверы пространственных данных:
Spatial Database Engine (SDE) - открытая среда управления пространственными данными, ядро корпоративной распределенной ГИС, как правило, вместе с внешней реляционной СУБД.
ГИС широко используется в интернете. Глобальное картографическое решение. ESRI предоставляет два стандартных решения задачи публикации карт в сети Интернет. MapObjects Internet Map Server обеспечивает технологические средства для доступа к базе данных ГИС через Интернет, разработки собственных приложений для создания карт по имеющимся в вашей организации данным, поддержки пространственных запросов к Web серверу с любого места в сети. ArcView Internet Map Server предоставляет в ваше распоряжение готовые средства для распространения картографических материалов через Интернет без необходимости дополнительного программирования.
Как видно из вышеизложенного материала в настоящее время ГИС - средства в полной мере не решают интеллектуальных задач, таким образом как их решает человек. Основная проблема сводится к манипулированию и использованию знаний. Современные ГИС позволяют работать только с данными (пространственными и атрибутивными) но в полной мере не позволяют представить знания о предметной области, знания как управлять предприятием. Одним из путей решения данной проблемы является реализация системы «гибрида» существующих разработок реализация подсистемы осуществляющей работу с пространственными данными плюс уже более новыми и предметно ориентированными (представление знаний) средствами для представления и работы с атрибутивными данными и знаниями об исследуемых объектах - подсистемой поддержки и принятия решений [4-9,11,12,21].
2.2. Системное проектирование
Разработка структуры программного модуля. Исходя из требований постановки задачи, разрабатываемый программный модуль обработки и отображения картографической информации можно структурно разбить на несколько блоков:
- блок, реализующий функции загрузки и отображения цифровой карты местности с использованием библиотеки картографии, разработанной специалистами УП НИИСА. Входными данными используемых функций библиотеки картографии являются:
- один или несколько файлов цифровой карты местности с расширением UTP;
- файл - классификатор условных знаков объектов местности с расширением KLS;
- файл матрицы высот с расширением BMH;
- блок, отвечающий за создание, редактирование и сохранение списка стандартных высот для объектов цифровой карты местности. Внутри блока реализуются также визуальные средства (окно) для редактирования списка высот. Результатом работы данного блока является текстовый файл с расширением ТХТ;
- блок, необходимый для расчета и сохранения матрицы превышений на фоне цифровой карты местности. Сохранение результатов расчета происходит в двоичный файл с расширением BMH2;
- блок для создания и редактирования матрицы корректировки. Результатом работы данного блока является файл с расширением BMH3.
Обобщенная структурная схема программного модуля представлена на черт. РТДП 5.000.002.
Разработка пользовательского интерфейса программы будет осуществляться с помощью средств библиотеки Qt.
GUI инструментарий, именуемый Qt, предоставляет норвежская компания TrollTech. GUI означает «Графический Пользовательский Интерфейс» («Graphical User Interface»), поэтому базирующиеся на Qt приложения представляются кнопками, окнами и т.п. Такие приложения осуществляют взаимодействие с пользователем, представляя в визуальной форме выполняемые функции. Этот инструментарий необходим для разработки графических приложений, которые используют X-Window интерфейс в Unix системах, потому что X не содержит предопределенного пользовательского интерфейса. И хотя другие наборы инструментов также позволяют создавать пользовательский интерфейс, Qt предоставляет некоторые технические возможности, которые делают разработку приложений очень простой. Кроме того, Qt инструментарий также доступен для Microsoft Windows систем, что позволяет разработчикам выпускать приложения для обеих платформ.
В настоящее время Qt - это библиотека классов C++ и набор инструментального программного обеспечения, предназначенных для построения многоплатформенных приложений с графическим интерфейсом и исповедующих принцип «написав однажды - компилируй в любом месте». Qt представляет собой единую платформу для приложений, которые могут работать под управлением Windows 95/98/Me/2000/XP, Mac OS X, Linux, Solaris, HP-UX и других версий Unix.
Qt предоставляет:
- широкий набор классов и методов, пригодных для использования даже для программ без графического интерфейса;
- хорошее решение для реализации взаимодействия с пользователем посредством виртуальных методов и механизма сигнал / слот;
- набор предопределенных GUI-элементов, называемых «widgets», которые могут быть легко использованы для создания видимых элементов;
- дополнительные полностью предопределенные диалоговые окна, которые часто используются в приложениях, такие как окно прогресса или окно выбора файлов.
В качестве языка программирования выбран C++ как язык, наилучшим образом сочетающий в себе поддержку объектно-ориентированной технологии программирования и возможности написания кода на достаточно низком уровне, что позволяет достичь оптимального быстродействия разрабатываемого программного обеспечения. Одним из современных инструментальных средств для разработки Windows-приложений является пакет Microsoft Visual C++ 6.0. Visual C++ предоставляет удобную среду визуального объектно-ориентированного программирования, что и обусловило выбор именно этого пакета в качестве среды разработки.
Логическая структура библиотеки картографии. Библиотека картографии предназначена для работы с цифровой картой местности (ЦКМ) и представляет собой набор классов и функций, обеспечивающих визуализацию и работу с картой, а также обеспечение решения расчетных задач на фоне карты.
Программное обеспечение состоит из следующих элементов:
- набор классов и функций, составляющих ядро библиотеки;
- класс MKartaInterface, предоставляющий функции управления картой.
Для хранения карты на диске используются файлы в формате UTP. Формат UTP предполагает наличие utp-файла, а также kls-файл, содержащий классификатор. Также возможно использование bmh-файла с матрицей высот.
Логически карта состоит из паспорта, ссылки на классификатор (в виде термина) и одного или нескольких слоёв, каждый из которых, в свою очередь, состоит из объектов.
Термин классификатора указывает классификатор, который содержит знаковую систему, необходимую для формирования корректного изображения карты. Карты не являются самостоятельными, независимыми от классификаторов единицами. Карта может быть загружена даже в случае отсутствия файла классификатора, но при этом вид карты на экране будет схематичным.
Слой - самая крупная структурная единица в структуре карты, представляющая собой хранилище объектов. Структурно состоит из паспорта слоя и списка объектов.
В картографии понятие «объект» обозначает наиболее элементарную часть в структуре карты, соответствующую единичному географическому явлению на местности.
Как информационная структура, объект представляет собой хранилище сведений об изображаемом явлении, включающее:
- указание на способ изображения данного явления, т.е. его условный знак;
- данные о расположении явления (пространственные данные, контур);
- дополнительные сведения о нем (атрибуты) [4-6,9,11,12,21].
2.3. Функциональное проектирование
Проектирование структуры классов. Исходя из выделенных на этапе структурного проектирования блоков разрабатываемого программного модуля, для реализации заданных функции были разработаны описанные ниже классы.
Класс MainWindow - описывает главное окно программного модуля.
Класс MapView - реализует отображения карты в главном окне программного модуля.
Класс Tasks - обрабатывает нажатие функциональных клавиш в главном окне программного модуля.
Класс Heights - реализует работу со списком стандартных высот.
Класс EditDialog - описывает работу диалога редактирования стандартных высот.
Класс Matrix - реализует работу с матрицей превышений и матрицей корректировок.
Класс ComputeDialog - описывает работу диалога расчета матрицы превышений для нескольких листов карт местности.
Класс ComputeThread - реализует процедуру расчета матрицы превышений для нескольких листов карт местности.
Взаимодействие всех классов осуществляется с помощью следующих глобальных переменных объявленных в main.cpp как указатели на объекты соответствующих классов:
- MKartaInterface *karta - объект, реализующий функции взаимодействия с картой;
- Matrix *matrix - текущая обрабатываемая матрица превышений;
- Matrix *correctionMatrix - текущая обрабатываемая матрица корректировок;
- MainWindow *window - главное окно приложения;
- Tasks *tasks - объект для обработки нажатия клавиш в главном окне.
Классы, реализующие диалоги программного модуля. Класс MainWindow - с помощью этого класса происходит описание главного окна программного модуля. Основные функции данного класса:
- MainWindow() - конструктор, который вызывается при создании окна;
- bool eventFilter (QObject *o, QEvent *e) - функция обработки движения мыши;
- void onExit() - функция выполняет последовательность операций при закрытии главного окна программы.
Класс EditDialog - с помощью этого класса происходит описание диалога редактирования стандартных высот. Основные функции этого класса:
- EditDialog() - конструктор, который вызывается при создании диалога;
- void addButtonClick() - функция обработки добавления элементов в список;
- void remButtonClick() - функция обработки удаления элементов из списка;
- void listViewClick (QListViewItem *item) - функция обработки выбора раздела классификатора;
- void updateTables (QString zs, QString razd) - функция обновления списка высот для знаков выбранного раздела классификатора;
- void valueChanged (int row, int col) - функция обработки изменения значения высоты в списке.
Класс ComputeDialog - с помощью этого класса происходит описание диалога расчета матрицы превышений для нескольких листов карт местности. Основные функции данного класса:
- ComputeDialog (QWidget* parent = 0, const char* name = «ComputeDialog», bool modal = FALSE, WFlags fl = 0) - конструктор, который вызывается при создании диалога;
- void start() - функция обработки запуска процедуры расчета;
- void stop() - функция обработки остановки процедуры расчета.
При реализации пользовательского интерфейса использованы стандартные элементы управления Windows, каждому из которых в Qt соответствует собственный класс: - панель управления - используется для ускоренного доступа к часто используемым функциям - класс QToolBar;
- главное меню - используется для организации меню - класс QMenuBar;
- панель состояния - используется для вывода сервисной информации - класс QStatusBar;
- список - представление данных в виде списка - класс QListView;
- надпись - используется для подписывания элементов интерфейса - класс QLabel;
- поле ввода - используется для ввода данных пользователем - класс QLineEdit;
- кнопка - используется для выполнения пользователем определенных действий - класс QPushButton;
- индикатор прогресса - класс QProgressBar.
Кроме того, использованы некоторые специальные классы Qt:
- QMainWindow - для создания главного окна приложения (класс MainWindow);
- QTable - для организации таблиц с данными;
- QDialog - для организации окон модальных диалогов (классы EditDialog, ComputerDialog).
С помощью программы Qt Designer, входящей в комплект поставки системы разработки Qt, был разработан вид главного окна программного модуля и диалогового окна для редактирования стандартных высот.
Программа Qt Designer предназначена для разработки и реализации графического пользовательского интерфейса приложения. С ее помощью также можно сгенерировать программный код, обеспечивающий реализацию функций разработанного интерфейса. В отличие от Microsoft Visual Studio, помещающего описание ресурсов диалогового окна в текстовый файл с расширением.гс, среда разработки Qt создает файл с расширением.ш и помещает в него описание диалогового окна в формате, совместимом с XML. Этот файл включается в makefile данного проекта, создающий на его основе соответствующие файлы заготовок и реализации класса диалогового окна [4-9,11,12,21].
Классы, реализующие функции программного модуля. Класс ComputeThread - с помощью этого класса происходит расчет матрицы превышений для нескольких листов карт местности. Основные функции этого класса:
- ComputeThread (QObject *obj) - конструктор, который вызывается при создании объекта;
- void start() - функция запуска процедуры расчета;
- void stop() - функция остановки процедуры расчета;
- void run() - функция выполнения процедуры расчета.
Класс Heights - с помощью этого класса происходит работа со списком стандартных высот. Основные функции этого класса:
- void save (MString name) - функция сохранения в файл;
- bool load (MString name) - функция загрузки из файла;
- void clear() - функция обеспечивающая удаление всех объектов, очистку списка;
- iterator find (const HObj &o) - функция обеспечивающая поиск объекта в списке;
- void insert (const HObj &o) - функция обеспечивающая вставку объекта в список;
- void erase (const HObj &o) - функция обеспечивающая удаление объекта;
Структура HObj реализует объекты составляющие список стандартных высот. Для каждого объекта хранятся код, название и высота (превышение). Конструктор обеспечивает первоначальную инициализацию данных.
Класс MapView - с помощью этого класса реализуется отображение карты в главном окне программного модуля. Основные функции этого класса:
- mousePressEvent() - функция обработки нажатие мыши при построении матрицы корректировки;
- void zoom (int left, int top, int right, int bottom) - функция обработки процедуры зуммирова-ния;
- void prevView() - функция обработки процедуры возврата к предыдущему виду;
- void defaultView() - функция обработки процедуры отображения всей карты;
- void updateHeights() - функция осуществляющая перерисовку (отображение) матриц превышений и корректировки на текущем отображаемом фрагменте карты;
- void drawMap() - функция обработки процедуры отрисовки карты
Класс Tasks - с помощью этого класса происходит обработка нажатия функциональных кнопок в главном окне программного модуля. Основные функции этого класса:
- void loadMap() - функция, обрабатывающая нажатие кнопки открыть карту;
- void openFolder() - функция, обрабатывающая нажатие кнопки открыть папку;
- void load Kls() - функция, обрабатывающая нажатие кнопки открыть классификатор;
- void loadHeights() - функция, обрабатывающая нажатие кнопки открыть список стандартных высот;
- void loadMatrix() - функция, обрабатывающая нажатие кнопки открыть матрицу превышений;
- void loadCorrectionMatrix() - функция, обрабатывающая нажатие кнопки открыть матрицу корректировок;
- void newHeights() - функция, обрабатывающая нажатие кнопки создать список стандартных высот;
- void newCorrectionMatrix() - функция, обрабатывающая нажатие кнопки создать матрицу корректировок;
- void editHeights() - функция, обрабатывающая нажатие кнопки редактирование списка стандартных высот;
- void saveHeights() - функция, обрабатывающая нажатие кнопки сохранить список стандартных высот;
- void saveMatrix() - функция, обрабатывающая нажатие кнопки сохранить матрицу превышений;
- void calculateMatrix() - функция, обрабатывающая нажатие кнопки расчет матрицы превышений.
Класс Matrix - с помощью этого класса происходит реализация расчета матрицы превышений и создание матрицы корректировок:
- void CreateFile (MRect rect, MString filename, double st = STEP, int y = 0, int x = 0) - функция создания матрицы на жестком диске;
- void Create (MRect rect, double st = STEP, int y = 0, int x = 0) - функция создания матрицы в памяти;
- void Destroy() - функция обработки процедуры удаления матрицы;
- void Calculate() - функция расчёта матрицы превышений;
- void Save (MString filename) - функция сохранения в файл;
- bool Load (MString filename) - функция загрузки матрицы в память;
- bool Open (MString filename) - функция открытия матрицы из файла на жестком диске;
- void Clear() - функция заполняющая матрицу нулями;
- MPoint GetPoint (int i, int j) - функция, которая возвращает точку, соответствующую i-ой строке и j-ому столбцу матрицы;
- void GetPos (MPoint point, int &i, int &j) - функция, определяющая позицию клетки матрицы, которая соответствует точке на карте;
- int GetX() - функция, определяющая количество столбцов матрицы;
- int GetY() - функция, определяющая количество строк матрицы;
- double GetStep() - функция, определяющая шаг матрицы;
- short GetHeight (MPoint point) - функция, которая возвращает высоту в точке;
- short GetHeight (int i, int j) - функция, которая возвращает высоту в клетке;
- void SetHeight (MPoint point, short height) - функция, устанавливающая высоту в клетке, соответствующей точке;
- void SetHeight (int i, int j, short height) - функция устанавливающая высоту в клетке;
- void ReadBmhHeader (FILE *file) - функция, которая читает заголовок из файла BMH;
- void WriteBmhHeader (FILE *file) - функция, которая записывает заголовок в файл BMH;
- void Fill (MPtArray *ar) - функция, которая заполняет локальную матрицу обрабатываемого топографического объекта;
- int GetNumFilledPoints() - функция, определяющая количество заполненных клеток;
- void AddHeight (MTopobject *tpo, short height) - функция, добавляющая высоты топографического объекта в матрицу;
- void AddLineObject (MTopobject *tpo, short height) - функция, добавляющая высоты линейного объекта в матрицу;
- void AddPloObject (MTopobject *tpo, short height) - функция добавляющая высоты площадного объекта в матрицу;
- void Expand (int i, int j, int state) - функция распространяющая заливку из клетки до границ объекта.
Описание используемых функции библиотеки картографии. Класс MKartaInterface предоставляет набор функций необходимых для работы с ядром библиотеки картографии.
Основные функции класса MKartaInterface:
- bool LoadMap (MString map_name);
> загружает карту (upt-файл) указанную в параметре map_name.
- bool SetKlassifikator (MString kls_name);
> загружает классификатор (kls-файл) указанный в параметре kls_name.
- void SetWidget (QWidget* widget);
> устанавливает widget на который должна отрисовываться карта.
- void DrawMap (bool toScreen = true);
> отрисовывает карту, параметр toScreen определяет, будет ли карта отрисовываться на экран (true), либо в pixmap (false).
- MPoint LogicToGeo (QPoint& lPoint, bool bInMapCoo = false);
- QPoint GeoToLogic (MPoint& gPoint);
> пересчитывают точку из логических (экранных) координат в географические и обратно.
- MRect LogicToGeo (QRect& lrect, bool bInMapCoo = false);
- QRect GeoToLogic (MRect& lrect);
> пересчитывают прямоугольник из логических (экранных) координат в географические и обратно.
- MPoint GeoToGauss (MPoint& pt, double meredian = 1000);
- MPoint GaussToGeo (MPoint& pt, double meredian = 1000);
> пересчитывают точку из географических координат в зонную систему координат Гаус-са-Крюгера и обратно.
- MPoint GeoToGaussStandart (MPoint& pt, double meredian = 1000);
- MPoint GaussToGeoStandart (MPoint& pt, double meredian = 1000);
> пересчитывают точку из географических координат в стандартную систему координат Гаусса-Крюгера и обратно.
- MPoint GeoToGaussLocal (MPoint& pt);
- MPoint GaussLocalToGeo (MPoint& pt);
> пересчитывают точку из географических координат в местную систему координат Га-усса-Крюгера и обратно.
- void ZoomTo (MRect& rect);
> зуммирует карту до заданного в параметре rect прямоугольника охвата.
- void ScrollByGeo (double x, double y);
> скроллирует карту на смещение заданное в координатах карты.
- void ScrollByLogic (int x, int y);
> скроллирует карту на смещение заданное в координатах окна отрисовки.
- bool SetMatrixFile (MString path);
> устанавливает путь к файлу матрицы высот.
- int GetHight (MPoint& pt);
> возвращает высоту рельефа в точке, заданной параметром pt.
- int GetHightObjects (MPoint& pt);
> возвращает высоту объекта местности относительно рельефа в точке, заданной параметром pt.
Иерархия основных классов библиотеки картографии представлена на плакате ( плакат РТДП 5.000.004).
2.4. Разработка программных модулей
Среди используемых классов программы можно выделить Matrix, как основной для функций внутренней обработки и MapView - основной для функций отображения. Далее опишем алгоритмы ключевых процедур и функций этих классов.
Алгоритмы ключевых процедур и функций класса MapView:
- void MapView: draw Map()
> отрисовка карты производится, если открыты карта и классификатор (для определения выполнения этих условий в классе есть логические переменные mapOpen && klsOpen). Если на момент отрисовки карты открыта матрица превышений, нужно ее отобразить (функция updateHeights())
- void MapView:update Heights ()
> перерисовка (отображение) матриц превышений и корректировки на текущем отображаемом фрагменте карты производится, только если открыта карта или матрицы превышений и корректировки (используем логические переменные mapOpen и matrix Open). С помощью класса библиотеки картографии MRect получаем границы карты,
которые соответствуют видимой области (MRect bounds = karta->GetZoombounds()), далее вычисляем индексы ячеек матрицы, соответствующие углам карты (matrix->GetPos (MPoint(bounds.left, bounds.bottom), i1, j1); matrix->GetPos (MPoint(bounds.right, bounds.top), i2, j2);). Рассчитываем шаг матрицы double step. В logx и logy - содержится количество пикселей, которым соответствует шаг матрицы (double logx = width() / karta->GetZoombounds().Width() * step; double logy = height() / karta->GetZoombounds().Height() * step;). Матрицу превышений и матрицу корректировок отрисовываем таким образом: если масштаб крупный (шаг матрицы больше 5 пикселей), то рисуем прямоугольник, в противном случае ставим точку.
- void MapView:mousePressEvent (QMouseEvent *e)
> корректировка в точке матрицы осуществляется только, если была нажата правая клавиша мыши (e->button() == Qt: RightButton) и открыты карта и матрица корректировки (используем логические переменные mapOpen && correctionMatrixOpen). С помощью функций класса MKartaInterface LogicToGeo и GeoToGauss производим преобразование логических координат мыши в географические координаты (MPoint point = karta->LogicToGeo(pos); point = karta->GeoToGauss(point);). Далее проверяем, если точка щелчка мыши находится в области матрицы корректировок, то вызывается диалог, в поле ввода которого вводим значение корректировки высоты. Значение высоты записываем в матрицу корректировок (correctionMatrix->SetHeight (point, height)) и вызываем перерисовку (отображение) матрицы корректировки (updateHeights()).
- void MapView:zoom (int left, int top, int right, int bottom)
> точки противоположных углов прямоугольника переводим из логических координат мыши в координаты карты
(QPoint first = QPoint (left, top); QPoint second = QPoint (right, bottom); MPoint p1 = karta->LogicToGeo(first); MPoint p2 = karta->LogicToGeo(second);)
Формируем прямоугольник с помощью класса библиотеки картографии MRect (MRect rect = MRect (p1, p2)) и вызываем функцию ZoomTo (в качестве параметра передаем в нее сформированный прямоугольник rect). Для перерисовки карты вызываем функцию drawMap().
Алгоритмы ключевых процедур и функций класса Matrix
- void Matrix: CreateFile (MRect rect, MString filename, double st, int y, int x)
> создание матрицы на жестком диске осуществляется, если была удалена предыдущая матрица (Destroy()), далее увеличиваем границы матрицы так, чтобы они были кратны шагу (NormalizeRect(rect)), записываем заголовок в файл ВМН (WriteBmhHeader(mem)) и записываем 0 в конец файла, создавая таким образом файл нужного размера, заполненный нулями.
fseek (mem, 48 + cx * cy * sizeof(short) - 1, SEEK_SET);
char c = 0;
fwrite (&c, 1, 1, mem);
short Matrix: GetHeight (MTopobject *tpo)
> высота топографического объекта добавляется в матрицу из UTP-файла (MString str = tpo->GetDataPole(1)), если в данных объекта отсутствует значение высоты, оно берется из списка стандартных высот (heights [tpo->m_kkod])
- void Matrix: Save (MString filename)
> сохранение в файл матрицы осуществляется в случае, если файл успешно создан на диске: FILE *file = fopen (filename, «wb»). Для сохранения матрицы сначала записываем заголовок файла ВМН (WriteBmhHeader(mem)) и сохраняем матрицу или в оперативную память (если memMode == INMEMORY) или в файл на жесткий диск (если memMode == INFILE).
- void Matrix: Calculate()
> при расчете матрицы первоначально создаем матрицу с размерами равными размерам карты (Create (pKarta->m_geobounds)), далее подсчитываем количество точек у всех топографических объектов, участвующих в расчете (это нужно, чтобы выводить полосу прогресса). Для формирования матрицы превышений, перебирая каждый объект каждого слоя карты, получаем высоту объекта. Если значение высоты не равно нулю, добавляем значение в формируемую матрицу превышений (с помощью функции AddHeight). При этом в матрице заполняются все клетки, покрываемые площадью рассматриваемого объекта.
- void Matrix: AddHeight (MTopobject *tpo, short height)
> для добавления высоты топографического объекта в матрицу первоначально необходимо проверить тип топографического объекта (tpo->m_pZnak->GetYaz()->GetType()). Если объект площадной, то выполняется добавление высоты площадного объекта в матрицу (AddPloObject (tpo, height)), если объект линейный, то выполняется добавление высоты линейного объекта в матрицу (AddLineObject (tpo, height)), если объект точечный, то сравниваем текущую высоту с высотой в ячейке, если текущая высота больше (height > GetHeight(point), то устанавливаем в ячейке текущую высоту (SetHeight (point, height))
- void Matrix: AddLineObject (MTopobject *tpo, short height)
> добавление высоты линейного топографического объекта в матрицу осуществляется следующим образом: в цикле по сегментам линейного объекта проверяем покрывает ли ячейка матрицы сегмент, если покрывает, то устанавливаем в ячейке текущую высоту (SetHeight (point, height)), если не покрывает, то рассчитываем количество ячеек покрывающих данный сегмент, и в цикле для каждой ячейки устанавливаем текущую высоту топографического объекта.
- void Matrix: AddPloObject (MTopobject *tpo, short height)
> добавление высоты площадного топографического объекта в матрицу осуществляется следующим образом: сначала создается локальная матрица топографического объекта (по размеру охватывающего прямоугольника объекта). Затем в локальной матрице площадного объекта заполняются ячейки, покрывающие контур объекта -используется функция AddLineObject (tpo, BORDER). Затем заполняются остальные ячейки локальной матрицы с использованием функции Fill (MPtArray *ar). На последнем этапе в цикле по всем ячейкам сформированной локальной матрицы все «внутренние» (не-OUTSIDE) ячейки заполняются значениями высоты площадного объекта, но только в том случаи если текущее значение высоты больше значения высоты в ячейке.
if (height > GetHeight(point)) SetHeight (point, height); void Fill (MPtArray *ar)
> заполнение локальной матрицы обрабатываемого топографического объекта продолжается до тех пор, пока не будут заполнены все точки (GetNumFilledPoints() < numPoints). Первоначально в цикле do while выбираем случайную ячейку со значением высоты EMPTY (не заполненная) и вычисляем соответствующую точку объекта (MPoint pt = GetPoint (i, j)). Затем распространяем вокруг этой клетки значение высоты объекта с помощью функции Expand(), учитывая при этом, является точка внутренней (INSIDE) или наружной (OUTSIDE) по отношению к объекту.
if (PointInRegion (pt, ar)) Expand (i, j, INSIDE);
else Expand (i, j, OUTSIDE);
void Expand (int i, int j, int state)
> распространение заливки из клетки до границ объекта происходит следующим образом: сначала устанавливаем значение в клетке (SetHeight (i, j, state)), затем в цикле заполняем соседние клетки, обход осуществляется по кругу, вначале по часовой стрелке, потом - против, после каждой итерации увеличиваем радиус круга. Если после обхода не заполнено ни одной точки, значит распространяться «заливке» уже некуда, выходим из цикла [4-9,11,12,21].
2.5. Программа и методика испытаний
Разработанная программа должна функционировать с определенными характеристиками для заданных областей данных. Процесс, позволяющий получить программу, функционирующую с требуемыми характеристиками в заданной области входных данных, называется отладкой. В результате отладки программа должна соответствовать определенной фиксированной совокупности правил и показателей качества.
Основным методом отладки и обнаружения ошибок является тестирование - важнейший фактор, определяющий стоимость и длительность разработки комплекса программ. Затраты на тестирование составляют до 40% от общего времени на разработку программы.
Программы, как объекты тестирования, имеют ряд особенностей, которые отличают процесс тестирования технического средства от программного. Для сложных комплексов программ отсутствует полный и точный эталон для тестовых наборов. Для сложных программ тестирование проводится в объемах минимально необходимых для проверки программ в ограниченных пределах изменения параметров и условий функционирования.
Для проверки правильности работы программы используется проведение функционального и полного тестирования.
При функциональном тестировании должна обеспечиваться проверка каждого пункта меню, каждой операции, которую выполняет система. Такая проверка должна гарантировать работу всех элементов программы в автономной режиме.
При полном тестировании моделируются все возможные действия пользователя при работе с программой.
Сначала тестирование было проведено разработчиком программы, затем программный продукт был дан на тестирование пользователям. При этом на первом этапе выявлялись логические ошибки в основном связанные с последовательностью и временем появления диалогов на экране, которые затем были устранены.
Тестирование проводилось также по следующему алгоритму: тестировщик проходит по всем этапам программы, начиная от главного окна. При этом он бессистемно нажимает все
клавиши на клавиатуре и мыши. Тест показал, программа реагирует на нажатие только тех клавиш, которые имеют смысловое значение в программном модуле. Для проверки функциональности программы был разработан представленный ниже тест, включающий в себя последовательно описанные действия оператора, направленные на проверку определенных функций программного модуля.
Подготовка к тестированию. Тестирование программного модуля обработки и отображения картографической информации выполняется в среде функционирования программного модуля.
Подготовка средств. Необходимо обеспечить соответствие среды функционирования программного модуля обработки и отображения картографической информации требованиям п. 6.1 настоящего документа.
В среде функционирования программного модуля требуется:
- установить программное обеспечение модуля, следуя инструкциям п. 6.2 настоящего документа;
- записать в отдельный каталог файлы тестового примера (файл карты m3404.utp, файл классификатора 500-200-HOT_heights.kls, файл стандартных высот heights.txt и файл матрицы высот matrix.bmh) [4-9,11,12,21].
Файлы тестового примера предоставляет исполнитель.
Ожидаемые результаты. В результате проведения тестирования ожидаются следующие результаты:
- после открытия карты и классификатора, в главном окне программного модуля ожидается отображение цифровой карты местности (ЦКМ);
- после использования инструмента зуммирования ожидается отображение в картографическом окне выделенного фрагмента ЦКМ, увеличенного до максимально возможного размера, который позволяет отобразить картографическое окно. Если размеры картографического окна и увеличиваемого фрагмента ЦКМ не симметричны, то отображаемый фрагмент дополняется участками ЦКМ, прилегающими к выделенному фрагменту, для полного заполнения картографического окна в вертикальном или горизонтальном направлении;
- после использования инструмента скроллирования ожидается отображение в картографическом окне необходимого фрагмента ЦКМ;
- после использования инструмента «предыдущий вид карты» ожидается отображение в картографическом окне предыдущего фрагмента ЦКМ;
- после использования инструмента «отобразить всю карту» ожидается отображение в картографическом окне всей ЦКМ;
- после завершения работы программного модуля Matrix, в директории указанной тести-ровщиком, должны находиться следующие сохраненные файлы: файл матрицы превышений matrix_m3404.bmh2 и файл матрицы корректировок correction. bmh2.
Порядок выполнения теста.Для выполнения тестирования программного модуля обработки и отображения картографической информации на цифровой карте местности следует последовательно выполнить следующие действия:
- запустить программный модуль Matrix ( п. 6.3. настоящего документа);
- открыть карту m3404.utp и классификатор 500-200-HOT_heights.kls (см. п. 6.5. настоящего документа);
- создать файл стандартных высот heights.txt (см. п. 6.5. настоящего документа);
- если необходимо, внести изменения в список стандартных высот в диалоге «Редактирование высот» ( п. 6.5. настоящего документа);
- сохранить файл стандартных высот heights.txt ( п. 6.5. настоящего документа);
- произвести расчет матрицы превышений ( п. 6.5. настоящего документа);
- сохранить матрицу превышений matrix_m3404.bmh2 ( п. 6.5. настоящего документа);
- создать матрицу корректировок correction.bmh2 ( п. 6.5. настоящего документа);
- если необходимо, внести изменения в матрицу корректировок ( п. 6.5. настоящего документа);
- проверить функции инструментов зуммирования, скроллирования, «предыдущий вид» и «отображение всей карты» ( п. 6.5. настоящего документа);
- завершить работу программного модуля Matrix ( п. 6.5 настоящего документа).
Чтобы убедиться в правильности расчета матрицы превышений необходимо закрыть программный модуль Matrix и затем открыть его снова. При этом выполнить все действия повторно, но уже не рассчитывать матрицу превышений, а открыть сохраненную ранее. При движении мыши в картографическом окне, если матрица рассчитана правильно, в строке состояния должны отображаться значения матрицы превышения и матрицы корректировки [9,11,12,21].
Продолжение в следующей 2 части статьи.
Литература:
1. Бердымухамедов Г.М. Государственное регулирование социально-экономического развития Туркменистана. А.: Туркменская государственная издательская служба, 2010. Том 1.
2. Бабаев А.Г. Проблемы освоения пустынь. Изд-во «Ылым», 1995. 340 с.
3. Бабаев А.Г.и др. Физическая география Туркменистана: Учебное пособие. А.: Туркменская государственная издательская служба, 2014.
4. Берлянт А.М. Картография: Учебник для вузов. М.: Аспект Пресс, 2001. 336 с.
5. Дьяченко Н.В. Использование ГИС-технологий. URL: http://homepage.buryatia.ru/rmeic/gis.htm
7. Нефедова Л.В. Структура базы данных по малой гидроэнергетике в рамках разработки ГИС «Возобновляемые источники энергии России» // Труды 6-й международной научно-технической конференции «Энергообеспечение и энергосбережение в сельском хозяйстве». М.: ГНУ ВИЭСХ, 2008. Часть 4. С. 314-322.
8. Новаковский Б. А., Прасолова А. И., Киселева С. В., Рафикова Ю. Ю. Геоинформационные системы по возобновляемой энергетике // Международная Конференция Интер-Карто-ИнтерГИС-17. Устойчивое развитие территорий: теория ГИС и практический опыт, Барнаул - Денпасар, 14-19 декабря 2011г. Барнаул, 2011 С. 10-14.
9. Кобзаренко Д.Н. Трехмерное геоинформационное моделирование в прогнозных задачах геотермальной энергетики // Материалы 6-й Всероссийской научной молодежной школы «Возобновляемые источники энергии», 25-27 ноября 2008. Москва. МГУ им.Ломоносова, 2008. С.139-145.
10. Пенжиев А.М. Изменение климата и возможности уменьшения антропогенных нагрузок: Монография. LAMBERT Academic Publishing, 2012.
11. Пенджиев А.М. Геоинформационная технология использования возвратных вод туркменского озера «Алтын асыр» // Альтернативная энергетика и экология - ISJAEE. 2014. № 13. С 129-150.
12. Пенджиев А.М. Основы геоинформационной системы в развитии возобновляемой энергетики в Туркменистане // Международный научный журнал «Альтернативная энергетика и экология». 2014. № 18. (в печати)
13. Пенджиев А.М. Экологические проблемы освоения пустынь»: Монография. LAP LAMBERT Academic Publishing 2014. 226 с.
14. Пенджиев А.М. Экологические проблемы освоения пустынь: опустынивание, деградация почв и засухи, устойчивое управление земельными ресурсами и водообеспечение // Международный научный журнал «Альтернативная энергетика и экология». 2013. № 14 (136). С. 49-52.
15. Пенджиев А.М. Экологические проблемы освоения пустынь: засушливые земли мира, рост народонаселения, использование гелиоэнергетических комплексов // Международный научный журнал «Альтернативная энергетика и экология». 2013. №13 (135). С. 4447.
16. Пенджиев А.М. Ожидаемая эколого-экономическая эффективность использования фотоэлектрической станции в пустынной зоне Туркменистана // Альтернативная энергетика и экология - ISJAEE. 2007. № 5. С 81-92.
17. Пенджиев А.М. Расчет потенциала солнечной энергии в областях Туркменистана // Механизация и электрификация сельского хозяйства. 2008. №12. 47 с.
18. Пенджиев А.М. Технико-экологическая оценка потенциала солнечно-энергетических установок в Центральных Каракумах // Гелиотехника. 2010. № 1.
19. Пенджиев А.М., Пенжиев А.А. Международное сотрудничество в области охраны окружающей среды и устойчивого развития на основе возобновляемой энергетики в Центральной Азии // Альтернативная энергетика и экология - ISJAEE. 2012. № 1. С 139-156.
20. Стребков Д.С., Пенджиев А.М.,Мамедсахатов Б.Д. Развитие солнечной энергетики в Туркменистане: Монография. М.: ГНУ ВИЭСХ, 2012.
21. http: //www.gis.su
References:
1. Berdymuhamedov G.M. Gosudarstvennoe regulirovanie social'no-jekonomicheskogo razvitija Turkmenistana. A.: Turkmenskaja gosudarstvennaja izdatel'skaja sluzhba, 2010. Tom 1.
2. Babaev A.G. Problemy osvoenija pustyn'. Izd-vo «Ylym», 1995. 340 s.
3. Babaev A.G.i dr. Fizicheskaja geografija Turkmenistana: Uchebnoe posobie. A.: Turkmenskaja gosudarstvennaja izdatel'skaja sluzhba, 2014.
4. Berljant A.M. Kartografija: Uchebnik dlja vuzov. M.: Aspekt Press, 2001. 336 s.
5. D'jachenko N.V. Ispol'zovanie GIS-tehnologij. URL: http://homepage.buryatia.ru/rmeic/gis.htm
7. Nefedova L.V. Struktura bazy dannyh po maloj gidrojenergetike v ramkah razra-botki GIS «Vozobnovljaemye istochniki jenergii Rossii» // Trudy 6-j mezhdunarodnoj nauchno-tehnicheskoj konferencii «Jenergoobespechenie i jenergosberezhenie v sel'skom hozjajstve». M.: GNU VIJeSH, 2008. Chast' 4. S. 314-322.
8. Novakovskij B. A., Prasolova A. I., Kiseleva S. V., Rafikova Ju. Ju. Geoinforma-cionnye sistemy po vozobnovljaemoj jenergetike // Mezhdunarodnaja Konferencija Inter-Karto-InterGIS-17. Ustojchivoe razvitie territorij: teorija GIS i prakticheskij opyt, Barnaul - Denpasar, 14-19 dekabrja 2011g. Barnaul, 2011 S. 10-14.
9. Kobzarenko D.N. Trehmernoe geoinformacionnoe modelirovanie v prognoznyh zadachah geotermal'noj jenergetiki // Materialy 6-j Vserossijskoj nauchnoj molodezhnoj shkoly «Vozobnovljaemye istochniki jenergii», 25-27 nojabrja 2008. Moskva. MGU im.Lomonosova, 2008. S.139-145.
10. Penzhiev A.M. Izmenenie klimata i vozmozhnosti umen'shenija antropogennyh nagruzok: Monografija. LAMBERT Academic Publishing, 2012.
11. Pendzhiev A.M. Geoinformacionnaja tehnologija ispol'zovanija vozvratnyh vod turkmenskogo ozera «Altyn asyr» // Al'ternativnaja jenergetika i jekologija - ISJAEE. 2014. № 13. S 129-150.
12. Pendzhiev A.M. Osnovy geoinformacionnoj sistemy v razvitii vozobnovljaemoj jenergetiki v Turkmenistane // Mezhdunarodnyj nauchnyj zhurnal «Al'ternativnaja jenergetika i jekologija». 2014. № 18. (v pechati)
13. Pendzhiev A.M. Jekologicheskie problemy osvoenija pustyn'»: Monografija. LAP LAMBERT Academic Publishing 2014. 226 s.
14. Pendzhiev A.M. Jekologicheskie problemy osvoenija pustyn': opustynivanie, de-gradacija pochv i zasuhi, ustojchivoe upravlenie zemel'nymi resursami i vodoobespeche-nie // Mezhdunarodnyj nauchnyj zhurnal «Al'ternativnaja jenergetika i jekologija». 2013. № 14 (136). S. 49-52.
15. Pendzhiev A.M. Jekologicheskie problemy osvoenija pustyn': zasushlivye zemli mira, rost narodonaselenija, ispol'zovanie geliojenergeticheskih kompleksov // Mezhdunarodnyj nauchnyj zhurnal «Al'ternativnaja jenergetika i jekologija». 2013. №13 (135). S. 44-47.
16. Pendzhiev A.M. Ozhidaemaja jekologo-jekonomicheskaja jeffektivnost' ispol'zovanija fotojelektricheskoj stancii v pustynnoj zone Turkmenistana // Al'ternativnaja jenergetika i jekologija - ISJAEE. 2007. № 5. S 81-92.
17. Pendzhiev A.M. Raschet potenciala solnechnoj jenergii v oblastjah Turkmenistana // Mehanizacija i jelektrifikacija sel'skogo hozjajstva. 2008. №12. 47 s.
18. Pendzhiev A.M. Tehniko-jekologicheskaja ocenka potenciala solnechno-jenergeticheskih ustanovok v Central'nyh Karakumah // Geliotehnika. 2010. № 1.
19. Pendzhiev A.M., Penzhiev A.A. Mezhdunarodnoe sotrudnichestvo v oblasti ohrany okruzhajushhej sredy i ustojchivogo razvitija na osnove vozobnovljaemoj jenergetiki v Cen-tral'noj Azii // Al'ternativnaja jenergetika i jekologija - ISJAEE. 2012. № 1. S 139-156.
20. Strebkov D.S., Pendzhiev A.M.,Mamedsahatov B.D. Razvitie solnechnoj jenergetiki v Turkmenistane: Monografija. M.: GNU VIJeSH, 2012.
21. http: //www.gis.su
— • — Сведения об авторе
Ахмет Мырадович Пенджиев, кандидат технических наук, доктор сельскохозяйственных наук, доцент, Туркменский государственный архитектурно-строительный институт; член-
корреспондент, Международная академия наук экологий и безопасности (Ашхабад, Туркменистан)
— • —