6. Некоторые особенности обработки геоданных

В этом разделе справочной системы, ориентированном преимущественно на опытных администраторов геопортала, предполагается публикация оперативных сведений о различных "новых возможностях" представления данных на геопортале –

Создание слоев – картодиаграмм (круговые диаграммы, гистограммы)

Текущая версия программы ГеоЭкспресс не поддерживает создание и редактирование слоев – картодиаграмм; вам придется воспользоваться подсистемой веб-администратора 'Управление данными'. В разделе 'Параметры слоя/карты' нужно отредактировать содержание поля 'Описание слоя (XML)'.

Пример "правильного форматирования" XML-описания ресурса приведен ниже; сам ресурс доступен по ссылке.

<?xml version="1.0" encoding="UTF-8"?>
<Chart type="bar" name="Cancer1" sourceguid="ab31563b-9e48-958a-2b9d-73efda876fdc" width="55" height="90" tilelayer="34de528f-be28-989d-f3cc-621439b15b46" version="1.0">
	<Class> <Name>мужчины, 1977 г.</Name>
		<Attribute>tr_br_le7</Attribute>
		<Style><Color>160 192 255</Color><Outlinecolor>255 255 255</Outlinecolor><Width>1</Width></Style>
	</Class>
	<Class> <Name>женщины, 1977 г.</Name>
		<Attribute>tr_br_le1</Attribute>
		<Style><Color>255 160 208</Color><Outlinecolor>255 255 255</Outlinecolor> <Width>1</Width></Style>
	</Class>
	<Class> <Name>мужчины, 1997 г.</Name>
		<Attribute>tr_br_le9</Attribute>
		<Style><Color>0 0 255</Color><Outlinecolor>255 255 255</Outlinecolor><Width>1</Width></Style>
	</Class>
	<Class> <Name>женщины, 1997 г.</Name>
		<Attribute>tr_br_le2</Attribute>
		<Style><Color>255 0 128</Color><Outlinecolor>255 255 255</Outlinecolor><Width>1</Width></Style>
	</Class>
</Chart>

Комментарии по оформлению слоя в XML-описании –

  • Тег <Chart> используется вместо тега <Layer>.
  • Атрибуты width и height тега <Chart> определяют размеры картодиаграммы в пикселях.
  • Тег <Name> определяет имя класса в легенде карты.
  • Тег <Attribute> содержит наименование поля таблицы, из которого берутся данные для формирования "столбца гистограммы".
  • Атрибуты type тега <Chart> определяет тип картодиаграммы. Предусмотрено три варианта:
    • type="pie" – круговая диаграмма,
    • type="bar" – гистограмма (столбчатая диаграмма),
    • type="vbar" – составной столбчатый график (стопочная диаграмма).

Отображение переключателя (checkbox) слоя в легенде карты

Текущая версия программы ГеоЭкспресс не поддерживает возможность отображения переключателя (checkbox) слоя в легенде карты. Акцентируем внимание на том, что все нижесказанное про переключатель (checkbox) относится только к типу данных "карта" – для геоданных типа "слой" на геопортале checkbox вообще не предусмотрен.

Возможность включать/выключать слой в легенде в настоящее время обеспечивается следующим образом. В разделе 'Параметры слоя/карты' подсистемы веб-администратора 'Управление данными' в поле 'Параметры представления' нужно вставить следующий текст –

[{"application": "checkbox", "options": {}}]


Пример карты с возможностью включения/отключения отдельных слоев см. по следующей ссылке.

Протокол WFS: как обойти ошибки программы QGIS

Текущая версия программы QGIS 2.2 содержит документированную ошибку, связанную с реализацией протокола WFS. Если кратко – проблема в использовании кодировок символов, в том числе русской кодировки Windows-1251 – QGIS не умеет правильно обрабатывать такие данные.

Простой рецепт решения проблемы – в тех слоях геопортала, которые предполагается "раздавать" с геопортала по протоколу WFS, следует использовать кодировку символов UTF-8. Для этого в диалоге сохранения файла QGIS нужно явным образом указать эту самую кодировку UTF-8 –

Заметим, что другие известные ГИС такой проблемы с кодировкой не имеют (проверяли ArcGIS, MapInfo). Для "универсальности" рекомендуется использовать UTF-8...

Слой пространственных данных "мозаика растровых изображений"

На геопортале предусмотрена возможность работы с растровыми слоями очень больших размеров – размерами в десятки и даже сотни тысяч пикселей по ширине/высоте. Примером такого слоя является мозаика спутниковых снимков высокого разрешения на большую территорию.

"Растровый слой большого размера" предполагает использование специальных средств подготовки и визуализации данных – без них процесс формирования изображения сервером геопортала для клиента-браузера может стать бесконечно долгим...

