GIS-LAB

Географические информационные системы и дистанционное зондирование

Учебное руководство по GRASS

5. Импорт данных

<<< предыдущая глава | оглавление | следующая глава >>>

Прежде всего, перед началом импорта данных, необходимо вспомнить о структуре данных в GRASS GIS, терминология, используемая в этом разделе подробно объяснена в гл. 2.3.

Совместимость форматов является одним из важнейших условий работы с ГИС, например, при импорте «сырых» необработанных данных или данных, конвертированных из других программных продуктов. В GRASS существует большое количество модулей для импорта векторных и растровых данных, а также баз данных. Описание синтаксиса команд можно получить с помощью параметра -help или модуля g.manual.

v.in.ogr -help
g.manual v.in.ogr & r.in.gdal -help

5.1 Импорт растровых форматов

ГИС GRASS поддерживает импорт множества различных растровых форматов. Рассмотрим три основных типа растровых форматов, которые используются чаще всего:

Формат изображений (image): растры всегда содержат положительные, целые значения и хранятся в известных форматах изображений, таких как PPM, PNG, JPEG и GIF.

Формат ASCII: растры в формате ASCII могут содержать как положительные, так и отрицательные значения, а также значения c плавающей точкой. Покрытие ASCII-GRID в Arcinfo представляет собой образец формата данного типа.

Двоичный формат (binary): в двоичном формате растра отдельные пикселы с положительными и отрицательными целыми значениями или значениями с плавающей точкой также можно хранить в различных каналах с разным разрешением. Примерами данных форматов являются форматы (Geo)TIFF или ERDAS/IMG.

Теперь пришло время упомянуть о важном свойстве ГИС GRASS, связанном с импортом растровых данных: при импорте растра всегда сохраняются его первоначальное разрешение и охват, тогда как при экспорте сохраняются разрешение и охват согласно свойствам данного фрагмента (смотри главу 7.1).

При импорте непривязанных растровых данных возможно два случая:

  1. Если область существует, ее разрешение определено, и отсканированный растр должен быть вписан в эту область, его разрешение будет приведено к разрешению области (GRID RESOLUTION).

  2. Если растр не должен поменять характеристики при импорте, параметры области куда он импортируется (особенно разрешение) должны быть заданы специальным образом.

В таблице 7 представлен список модулей, используемых для импорта растровых данных в различных форматах, т.е. форматах других геоинформационных систем, так же как и в специальных форматах, характерных для данных дистанционного зондирования.

Таблица 7: Модули GRASS для импорта растровых данных

GRASS

Импорт

Модуль

Растровый формат

r.in.ascii

GRASS ASCII

r.in.bin

BIL, GMT binary files, LANDSAT TM5

r.in.gdal

ARC/INFO ASCII/Binary GRID, BIL, ERDAS (LAN, IMG),

 

USGS DOQ, JPEG, SAR CEOS, EOSAT, GeoTIFF, PPM/PNM, SDTS DEM,

 

GIF, PNG

 

