Документация по gdal grid
gdal_grid
создание регулярных растровых матриц из нерегулярных векторных данных (источник).
SYNOPSIS
gdal_grid [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/ CInt16/CInt32/CFloat32/CFloat64}] [-of format] [-co "NAME=VALUE"] [-zfield field_name] [-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, которое содержится в геометрии объекта (если оно там есть; в противном случае вы должны задать имя поля в обязательном порядке)
-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 выходной файл.
INTERPOLATION ALGORITHMS (Александр Мурый)
There are number of interpolation algorithms to choose from.
invdist
Inverse distance to a power. This is default algorithm. It has following parameters:
power:
Weighting power (default 2.0).
smoothing:
Smoothing parameter (default 0.0).
radius1:
The first radius (X axis if rotation angle is 0) of search ellipse. Set this parameter to zero to use whole point array. Default is 0.0.
radius2:
The second radius (Y axis if rotation angle is 0) of search ellipse. Set this parameter to zero to use whole point array. Default is 0.0.
angle:
Angle of search ellipse rotation in degrees (counter clockwise, default 0.0).
max_points:
Maximum number of data points to use. Do not search for more points than this number. This is only used if search ellipse is set (both radii are non-zero). Zero means that all found points should be used. Default is 0.
min_points:
Minimum number of data points to use. If less amount of points found the grid node considered empty and will be filled with NODATA marker. This is only used if search ellipse is set (both radii are non-zero). Default is 0.
nodata:
NODATA marker to fill empty points (default 0.0).
average
Moving average algorithm. It has following parameters:
radius1:
The first radius (X axis if rotation angle is 0) of search ellipse. Set this parameter to zero to use whole point array. Default is 0.0.
radius2:
The second radius (Y axis if rotation angle is 0) of search ellipse. Set this parameter to zero to use whole point array. Default is 0.0.
angle:
Angle of search ellipse rotation in degrees (counter clockwise, default 0.0).
min_points:
Minimum number of data points to use. If less amount of points found the grid node considered empty and will be filled with NODATA marker. Default is 0.
nodata:
NODATA marker to fill empty points (default 0.0).
Note, that it is essential to set search ellipse for moving average method. It is a window that will be averaged when computing grid nodes values.
nearest
Nearest neighbor algorithm. It has following parameters:
radius1:
The first radius (X axis if rotation angle is 0) of search ellipse. Set this parameter to zero to use whole point array. Default is 0.0.
radius2:
The second radius (Y axis if rotation angle is 0) of search ellipse. Set this parameter to zero to use whole point array. Default is 0.0.
angle:
Angle of search ellipse rotation in degrees (counter clockwise, default 0.0).
nodata:
NODATA marker to fill empty points (default 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 файлами с более чем с тремя столбцами, переставлять столбцы, и т.д.
Если в вашем 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