Два основных правила для пространственных данных типа "мозаика растровых изображений" –

  • Необходимо "большой растр" преобразовать в набор "небольших" изображений (тайлов); каждый тайл при этом будет составной частью "мозаики растровых изображений". Список всех файлов-тайлов нужно сохранить в виде Shape-файла, содержащего полигоны, построенные по границам тайлов, с наименованиями файлов в атрибутике. Это так называемый слой типа 'TILEINDEX', который работает аналогично векторному слою. Высокая производительность при работе с таким слоем обеспечивается за счет того, что картографический "движок", используя указанный индексный слой, выбирает только те тайлы, части которых попадают на экран при текущем масштабе и местоположении.
    Слой TILEINDEX для существующего набора тайлов можно автоматически сформировать с помощью утилиты gdalindex – см. подробности в соответствующем разделе документации по Mapserver.
  • Отмеченная выше необходимость "нарезки" "большого растра" в тайлы решает проблемы визуализации крупномасштабных фрагментов "большого растра", но при этом не имеет смысла на обзорных масштабах, когда нужно показать на экране весь растр или его значительную часть. Растр может составлять гигабайты, а время генерации изображения сервером – десятки секунд и минуты...
    Пример: Для снимка Landsat8 прошедшего процедуру pan-sharpening (цветное изображение, синтезированное по каналам 7-5-3, 15-метрового разрешения, размером 16100x16280 пикселей, TIF-файл 756 Мб), "нарезанного" на 16 тайлов (5000х5000 пикселей) время формирования "полного" изображения превышает 30 секунд... На указанном снимке – изменение границ р. Ангара после ее перекрытия плотиной Богучанской ГЭС...
    В настоящее время единственной рекомендацией для решения отмеченной проблемы является ограничение видимости "большого" растрового слоя диапазоном масштабов на карте.
    Отметим также, что в перспективе на геопортале предполагается внедрение новых схем кэширования, которые позволят значительно ускорить работу с подобными данными...

Векторный режим отображения слоя

С недавнего времени картографический веб-интерфейс геопортала предусматривает два режима отображения слоя – растровый и векторный:

  • Растровый – режим отображения по умолчанию. Для получения информации по объектам на карте нужно щелчком мыши сформировать запрос к серверу, затем дождаться от него ответа.
  • Векторный – в этом режиме отображения загруженные в браузер данные слоя могут масштабироваться и отображать информацию по объектам слоя без запросов к серверу (эффект особенно заметен на медленных Интернет-соединениях). "Всплывающее" информационное окно показывает данные по объекту, над которым расположен указатель мыши (без щелчка по карте).
    Ограничения: слой не должен быть "большим", не все способы стилевого оформления (раскраски) слоя поддерживаются в настоящее время.

Пример векторного режима отображения: слой районов Красноярского края.

Включить векторный режим отображения слоя можно в подсистеме веб-администратора 'Управление данными' – в разделе 'Параметры слоя/карты' нужно установить соответствующее значение параметра 'Режим отображения'.

Тематическое оформление (раскраска) растрового индексированного изображения

В соответствии с общепринятым определением, цветное индексированное изображение — такое изображение, цвет каждого элемента которого задаётся в специальной таблице — палитре.
Таким образом, каждый элемент изображения имеет в качестве цвета некий условный индекс, который расшифровывается по таблице цветов (палитре) в реальные компоненты цвета, что позволяет для каждого такого элемента построить «истинный» цвет в заданной цветовой модели.

Обычно в качестве растровых индексированных изображений используются растры с глубиной цветности 8 бит/пиксель. Цвет каждого пикселя такого 8-битного растра может принимать значение от 0 до 255; каждому такому значению (индексу) в палитре соответствует определенный цвет (RGB).

Текущая версия программы ГеоЭкспресс не поддерживает возможности редактирования растровых индексированных изображений; вам придется воспользоваться подсистемой веб-администратора 'Управление данными'. В разделе 'Параметры слоя/карты' нужно отредактировать содержание поля 'Описание слоя (XML)'.

Пример "правильного форматирования" XML-описания ресурса приведен ниже; сам ресурс доступен по ссылке.

<?xml version="1.0" encoding="UTF-8"?>
<Layer name="rastr" sourceguid="314e2b29-fe77-cf79-4b2f-f46024a8f260" version="1.0">
  <Group scalemin="0" scalemax="inf">
    <Class>
      <Expression>
        <Condition field="pixel" operator="&gt;=" val="1" connectivity=""/>
        <Condition field="pixel" operator="&lt;=" val="126" connectivity="and"/>
      </Expression>
      <Style>
        <Cell color="255 0 0" />
      </Style>
      <Legendlabel>&lt;10 град.</Legendlabel> 
   </Class>
    <Class>
      <Expression>
        <Condition field="pixel" operator="&gt;=" val="127" connectivity=""/>
        <Condition field="pixel" operator="&lt;=" val="145" connectivity="and"/>
      </Expression>
      <Style>
        <Cell color="0 255 0" />
      </Style>
      <Legendlabel>10-15 град.</Legendlabel> 
   </Class>
    <Class>
      <Expression>
        <Condition field="pixel" operator="&gt;=" val="146" connectivity=""/>
        <Condition field="pixel" operator="&lt;=" val="255" connectivity="and"/>
      </Expression>
      <Style>
        <Cell color="0 0 255" />
      </Style>
      <Legendlabel>&gt;15 град.</Legendlabel> 
   </Class>
  </Group>
</Layer>

Комментарии по раскраске растрового индексированного изображения –

  • Приведенный пример содержит три диапазона значений индекса цвета: 1–126, 127–145, 146–255.
    Каждый диапазон определяется тегом <Class>.
  • Синтаксис описания диапазонов (в тегах <Expression>, <Condition>) очевиден и в целом не требует дополнительных комментариев.
    Отметим только необходимость использования html-представлений символов "больше", "меньше", "больше либо равно", "меньше либо равно": (>, <, >=, <=) – нужно указывать соотв. &lt; и &gt;.
  • Значение цвета для выбранного диапазона задается в теге <Cell> в формате "R G B".
  • Убедитесь в том, что параметр sourceguid тега <Layer> в заголовке имеет нужное значение – см. рис. ниже.