GIS-LAB

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

Документация по gdal grid

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

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/../docs/gdal/gdal_grid-manual.html


Создание регулярных растровых матриц из нерегулярных векторных данных (источник).

Содержание

[править] Вызов

gdal_grid [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
          CInt16/CInt32/CFloat32/CFloat64}]
	  [-of format] [-co "NAME=VALUE"]
	  [-zfield field_name] [-z_increase increase_value] [-z_multiply multiply_value]
	  [-a_srs srs_def] [-spat xmin ymin xmax ymax]
          [-clipsrc <xmin ymin xmax ymax>|WKT|datasource|spat_extent]
          [-clipsrcsql sql_statement] [-clipsrclayer layer]
          [-clipsrcwhere expression]
	  [-l layername]* [-where expression] [-sql select_statement]
	  [-txe xmin xmax] [-tye ymin ymax] [-outsize xsize ysize]
	  [-a algorithm[:parameter1=value1]*] [-q]
	  <src_datasource> <dst_filename>

[править] Описание

Этот инструмент создает регулярную сеть (растр) из нерегулярных данных, считываемых из источника данных OGR. Входные данные интерполируются для заполнения ячеек сетки значениями, можно выбирать разные методы интерполяции.

Начиная с GDAL 1.10, имеется возможность установить конфигурационный параметр GDAL_NUM_THREADS для использования параллельной обработки. Значение, которое задается, определяет число рабочих потоков, либо задает (если равно ALL_CPUS) использование всех ядер/процессоров компьютера.

-ot type:
Задает тип данных для выходных слоев.

-of format:
Задает формат выходного файла. По умолчанию - GeoTIFF (GTiff). Используйте короткое имя форматов.

-txe xmin xmax:
Задает горизонтальные (по оси X) границы (охват) выходного файла в спроецированных единицах.

-tye ymin ymax:
Задает вертикальные (по оси Y) границы (охват) выходного файла в спроецированных единицах.

-outsize xsize ysize:
Задает число столбцов (пикселей) и строк выходного файла.

-a_srs srs_def:
Задает проекцию для выходного файла. Значение srs_def может быть задано в обычном для GDAL/OGR виде (полное описание WKT, PROJ.4, EPSG:n, или имя файла, содержащего WKT).

-zfield field_name:
Задает поле с атрибутом, значения которого будут использоваться для интерполяции (как величина Z). Это значение будет использоваться вместо значения Z, которое содержится в геометрии объекта (если оно там есть; в противном случае вы должны в обязательном порядке задать имя поля).

-z_increase increase_value:
Задает число, которое будет прибавлено к величине Z. Параметр принимает на вход число с плавающей точкой. Значение по-умолчанию равно 0.

-z_multiply multiply_value:
Задает число, на которое будет умножено значение Z. Параметр принимает на вход число с плавающей точкой. Значение по-умолчанию равно 1. Общая формула вычисления результирующего значения величины Z имеет следующий вид: (Z + Z_increase) * Z_multiply

-a [algorithm[:parameter1=value1][:parameter2=value2]...]:
Задает алгоритм интерполяции, имя метрики данных и (необязательно) их параметры. См. разделы АЛГОРИТМЫ ИНТЕРПОЛЯЦИИ и МЕТРИКИ ДАННЫХ с более подробным описанием допустимых вариантов.

-spat xmin ymin xmax ymax:
Задает пространственный фильтр для выбора только тех объектов, которые попадают в прямоугольник (xmin, ymin) - (xmax, ymax).

-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent:
Задает пространственный фильтр для выбора объектов, содержащихся в охватывающем прямоугольнике (заданном в исходной системе координат SRS); в геометрии, заданной в виде WKT (POLYGON или MULTIPOLYGON); в заданном источником данных datasource; пространственным экстентом, указанным с помощью параметра -spat, если вы используете ключевое слово spat_extent. В случае указания источника данных datasource, он обычно используется в сочетании с параметрами -clipsrclayer, -clipsrcwhere или -clipsrcsql.

-clipsrcsql sql_statement:
Использует SQL-запрос для выбора исходных данных (объектов) для интерполяции.

-clipsrclayer layername:
Использует именованный слой layername для выборки из источника данных.

-clipsrcwhere expression:
Ограничить выборку геометрий с помощью атрибутивной выборки.

