gdal_grid

从分散的数据创建规则网格。

简介

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] [-tr xres yres] [-outsize xsize ysize]
          [-a algorithm[:parameter1=value1]*] [-q]
          <src_datasource> <dst_filename>

描述

此程序从从OGR数据源读取的分散数据创建常规网格(栅格)。输入的数据将被插值以填充网格节点的值,您可以从各种插值方法中选择。

It is possible to set the GDAL_NUM_THREADS configuration option to parallelize the processing. The value to specify is the number of worker threads, or ALL_CPUS to use all the cores/CPUs of the computer.

-ot <type>

强制输出图像带具有驱动程序支持的特定数据类型,该数据类型可以是以下类型之一: ByteUInt16Int16UInt32Int32Float32Float64CInt16CInt32CFloat32CFloat64 .

-of <format>

选择输出格式。从GDAL 2.3开始,如果未指定,则从扩展名猜测格式(以前是GTiff)。使用短格式名称。

-txe <xmin> <xmax>

设置要创建的输出文件的地理参考X范围。

-tye <ymin> <ymax>

设置要创建的输出文件的地理参考Y范围。

-tr <xres> <yres>

设置输出文件分辨率(以目标地理参考单位为单位)。请注意 -tr 与来自的有效输入结合使用 -txe-tye

3.2 新版功能.

-outsize <xsize ysize>

以像素和行为单位设置输出文件的大小。请注意 -outsize 不能与一起使用 -tr

-a_srs <srs_def>

重写输出文件的投影。srs-def>可以是任何常见的GDAL/OGR形式、完整的WKT、PROJ.4、EPSG:n或包含WKT的文件。不做任何谴责。

-zfield <field_name>

标识要用于从中获取Z值的要素上的属性字段。此值将替代从要素几何图形记录中读取的Z值(当然,如果几何图形中有Z值,则无需选择,应指定包含Z值的字段名)。

-z_increase <increase_value>

添加到要用于从中获取Z值的要素的属性字段。加法应与Z值的单位相同。结果值为Z值+Z增加值。默认值为0。

-z_multiply <multiply_value>

这是Z域的乘法比。这可用于从英尺到米或从海拔到深的移动。结果值为(Z值+Z增加值)*Z乘数值。默认值为1。

-a <[algorithm[:parameter1=value1][:parameter2=value2]...]>

设置插值算法或数据度量名称及其(可选)参数。见 Interpolation algorithmsData metrics 进一步讨论可用选项的章节。

-spat <xmin> <ymin> <xmax> <ymax>

添加空间过滤器以仅选择由(xmin,ymin)-(xmax,ymax)描述的边界框中包含的要素。

-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent

添加空间过滤器以仅选择指定边界框(以源SRS表示)、WKT几何图形(多边形或多多边形)、数据源中包含的要素或 -spat 如果使用 spat_extent 关键字。在指定数据源时,您通常希望将其与 -clipsrclayer-clipsrcwhere-clipsrcsql 选项。

-clipsrcsql <sql_statement>

改用SQL查询选择所需的几何图形。

-clipsrclayer <layername>

从源剪辑数据源中选择命名层。

-clipsrcwhere <expression>

基于属性查询限制所需的几何图形。

-l <layername>

指示将用于输入功能的数据源中的层。可以多次指定,但至少有一个图层名或 -sql 必须指定选项。

-where <expression>

一个可选的SQL,其中应用样式查询表达式以从输入层选择要处理的要素。

-sql <select_statement>

对数据源求值以生成要处理的功能的虚拟层的SQL语句。

-co <NAME=VALUE>

许多格式都有一个或多个可选的创建选项,可用于控制所创建文件的详细信息。例如,GeoTIFF驱动程序支持创建选项来控制压缩,以及是否应该平铺文件。

可用的创建选项因格式驱动程序而异,有些简单格式根本没有创建选项。格式支持的选项列表可以与 --formats 命令行选项,但该格式的文档是有关驱动程序创建选项的最终信息源。见 栅格驱动器 每种格式的法律创建选项的特定格式文档。

-q

抑制进度监视器和其他非错误输出。

<src_datasource>

任何OGR支持的可读数据源。

<dst_filename>

GDAL支持的输出文件。

插值算法

有许多插值算法可供选择。

有关它们的更多详细信息,请参阅 GDAL Grid 教程

投资分布

