Создание справочно-картографической основы
и базовой информационной системы
1-й этап темы
Создание информационной системы энергообеспечения и контроля энергопотребления города Южно-Сахалинска
Гл. инженер ОП Энергосбыт, АО Сахалинэнерго, Арентов А.Ю.
Научный руководитель, директор СКБ САМИ,
д.г.-м.н., академик РАЕН, Красный М.Л.
Руководитель работ: зав. лаб. Вычислительной гидромеханики
и океанографии СКБ САМИ, Храмушин В.Н.
Ведущий инженер-программист (информационные системы), Фокина Л.А.
Техник (подготовка исходных данных), Гринчак А.В.
Основное содержание работы
В состав работ 1-го этапа входит подготовка специального математического обеспечения и картографических материалов на электронных носителях:
Выполненный подготовительный цикл работ создал основу для создания электронных информационно-технологических схем, с использованием которых должны решаться практические задачи, связанные с наполнением и систематизацией топографической и инженерной информации о сетях жизнеобеспечения города Южно-Сахалинска, построения реально действующих производственных баз данных ОП Энергосбыт АО Сахалинэнерго, которые необходимы для решения задач технического совершенствования и оптимизации работы предприятий и служб города.
Введение
Состав картографических данных
Обзор существующих ГИС
Основные математические и программные принципы, реализованные в информационной системе «Сахалин»
Проектные решения принятые при разработке программы Сахалин
Внутренние структуры данных
Взаимодействие процедур управления данными
Вопросы, решение которых вынесено на второй этап НИР
Рисунок 1 Пример цифровой карты-плана центральной части города Южно-Сахалинска, с изображением всех городских коммуникаций
Рисунок 2 Общая схема г. Южно-Сахалинск, на которой показаны оцифрованные листы 2000-го масштаба (затененный фон)
Рисунок 3. Образцы электронных географических карт Сахалинской области и Курильских остров, оцифрованные в векторном формате и расслоенные по базовым тематическим уровням. Карты включены в специализированную географическую информационную систему «Сахалин»
Базовый вариант программного обеспечения и картографических материалов (самораскрывающийся архив "Sakhalin.exe")
Введение
(о составлении цифровых картографических систем в интересах служб города)
Научно-исследовательская работа (НИР) «Создание информационной системы энергообеспечения и контроля энергопотребления города Южно-Сахалинска», представляется как первый шаг в создании информационно-картографических систем в интересах муниципальных служб города Южно-Сахалинска, что является одним из звеньев в решении задачи по переводу технологических служб и систем управления городским хозяйством на современный информационно-технических уровень.
На момент начала НИР «Энергия-97» не удалось подобрать действующих прототипов или утвержденных методик по созданию соответствующих информационно-картографических систем, было решено, что на первом этапе: «Создание справочно-картографической основы и базовой информационной системы», кроме изучения вопроса, отработки концепции и создания базовых образцов программного обеспечения, основное внимание будет уделяться компьютерной оцифровке картографических материалов. При этом, для оцифровки картографических материалов было выбрано специальное ПО (Design-CAD), которое позволяет конвертировать полученные данные в общедоступные для современных ГИС форматы, а также имеет подробное и точное описание представления собственных форматов графических данных, что обеспечивает доступ к исходным данным «на низком уровне» из общепринятых языков программирования (C++, Pascal, Fortran).
По мере накопления цифрового картографического материала отрабатывались алгоритмы специализированной обработки и различные варианты представления картографической информации:
Состав картографических данных
В период с июня 1997 года по март 1998 года велась работа с картографическими материалами и планами практически всех крупных населенных пунктов Сахалинской области, были подготовлены и обобщены в единой информационной системе обзорные карты всей Сахалинской области, отдельных районов, городов, поселков, а также готовились подробные карты (планы) города Южно-Сахалинска, в масштабах 1:2000 и 1:500.
Рисунок 1 Пример цифровой карты-плана центральной части города Южно-Сахалинска, с изображением всех городских коммуникаций.
Показанная выше цифровая карта расслоена на более чем два десятка слоев, в число которых входят здания, дороги и др., и в том числе все коммуникации, многие из которых разделены просто по типу маркировки. Полученная в результате работы цифровая карта имеет скорее иллюстративное значение, и вряд ли сможет быть использована для практических целей. Тем не менее, при работе с ней был получен необходимый опыт, на основе которого вырабатывались решения о развертывании основного комплекса работ по теме «Энергия-97».
По результатам и накопленному опыту работы с данными материалами был сделан вывод о достаточно высокой сложности предстоящих работ по непосредственной оцифровке карт 500-го масштаба. Это означает, что данный вопрос нуждается в дополнительном изучении, так как не исключено, что карты данного масштаба лучше не оцифровывать с имеющихся материалов на бумажных носителях, а автоматически генерировать впоследствии, после завершения этапов работ по прямому занесению наиболее важных городских систем и коммуникаций на электронные носители с помощью других специализированных информационных систем. Такой вывод также обусловлен тем, что на этих картах-планах все коммуникации нанесены не по принципу точного соответствия их местоположению, а исходя из условия удобочитаемости условных обозначений, в соответствии с которым протяженные коммуникации изображены условно-параллельными и эквидистантными линиями, проходящими, как правило, по средней части или даже всей ширине городских улиц.
Точное положение городских коммуникаций показано на картах-планах масштаба 1:200, но подготовка столь подробных цифровых чертежей должна относится уже к специализированных проектным организациям. На картах 200-го масштаба содержится множество дополнительной и очень подробной проектной информации о городских зданиях и сооружениях.
В стандартном представлении топографо-геодезические карты-планы масштаба 1:200 не могут быть использованы для решения технологических задач в муниципальных службах города (по крайней мере при современном состоянии однопроцессорной вычислительной техники), в первую очередь это обусловлено огромными объемами нанесенной на такие планы инженерной и топографической информации.
В качестве оптимального по времени создания новой информационно-картографической системы, для решения технологических задач в муниципальных службах города, следует признать вариант с использованием топографических карт города в масштабе 1:2000. При этом сохраняется возможность поэтапного и непрерывного уточнения базовых топографических карт этого масштаба, в том числе с использованием наиболее точной и полной проектной документации по инженерным сооружениям и муниципальным объектам на территории города. По мере освоения информационной системы в городских службах ведающих сетями теплоэнерго- и водоснабжения, другими подведомственными службами, будут созданы предпосылки для объединения накопленных картографических данных, что в свою очередь позволит вернуться к рассмотрению вопроса об издании электронных планов масштаба 1:500, 1:200 и более подробных.
Оцифрованные карты 2000-го масштаба достаточно подробны, точны, и вполне могут служить основой для создания специализированных информационных систем и баз данных, в том числе с включением специализированных программно-информационных комплексов для систематизации и оперативного использования данных о сетях энергоснабжения города Южно-Сахалинска.. При необходимости, карты 2000-го масштаба могут уточняться добавлением или уточнением геометрии объектов с листов 500-го или 200-го масштабов. Именно такой вариант создания информационно-картографических систем был признан нами как оптимальный, и именно по нему были развернуты основные работы.
Таблица 1 Список базовых тематических слоев, применяемых для систематизации картографической информации при оцифровке карт города Южно-Сахалинска масштаба
№ | Назначение слоя |
0 | Географическая сетка. В данном слое определены по три одинаковых прямоугольника, с которыми связано текстовое описание, содержащее координатные привязки в городской системе координат. Таким образом обеспечивается возможность приведения всей информации на цифровой карте к единой системе координат, с наибольшей точностью |
1 | Резервный слой. Резервирование первого слоя выполнено с целью устранения случайных ошибок, возникающих при неустановке текущего слоя после запуска программы Design-CAD. Этот же резервный слой удобно использовать в процессе манипуляции тематическими слоями при редактировании исходных картографических материалов. |
2 | Границы. На данный слой занесены границы районов, лесопосадок, склоны обрывов и другая информация о земельных участках, которая, может быть, нуждается в дополнительном уточнении в будущем. |
3 | Дороги. На данный слой наносятся все автомобильные дороги, а также проезжие части городских улиц. |
4 | Здания и капитальные инженерные сооружения. |
5 | Реки и ручьи. |
6 | Озера и другие водоемы.. |
7 | - |
8 | Железная дорога. |
9 | - |
10 | Высоковольтные воздушные электрические линии |
11 | Коммуникации. На данный слой попадает информация о протяженных коммуникациях, которые не могут быть отнесены к слоям 10, 8 или 3. |
12 | Дворы. На данный слой заносится тропинки, полисадники и множество другой, часто неопознанной информации, которая нанесена на картах внутри городских кварталов. Материалы данного слоя нуждаются в дополнительной систематизации и расслоении. |
13 | Комментарии. На данный слой заносятся текстовые отметки, которые, по каким-либо причинам, могут потребоваться в будущем при детальном анализе картографических материалов. |
Все цифровые карты расслаиваются на тематические уровни, при этом каждая из высотных изобат заносится на собственный слой, что после специальной обработки позволит построить математическую модель трехмерного рельефа местности.
Максимальное количество объектов на одном листе оцифрованной карты может превышать 6000, для построения которых дигитайзером снимается до 40000 точек.
Каждый лист имеет объем от 100 до 750 кб, что уже говорит о сложностях которые могут встретится при подготовке программы для быстрой визуализации на экране ЭВМ различных участков города.
Рисунок 2 Общая схема г. Южно-Сахалинск, на которой показаны оцифрованные листы 2000-го масштаба (затененный фон).
В настоящее время продолжается разработка программного комплекса «Сахалин», с помощью которого выполнена полуавтоматическая обработка и визуализация на экране ЭВМ всех оцифрованных картографических материалов.
К сожалению приходится констатировать, что полурыночное – полурекламное матобеспечение типа Auto-CAD (который к тому же имеет засекреченные форматы представления исходных данных), не может быть задействован для длительной рутинной работы по подготовке муниципальных информационно-картографических систем.
По результатам информационного поиска была подобрана альтернатива AutoCAD-у, которой могла бы послужить система проектирования CAD-dy, разработанная в Германии. По результатам переписки и переговоров с представителями фирмы «Point-M» в Москве, было выяснено, что это модульная система, которая позволяет решать конструкторские задачи и содержит встроенную систему программирования, которая может быть задействована для реализации научных разработок. При всех внешних положительных качествах этой инженерной и картографической системы, она не обделена общими недостатками всех графических систем, представленных на российском рынке информационных технологий:
Среди наиболее привлекательных по составу прикладных средств выделяется российская разработка ГИС-системы ГеоКАД (GeoCAD System 3.1). В описании системы сразу же «бросается в глаза» стройность системно-теоретической проработки программных комплексов, которые ориентированы на решение кадастровых задач. К примеру, из практических приложений ГеоКАД известны разработки: "Городской земельный кадастр" и "Районный земельный кадастр". Объявлено, также, что эти системы позволяют решать следующие задачи:
GeoCAD System 3.1 работает в среде Windows, и по определению авторов является «открытой системой в смысле возможностей информационного наращивания, посредством включения в информационное пространство существующих банков данных».
Стандартные описания импортных систем, типа Arc/Info, MapInfo и др., всегда начинаются с определений «... высокоуровневая ГИС-система с полным набором средств геообработки, включая сбор данных, их интеграцию, хранение, автоматическую обработку, редактирование, создание и поддержку топологии, пространственный анализ, визуализацию и создание твердых копий любой картографической информации». Практическая же работа с этими продуктами начинается с решения проблем отсутствия русских шрифтов и творческого деформирования иностранных стандартов под «аля-российские картинки». Опять же, в силу сугубо рыночного отношения к наукоемким технологиям, все иностранные разработки закрыты не только от их совершенствования, но также и от возможности адаптации их к общепринятым российским стандартам.
Вывод – имеющиеся на рынке зарубежные и отечественные разработки либо позволяют решать ограниченный круг задач, либо чрезмерно дорогостоящи и тяжелы в адаптации имеющегося на сахалине картографического материала. Этот факт вынуждает самостоятельно осуществлять довольно сложные проекты и создавать специализированные программные комплексы.
Основные математические и программные принципы, реализованные в информационной системе «Сахалин»
В разработке информационной системы заложены принципы открытости математических алгоритмов и методов обработки данных, что означает доступность используемых форматов представления графической, гипертекстовой и другой информации для обработки традиционными или общедоступными вычислительными средствами.
Важнейшим звеном всей работы является создание новой среды и системы программирования, которая позволяет систематизировать графические или картографические материалы, объединять их в специализированные информационные системы и, при этом, весь комплекс вычислительных средств доступен для совершенствования в виде полного комплекта исходных текстов на языке программирования С++.
В качестве базового формата представления графической информации выбран двумерный вариант описания данных Design-CAD 2D, который имеет подробное описание в документации к этой универсальной системе проектирования. К достоинствам выбранного формата следует отнести его доступность для прямого использования в программах написанных на рабочих языках программирования (С++, Паскаль, Фортран), что относится как к текстовому (.dc2), та и к двоичному (.dw2) формату представления данных. К особенностям выбранного в качестве базового формата графических данных следует отнести следующее:
Разработка базовых форматов представления данных, а также проектирование, создание и отладка всех программных комплексов уже завершены, что позволяет в будущем эффективно развивать структуру географической информационной системы, включать в нее новые алгоритмы обработки данных а также встраивать математические модели и экспертные запросы для анализа информации повышенной сложности. Последнее особенно важно для информационной системы создаваемой, в том числе, для использования в условиях оперативных служб островной Сахалинской области, области с уникальным географическим положением, обусловленным высокой сейсмической и гидрометеорологической активностью и целым комплексом опасных природных и морских явлений, оперативный учет которых осложняется недостатком практически всех видов коммуникации.
Рисунок 3. Образцы электронных географических карт Сахалинской области и Курильских остров, оцифрованные в векторном формате и расслоенные по базовым тематическим уровням. Карты включены в специализированную географическую информационную систему «Сахалин».
В алгоритмах программ информационной системы «Сахалин», заложены методы выборки и группировки исходной информации в виде метафайлов, которые по мере считывания данных заносятся в оперативную память ЭВМ, что существенно ускоряет работу программы при повторных обращениях к картографической и текстовой информации. Применение такой технологии обработки информации в будущем может быть использовано при разработке моделей и алгоритмов для оперативной обработки информации или для построения информационно-экспертных моделей и проведения вычислительных экспериментов.
В новой информационной системе и программе «Sakhalin» реализовано считывание географических карт, масштабирование и выбор региона на экране ЭВМ, предусмотрена возможность расслоения графической информации по уровням и выбор географических объектов с помощью указателя или списка. С каждой картой связывается специальный текстовый файл с описательной информацией, который содержит списки связанных с картой объектов, также расслоенных по уровням, и дополнительную информацию, необходимую для формирования справочной или географической информационной системы.
В целом, такое объединение графических и текстовых данных с помощью интерактивной системы, с элементами гипертекстовых связей между различными информационными объектами, представляет собой базовое инструментальное средство для объединения различных, в том числе океанографических и инженерно-конструкторских данных.
Проектирование и разработка программных комплексов выполнена с учетом необходимости включения в новую информационную систему специализированных математических моделей для анализа состояния окружающей среды и выполнения других информационных запросов.
В открытом для свободного использования виде Информационная система «Сахалин» представляет собой электронный атлас Сахалинской области и Курильских островов. В состав атласа входит несколько десятков географических карт, задающих картографическую основу для Сахалинской области в целом, с включением географических карт для каждого из 17 Сахалинских районов в отдельности, а также планы городов - районных центров, план города Южно-Сахалинска, план территории и схемы помещений СКБ САМИ и другие графические данные. С основными картами связана дополнительная информация, в которой приведено текстовое описание географических объектов.
На текущем этапе разработки информационной системы “Сахалин” основное внимание уделялось оцифровке картографических материалов, составлению кратких описаний Сахалинских районов и населенных пунктов, разработке специализированного математического обеспечения, созданию и отладке алгоритмов и сценариев быстрого доступа к картографической и гипертекстовой информации.
Проектные решения принятые при разработке программы Сахалин
Программа «Сахалин» является основным программным комплексом, который объединяет внутри себя все процедуры для представления топографических карт и связанных с ними метатекстовых баз данных и других инженерно-технологических информационных систем.
Программа Сахалин оперирует с элементарными графическими объектами и элементами баз данных и внешними текстовыми файлами, объединенных в списки тематических слоев, которые в свою очередь динамически связываются с различными «окнами» на экране ЭВМ, и связанными с этими «окнами» процедурами интерпретации или преобразования исходных данных. Таким образом, программный комплекс информационной системы Сахалин подпадает под классическое определение декларативного проектирования программ (алгоритмическое программирование), присущего общепринятому стандарту программирования на языке С++.
Для обработки разнородных данных широко используется аппарат определения виртуальных функций, - ключевой элемент динамического кодирования обращений к одноименным статически определенным подпрограммам, - в популярном ныне объектно-ориентированном программировании. По мере накопления картографических данных в программном комплексе «Сахалин» пришлось избавится практически от всех массивов данных и индексных ссылок к элементам данных, что обусловлено огромными объемами цифровых картографических материалов.
В соответствии с техническим заданием 1-го этапа планировалось подготовить комплекс законченных процедур обработки данных, предназначенных для начала практической работы по оцифровке и компьютерной систематизации электрических и тепловых сетей города Южно-Сахалинска. К сожалению, по мере приближения к вводу в действия указанных прикладных процедур, все большие и большие затруднения накапливались в связи с использованием «косвенных эффектов», присущих алгоритмическим методам проектирования программ. К настоящему моменту появилась уверенность в правильности определения только базовых классов (объектов), в которых, тем не менее постоянно переопределяются как базовые элементы данных, так и основные правила (функции) взаимодействия между сопряженными объектами данных и функциями по их обработки.
Базовый класс Item обеспечивает связывание графических объектов топографических карт, а также по аналогичным правилам связываются другие объекты проблемных баз данных и наложенных на географические карты муниципальных сетей.
Все элементарные объекты связываются в список, начальный и конечный элемент которого отмечается нулевыми ссылкам M_Prev (предыдущий) и M_Next (последующий), соответственно.
struct Item // Приводится в соответствие с Entity для Design-CAD-а { int EntityType; Item *M_Prev,*M_Next; // Идентификатор объекта Item( int iD ); // Конструктор объекта virtual ~Item(); // Деструктор virtual void Show()=0; // Обязательная функция визуализации };
Каждый из элементов базового класса определен с помощью минимума внутренних данных, исходя из принципа минимизации накладных расходов по памяти, при сохранении высокой скорости обработки списков.
Такие списки базовых классов объединяются в унифицированные слои, с которыми связываются функции управления списками (массивами) элементарных объектов, а также процедуры для их совместной обработки.
// // Графические примитивы (объекты) группируются в блоки (уровни) // struct ItemsList { Item *M_First,*M_Last; // Граничные элементы базового списка ItemsList *L_Prev, *L_Next; // Смежные элементы списка уровней int iActive,iId; char *szName; // Идентификаторы списка long nM; // Текущая длина списка ItemsList( const char *LayerName, int Identify ); ~ItemsList(); Item* AddItem( Item* ); char* AddName( const char *name ); };
Доступ к списку элементарных объектов осуществляется всегда из охватывающих их списков расслоения, каждый из слоев в которых содержит адреса первого и последнего элементов базовых объектов.
struct LayerList // Слои карты< { int nL; // Число слоев ItemsList *L_First,*L_Last,// Список слоев *Enum; // Текущий графический слой LayerList(); // Память выделяется/сбрасывается, 255 слоев ~LayerList(); // а также, - без исполнения конструкторов ItemsList *AddLayer( ItemsList* ); ItemsList *First(); // Поиск первого из активных уровней ItemsList * Next(); // и продолжение поиска к последующим ItemsList *GetLayer(int); // Выбор слоя по его идентификатору Item *GetActive( long ); // Выбор объекта по номеру среди активных char *Name_of_FirstLayer( int &Id ); char *Name_of_NextLayer ( int &Id ); void SwitchLayerState ( int K ); long Number_of_Objects(); // Освободить память занятую слоями void Free(); // };
Таким образом формализуются любые графические объекты или элементы баз данных и сетевые объекты. Для организации унифицированного управления всеми объектами и списками, ссылки на списки уровней помещаются либо в описатели открытых графических файлов, либо непосредственно в процедуры обработки и интерпретации данных.
Список слоев является базовым классом для объекта Мар (географическая карта), внутри которого определен точно такой же список слоев, - относящийся к описанию связанного с картой ее метатекстового описания.
// // Интерфейс управления // struct Map: LayerList // { // Блок графических MetaText DT; // и текстовых данных char *MapName; // Имя файла данных и текстового описания HIMG Small_Image; // Растровое изображение в маленьком окне Field _F, // Текущее поле на большом экране F; // Экстремальные размерности для картинки Map *Prev,*Next,*Source; static Map *FirstMap,*Current; static Num; // Количество рисунков в оперативной памяти Map( const char* ); // Конструктор открывает все связанные файлы ~Map(); // Field& operator=( const Field& f ){ return _F=F=f; } static Main(); // Установка исходного рисунка static Back(); // Возврат к предыдущему в списке static Map* Read( const char* ); // Считываение нового листа static Map* Find( TextObject&,const=1 );// Поиск или запрос нового листа void Display( const=1 ); // 1-большой, иначе маленький void Read_DC2( char* ); // Чтение из файла void Map_Show(); // TextObject* GetActive( long K ){ return (TextObject*)DT.GetActive( K );} };
Манипуляции со всеми объектами выполняются из программного объекта MapView, определенной непосредственно в файловом разделе, организующем интерфейс с управления программой.
static struct MapView:PanelWin { Map *MV; MapView( viewporttype &f, unsigned id, int fl=1, int pf=ptOuterLower, int bw=0, int w=0, int ic=LIGHTGRAY ) : PanelWin( f,id,1,fl,pf,bw,w,ic ),MV(0){} ~MapView(){} // virtual void Draw(); // 1 - сектор; 0 - весь лист (!+Dto+!) void SetView( const W=1 ){ _Tv_place( W?MV->_F:MV->F,Win ); } } *FullMap=0, // *PictMap=0; // Большая и маленькая картинки
Взаимодействие процедур управления данными
Унификация свойств графических объектов и проблемно-ориентированных элементов информационной системы позволяет применять универсальные процедуры представления данных на экране ЭВМ, перенося классификацию свойств объекта и выбор конкретных функций обработки данных на этап выполнения программы, что является характерным признаком методов функционального программирования.
В настоящее время разработка программы «Сахалин» находится в стадии освоения базовых функция обработки данных и поиска различных сценариев интерактивного управления программой при анализе исходных данных. Второй этап разработки должен быть связан внедрением большого количества конкретных алгоритмов для решения практических задач с использованием накопленных в информационной системе данных, в том числе обеспечивающих надежное управление данными при их пополнении или редактировании.
К сожалению, внедрение алгоритмов для управления данными о городских муниципальных сетях потребовало очередного пересмотра базовой концепции управления данными внутри программы «Сахалин». Поэтому более детальное изложение принятых в программе правил управления данными будет дано несколько позже.
Вопросы, решение которых вынесено на второй этап НИР
(пункты технического задания)
Основное содержание работы
3.1. Второй этап НИР начинается с теоретического изучения и практической реализации математических алгоритмов по созданию компьютерных моделей сетей энергоснабжения города Южно-Сахалинска, которые должны отрабатываться в процессе занесения и систематизации в новой информационной системе. По мере накопления новой топографической информации и данных о городских сетях энергоснабжения изучаются методы решения практических задач и реализуются конкретные информационные запросы.