-l layername:
Указывает слой (слои) в источнике данных datasource, из которых будут выбираться объекты для интерполяции. Может указываться несколько раз, но в любом случае должно быть указано хотя бы одно имя слоя или параметр -sql.

-where expression:
Дополнительное выражение вида SQL WHERE, которое будет применено для выборки объектов из указанного слоя (слоев).

-sql select_statement:
SQL-выражение, которое должно быть вычислено для источника данных datasource, чтобы создать виртуальный слой объектов, подлежащих обработке.

-co "NAME=VALUE":
Передает параметры создания файла драйверу выходного формата. Может использоваться несколько раз для задания нескольких параметров. См. документацию соответствующих драйверов для полного списка параметров.

-q:
Подавление вывода в консоль любых сообщений, кроме сообщений об ошибках.

src_datasource:
Любой источник данных, чтение которого поддерживается OGR.

dst_filename:
Поддерживаемый GDAL выходной файл.

[править] Алгоритмы интерполяции

Имеется несколько алгоритмов интерполяции.

invdist

Обратное расстояние (в степени). Используется по умолчанию. Имеет следующие параметры:

power:
Степень, в которую возводится расстояние (по умолчанию 2.0).
smoothing:
Параметр сглаживания (по умолчанию 0.0).
radius1:
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
radius2:
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
angle:
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0).
max_points:
Максимальное число точек, которое может быть использовано. Если найдено заданное число точек, то дальнейший поиск не производится.Используется только если задан эллипс поиска (оба радиуса не равны нулю).Нулевое значениепароаметра означает, что будут использованы все данные. Значение по умолчанию 0.
min_points:
минимальное число точек, которое должно быть использовано. Если найдено меньше точек в заданном эллипсе, то в соответствующую ячейку записывается значение NODATA. Используется только если задан эллипс поиска (оба радиуса не равны нулю). Значение по умолчанию 0.
nodata:
Значение NODATA (по умолчанию 0.0).

average

Алгоритм «скользящего окна». Имеет следующие параметры:

radius1:
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
radius2:
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
angle:
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0).
min_points:
Минимальное число точек, которое должно быть использовано. Если найдено меньше точек в заданном эллипсе, то в соответствующую ячейку записывается значение NODATA. Значение по умолчанию 0.
nodata:
Значение NODATA (по умолчанию 0.0).

Заметим, что важно задать эллипс для данного алгоритма, поскольку именно он определяет окно, в котором осредняются данные.

nearest

Алгоритм ближайшего соседа. Он имеет следующие апраметры:

radius1:
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
radius2:
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
angle:
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0).
nodata:
Значение NODATA (по умолчанию 0.0).

[править] Метрики данных

Наряду с интерполяцией, gdal_grid может быть использован для вычисления некоторых метрик (статистик) данных с использованием заданного локального окна и геометрии выходной сетки. К этим метрикам (статистикам) относятся:

minimum:
Минимальное значение, найденное в эллипсе поиска (grid node search ellipse).

maximum:
Максимальное значение, найденное в эллипсе поиска.

range:
Разность между минимальным и максимальным значениями, найденными в эллипсе поиска.

count:
Количество точек данных, найденных в эллипсе поиска.

average_distance:
Среднее расстояние между ячейкой сетки (центром эллипса поиска) и точками данных, найденными в эллипсе поиска.

average_distance_pts:
Среднее расстояние между точками данных, найденными в эллипсе поиска. Расстояние между всеми парами точек, попавшими в эллипс, вычисляется, усредняется и записывается в ячейку выходной сетки.

У всех метрик есть следующие параметры:

radius1:
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
radius2:
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0.
angle:
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0).
min_points:
Минимальное число точек, которое должно быть использовано. Если найдено меньше точек в заданном эллипсе, то в соответствующую ячейку записывается значение NODATA. Значение по умолчанию 0.
nodata:
Значение NODATA (по умолчанию 0.0).

[править] Чтение данных из текстовых файлов с разделителями

Часто имеются текстовые файлы со значениями XYZ, разделенными запятыми (так называемые CSV-файлы). Вы можете легко использовать этот тип данных в gdal_grid. Вам нужно создать виртуальный заголовок набора данных (VRT) для вашего CSV-файла и использовать его как источник данных для gdal_grid. Детали создания VRT можно найти на странице описания Virtual Format.