(смотри также http://www.gdal.org/formats_list.html)

Импорт файлов GeoTiff

При импорте растровых данных наиболее часто используется модуль r.in.gdal. Как показано в таблице 7, с его помощью можно прочитать и записать множество различных форматов (r.out.gdal). В качестве примера, импортируем географически привязанный растр в формате ERDAS IMG. Мы уже подготовили небольшой фрагмент ЦМР на базе данных ASTER с разрешением 30 м города Оснабрюк (Osnabrueck), которая доступна для загрузки с GDF Hannover  (http://www.gdf-hannover.de/download).

r.in.gdal in=asterdem30m.img out=asterdem30m
  Projection of input dataset and current location appear to match.
  Proceeding with import...
    100%
  CREATING SUPPORT FILES FOR asterdem30m
  COPYING COLOR TABLE FOR asterdem30m

С помощью ключа -e командной строки можно определить необходимый географический охват результирующей области.

# Подгонка имеющейся области к импортируемому растру:
g.region rast=asterdem30m -p

Полученную карту можно отобразить, используя Display Manager d.m или с помощью команды d.rast. Для этого, с помощью d.mon x0 преварительно должен быть открыт монитор GRASS.

# Запуск Display Manager
d.m& # Отображение карты на экране с помощью командной строки: d.mon x0
d.rast asterdem30m

5.2 Импорт векторных данных

В последней версии GRASS 6.0 векторные библиотеки претерпели существенную реструктуризацию. Это было необходимо, поскольку GRASS 5.4 была в основном ориентирована на анализ растровых и точечных данных. В этом же руководстве описаны функции новой версии GRASS 6.0. Информацию об изменениях векторных форматов можно найти в главе 10.

При импорте векторных данных, приходится иметь дело с большим числом различных форматов. По сравнению с растровыми форматами, структура векторных данных более сложная, что делает процесс импорта векторных данных несколько более запутанным. В таблице 8 представлены форматы, которые поддерживаются ГИС GRASS, среди которых, возможно наиболее часто используемым является формат ESRI SHAPE.

После импорта векторный файл представлен в собственном векторном двоичном формате GRASS. Геометрия, топология и все атрибуты хранятся во внутренней базе данных GRASS. Топология создается для каждой карты в процессе импорта. Текущее состояние топологии можно отобразить с помощью команды v.info. Другие команды для работы с векторными данными, более подробно описаны в главе 10.

Таблица 8: Модули GRASS для импорта векторных данных

GRASS

Импорт

Модуль

Векторный формат

v.in.ogr

SHAPE, UK.NTF, SDTS, TIGER, S57, MapInfo

 

DGN, VRT, AVCBin, REC, Memory, GML, ODBC

 

(смотри также: http://www.gdal.org/ogr/ogr_formats.html)

v.in.ascii

GRASS ASCII

v.in.e00

ArcInfo-E00

v.in.db

Создание векторов из базы данных с координатами x|y|z

Импорт SHAPE файлов

Модуль для импорта SHAPE данных в GRASS называется v.in.ogr. Стоит отметить, что SHAPE формат не является топологическим форматом; в нем отсутствуют какие-либо связи между расположением или границами отдельных объектов. Например, линии границ между двумя площадными объектами (полигонами) сохраняются дважды. Это может привести к некоторым проблемам и, следовательно, должно быть скорректировано GRASS в процессе импорта.

Данные для следующего упражнения взяты из проекта FRIDA [17], который содержит большое количество подробных векторных данных города Оснабрюк (Osnabrueck), доступных для загрузки через Intevation GmbH [13[.

v.in.ogr -o dsn=./frida-1.1-shp-joined/streets-joined.shp out=streets

12323 primitives registered
0 areas built
0 isles built
Number of nodes     :   8937
Number of primitives:   12323
Number of points    :   0
Number of lines     :   12323
Number of boundaries:   0
Number of centroids :   0
Number of areas     :   0
Number of isles     :   0

Итак, в GRASS ($GISDBASE/$LOCATION/$MAPSET) в процессе импорта создана поддиректория с указанными улицами в папке vector. В этой директории сохранены топология (topo), информация в заголовках (head), пространственная информация (coor), история (hist), пространственный индекс (sidx) и индекс категорий (cidx), равно как и путь к соответствующим атрибутам (dbln).

Также в процессе импорта атрибутивные данные по умолчанию сохранятся в GRASS в директорию dbf в формате DBASE. Если необходимо, можно просмотреть содержание вновь импортированной атрибутивной таблицы (streets.dbf) в соответствующем редакторе. В операционной системе GNU/Linux это можно сделать с помощью OpenOffice, Gnumeric или Koffice.

Другие методы импорта векторных данных или создания векторов на основе таких баз данных, как PostgreSQL или PostGIS можно найти в главе 10.

Если векторные данные содержат свою собственную информацию о проекции, в процессе работы GRASS может быть создана новая область, основанная на этой информации. Необходимая информация, находящаяся в данных SHAPE файла, сохраняется в специальном файле с расширением .prj. Новая область с импортированными данными создается следующим образом:

v.in.ogr dsn=./frida-1.1-shp-joined/streets-joined.shp \
	out=streets location=osnabrueck

5.3 Импорт точечных данных

В GRASS& 6.0 точечные данные больше не хранятся отдельно в директории site_lists, а сохраняются как векторные точки и анализируются с помощью векторных модулей. Векторные точечные данные, которые доступны, например, в SHAPE формате, импортируются с помощью модуля v.in.ogr, как это показано на следующем примере:

v.in.ogr -o dsn=./frida-1.1-shp-joined/poi-joined.shp out=poi

268 primitives registered
0 areas built
0 isles built
Number of nodes     :   268
Number of primitives:   268
Number of points    :   268
Number of lines     :   0
Number of boundaries:   0
Number of centroids :   0
Number of areas     :   0
Number of isles     :   0

Импорт долгот и широт (X|Y)

Простые ASCII таблицы, содержащие точки, представленные своими координатами (долгота и широта), можно импортировать в GRASS модулем v.in.ascii. В ASCII точки должны быть представлены тремя параметрами Широта, Долгота, Значение. Знак разделителя особой роли не играет. Например, можно импортировать файл (coord.txt), чьи столбцы отделяются вертикальной чертой:

1664619|5103481
1664473|5095782
1664273|5101919
cat coords.txt | v.in.ascii out=points

Пропущенные значения категорий (IDs) можно добавить впоследствии, используя модуль v.category. Т.е. можно назначить дополнительные атрибуты, которые будут храниться в базе данных:

v.category in=punkte out=points2 op=add
v.category points2 op=report

Затем точечные данные на данную область сохраняются в векторном формате GRASS в папке vector базы данных GRASS.

Импорт данных о высоте (X|Y|Z).

В том случае если третий столбец содержит данные о высоте точки, необходимо с помощью команды v.in.ascii добавить параметр -z:

1664619|5103481|101.2
1664473|5095782|102.2
1664273|5101919|101.7
cat coords3d.txt | v.in.ascii -z out=elevation
v.category in=elevation out=elevation2 op=add
v.category elevation2 op=report

Примеры того, как извлечь точки из существующих баз данных, даны в главе 10.

<<< предыдущая глава | оглавление | следующая глава >>>

Обсудить в форуме Комментариев — 3

Последнее обновление: September 16 2009