ogrinfo

列出有关OGR支持的数据源的信息。使用SQL语句还可以编辑数据。

简介

ogrinfo [--help-general] [-ro] [-q] [-where restricted_where|@filename]
        [-spat xmin ymin xmax ymax] [-geomfield field] [-fid fid]
        [-sql statement|@filename] [-dialect dialect] [-al] [-rl] [-so] [-fields={YES/NO}]
        [-geom={YES/NO/SUMMARY/WKT/ISO_WKT}] [--formats] [[-oo NAME=VALUE] ...]
        [-nomd] [-listmdd] [-mdd domain|`all`]*
        [-nocount] [-noextent] [-nogeomtype] [-wkt_format WKT1|WKT2|...]
        [-fielddomain name]
        <datasource_name> [<layer> [<layer> ...]]

描述

这个 ogrinfo 程序将有关OGR支持的数据源的各种信息列出给stdout(终端)。通过执行SQL语句,还可以编辑数据。

-ro

以只读模式打开数据源。

-al

列出所有图层的所有特征(使用而不必将图层名称作为参数)。

-rl

启用随机层读取模式,即按在数据集中找到的顺序对要素进行迭代,而不是每层迭代。对于某些格式(例如OSM、GMLAS),这可能会大大加快速度。

2.2 新版功能.

-so

仅摘要:不显示单个要素的列表,只显示投影、模式、要素计数和范围等摘要信息。

-q

安静详细地报告各种信息,包括坐标系、图层模式、范围和要素计数。

-where <restricted_where>

SQL中使用的查询的受限形式的属性查询 WHERE 陈述。将只报告与属性查询匹配的功能。从GDAL 2.1开始 \filename 语法可用于指示内容位于指向的文件名中。

-sql <statement>

执行指定的SQL语句并返回结果。从GDAL 2.1开始 @filename 语法可用于指示内容位于指向的文件名中。还可以使用SQL插入、更新、删除、删除表、更改表等编辑数据。编辑功能取决于所选的 dialect .

-dialect <dialect>

SQL方言。在某些情况下可以使用(未优化) OGR-SQL方言 而不是通过传递 OGRSQL 方言价值。这个 SQL SQLite方言 方言可以用 SQLITEINDIRECT_SQLITE 方言值,这可以用于任何数据源。

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

感兴趣的领域。只报告矩形内的特征。

-geomfield <field>

空间过滤器操作的几何体字段的名称。

-fid <fid>

如果提供,则只报告具有此功能id的功能。不包括空间或属性查询。注意:如果要根据特征id选择多个特征,还可以使用“fid”是OGR SQL识别的特殊字段这一事实。所以, -where "fid in (1,3,5)" 将选择功能1、3和5。

-fields YES|NO:

如果设置为 NO ,功能转储将不显示字段值。默认值为 YES .

-fielddomain <domain_name>

3.3 新版功能.

Display details about a field domain.

-geom YES|NO|SUMMARY|WKT|ISO_WKT

如果设置为 NO ,功能转储将不显示几何图形。如果设置为 SUMMARY ,将仅显示几何图形的摘要。如果设置为 YESISO_WKT ,几何图形将以完整的OGC WKT格式报告。如果设置为 WKT 几何图形将在legacy中报告 WKT . 默认值为 YES . (周和 ISO_WKT 可从GDAL 2.1开始使用,该版本还将默认设置更改为ISO WKT)

-oo NAME=VALUE

数据集打开选项(特定于格式)

-nomd

取消元数据打印。某些数据集可能包含大量元数据字符串。

-listmdd

列出数据集可用的所有元数据域。

-mdd <domain>

报告指定域的元数据。 all 可用于报告所有域中的元数据。

-nocount

禁止打印特征计数。

-noextent

禁止空间范围打印。

-nogeomtype

禁止图层几何图形类型打印。

3.1 新版功能.

--formats

列出已启用的格式驱动程序。

-wkt_format <format>

用于显示SRS的WKT格式。当前支持的 format 是:

WKT1