Вот небольшой пример. Допустим, у нас есть файл CSV с названием dem.csv следующего содержания:

Easting,Northing,Elevation
86943.4,891957,139.13
87124.3,892075,135.01
86962.4,892321,182.04
87077.6,891995,135.01
...

Для приведенного выше набора данных заголовок dem.vrt имеет вид:

<OGRVRTDataSource>
    <OGRVRTLayer name="dem">
        <SrcDataSource>dem.csv</SrcDataSource> 
	<GeometryType>wkbPoint</GeometryType> 
	<GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/> 
    </OGRVRTLayer>
</OGRVRTDataSource>

Он описывает так называемую 2.5D-геометрию с тремя координатами X, Y и Z. Значение Z будет использовано для интерполяции. Теперь можно использовать dem.vrt как источник данных для всех программ, использующих библиотеку OGR (начните с ogrinfo, чтобы проверить, что все работает правильно). Полученный источник данных содержит один слой с именем "dem", заполненный точечными объектами, созданными из CSV-файла. Использование такого приема позволяет работать с CSV-файлами, содержащими более 3 столбцов, переставлять столбцы, и т.д.

Если в вашем CSV-файле нет заголовков столбцов, то с ним можно работать следующим образом:

<GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>

Страница с описанием формата Comma Separated Value содержит детали поддержки CSV-формата в GDAL/OGR.

[править] Пример

В следующем примере создается растровый TIFF file файл из источника данных VRT, описанного в разделе ЧТЕНИЕ ФАЙЛОВ С ДАННЫМИ, РАЗДЕЛЕННЫМИ ЗАПЯТЫМИ с использование метода обратного расстояния. Интерполируемые значения берутся из Z-значений геометрических объектов.

gdal_grid -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff

Следующая команда делает то же самое, что и предыдущая, но берет интерполируемые значения из поля, заданного параметром –zfield, а не из геометрии объектов. В этом случае значения координат X и Y берутся из геометрии, а значение Z из поля "Elevation". Параметр GDAL_NUM_THREADS используется для распараллеливания вычислений.

gdal_grid -zfield "Elevation" -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff --config GDAL_NUM_THREADS ALL_CPUS

[править] Общие опции и ключи

--version
Выводит версию библиотеки и утилиты после чего завершает работу.

--formats
Выводит список всех поддерживаемых растровых форматов (для чтения и записи) и после этого завершает работу программы. Поддержка форматов имеет следующую индикацию: 'ro' драйвер только для чтения; 'rw' драйвер с возможностью записи (т.е. поддерживает CreateCopy); 'rw+' драйвер для чтения, записи, модификации (т.е. поддерживает Create). Буква 'v' добавляется к описанию форматов, которые поддерживают virtual IO (/vsimem, /vsigzip, /vsizip и др.). Буква 's' добавляется к описанию форматов, которые поддерживают вложенные наборы данных (subdatasets). Примечание: Форматы для результатов работы gdalwarp должны поддерживать метод Create (отмеченный как rw+), а не только метод CreateCopy.

--format формат
Выводит детальную информацию об отдельном драйвере. Формат должен быть коротким именем, полученным при помощи ключа --formats, например GTiff.

--optfile файл
Читает файл и преобразует его содержимое в список опций командной строки. Строки, начинающиеся с символа # игнорируются. Аргументы, содержащие пробелы, должны заключаться в кавычки.

--config ключ значение
Набор опций, которые применяются в качестве переменных среды. Часть общих опций включает в себя: GDAL_CACHEMAX (использование памяти для кэширования в Мб) и GDAL_DATA (путь до директории с "данными" GDAL). Отдельные драйверы могут конфигурироваться другими опциями.

--debug значение
Контролирует вывод отладочной информации. Значение ON включает вывод отладочной информации. Значение OFF отключает вывод отладочной информации. Значение, отличное от ранее перечисленных, фильтрует вывод отладочной информации по соответствующему префиксу.

--help-general
Выводит обобщенную справку об основных опциях командной строки и завершает работу.

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

Последнее обновление: 2014-05-15 02:08

Дата создания: 09.01.2014
Автор(ы): Максим Дубинин


(Геокруг)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter