Документация по gdal grid: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 14 промежуточных версий 3 участников)
Строка 1: Строка 1:
'''gdal_grid'''
{{Статья|Опубликована|../docs/gdal/gdal_grid-manual}}
{{Аннотация|Создание регулярных растровых матриц из нерегулярных векторных данных ([http://www.gdal.org/gdal_grid.html источник]).}}


создание регулярных растровых матриц из рассеянных векторных данных.
== Вызов ==
 
== SYNOPSIS ==


<pre>gdal_grid [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
<pre>gdal_grid [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
           CInt16/CInt32/CFloat32/CFloat64}]
           CInt16/CInt32/CFloat32/CFloat64}]
  [-of format] [-co "NAME=VALUE"]
  [-of format] [-co "NAME=VALUE"]
  [-zfield field_name]
  [-zfield field_name] [-z_increase increase_value] [-z_multiply multiply_value]
  [-a_srs srs_def] [-spat xmin ymin xmax ymax]
  [-a_srs srs_def] [-spat xmin ymin xmax ymax]
           [-clipsrc <xmin ymin xmax ymax>|WKT|datasource|spat_extent]
           [-clipsrc <xmin ymin xmax ymax>|WKT|datasource|spat_extent]
Строка 18: Строка 17:
  <src_datasource> <dst_filename></pre>
  <src_datasource> <dst_filename></pre>


== ОПИСАНИЕ ==
== Описание ==


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


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


'''-ot type:'''<br />
'''-ot type:'''<br />
Тип данных выходных растров.
Задает тип данных для выходных слоев.  


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


'''-txe xmin xmax:'''<br />
'''-txe xmin xmax:'''<br />
Установить спроецированное значение ширины охвата выходного файла.
Задает горизонтальные (по оси X) границы (охват) выходного файла в спроецированных единицах.


'''-tye ymin ymax:'''<br />
'''-tye ymin ymax:'''<br />
Установить спроецированное значение высоты охвата выходного файла.
Задает вертикальные (по оси Y) границы (охват) выходного файла в спроецированных единицах.


'''-outsize xsize ysize:'''<br />
'''-outsize xsize ysize:'''<br />
Установить размер выходного файла в пикселях и линиях.
Задает число столбцов (пикселей) и строк выходного файла.  


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


'''-zfield field_name:'''<br />
'''-zfield field_name:'''<br />
Указывает название поля из которого будет браться значение Z. Это значение имеет приоритет над значением Z считываемом из геометрии объекта (само собой разумеется, это верно, если у вас у геометрии есть значение Z, в противном случае, у вас нет выбора и вы должны указать название поля где содержится значение Z.
Задает поле с атрибутом, значения которого будут использоваться для интерполяции (как величина  Z). Это значение будет использоваться вместо значения Z, которое содержится в геометрии объекта (если оно там есть; в противном случае вы должны в обязательном порядке задать имя поля).
 
'''-z_increase increase_value:'''<br />
Задает число, которое будет прибавлено к величине Z. Параметр принимает на вход число с плавающей точкой. Значение по-умолчанию равно 0.
 
'''-z_multiply multiply_value:'''<br />
Задает число, на которое будет умножено значение Z. Параметр принимает на вход число с плавающей точкой. Значение по-умолчанию равно 1. Общая формула вычисления результирующего значения величины Z имеет следующий вид: (Z + Z_increase) * Z_multiply


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


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


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


'''-clipsrcsql sql_statement:'''<br />
'''-clipsrcsql sql_statement:'''<br />
Выбрать нужные геометрии с помощью SQL запроса.
Использует SQL-запрос для выбора исходных данных (объектов) для интерполяции.  


'''-clipsrclayer layername:'''<br />
'''-clipsrclayer layername:'''<br />
Выбрать именованный слой из исходного набора данных использующегося для обрезки.
Использует именованный слой layername для выборки из источника данных.


'''-clipsrcwhere expression:'''<br />
'''-clipsrcwhere expression:'''<br />
Строка 64: Строка 69:


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


'''-where expression:'''<br />
'''-where expression:'''<br />
Опциональное выражение в стиле SQL WHERE, которое нужно применить для выборки объектов из исходного слоя или слоёв.
Дополнительное выражение вида SQL WHERE, которое будет применено для выборки объектов из указанного слоя (слоев).  


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


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


'''-q:'''<br />
'''-q:'''<br />
Строка 79: Строка 84:


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


'''dst_filename:'''<br />
'''dst_filename:'''<br />
Выходной файл поддерживаемый GDAL.
Поддерживаемый GDAL выходной файл.


==INTERPOLATION ALGORITHMS (Александр Мурый)==
==Алгоритмы интерполяции==


There are number of interpolation algorithms to choose from.
Имеется несколько алгоритмов интерполяции.


'''invdist'''
'''invdist'''


Inverse distance to a power. This is default algorithm. It has following parameters:
Обратное расстояние (в степени). Используется по умолчанию. Имеет следующие параметры:  


'''power:'''<br />
'''power:'''<br />
Weighting power (default 2.0). <br />
Степень, в которую возводится расстояние (по умолчанию 2.0).   <br />
'''smoothing:'''<br />
'''smoothing:'''<br />
Smoothing parameter (default 0.0). <br />
Параметр сглаживания (по умолчанию 0.0). <br />
'''radius1:'''<br />
'''radius1:'''<br />
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. <br />
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию  0.0. <br />
'''radius2:'''<br />
'''radius2:'''<br />
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. <br />
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию  0.0.   <br />
'''angle:'''<br />
'''angle:'''<br />
Angle of search ellipse rotation in degrees (counter clockwise, default 0.0). <br />
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0). <br />
'''max_points:'''<br />
'''max_points:'''<br />
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. <br />
Максимальное число точек, которое может быть использовано. Если найдено заданное число точек, то дальнейший поиск не производится.Используется только если задан эллипс поиска (оба радиуса не равны нулю).Нулевое значениепароаметра означает, что будут использованы все данные. Значение по умолчанию 0. <br />
'''min_points:'''<br />
'''min_points:'''<br />
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. <br />
минимальное число точек, которое должно быть использовано. Если найдено меньше точек в заданном эллипсе, то в соответствующую ячейку записывается значение NODATA. Используется только если задан эллипс поиска (оба радиуса не равны нулю). Значение по умолчанию 0.<br />
'''nodata:'''<br />
'''nodata:'''<br />
NODATA marker to fill empty points (default 0.0).  
Значение NODATA (по умолчанию 0.0).


'''average'''
'''average'''


Moving average algorithm. It has following parameters:
Алгоритм «скользящего окна». Имеет следующие параметры:


'''radius1:'''<br />
'''radius1:'''<br />
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. <br />
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию  0.0.   <br />
'''radius2:'''<br />
'''radius2:'''<br />
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. <br />
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию  0.0.
<br />
'''angle:'''<br />
'''angle:'''<br />
Angle of search ellipse rotation in degrees (counter clockwise, default 0.0). <br />
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0). <br />
'''min_points:'''<br />
'''min_points:'''<br />
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. <br />
Минимальное число точек, которое должно быть использовано. Если найдено меньше точек в заданном эллипсе, то в соответствующую ячейку записывается значение NODATA. Значение по умолчанию 0.<br />
'''nodata:'''<br />
'''nodata:'''<br />
NODATA marker to fill empty points (default 0.0).  
Значение NODATA (по умолчанию 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'''


Nearest neighbor algorithm. It has following parameters:
Алгоритм ближайшего соседа. Он имеет следующие апраметры:  


'''radius1:'''<br />
'''radius1:'''<br />
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. <br />
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию  0.0. <br />
'''radius2:'''<br />
'''radius2:'''<br />
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. <br />
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию  0.0.   <br />
'''angle:'''<br />
'''angle:'''<br />
Angle of search ellipse rotation in degrees (counter clockwise, default 0.0). <br />
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0). <br />
'''nodata:'''<br />
'''nodata:'''<br />
NODATA marker to fill empty points (default 0.0).
Значение NODATA (по умолчанию 0.0).


==МЕТРИКИ (Максим Дубинин) ==
==Метрики данных==


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


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


'''maximum:'''<br />
'''maximum:'''<br />
Максимальное значение найденное в эллипсе поиска узла сети.
Максимальное значение, найденное в эллипсе поиска.


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


'''count:'''<br />
'''count:'''<br />
Количество точек с данными найденное в эллипсе поиска узла сети.
Количество точек данных, найденных в эллипсе поиска.


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


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


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


'''radius1:'''<br />
'''radius1:'''<br />
Первый радиус (ось X если угол вращения 0) эллипса поиска. Установите этот параметр равным  чтобы использовать весь массив точек. Значение по умолчанию 0.0. <br />
Первый радиус (вдоль оси X, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0. <br />
'''radius2:'''<br />
'''radius2:'''<br />
Первый радиус (ось Y если угол вращения 0) эллипса поиска. Установите этот параметр равным  чтобы использовать весь массив точек. Значение по умолчанию 0.0. <br />
Второй радиус (вдоль оси Y, если угол вращения равен 0) эллипса поиска данных. Если данный параметр равен нулю, то используются все точки данных. Значение по умолчанию 0.0. <br />
'''angle:'''<br />
'''angle:'''<br />
Угол вращения эллипса поиска в градусах (против часовой стрелки, значение по умолчанию 0.0). <br />
Угол вращения эллипса поиска данных (против часовой стрелки, по умолчанию равен 0).<br />
'''min_points:'''<br />
'''min_points:'''<br />
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. <br />
Минимальное число точек, которое должно быть использовано. Если найдено меньше точек в заданном эллипсе, то в соответствующую ячейку записывается значение NODATA. Значение по умолчанию 0.<br />
'''nodata:'''<br />
'''nodata:'''<br />
NODATA marker to fill empty points (default 0.0).
Значение NODATA (по умолчанию 0.0).


==READING COMMA SEPARATED VALUES ==
==Чтение данных из текстовых файлов с разделителями==


Often you have a text file with a list of comma separated XYZ values to work with (so called CSV file). You can easily use that kind of data source in gdal_grid. All you need is create a virtual dataset header (VRT) for you CSV file and use it as input datasource for gdal_grid. You can find details on VRT format at Virtual Format description page.
Часто имеются текстовые файлы со значениями XYZ, разделенными запятыми (так называемые CSV-файлы). Вы можете легко использовать этот тип данных в gdal_grid. Вам нужно создать виртуальный заголовок набора данных (VRT) для вашего CSV-файла и использовать его как источник данных для gdal_grid. Детали создания VRT можно найти на странице описания Virtual Format.


Here is a small example. Let we have a CSV file called dem.csv containing
Вот небольшой пример. Допустим, у нас есть файл CSV с названием dem.csv следующего содержания:


<pre>Easting,Northing,Elevation
<pre>Easting,Northing,Elevation
Строка 187: Строка 193:
...</pre>
...</pre>


For above data we will create dem.vrt header with the following content:
Для приведенного выше набора данных заголовок dem.vrt имеет вид:  


<pre><OGRVRTDataSource>
<pre><OGRVRTDataSource>
Строка 197: Строка 203:
</OGRVRTDataSource></pre>
</OGRVRTDataSource></pre>


This description specifies so called 2.5D geometry with three coordinates X, Y and Z. Z value will be used for interpolation. Now you can use dem.vrt with all OGR programs (start with ogrinfo to test that everything works fine). The datasource will contain single layer called "dem" filled with point features constructed from values in CSV file. Using this technique you can handle CSV files with more than three columns, switch columns, etc.
Он описывает так называемую 2.5D-геометрию с тремя координатами X, Y и Z. Значение Z будет использовано для интерполяции. Теперь можно использовать dem.vrt как источник данных для всех программ, использующих библиотеку OGR (начните с ''ogrinfo'', чтобы проверить, что все работает правильно). Полученный источник данных содержит один слой с именем "dem", заполненный точечными объектами, созданными из CSV-файла. Использование такого приема позволяет работать с CSV-файлами, содержащими более 3 столбцов, переставлять столбцы, и т.д.


If your CSV file does not contain column headers then it can be handled in the following way:
Если в вашем CSV-файле нет заголовков столбцов, то с ним можно работать следующим образом:  


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


Comma Separated Value description page contains details on CSV format supported by GDAL/OGR.
Страница с описанием формата Comma Separated Value содержит детали поддержки CSV-формата в GDAL/OGR.


== EXAMPLE ==
==Пример==


The following would create raster TIFF file from VRT datasource described in READING COMMA SEPARATED VALUES section using the inverse distance to a power method. Values to interpolate will be read from Z value of geometry record.
В следующем примере создается растровый TIFF file файл из источника данных VRT, описанного в разделе ЧТЕНИЕ ФАЙЛОВ С ДАННЫМИ, РАЗДЕЛЕННЫМИ ЗАПЯТЫМИ с использование метода обратного расстояния. Интерполируемые значения берутся из Z-значений геометрических объектов.


<pre>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</pre>
<pre>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</pre>


The next command does the same thing as the previous one, but reads values to interpolate from the attribute field specified with -zfield option instead of geometry record. So in this case X and Y coordinates are being taken from geometry and Z is being taken from the "Elevation" field. The GDAL_NUM_THREADS is also set to parallelize the computation.
Следующая команда делает то же самое, что и предыдущая, но берет интерполируемые значения из поля, заданного параметром –zfield, а не из геометрии объектов. В этом случае значения координат X и Y берутся из геометрии, а значение Z из поля "Elevation". Параметр GDAL_NUM_THREADS используется для распараллеливания вычислений.  


<pre>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</pre>
<pre>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</pre>
==Общие опции и ключи==
'''--version'''<br />
Выводит версию библиотеки и утилиты после чего завершает работу.
'''--formats'''<br />
Выводит список всех поддерживаемых растровых форматов (для чтения и записи) и после этого завершает работу программы. Поддержка форматов имеет следующую индикацию: 'ro' драйвер только для чтения; 'rw' драйвер с возможностью записи (т.е. поддерживает CreateCopy); 'rw+' драйвер для чтения, записи, модификации (т.е. поддерживает Create). Буква 'v' добавляется к описанию форматов, которые поддерживают virtual IO (/vsimem, /vsigzip, /vsizip и др.). Буква 's' добавляется к описанию форматов, которые поддерживают вложенные наборы данных (subdatasets). Примечание: Форматы для результатов работы gdalwarp должны поддерживать метод Create (отмеченный как rw+), а не только метод CreateCopy.
'''--format формат'''<br />
Выводит детальную информацию об отдельном драйвере. Формат должен быть коротким именем, полученным при помощи ключа --formats, например GTiff.
'''--optfile файл'''<br />
Читает файл и преобразует его содержимое в список опций командной строки. Строки, начинающиеся с символа # игнорируются. Аргументы, содержащие пробелы, должны заключаться в кавычки.
'''--config ключ значение'''<br />
Набор опций, которые применяются в качестве переменных среды. Часть общих опций включает в себя: GDAL_CACHEMAX (использование памяти для кэширования в Мб) и GDAL_DATA (путь до директории с "данными" GDAL). Отдельные драйверы могут конфигурироваться другими опциями.
'''--debug значение'''<br />
Контролирует вывод отладочной информации. Значение ON включает вывод отладочной информации. Значение OFF отключает вывод отладочной информации. Значение, отличное от ранее перечисленных, фильтрует вывод отладочной информации по соответствующему префиксу.
'''--help-general'''<br />
Выводит обобщенную справку об основных опциях командной строки и завершает работу.

Текущая версия от 21:16, 15 марта 2014

Эта страница опубликована в основном списке статей сайта
по адресу 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
Выводит обобщенную справку об основных опциях командной строки и завершает работу.