|
Прежде всего, перед началом импорта данных,
необходимо вспомнить о структуре данных в 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).
При импорте непривязанных растровых данных возможно
два случая:
Если область существует, ее разрешение
определено, и отсканированный растр должен быть вписан в эту область, его
разрешение будет приведено к разрешению области (GRID RESOLUTION).
Если растр не должен поменять характеристики при
импорте, параметры области куда он импортируется (особенно разрешение)
должны быть заданы специальным образом.
В таблице 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.
Обсудить в форуме (Комментариев - 0)
Последнее обновление: March 04 2008 (Наверх)
|