способ кодирования информации о суперсложных системах по изображениям
Классы МПК: | G06T17/50 географические модели |
Автор(ы): | Алчинов Александр Иванович (RU), Кекелидзе Валерий Борисович (RU), Иванов Анатолий Витальевич (RU) |
Патентообладатель(и): | Институт проблем управления им. В.А. Трапезникова РАН (RU) |
Приоритеты: |
подача заявки:
2006-10-20 публикация патента:
27.01.2009 |
Изобретение относится к картографии и к способам и устройствам ввода информации в компьютер. Техническим результатом является повышение достоверности результатов выполнения работ по цифрованию изображений и снижение требований к квалификации операторов. Для этого в дополнительном навигационном окне интерфейса программы автоматизации кодирования выдают документ, определяющий совокупность правил кодирования элементов суперсложной системы, который обладает функциональностями, соответствующими типам элементов суперсложной системы и позволяющими автоматизировать все или часть операций по кодированию информации об элементах этих типов, и средствами броузерообразной навигации, позволяющими переходить от описания правил кодирования данного типа элементов суперсложной системы к описаниям правил кодирования другого типа элементов суперсложной системы, структурно связанных с элементами данного типа в силу общих стандартов систем данного типа. После этого выбирают место в указанном документе, описывающее правила кодирования объектов того типа, который имеет очередной элемент суперсложной системы, выполняют соответствующие действия по кодированию информации об этом элементе, затем кодируют информацию о всех или части связанных с ним элементах системы, используя для этого автоматический переход в указанном документе к правилам кодирования соседних элементов с помощью указанных средств броузерообразной навигации. 17 з.п. ф-лы, 8 ил.
Формула изобретения
1. Способ кодирования информации о суперсложных системах по изображениям, где под суперсложными системами понимаются системы, элементы которых классифицируются при помощи классификатора, представляющего собой сложную систему из сотен и тысяч элементов, упорядоченную в иерархическую структуру типа дерева, при котором в окне интерфейса программы автоматизации кодирования выдают изображение кодируемой суперсложной системы, последовательно просматривают все объекты, присутствующие на указанном изображении, для каждого объекта принимают решение, подлежит ли он кодированию с учетом действующих правил отбора объектов для кодирования, для каждого подлежащего кодированию объекта выбирают код классификатора, соответствующий этому объекту, создают модельный объект в базе данных с выбранным кодом и кодируют значения атрибутов объекта, выполняя эти действия до тех пор, пока не будет закодирована информация о всех элементах суперсложной системы, подлежащих кодированию, отличающийся тем, что в дополнительном окне интерфейса указанной программы или в дополнительной панели того же окна отображают документ на языке разметки документов, определяющий совокупность правил кодирования элементов суперсложной системы, последовательное выполнение которых оператором приводит к получению результата, состоящего во вводе в базу данных всей необходимой информации о данном объекте и связанных с ним объектах, который обладает гиперссылками броузерообразной навигации, позволяющими переходить от описания правил кодирования данного типа элементов суперсложной системы к описаниям правил кодирования других типов элементов суперсложной системы, структурно связанных с элементами данного типа в силу общих стандартов систем данного типа, отражающих тот факт, что элементы одного типа могут быть связаны с элементами другого типа, и кодирование информации об элементах одного типа приводит к необходимости кодировать информацию об элементах другого типа, выбирают место в указанном документе, описывающее правила кодирования объектов того типа, который имеет очередной элемент суперсложной системы, выполняют соответствующие действия по кодированию информации об этом элементе, затем кодируют информацию о всех или части связанных с ним элементах системы, используя для этого автоматический переход в указанном документе к правилам кодирования соседних элементов с помощью указанных гиперссылок броузерообразной навигации.
2. Способ по п.1, отличающийся тем, что изображение суперсложной системы является стереоизображением.
3. Способ по п.1, отличающийся тем, что изображение суперсложной системы является ортофотопланом.
4. Способ по п.1, отличающийся тем, что языком разметки документов является язык HTML.
5. Способ по п.1, отличающийся тем, что языком разметки документов является язык XML.
6. Способ по п.1, отличающийся тем, что языком разметки документов является язык XHTML.
7. Способ по п.1, отличающийся тем, что указанный документ обладает оглавлением, а для выбора указанного места в документе находят элемент оглавления, соответствующий типу кодируемого элемента суперсложной системы, и выполняют переход по ссылке, соответствующей указанному элементу алфавитного указателя.
8. Способ по п.1, отличающийся тем, что указанный документ обладает алфавитным указателем, а для выбора указанного места в документе находят элемент алфавитного указателя, соответствующий типу кодируемого элемента суперсложной системы, и выполняют переход по ссылке, соответствующей указанному элементу алфавитного указателя.
9. Способ по п.1, отличающийся тем, что указанный классификатор обладает совокупностью сокращенных алфавитных указателей, соответствующих элементам классификатора, а для выбора места в указанном документе, соответствующего типу обрабатываемого в данный момент объекта системы, в указанном дополнительном окне интерфейса выдают сокращенный алфавитный указатель, соответствующий типу обрабатываемого в данный момент объекта системы, находят соответствующий элемент указанного сокращенного алфавитного указателя и выполняют переход по ссылке, соответствующей указанному элементу сокращенного алфавитного указателя.
10. Способ по п.1, отличающийся тем, что указанный документ дополнительно содержит гиперссылки функциональности, соответствующие типам элементов суперсложной системы и позволяющие автоматизировать все или часть операций по кодированию информации об элементах этих типов, а при выполнении соответствующих действий по кодированию информации о текущем элементе суперсложной системы в соответствии с изображением указанного элемента выбирают одну из гиперссылок функциональности, выполняют переход по гиперссылке на функциональность, соответствующую указанной гиперссылке, автоматически выполняют действия указанной функциональности, после чего выполняют действия в соответствии с текстом указанного описания правил кодирования элементов данного типа.
11. Способ по п.7, отличающийся тем, что указанное оглавление является неиерархическим, а указанный элемент оглавления находят просмотром содержания всего оглавления.
12. Способ по п.7, отличающийся тем, что указанное оглавление является иерархическим, а указанный элемент оглавления находят путем последовательного нахождения элементов оглавления наиболее высокого ранга и перехода по соответствующим гиперссылкам на элементы оглавления более низкого ранга, пока на будет достигнут элемент оглавления, ссылающийся на соответствующий раздел документа.
13. Способ по п.10, отличающийся тем, что гиперссылки функциональности ссылаются на другие документы на языке разметки документов, определяющие, что такой-то тип объектов должен кодироваться объектом, имеющим такой-то код классификатора, а указанное выполнение действий указанной функциональности состоит в том, что при помощи указанного интерфейса выбирают код объекта в соответствии с текстом указанного другого документа, после чего в указанном дополнительном окне возвращаются к исходному документу, содержащему гиперссылку функциональности.
14. Способ по п.10, отличающийся тем, что гиперссылки функциональности ссылаются на другие документы на языке разметки документов, определяющие, что такой-то тип объектов должен кодироваться объектом, имеющим такой-то код классификатора, а указанное выполнение действий указанной функциональности состоит в том, что в программном приложении, обеспечивающем кодирование информации о суперсложной системе, автоматически выбирают код объекта в соответствии с текстом указанного другого документа, после чего в указанном окне системы помощи возвращаются к исходному документу, содержащему гиперссылку функциональности.
15. Способ по п.14, отличающийся тем, что дополнительно при кодировании атрибутов указанного элемента суперсложной системы используют средства автоматизации кодирования.
16. Способ по п.15, отличающийся тем, что указанные средства автоматизации обеспечивают корректировку геометрических свойств объекта, кодирующего указанный элемент суперсложной системы, с целью достижения выполнимости заданных геометрических свойств указанного объекта.
17. Способ по п.15, отличающийся тем, что указанные средства автоматизации обеспечивают автоматизацию кодирования негеометрических атрибутов указанного элемента суперсложной системы.
18. Способ по п.15, отличающийся тем, что указанные средства автоматизации обеспечивают автоматизацию кодирования атрибутов связей указанного элемента суперсложной системы с другими элементами суперсложной системы.
Описание изобретения к патенту
Изобретение относится к картографии и к способам и устройствам ввода информации в компьютер, точнее к способам и устройствам для кодирования информации о сложных системах, компоненты которых классифицируются по классам, совокупность которых сама является сложной системой.
При создании цифровых топографических карт наиболее трудоемким этапом является этап векторизации изображений местности, полученных при аэро- и космической съемке. В современных геоинформационных системах принят подход к организации информации, при которых векторные данные об объектах карты классифицируются по слоям, в каждый из которых могут входить определенные типы топографических объектов. Примерами таких слоев являются «Дороги», куда входят различные типы дорог (автомагистрали, шоссе, проселочные дороги и т.п.), «Растительность», куда входят различные типы растительности (леса, парки, полосы деревьев, отдельные деревья, травяная растительность и т.п.) и т.д. Слои картографической информации более или менее однозначно соответствуют совокупностям условных знаков, применяемым для отображения данного слоя на топографической карте или плане. Это соответствие не всегда является однозначным, поскольку иногда информация из нескольких слоев может передаваться едиными комбинированными знаками. Примером такого комбинированного знака является условный знак пункта государственной геодезической сети на кургане [Условные знаки для топографической карты масштаба 1:10000. М.: Недра, 1977, с.3, знак 2.1], который отображает информацию из слоя «Планово-высотная основа» (пункт государственной геодезической сети) и из слоя «Рельеф» (курган).
В каждом слое топографические объекты классифицируются по типам объектов. Например, в слое «Дороги» выделяются такие типы топографических объектов, как собственно дороги разных типов (автомагистрали, усовершенствованные шоссе, шоссе, дороги с покрытием, дороги без покрытия, дороги проселочные и т.п.) и связанные с дорогами вспомогательные объекты (разделительные полосы, кюветы, бордюры, насыпи, выемки, дорожные знаки, светофоры, остановки автобусов и т.п.). Типы топографических объектов более или менее однозначно соответствуют условным знакам, применяемым для отображения данного слоя на топографической карте или плане. Как и для слоев картографической информации, это соответствие не всегда является однозначным, поскольку иногда информация об объектах нескольких типов может передаваться единым комбинированным знаком. С другой стороны, передача информации об одном объекте может потребовать применения нескольких разных условных знаков. Например, на планах масштабов 1:500-1:5000 изображения рек и ручьев помимо изображения береговых линий должно сопровождаться знаком направления течения, в разрыве которого указывается скорость течения [Условные знаки для топографических планов масштабов 1:5000, 1:2000, 1:1000, 1:500. М., ФГУП «Картгеоцентр», 2004, с.53, знак 238].
Совокупность типов топографических объектов образует сложную систему из сотен и тысяч элементов, упорядоченную в иерархическую структуру типа дерева. Состав элементов таких систем зависит от масштаба карт и планов и определяется стандартами, такими как [Условные знаки для топографических планов масштабов 1:5000, 1:2000, 1:1000, 1:500. М., ФГУП «Картгеоцентр», 2004], [Условные знаки для топографической карты масштаба 1:10000. М.: Недра, 1977] и т.д. В современных геоинформационных системах совокупностям типов топографических объектов соответствуют так называемые классификаторы, представляющие собой программные средства интерактивного выбора кода классификатора, определяющего тип картографического объекта, и средства определения атрибутов кодов классификатора, таких как геометрический тип (площадной, линейный, точечный и т.п.), стиль рисовки и т.д., которые используются программными средствами работы с картами. Классификаторы представляют собой базы данных, содержащие информацию о сотнях и тысячах объектов, являющихся кодами типов картографических объектов.
Системы, элементы которых классифицируются при помощи классификатора, представляющего собой сложную систему, будем называть суперсложными системами. Наряду с геоинформационными системами известны и другие типы суперсложных систем, например сложные производственные комплексы, архитектурные системы и т.д.
При выполнении работ по векторизации результатов аэро- и космической съемки с целью получения планов и карт заданного масштаба выполняют оцифровку изображений по стереоизображениям или по ортофотопланам. При этом для каждого объекта, подлежащего изображению на карте или плане, необходимо задать его код в классификаторе и создать объект в базе данных, имеющий заданный код, после чего ввести метрику этого объекта путем рисовки соответствующих линий на изображении объекта.
Известен способ кодирования информации о суперсложных системах, применяемый при выполнении работ по векторизации результатов аэро- и космической съемки, состоящий в том, что в окне интерфейса программы автоматизации кодирования информации выдают изображение суперсложной системы, в определенной последовательности просматривают все объекты, присутствующие на указанном изображении, для каждого объекта принимают решение, подлежит ли он кодированию с учетом действующих правил отбора объектов для кодирования, для каждого подлежащего кодированию объекта выбирают код классификатора, соответствующий этому объекту, создают объект в базе данных с выбранным кодом и кодируют значения атрибутов объекта. Последовательность кодирования объектов: опорные (геодезические и астрономические) пункты, важнейшие ориентиры; гидрография и гидротехнические сооружения; рельеф; населенные пункты; промышленные, сельскохозяйственные и социально-культурные объекты; дорожная сеть и дорожные сооружения; растительный покров и грунты; границы и ограждения; обработка подписей; сводка. Этот порядок обработки элементов может быть изменен, если это не повредит работе [Воробьев Ю.Д, Лапина Е.Н, Пятницкая В.В. Технологии автоматизированного составления цифровых топографических карт // Геодезия и картография, 2004, №7, с.38-43] (прототип способа).
Аналогичный способ кодирования информации о морских картографических объектах предложен в [Афонин А.Б, Макаров Г.В, Томсон П.В. Опыт создания и использования морских карт // Геодезия и картография, 2004, №9, с.37-41].
Эти способы кодирования информации о суперсложных системах обладает рядом существенных недостатков, анализ которых приводится ниже.
Сложность задачи оцифровки изображений местности с целью создания планов и карт связана с тем, что правила выбора объектов местности, подлежащих изображению на планах и картах, зависят от масштаба, и число таких правил очень велико. На практике это приводит к тому, что даже опытные операторы допускают достаточно большое число ошибок, что приводит к необходимости контроля правильности получаемых карт и планов очень опытными картографами. Менее опытные операторы вынуждены постоянно сверяться с текстами картографических стандартов, что существенно снижает производительность труда операторов.
Наиболее распространенной и трудно контролируемой ошибкой, допускаемой операторами при оцифровке изображений, является пропуск объектов, которые должны быть обязательно показаны на плане или карте. В качестве примера можно привести необходимость внешнего оконтуривания болот в тех местах, где граница болота четко выражена в натуре. В этом случае оператор должен изобразить болото площадным объектом, а те участки границы болота, которые являются четко выраженными в натуре, выделить линейными объектами соответствующего кода, проходящими по линии границы площадного объекта, изображающего территорию болота. Если оператор забыл это правило (а таких правил сотни), то вместо изображения на плане или карте болота, у которого определенные участки границы являются явно выраженными, будет получено изображение болота, вся граница которого является нечетко выраженной. Такую ошибку оператора невозможно обнаружить, проверяя только карту или план без повторного просмотра всех исходных изображений местности.
Вторая проблема, возникающая при оцифровке изображений, является определение типов объектов, присутствующих на изображении. На фиг.1 приведен фрагмент листа ортофотоплана, на котором на переднем плане расположено строение жилого типа. При этом хорошо видны так называемые отмостки здания - асфальтовые или бетонные полосы, окаймляющие здание с тех сторон, где нет примыкания к нему тротуаров или других твердых покрытий земной поверхности. Согласно [Условные знаки для топографических планов масштабов 1:5000, 1:2000, 1:1000, 1:500. М., ФГУП «Картгеоцентр», 2004, с.132, правило 63], на планах масштабов 1:500 и 1:1000 показывают все отмостки, на планах масштаба 1:2000 - при ширине в натуре не менее 1,2 м или являющиеся в данном месте единственными пешеходными дорожками вдоль здания, на планах масштаба 1:5000 отмостки и тротуары от проезжей части улиц (площадей, дворов) не отделяют. Неопытный оператор, производящий оцифровку изображения, может не помнить термин «отмостки», и тогда у него возникнет проблема с нахождением кода этих объектов в классификаторе. В этом случае он вынужден будет просмотреть весь раздел «Части зданий» в классификаторе и идентифицировать «отмостки» в качестве интересующего его типа объектов. Однако в некоторых классификаторах «отмостки» могут находиться не в разделе «Части зданий», а в разделе «Дорожная сеть» или вообще отсутствовать (например, если классификатор был разработан для целей составления мелкомасштабных карт). В последнем случае специально добавляют в классификатор нужные дополнительные коды объектов.
Наконец, третья проблема, возникающая при оцифровке изображений, состоит в том, что правила оцифровки контуров объектов также зависят от масштаба. Например, оцифровка показанного на переднем плане фиг.1 строения зависит от масштаба создаваемого плана и определяется целым комплексом правил. Так, изображение внешнего контура здания на планах масштабов 1:500-1:5000 определяется тем, что строения, выражающиеся в масштабе, изображают по проекции цоколя с передачей его выступов, уступов и фигурных архитектурных деталей, имеющих величину не менее 0,5 мм в масштабе плана, причем крыльца, входы и террасы в зависимости от требований заказчика могут быть показаны как самостоятельные объекты, так и включены в общий контур здания в виде выступов [Условные знаки для топографических планов масштабов 1:5000, 1:2000, 1:1000, 1:500. М., ФГУП «Картгеоцентр», 2004, с.129, правила 46, 48]. В то же время въезды на второй этаж изображаются только на планах масштабов 1:500-1:2000, причем в виде самостоятельных объектов, а на планах масштабов 1:500 и 1:1000 должны сопровождаться отметками высот [там же, правило 78]. Как правило, за исключением очень опытных операторов, ни один оператор всех этих правил запомнить не в состоянии.
Из всего сказанного вытекает важность задачи разработки способа кодирования информации о суперсложных системах, который обеспечивал бы быстрый и удобный выбор кодов классификатора для объектов системы и оперативное напоминание оператору правил оцифровки объектов.
Решение поставленной задачи разработки способа кодирования информации о суперсложных системах, обеспечивающего быстрый и удобный выбор кодов классификатора для объектов системы и оперативное напоминание оператору правил оцифровки объектов, достигается за счет того, что в окне интерфейса программы автоматизации кодирования информации выдают изображение суперсложной системы, просматривают все объекты, присутствующие на указанном изображении, для каждого объекта принимают решение, подлежит ли он кодированию с учетом действующих правил отбора объектов для кодирования, для каждого подлежащего кодированию объекта выбирают код классификатора, соответствующий этому объекту, создают объект в базе данных с выбранным кодом и кодируют значения атрибутов объекта. При этом в дополнительном навигационном окне интерфейса указанной программы выдают документ, определяющий совокупность правил кодирования элементов суперсложной системы, который обладает функциональностями, соответствующими типам элементов суперсложной системы и позволяющими автоматизировать все или часть операций по кодированию информации об элементах этих типов, и средствами броузерообразной навигации, позволяющими переходить от описания правил кодирования данного типа элементов суперсложной системы к описаниям правил кодирования другого типа элементов суперсложной системы, структурно связанных с элементами данного типа в силу общих стандартов систем данного типа. После этого выбирают место в указанном документе, описывающее правила кодирования объектов того типа, который имеет очередной элемент суперсложной системы, выполняют соответствующие действия по кодированию информации об этом элементе, затем кодируют информацию о всех или части связанных с ним элементах системы, используя для этого автоматический переход в указанном документе к правилам кодирования соседних элементов с помощью указанных средств броузерообразной навигации. Эти действия выполняют до тех пор, пока не будет закодирована информация о всех элементах суперсложной системы, подлежащих кодированию.
За счет автоматизации выбора фрагмента текста, показываемого в окне интерфейса пользователя и используемого оператором как инструкция по выполнению действий, связанных с кодированием информации о тех элементах суперсложной системы, которые в данный момент обрабатываются оператором, достигается несколько технических результатов. Первый технический результат состоит в уменьшении трудоемкости процесса кодирования информации о суперсложной системе. Второй технический результат состоит в снижении требований к квалификации операторов. Третий технический результат состоит в повышении достоверности результатов кодирования информации о суперсложной системе.
Изобретение поясняется графическими материалами, где:
Фиг.1. Фрагмент фотоплана, используемого для цифрования объектов топографического плана.
Фиг.2. Две панели окна интерфейса пользователя с системой help и с фотопланом.
Фиг.3. Фрагмент текста с инструкцией по кодированию объектов местности.
Фиг.4. Продолжение фрагмента текста с инструкцией по кодированию объектов местности.
Фиг.5. Окончание фрагмента текста с инструкцией по кодированию объектов местности.
Фиг.6. Пример двух типов гиперссылок.
Фиг.7. Пример документа, описывающего выбор кода для объекта, и его заголовка.
Фиг.8. Расположение фреймов в окне.
Осуществление изобретения
1. Реализуемость способа кодирования информации о суперсложных системах
Выполнение способа кодирования информации о суперсложной системе покажем на примере географической системы, состоящей из рельефа земной поверхности и расположенных на ней объектов, подлежащих изображению на топографических планах. В рассматриваемом примере будем предполагать, что требуется построить топографический план масштаба 1:500. Это самый крупный масштаб топографических планов, и на нем отображается больше всего топографических объектов. Соответственно, сложность задачи кодирования информации является наибольшей именно для этого масштаба. Описание программных средств, используемых для автоматизации выполнения предлагаемого способа кодирования информации, приводится ниже в п.3. Здесь же мы опишем выполнение кодирования информации о топографических объектах в части действий, выполняемых оператором.
При выполнении работ, состоящих в оцифровке изображений местности, можно использовать как стереопары, так и ортофотоплан. При этом основные действия, выполняемые оператором при кодировании топографической информации, в обоих случаях одинаковы. Мы будем описывать выполнение предлагаемого способа на примере ортофотоплана, поскольку в этом случае гораздо проще делать поясняющие иллюстрации.
На фиг.2 показаны две панели окна интерфейса пользователя, одна из которых является рабочей панелью окна интерфейса программы кодирования информации, в которой показано изображение части фотоплана, а вторая - дополнительной панелью с системой помощи (help). Различие между окнами и панелями для общего описания способа кодирования информации не является существенным, и эти два понятия могут рассматриваться как синонимы.
Оператор, выполняющий кодирование информации о топографических объектах, прежде всего, находит в системе помощи нужный ему тип объектов. Например, чтобы оцифровать изображенный на переднем плане фотоплана дом, оператор выбирает в окне системы помощи ссылку «Строения, здания и их части», и при нажатии на нее в окне системы помощи появляется оглавление типов топографических объектов, являющихся строениями и их частями. Выбор в этом оглавлении ссылки «Строения жилые, нежилые и общественного назначения (функционирующие)» приводит к появлению в окне системы помощи текста, представленного на фиг.3-5. Он представляет собой инструкцию по кодированию зданий.
Любая инструкция по кодированию объектов определенного типа представляет собой гипертекст, последовательное выполнение предписаний которого оператором приводит к получению результата, состоящего во вводе в базу данных всей необходимой информации о данном объекте и связанных с ним объектах. В рассматриваемом нами примере оператор прежде всего определяет тип строения. Как следует из фиг.3, при оцифровке зданий на топографических планах масштаба 1:500 различают восемь типов зданий, представленных в тексте инструкции. Определив тип здания, оператор нажимает мышью на соответствующую гиперссылку. Гиперссылки выделяются в тексте инструкции подчеркиваниями.
Гиперссылки могут быть двух типов. Первый тип гиперссылок содержит в своем тексте слово «объект» и означает ссылку на объект. Отработка такой ссылки состоит в выборе кода в классификаторе и выполнении кодирования объекта с созданием в базе данных объекта соответствующего кода. Гиперссылки этого типа соответствуют функциональности, состоящей в выполнении кодирования информации об объекте данного типа. Гиперссылки функциональности могут отсутствовать, в этом случае выполнение описываемого способа сводится к автоматизации снабжения оператора инструкциями по кодированию объектов суперсложной системы. Наличие гиперссылок функциональности позволяет автоматизировать выполнение тех или иных операций кодирования информации. Способы использования гиперссылок функциональности излагаются ниже в п.2.
Второй тип гиперссылок не содержит в своем тексте слова «объект» и означает ссылку на класс объектов. Например, на фиг.6 гиперссылка «опор» является ссылкой на текст инструкции по кодированию опор разных классов. Выбор такой гиперссылки приводит к тому, что вместо выбора кода классификатора происходит браузерообразная навигация, и в окне системы помощи вместо исходного текста появляется текст инструкции по кодированию опор. Выполнив действия по кодированию информации об одной или нескольких опорах, в любой момент оператор может вернуться обратно, используя соответствующую команду возврата к предыдущему контексту, входящую в меню браузера. Гиперссылки этого типа соответствуют логическим связям между типами элементов систем данного типа в силу общих стандартов систем данного типа. Так, в рассматриваемом примере не фиг.6 гиперссылка «опор» отражает тот факт, что вышки легкого типа обладают опорами, и кодирование информации о вышке легкого типа приводит к необходимости кодировать информацию о ее опорах.
Приведенный на фиг.4 и фиг.5 текст определяет то, какие компоненты строений должны быть оцифрованы при создании плана данного масштаба. Именно, должны быть выделены все части строения, имеющие разные типы несгораемости и пригодности для жилья, части строения, выдающиеся за общую линию строения не менее чем на 0,25 м, брандмауэры, колонны, башни, отмостки, крыльца и пожарные лестницы. Если такие части строений присутствуют в натуре, то путем нажатия на соответствующую гиперссылку за одно нажатие можно установить соответствующий код классификатора (см. п.2), после чего произвести кодирование необходимой информации.
Гипертекст, на котором создают инструкцию по кодированию объектов суперсложной системы, является текстом на одном из языков, входящих в семейство языков, известных под названием языков разметки документов (Markup Languages - ML) и возникших из метаязыка SGML (Standard Generalized Markup Language). В это семейство языков входят, в частности, такие языки, как HTML (Hyper Text Markup Language), XML (Extensible Markup Language) и XHTML (Extensible Hypertext Markup Language) [Хольцшлаг M. 250 секретов HTML и Web-дизайна. M., HT Пресс, 2006, с.193-194] и др.
Поиск раздела документа, содержащего правила кодирования информации об объектах того типа, который имеет текущий объект, обрабатываемый оператором в данный момент, может осуществляться тремя способами, описываемыми ниже. Первый и второй способы поиска раздела документа применяют в случае, когда обрабатываемый объект не связан ни с одним объектом, информация о котором уже закодирована, например в случае, когда еще только начинается кодирование информации о суперсложной системе. Третий способ поиска раздела документа применяют в случае, когда обрабатываемый объект уже частично закодирован или связан с каким-либо другим объектом, информация о котором уже закодирована.
В первом способе поиска раздела документа предполагается, что документ обладает оглавлением, элементы которого имеют гиперссылки на соответствующие разделы документа. Здесь возможны два варианта. Первый вариант оглавления стоит в том, что оглавление является неиерархическим и включает в себя только наименования типов объектов суперсложной системы, которым соответствуют разделы документа. Второй вариант состоит в том, что оглавление является иерархическим оглавлением, разделы и подразделы которого соответствуют иерархии классификации типов объектов суперсложной системы и связаны соответствующими гиперссылками. Первый вариант целесообразно использовать, если число типов элементов суперсложной системы относительно невелико. Второй вариант целесообразно использовать для случая очень большого числа разделов документа, когда оглавление занимает больше нескольких экранов дисплея. В случае наличия оглавления для поиска нужного раздела документа сначала находят элемент оглавления, соответствующий типу текущего объекта системы. При этом в случае неиерархического оглавления требуемый элемент оглавления находят просмотром содержания всего оглавления. В случае иерархического оглавления требуемый элемент оглавления находят путем последовательного нахождения элементов оглавления наиболее высокого ранга и перехода по соответствующим гиперссылкам на элементы оглавления более низкого ранга, пока не будет достигнут элемент оглавления, ссылающийся на соответствующий раздел документа. После того как найден требуемый элемент оглавления, выполняют переход по гиперссылке из данного элемента оглавления на соответствующий раздел документа.
Второй способ поиска раздела документа состоит в том, что документ обладает алфавитным указателем, элементы которого имеют гиперссылки на соответствующие разделы документа. Для выполнения поиска раздела документа в алфавитном указателе находят элемент оглавления, описывающий нужный раздел документа, и выполняют переход по гиперссылке из данного элемента алфавитного указателя на соответствующий раздел документа.
Третий способ поиска нужного раздела документа состоит в том, что классификатор обладает совокупностью сокращенных алфавитных указателей, соответствующих элементам классификатора, а обрабатываемый объект связан с каким-либо объектом, информация о котором уже закодирована. Смысл первого условия состоит в следующем. В общем случае соответствие между типами объектов суперсложной системы, которым соответствуют разделы инструкции по кодированию, и типами объектов, создаваемых в базе данных при кодировании информации о суперсложной системе, не является взаимно-однозначным. Например, рассмотрим случай автомобильных дорог различного класса. На планах масштаба 1:500 при кодировании автодорог отдельными объектами показывают их обочины. Если информация об обочине уже закодирована, скажем, во время предыдущего сеанса работы, то естественно перейти к кодированию остальных частей дороги. В этом случае в базе данных выбирают обочину и в окне системы помощи выдают сокращенный алфавитный указатель тех типов объектов, которым соответствуют правила кодирования объектов и частями которых может быть обочина. Таких типов объектов оказывается более одного: автомагистрали, обычные шоссе, улучшенные грунтовые дороги, усовершенствованные шоссе. Далее в соответствии с изображением дороги из указанного сокращенного алфавитного указателя, содержащего четыре элемента, выбирают тот элемент, который соответствует типу дороги, представленной на изображении, и выполняют переход по гиперссылке к разделу текста, описывающего правила кодирования соответствующей автодороги.
2. Использование гиперссылок функциональности
2.1. Общие положения
Гиперссылки функциональности содержат в своем тексте слово «объект» и означают ссылку на объект, информацию о котором необходимо ввести. Отработка такой ссылки состоит в выборе кода в классификаторе и выполнение кодирования объекта с созданием в базе данных объекта соответствующего кода. Гиперссылки этого типа соответствуют функциональности, состоящей в выполнении кодирования информации об объекте данного типа.
Возможно несколько вариантов реализации гиперссылок функциональности, причем эти варианты отличаются степенью автоматизации операций кодирования информации и, соответственно, затратами на разработку соответствующих средств автоматизации. Эти варианты описываются ниже в п.п.2.2-2.4.
2.2. Простейший вариант реализации гиперссылок функциональности
Простейший вариант реализации гиперссылок функциональности состоит в том, чтобы каждой гиперссылке функциональности сопоставить текст с указанием оператору выбрать соответствующий код классификатора. В этом случае каждая гиперссылка функциональности, присутствующая в тексте описания правил кодирования элементов системы данного типа, ссылается на документ на языке разметки документов, который определяет то, что такой-то тип объектов должен кодироваться объектом, имеющим такой-то код классификатора. Пример такого документа показан на фиг.7. В этом случае при выполнении действий, связанных с переходом по гиперссылке функциональности, выполняют переход по гиперссылке на документ, определяющий код классификатора, далее при помощи интерфейса программного приложения, обеспечивающего кодирование информации о суперсложной системе, выбирают код объекта в соответствии с указаниями указанного документа, затем нажимают на кнопку «Назад» в окне системы помощи (изображенном на фиг.7 как окно Microsoft Internet Explorer) и тем самым возвращаются к исходному документу с гиперссылкой функциональности, после чего выполняют действия в соответствии с текстом указанного описания правил кодирования элементов данного типа.
2.3. Использование гиперссылок функциональности для автоматизации выбора кода классификатора
Второй вариант реализации гиперссылок функциональности состоит в том, что выбор кода классификатора производится автоматически. Реализация этого варианта предполагает обработку программой кодирования информации сообщения от окна системы помощи о переходе по гиперссылке на соответствующий раздел документа, определяющий код объекта. Для этого используют возможности браузеров по организации обмена информации с внешними приложениями. Проще всего поместить запись о значении требуемого кода классификатора в заголовок документа, описывающего правила кодирования объектов данного кода. Пример такого документа вместе с его заголовком «Код 2.3.2.2.1» приведен на фиг.7. При реализации гиперссылки, по которой происходит переход на такой документ, браузер посылает прикладной программе сообщение о том, что произошел переход по гиперссылке (см. п.3). Прикладная программа, получив сообщение о переходе по гиперссылке, вызывает API-функцию получения заголовка документа, просматриваемого в данный момент браузером, получает текст заголовка документа и тем самым получает значение кода классификатора, который соответствует типу обрабатываемого в данный момент элемента суперсложной системы. Далее программа устанавливает для кодируемого объекта суперсложной системы этот код классификатора и производит ввод информации об этом объекте в базу данных. Установленный код классификатора остается неизменным до тех пор, пока указанная программа не получит от браузера нового сообщения о переходе по гиперссылке на другой документ, заголовок которого содержит другой код классификатора. Установив код классификатора для текущего элемента суперсложной системы, прикладная программа кодирования вызывает API-функцию возврата назад по текущей гиперссылке, и тем самым в окне помощи пользователь снова будет видеть предыдущий документ, с которого он произвел переход по гиперссылке функциональности, т.е. с точки зрения пользователя произошло единственное действие: установился нужный код классификатора, после чего пользователь имеет возможность продолжать читать инструкцию по кодированию и создавать объекты в базе данных с нужным автоматически установленным кодом.
Для предотвращения мелькания в окне документа, вызванного кратковременным переходом по ссылке и обратным переходом, используют следующий прием. Создают HTML-документ, описывающий два фрейма, из которых первый используют для показа основного документа, а второй используют для показа документов, определяющих используемые коды классификатора, как показано на фиг.8. Эти фреймы снабжают именами, например upper (верхний) и lower (нижний). Основной документ выводят во фрейм upper, а каждую гиперссылку функциональности сопровождают атрибутом TARGET="lower". Гиперссылки, не являющиеся гиперссылками функциональности, записывают без этого атрибута. В этом случае функционирование системы помощи будет происходить следующим образом. Если оператор активизирует ссылку функциональности в документе внутри фрейма upper, то произойдет загрузка документа, на который указывает эта ссылка, во фрейм lower, указанный в качестве значения атрибута TARGET, а исходный документ внутри фрейма upper останется неизменным [Макфедрис П. Создание Web-страниц. М. ACT: Астрель, 2005, с.186]. Напротив, при активизации оператором ссылки, не являющейся гиперссылкой функциональности, в верхнем фрейме произойдет смена документа.
Возможно два варианта реализации показа такого вспомогательного фрейма lower, причем каждый из них оправдан в определенной ситуации, зависящей от степени квалификации оператора. Первый вариант показа вспомогательного фрейма lower состоит в том, что под него отводят достаточно много места - три-четыре строки текста, и тогда оператор каждый раз будет видеть полный текст, определяющий выбор кода классификатора для объектов данного типа. Это наиболее приемлемый вариант для операторов низкой квалификации и для целей обучения. Второй вариант показа вспомогательного фрейма lower состоит в том, что под него отводят очень мало места - один пиксель по высоте. В этом случае оператор не будет видеть никакого текста, определяющего выбор кода классификатора для объектов данного типа. Это наиболее приемлемый вариант для операторов высокой квалификации.
Наконец, возможно возникновение нештатной ситуации, когда прикладная программа кодирования не сможет выполнить установку требуемого кода классификатора по причине его отсутствия из-за неполноты классификатора. В этом случае программа кодирования может принудительно выполнить переход по гиперссылке в окне upper, проигнорировав значения атрибута TARGET. Возможность этого излагается ниже в п.3. В этом случае оператор увидит в основном фрейме сообщение о том коде классификатора, который должен быть выбран, убедится в его отсутствии в классификаторе и добавит требуемый код в классификатор, после чего можно будет продолжить работу по кодированию информации.
2.4. Использование гиперссылок функциональности для автоматизации выбора кода классификатора и кодирования значений атрибутов элементов системы
Третий вариант реализации гиперссылок функциональности состоит в том, что автоматически производится выбор кода классификатора и осуществляется автоматизация определенных действий, связанных с кодированием атрибутов элементов суперсложной системы. Реализация этого варианта также предполагает обработку программой кодирования информации сообщения от окна системы помощи о переходе по гиперссылке на соответствующий раздел документа, определяющий код объекта. Это осуществляют так же, как и во втором варианте реализации гиперссылок функциональности, описанном выше в п.2.3. Далее в зависимости от типа элемента суперсложной системы используют те или иные средства автоматизации кодирования атрибутов элемента. Варианты выбора средств автоматизации могут быть самыми разнообразными и определяются затратами на разработку соответствующих средств автоматизации.
Среди кодируемых атрибутов элементов суперсложной системы можно выделить три важнейшие группы атрибутов.
Первой группой атрибутов являются геометрические свойства объекта, кодирующего данный элемент суперсложной системы. Например, в картографической системе каждый географический объект представляется ломаной линией (линейные объекты), многоугольной областью с возможными дырами (площадные объекты) или точкой (точечные объекты). При этом в зависимости от типа объекта и масштаба карты или плана указанный кодирующий объект должен удовлетворять определенным требованиям на его геометрические свойства. Например, все строения на планах масштабов 1:500-1:2000 и крупные строения на планах масштаба 1:5000 изображаются по их внешним очертаниям с передачей выступов и углублений, имеющих ширину не менее 0,5 мм в масштабе плана [Условные знаки для топографических планов масштабов 1:5000, 1:2000, 1:1000, 1:500. М., ФГУП «Картгеоцентр», 2004, с.129, правило 46]. На планах масштаба 1:5000 для мелких строений предусмотрено два знака: квадрат со стороной 1,0 мм и прямоугольник размером 1,0×1,5 мм [там же, с.7, знаки 13-18]. Учет этих правил и подобных правил для других типов объектов предполагает, что программа, реализующая гиперссылку функциональности для данного типа объектов суперсложной системы, производит анализ контура, введенного оператором, и выполняет его аппроксимацию другим контуром, который удовлетворяет требуемым геометрическим соотношениям.
Второй группой атрибутов являются негеометрические атрибуты объекта, кодирующего данный элемент суперсложной системы. Например, в картографической системе это могут быть номера домов, этажность зданий, названия улиц и т.п. Как правило, в системах автоматизации кодирования картографической информации в этом случае программные средства выдают оператору окно с так называемым бланком, в котором оператор заполняет определенные поля, задающие значения атрибутов кодируемого объекта. Список атрибутов объектов данного типа соответствует полям бланка. Вместе с тем необходимость задания значений тех или иных атрибутов зависит от геометрических свойств кодируемого объекта, его расположения относительно других объектов и от масштаба плана или карты. Например, если на планах этажность зданий указывается для всех зданий, имеющих более одного этажа, то на картах масштаба 1:10000 этажность зданий в городах и рабочих поселках указывается начиная с 9 этажей и выше, а в населенных пунктах сельского и дачного типа - начиная с 3 этажей. Учет этих правил и подобных правил для других типов объектов предполагает, что программный модуль, реализующий гиперссылку функциональности для данного типа объектов суперсложной системы, выдает оператору изображение бланка, в котором поля, соответствующие определенным атрибутам (значения которых не нужны), превращаются в компоненты отображения текста [Архангельский А.Я. Компоненты общего назначения библиотеки C++ Builder 5. М, ЗАО «Издательство БИНОМ», 2001, с.73]. Визуально эти компоненты отображения текста выглядят на изображении бланка таким образом, что оператор сразу видит, что вводить значение соответствующего атрибута не нужно. Тем самым уменьшается возможность оператору сделать ошибку, состоящую в задании лишних атрибутов.
Как правило, негеометрические атрибуты отображаются на карте в виде надписей, выполняемых определенными шрифтами и имеющими определенную ориентацию. При этом для каждого типа объектов в зависимости от масштаба плана или карты имеются правила изображения надписей. Эти правила включают в себя выбор типа и размера шрифта, использование сокращений слов, взаимное размещение нескольких различных атрибутов, положение надписи относительно надписываемого объекта, ориентацию надписи относительно южной рамки плана или карты. При этом в зависимости от наличия свободного места и от размеров надписей допустимо несколько вариантов размещения надписей. Программа автоматизации кодирования определяет наиболее приемлемый вариант и выдает оператору на экране изображения надписи. Пользуясь текстом, определяющим правила кодирования данного типа объектов, оператор имеет возможность оставить предложенный вариант надписи или заменить его другим.
Третьей группой атрибутов являются атрибуты связей объекта, кодирующего данный элемент суперсложной системы, с другими объектами. Такие атрибуты связей с другими объектами могут определять отношение дочерности объектов, которое играет важную роль при операциях преобразования карт в геоинформационных системах. Например, дороги сопровождаются дорожными знаками, которые являются дочерними объектами для дороги. Дочерность означает то, что сами по себе дорожные знаки без дороги не имеют смысла. Если производится разрезание плана или карты на листы, и на некоторый лист сама дорога не попадает, но на этот лист попадает стоящий рядом с дорогой дорожный знак, то он не должен изображаться на листе плана, если туда не попадает дорога. Другими словами, удаление родительского объекта автоматически влечет удаление всех его дочерних объектов. Для обеспечения правильного создания атрибутов дочерности при кодировании информации о суперсложной системе в число правил кодирования объектов данного типа включают совокупность правил, описывающих все его дочерние объекты. При этом программа кодирования данного типа элементов суперсложной системы может осуществлять контроль правильности задания отношения дочерности, выдавая оператору соответствующие предупреждения о возможных неправильных действиях оператора.
3. Программная реализация интерфейса пользователя для автоматизации кодирования информации
В данном разделе излагаются некоторые аспекты программной реализации интерфейса пользователя для автоматизации кодирования информации, связанные с использованием программного интерфейса HTML Help API [http://msdn.microsoft.com/downloads/Visual Studio 2005].
Разработку программных средств автоматизации изложенного выше способа можно произвести на базе любого из довольно многочисленных существующих HTML-браузеров. С точки зрения дизайна наиболее предпочтительным является использование технологии разработки help фирмы Microsoft, которая включает в себя программный интерфейс HTML Help API и средства разработки HTML Help Workshop.
Средства HTML Help API позволяют организовать интерфейс между браузером топиков help, написанных на языке HTML, и программным приложением кодирования информации о суперсложной системе. Существенно то, что средства HTML Help API позволяют программному приложению изменять естественный задаваемый действиями оператора порядок просмотра топиков, что необходимо для реализации некоторых из способов, описанных выше в п.2.3.
Для обеспечения передачи уведомляющих сообщений от HTML Help к приложению создают окно со следующими установками полей структуры HH_WINTYPE:
- значение hwndCaller должно быть ненулевым и указывать на handle главного окна приложения;
- значение idNotify должно быть ненулевым и должно равняться идентификатору типа уведомляющих сообщений;
- в поле fsValidProperties должно быть задано значение для HHWIN_PARAM_PROPERTIES;
- в поле fsWinProperties должно быть задано значение для HHWIN_PROP_TRACKING.
Главный модуль приложения, осуществляющего кодирование информации о суперсложной системе, представляет собой обработчик сообщений HTML Help API, которые передаются посредством сообщений Windows WM_NOTIFY.
Для определения того, на какой топик произошел переход по гиперссылке, производится обработка уведомляющего сообщения HHN_NAVCOMPLETE. Его поле Lparam является указателем на структуру HHN_NOTIFY. Поле pszUrl этой структуры представляет собой Url топика, на который произошла навигация.
Кроме того, производится обработка уведомляющих сообщений HHN_TRACK. Поле Lparam такого сообщения является указателем на структуру HHNTRACK. Поле idAction этой структуры задает навигационное действие пользователя. В частности, значение idAction=ННАСТ_ВАСК означает, что пользователь задал возврат на предыдущий топик по текущей гиперссылке.
Используя обработку этих двух уведомляющих сообщений, главный модуль приложения может поддерживать цепочку переходов по гиперссылкам. В частности, отсюда очевидно, как реализовать автоматический выход из просмотра гиперссылки функциональности (см. п.2.3): достаточно взять предпоследний Url в поддерживаемой цепочке и выполнить команду HH_DISPLAY_TOPIC, задав в качестве dwData указатель на этот предпоследний Url.
Реализацию указанного в п.1 третьего способа поиска нужного раздела документа осуществляют следующим образом.
В список ключевых слов каждого документа, описывающего правила кодирования определенного типа объектов суперсложных систем, вносят названия всех элементов классификатора, на который в тексте документа имеется гиперссылка функциональности. Эти ключевые слова используют следующим образом.
Каждому элементу классификатора соответствует название кода, которое является атрибутом кода классификатора и которое входит в текст гиперссылки функциональности, соответствующей данному элементу классификатора. Для данного обрабатываемого объекта в базе данных определяют код объекта по классификатору, затем по этому коду определяют текст названия кода классификатора. После этого применяют поиск этого текста по всем разделам системы топиков help. Это осуществляют при помощи команды HH_KEYWORD_LOOKUP, в результате чего пользователю выдается список разделов, в которых присутствуют гиперссылки функциональности на данный тип объектов. Из этого списка пользователь выбирает нужный ему тип объектов, как было описано в п.1.
Класс G06T17/50 географические модели