<<< предыдущая глава | оглавление | следующая глава >>>
Прежде всего, перед началом импорта данных, необходимо вспомнить о структуре данных в GRASS GIS, терминология, используемая в этом разделе подробно объяснена в гл. 2.3.
Совместимость форматов является одним из важнейших условий работы с ГИС, например, при импорте «сырых» необработанных данных или данных, конвертированных из других программных продуктов. В GRASS существует большое количество модулей для импорта векторных и растровых данных, а также баз данных. Описание синтаксиса команд можно получить с помощью параметра -help или модуля g.manual.
v.in.ogr -help
g.manual v.in.ogr & r.in.gdal -help
ГИС GRASS поддерживает импорт множества различных растровых форматов. Рассмотрим три основных типа растровых форматов, которые используются чаще всего:
Формат изображений (image): растры всегда содержат положительные, целые значения и хранятся в известных форматах изображений, таких как PPM, PNG, JPEG и GIF.
Формат ASCII: растры в формате ASCII могут содержать как положительные, так и отрицательные значения, а также значения c плавающей точкой. Покрытие ASCII-GRID в Arcinfo представляет собой образец формата данного типа.
Двоичный формат (binary): в двоичном формате растра отдельные пикселы с положительными и отрицательными целыми значениями или значениями с плавающей точкой также можно хранить в различных каналах с разным разрешением. Примерами данных форматов являются форматы (Geo)TIFF или ERDAS/IMG.
Теперь пришло время упомянуть о важном свойстве ГИС GRASS, связанном с импортом растровых данных: при импорте растра всегда сохраняются его первоначальное разрешение и охват, тогда как при экспорте сохраняются разрешение и охват согласно свойствам данного фрагмента (смотри главу 7.1).
При импорте непривязанных растровых данных возможно два случая:
Если область существует, ее разрешение определено, и отсканированный растр должен быть вписан в эту область, его разрешение будет приведено к разрешению области (GRID RESOLUTION).
Если растр не должен поменять характеристики при импорте, параметры области куда он импортируется (особенно разрешение) должны быть заданы специальным образом.
В таблице 7 представлен список модулей, используемых для импорта растровых данных в различных форматах, т.е. форматах других геоинформационных систем, так же как и в специальных форматах, характерных для данных дистанционного зондирования.
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
В последней версии GRASS 6.0 векторные библиотеки претерпели существенную реструктуризацию. Это было необходимо, поскольку GRASS 5.4 была в основном ориентирована на анализ растровых и точечных данных. В этом же руководстве описаны функции новой версии GRASS 6.0. Информацию об изменениях векторных форматов можно найти в главе 10.
При импорте векторных данных, приходится иметь дело с большим числом различных форматов. По сравнению с растровыми форматами, структура векторных данных более сложная, что делает процесс импорта векторных данных несколько более запутанным. В таблице 8 представлены форматы, которые поддерживаются ГИС GRASS, среди которых, возможно наиболее часто используемым является формат ESRI SHAPE.
После импорта векторный файл представлен в
собственном векторном двоичном формате GRASS. Геометрия, топология
и все атрибуты хранятся во внутренней базе данных GRASS. Топология
создается для каждой карты в процессе импорта. Текущее состояние топологии
можно отобразить с помощью команды v.info
.
Другие команды для работы с векторными данными, более подробно описаны в главе
10.
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
В 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
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).