WKT2 (WKT最新版本,目前 WKT2_2018

WKT2_2015

WKT2_2018

3.0.0 新版功能.

<datasource_name>

要打开的数据源。可以是文件名、目录或其他虚拟名称。有关支持的数据源,请参阅OGR矢量格式列表。

<layer>

可以报告一个或多个图层名。如果没有传递层名称,则ogrinfo将报告可用层的列表(及其全层几何类型)。如果指定了图层名,则它们的范围、坐标系、要素计数、几何类型、模式和所有与查询参数匹配的要素都将报告给终端。如果未提供查询参数,则报告所有功能。

几何图形以OGC WKT格式报告。

实例

报告NTF文件中图层名称的示例:

ogrinfo wrk/SHETLAND_ISLANDS.NTF

# INFO: Open of `wrk/SHETLAND_ISLANDS.NTF'
# using driver `UK .NTF' successful.
# 1: BL2000_LINK (Line String)
# 2: BL2000_POLY (None)
# 3: BL2000_COLLECTIONS (None)
# 4: FEATURE_CLASSES (None)

检索摘要的示例 (-so )不显示每个要素的详细信息的图层:

ogrinfo \
  -so \
  natural_earth_vector.gpkg \
  ne_10m_admin_0_antarctic_claim_limit_lines

  # INFO: Open of `natural_earth_vector.gpkg'
  #      using driver `GPKG' successful.

  # Layer name: ne_10m_admin_0_antarctic_claim_limit_lines
  # Geometry: Line String
  # Feature Count: 23
  # Extent: (-150.000000, -90.000000) - (160.100000, -60.000000)
  # Layer SRS WKT:
  # GEOGCS["WGS 84",
  #     DATUM["WGS_1984",
  #         SPHEROID["WGS 84",6378137,298.257223563,
  #             AUTHORITY["EPSG","7030"]],
  #         AUTHORITY["EPSG","6326"]],
  #     PRIMEM["Greenwich",0,
  #         AUTHORITY["EPSG","8901"]],
  #     UNIT["degree",0.0174532925199433,
  #         AUTHORITY["EPSG","9122"]],
  #     AUTHORITY["EPSG","4326"]]
  # FID Column = fid
  # Geometry Column = geom
  # type: String (15.0)
  # scalerank: Integer (0.0)
  # featurecla: String (50.0)

使用属性查询限制图层中要素的输出的示例:

ogrinfo -ro \
    -where 'GLOBAL_LINK_ID=185878' \
    wrk/SHETLAND_ISLANDS.NTF BL2000_LINK

# INFO: Open of `wrk/SHETLAND_ISLANDS.NTF'
# using driver `UK .NTF' successful.
#
# Layer name: BL2000_LINK
# Geometry: Line String
# Feature Count: 1
# Extent: (419794.100000, 1069031.000000) - (419927.900000, 1069153.500000)
# Layer SRS WKT:
# PROJCS["OSGB 1936 / British National Grid",
# GEOGCS["OSGB 1936",
# DATUM["OSGB_1936",
# SPHEROID["Airy 1830",6377563.396,299.3249646]],
# PRIMEM["Greenwich",0],
# UNIT["degree",0.0174532925199433]],
# PROJECTION["Transverse_Mercator"],
# PARAMETER["latitude_of_origin",49],
# PARAMETER["central_meridian",-2],
# PARAMETER["scale_factor",0.999601272],
# PARAMETER["false_easting",400000],
# PARAMETER["false_northing",-100000],
# UNIT["metre",1]]
# LINE_ID: Integer (6.0)
# GEOM_ID: Integer (6.0)
# FEAT_CODE: String (4.0)
# GLOBAL_LINK_ID: Integer (10.0)
# TILE_REF: String (10.0)
# OGRFeature(BL2000_LINK):2
# LINE_ID (Integer) = 2
# GEOM_ID (Integer) = 2
# FEAT_CODE (String) = (null)
# GLOBAL_LINK_ID (Integer) = 185878
# TILE_REF (String) = SHETLAND I
# LINESTRING (419832.100 1069046.300,419820.100 1069043.800,419808.300
# 1069048.800,419805.100 1069046.000,419805.000 1069040.600,419809.400
# 1069037.400,419827.400 1069035.600,419842 1069031,419859.000
# 1069032.800,419879.500 1069049.500,419886.700 1069061.400,419890.100
# 1069070.500,419890.900 1069081.800,419896.500 1069086.800,419898.400
# 1069092.900,419896.700 1069094.800,419892.500 1069094.300,419878.100
# 1069085.600,419875.400 1069087.300,419875.100 1069091.100,419872.200
# 1069094.600,419890.400 1069106.400,419907.600 1069112.800,419924.600
# 1069133.800,419927.900 1069146.300,419927.600 1069152.400,419922.600
# 1069153.500,419917.100 1069153.500,419911.500 1069153.000,419908.700
# 1069152.500,419903.400 1069150.800,419898.800 1069149.400,419894.800
# 1069149.300,419890.700 1069149.400,419890.600 1069149.400,419880.800
# 1069149.800,419876.900 1069148.900,419873.100 1069147.500,419870.200
# 1069146.400,419862.100 1069143.000,419860 1069142,419854.900
# 1069138.600,419850 1069135,419848.800 1069134.100,419843
# 1069130,419836.200 1069127.600,419824.600 1069123.800,419820.200
# 1069126.900,419815.500 1069126.900,419808.200 1069116.500,419798.700
# 1069117.600,419794.100 1069115.100,419796.300 1069109.100,419801.800
# 1069106.800,419805.000  1069107.300)

使用SQLite方言用SQL更新shapefile中属性值的示例:

ogrinfo test.shp -dialect sqlite -sql "update test set attr='bar' where attr='foo'"