与一种力量相反的距离。这是默认算法。它有以下参数:

  • power :加权功率(默认值2.0)。

  • smoothing :平滑参数(默认为0.0)。

  • radius1 :搜索椭圆的第一个半径(如果旋转角度为0,则为X轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • radius2 :搜索椭圆的第二个半径(如果旋转角度为0,则为Y轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • angle :以度为单位的搜索椭圆旋转角度(逆时针,默认为0.0)。

  • max_points :要使用的最大数据点数。不要搜索超过此数字的点。仅当设置了“搜索椭圆”(两个半径均为非零)时才使用此选项。零表示应使用所有找到的点。默认值为0。

  • min_points :要使用的数据点的最小数目。如果找到的点数较少,则网格节点被视为空,并将填充NODATA标记。仅当设置了“搜索椭圆”(两个半径均为非零)时才使用此选项。默认值为0。

  • nodata :NODATA标记以填充空点(默认值为0.0)。

invdistnn公司

2.1 新版功能.

与最近邻搜索的幂反比距离,当使用最大值点时是理想的。它有以下参数:

  • power :加权功率(默认值2.0)。

  • smoothing :平滑参数(默认为0.0)。

  • radius :搜索圆的半径,该半径应为非零。默认值为1.0。

  • max_points :要使用的最大数据点数。不要搜索超过此数字的点。加权时,发现的点将从最近点到最远点进行排序。默认值为12。

  • min_points :要使用的数据点的最小数目。如果找到的点数较少,则网格节点被视为空,并将填充NODATA标记。默认值为0。

  • nodata :NODATA标记以填充空点(默认值为0.0)。

平均的

移动平均算法。它有以下参数:

  • radius1 :搜索椭圆的第一个半径(如果旋转角度为0,则为X轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • radius2 :搜索椭圆的第二个半径(如果旋转角度为0,则为Y轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • angle :以度为单位的搜索椭圆旋转角度(逆时针,默认为0.0)。

  • min_points :要使用的数据点的最小数目。如果找到的点数较少,则网格节点被视为空,并将填充NODATA标记。默认值为0。

  • nodata :NODATA标记以填充空点(默认值为0.0)。

注意,在移动平均法中,搜索椭圆的设置是必不可少的。它是计算网格节点值时平均化的窗口。

最近的

最近邻算法。它有以下参数:

  • radius1 :搜索椭圆的第一个半径(如果旋转角度为0,则为X轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • radius2 :搜索椭圆的第二个半径(如果旋转角度为0,则为Y轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • angle :以度为单位的搜索椭圆旋转角度(逆时针,默认为0.0)。

  • nodata :NODATA标记以填充空点(默认值为0.0)。

线性的

2.1 新版功能.

线性插值算法。

线性方法通过计算点云的Delaunay三角剖分,找出三角剖分中的三角形,并从三角形内的重心坐标进行线性插值来执行线性插值。如果点不在任何三角形中,则算法将使用最近点的值或nodata值,具体取决于半径。

它有以下参数:

  • radius :如果要插值的点不适合Delaunay三角测量的三角形,则使用该最大距离搜索最近的邻居,否则使用nodata。如果设置为-1,则搜索距离是无限的。如果设置为0,将始终使用nodata值。默认值为-1。

  • nodata :NODATA标记以填充空点(默认值为0.0)。

数据度量法

除了插值功能外,还可以使用ref gdal_grid使用指定的窗口和输出网格几何图形计算一些数据度量。这些指标包括:

  • minimum :在网格节点搜索椭圆中找到最小值。

  • maximum :在网格节点搜索椭圆中找到最大值。

  • range :网格节点搜索椭圆中的最小值和最大值之间的差异。

  • count :在网格节点搜索椭圆中找到多个数据点。

  • average_distance :网格节点(搜索椭圆的中心)与网格节点搜索椭圆中找到的所有数据点之间的平均距离。

  • average_distance_pts :在网格节点搜索椭圆中找到的数据点之间的平均距离。计算椭圆内每对点之间的距离,并将所有距离的平均值设置为网格节点值。

所有指标都有相同的选项集:

  • radius1 :搜索椭圆的第一个半径(如果旋转角度为0,则为X轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • radius2 :搜索椭圆的第二个半径(如果旋转角度为0,则为Y轴)。将此参数设置为零以使用整点数组。默认值为0.0。

  • angle :以度为单位的搜索椭圆旋转角度(逆时针,默认为0.0)。

  • min_points :要使用的数据点的最小数目。如果找到的点数较少,则网格节点被视为空,并将填充NODATA标记。仅当设置了“搜索椭圆”(两个半径均为非零)时才使用此选项。默认值为0。

  • nodata :NODATA标记以填充空点(默认值为0.0)。

读取逗号分隔值

通常,您有一个文本文件,其中包含要使用的逗号分隔的XYZ值列表(所谓的CSV文件)。您可以在网格中轻松使用这种数据源。您只需要为CSV文件创建一个虚拟数据集头(VRT),并将其用作ref gdal_grid的输入数据源。有关VRT格式的详细信息,请访问 VRT—虚拟格式 说明页。

这里有一个小例子。让我们有一个名为<i>dem.CSV>的CSV文件,其中包含

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

对于上述数据,我们将创建具有以下内容的<i>dem.vrt>标题:

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

此说明指定了具有三个坐标X、Y和Z的所谓2.5D几何体。插值将使用Z值。现在,您可以对所有OGR程序使用<i>dem.vrt>(从ref ogrinfo开始测试是否一切正常)。数据源将包含名为<i>“dem”>的单层,其中填充了由CSV文件中的值构造的点特征。使用此技术,您可以处理具有三列以上、切换列等的CSV文件。

如果CSV文件不包含列标题,则可以按以下方式处理:

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

这个 Comma Separated Value (.csv) 描述页包含GDAL/OGR支持的CSV格式的详细信息。

计算机辅助编程接口

此实用程序也可以通过 GDALGrid() .

实例

下面将从中描述的VRT数据源创建栅格TIFF文件 Reading comma separated values 使用与幂法相反距离的截面。要插值的值将从几何记录的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

下一个命令执行与上一个命令相同的操作,但从用<b>-zfield</b>选项指定的属性字段(而不是几何记录)读取要插值的值。因此,在这种情况下,X和Y坐标是从几何学中获取的,Z坐标是从<i>“Elevation”>字段中获取的。GDAL_NUM_线程也被设置为并行计算。

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