gdal命令实操专题——ogrinfo命令(转)

 

GDAL——命令使用专题——ogrinfo命令

前言

GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。

 

OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。

 

这一篇就讲讲常见的CDAL相关命令操作,使用好GDAL的相关命令,能够让你事半功倍。有人会说,现在都可视化操作了,还用啥命令。但是当你的机器性能比较低,或者说你在无界面华的操作系统下工作,那么命令就非常有用了,如:Linux等。

 

主要针对:ogrinfo命令gdalinfo命令gdalsrsinfo命令gdallocationinfo命令gdal_translate命令gdaltransform命令 等。这一节讨论ogrinfo命令。

 

软件环境:在上次安装MapServer中,定义环境变量安装。详见《MapServer Configuring with IIS》。

 

 

 

GDAL通用、常规、多用途命令

 

在cmd中输入:ogrinfo —help-general 或者 gdalinfo —help-general

Generic GDAL utility command options:
  —version: report version of GDAL in use.
  —license: report GDAL license info.
  —formats: report all configured format drivers.
  —format [format]: details of one format.
  —optfile filename: expand an option file into the argument list.
  —config key value: set system configuration option.
  —debug [on/off/value]: set debug level.
  —pause: wait for user input, time to attach debugger
  —locale [locale]: install locale for debugging (i.e. en_US.UTF-8)
  —help-general: report detailed help on general options.

以上列表中的相关命令为通用命令。

通用命令的部分详细使用见ogrinfo命令中的相关部分。

 

ogrinfo命令

用途:列出OGR所支持的数据信息。

官网:https://gdal.org/ogrinfo.html

数据类型:OGR支持的数据类型

在cmd中输入:ogrinfo —formats

数据应用类型数据类型操作权限说明
 netCDF-raster,vector-(rw+s) Network Common Data Format
 AmigoCloud-vector-(rw+) AmigoCloud
 OCI-vector-(rw+) Oracle Spatial
 PCIDSK-raster,vector-(rw+v) PCIDSK Database File
 JP2OpenJPEG-raster,vector-(rwv) JPEG-2000 driver based on OpenJPEG library
 PDF-raster,vector-(rw+vs) Geospatial PDF
 MBTiles-raster,vector-(rw+v) MBTiles
 DB2ODBC-raster,vector-(rw+) IBM DB2 Spatial Database
 ESRI Shapefile-vector-(rw+v) ESRI Shapefile
 MapInfo File-vector-(rw+v) MapInfo File
 UK .NTF-vector-(rov) UK .NTF
 OGR_SDTS-vector-(rov) SDTS
 S57-vector-(rw+v) IHO S-57 (ENC)
 DGN-vector-(rw+v) Microstation DGN
 OGR_VRT-vector-(rov) VRT - Virtual Datasource
 REC-vector-(ro) EPIInfo .REC
 Memory-vector-(rw+) Memory
 BNA-vector-(rw+v) Atlas BNA
 CSV-vector-(rw+v) Comma Separated Value (.csv)
 NAS-vector-(rov) NAS-ALKIS
 GML-vector-(rw+v) Geography Markup Language (GML)
 GPX-vector-(rw+v) GPX
 LIBKML-vector-(rw+v) Keyhole Markup Language (LIBKML)
 KML-vector-(rw+v) Keyhole Markup Language (KML)
 GeoJSON-vector-(rw+v) GeoJSON
 ESRIJSON-vector-(rov) ESRIJSON
 TopoJSON-vector-(rov) TopoJSON
 Interlis 1-vector-(rw+v) Interlis 1
 Interlis 2-vector-(rw+v) Interlis 2
 OGR_GMT-vector-(rw+v) GMT ASCII Vectors (.gmt)
 GPKG-raster,vector-(rw+vs) GeoPackage
 SQLite-vector-(rw+v) SQLite / Spatialite
 ODBC-vector-(rw+) ODBC
 WAsP-vector-(rw+v) WAsP .map format
 PGeo-vector-(ro) ESRI Personal GeoDatabase
 MSSQLSpatial-vector-(rw+) Microsoft SQL Server Spatial Database
 PostgreSQL-vector-(rw+) PostgreSQL/PostGIS
 MySQL-vector-(rw+) MySQL
 OpenFileGDB-vector-(rov) ESRI FileGDB
 XPlane-vector-(rov) X-Plane/Flightgear aeronautical data
 DXF-vector-(rw+v) AutoCAD DXF
 CAD-raster,vector-(rovs) AutoCAD Driver
 Geoconcept-vector-(rw+v) Geoconcept
 GeoRSS-vector-(rw+v) GeoRSS
 GPSTrackMaker-vector-(rw+v) GPSTrackMaker
 VFK-vector-(ro) Czech Cadastral Exchange Data Format
 PGDUMP-vector-(w+v) PostgreSQL SQL dump
 OSM-vector-(rov) OpenStreetMap XML and PBF
 GPSBabel-vector-(rw+) GPSBabel
 SUA-vector-(rov) Tim Newport-Peace’s Special Use Airspace Format
 OpenAir-vector-(rov) OpenAir
 OGR_PDS-vector-(rov) Planetary Data Systems TABLE
 WFS-vector-(rov) OGC WFS (Web Feature Service)
 WFS3-vector-(ro) OGC WFS 3 client (Web Feature Service)
 HTF-vector-(rov) Hydrographic Transfer Vector
 AeronavFAA-vector-(rov) Aeronav FAA
 Geomedia-vector-(ro) Geomedia .mdb
 EDIGEO-vector-(rov) French EDIGEO exchange format
 GFT-vector-(rw+) Google Fusion Tables
 SVG-vector-(rov) Scalable Vector Graphics
 CouchDB-vector-(rw+) CouchDB / GeoCouch
 Cloudant-vector-(rw+) Cloudant / CouchDB
 Idrisi-vector-(rov) Idrisi Vector (.vct)
 ARCGEN-vector-(rov) Arc/Info Generate
 SEGUKOOA-vector-(rov) SEG-P1 / UKOOA P1/90
 SEGY-vector-(rov) SEG-Y
 ODS-vector-(rw+v) Open Document/ LibreOffice / OpenOffice Spreadsheet
 XLSX-vector-(rw+v) MS Office Open XML spreadsheet
 ElasticSearch-vector-(rw+) Elastic Search
 Walk-vector-(ro) Walk
 Carto-vector-(rw+) Carto
 SXF-vector-(rov) Storage and eXchange Format
 Selafin-vector-(rw+v) Selafin
 JML-vector-(rw+v) OpenJUMP JML
 PLSCENES-raster,vector-(ro) Planet Labs Scenes API
 CSW-vector-(ro) OGC CSW (Catalog - Service for the Web)
 VDV-vector-(rw+v) VDV-451/VDV-452/INTREST Data Format
 GMLAS-vector-(rwv) Geography Markup Language (GML) driven by application schemas
 MVT-vector-(rw+v) Mapbox Vector Tiles
 TIGER-vector-(rw+v) U.S. Census TIGER/Line
 AVCBin-vector-(rov) Arc/Info Binary Coverage
 AVCE00-vector-(rov) Arc/Info E00 (ASCII) Coverage
 HTTP-raster,vector-(ro) HTTP Fetching Wrapper

说明:

  • raster:表示栅格数据
  • vector:表示矢量数据
  • ro:表示只读(’ro’ is read-only driver)
  • rw:读、写以及复制(read or write (i.e. supports CreateCopy))
  • rw+:读、写以及更新(read, write and update (i.e. supports Create)read, write and update (i.e. supports Create))
  • v:虚拟读写(appended for formats supporting virtual IO (/vsimem, /vsigzip, /vsizip, etc))
  • s:数据子集(appended for formats supporting subdatasets)
     

用法:

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]
        datasource_name [layer [layer ...]]
 

ogrinfo —help-general

 

cmd输入:ogrinfo —help-general

用于获取CDAL相关命令的通用支持

C:\WINDOWS\system32>ogrinfo —help-general #CDAL多用途命令,通用命令
Generic GDAL utility command options:
  —version: report version of GDAL in use. #查看版本信息
  —license: report GDAL license info. #查看许可信息
  —formats: report all configured format drivers.   #查看支持的驱动应用,详情可查看:https://gdal.org/ogr_formats.html
  —format [format]: details of one format. #查看某一格式支持的详细信息 ,如:ogrinfo —format “ESRI Shapefile”。注意,在ogrinfo —formats列表中的文件名称,如果名称含空格,则必须用双引号查询 。
  —optfile filename: expand an option file into the argument list. #执行操作文件中的命令,想见:—optfile
  —config key value: set system configuration option. #全局变量配置
  —debug [on/off/value]: set debug level. #设置代开,关闭DEBUG,或者DEBUG的级别
  —pause: wait for user input, time to attach debugger #在进行调试的时候,等待用户输入
  —locale [locale]: install locale for debugging (i.e. en_US.UTF-8)        #调试本地化安装
  —help-general: report detailed help on general options  

ogrinfo —optfile操作

在你的shape文件所在文件夹下面新建“states_ugl.opt(名字可以任意取,后缀名也可以是txt)”文件。

states_ugl.opt文件中的内容为:-ro -al -so -rl

在cmd中输入:cd /d E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\Example1.1\data 定位到你的shape文件实际路径。

 

在cmd中输入:ogrinfo —optfile states_ugl.opt states_ugl.shp

通常这样做事为了执行一些比较连贯和复杂的操作。

 

—config

GDAL的运行时配置选项,与构建时配置脚本的选项不同。运行时配置选项适用于所有平台,并在运行时进行评估。它们可以通过编程、命令行开关或用户在环境中设置。

配置选项通常用于更改gdal和ogr驱动程序的默认行为,在某些情况下还用于更改gdal和ogr核心。它们本质上是用户可以设置的全局变量。

—config命令格式为: —config key value 来设置的。详见:https://trac.osgeo.org/gdal/wiki/ConfigOptions

 

下面以SHAPE_RESTORE_SHX来讲解如何使用。

 

首先打开你存放shape文件目录,把shx文件删除掉,如下图:

 

然后再cmd中输入:cd /d E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\Example1.1\data

在cmd中输入:ogrinfo —config SHAPE_RESTORE_SHX YES states_ugl.shp

 

 

文件创建成功。

ogrinfo —config SHAPE_RESTORE_SHX YES states_ugl.shp 表示:在打开shp文件时,如果没有shx文件,则尝试创建。

 

其他操作不一一讨论,明白格式以及在实际需求中会使用就好。

—debug

设置debug级别,值为on、off、0或1

如:ogrinfo db.sqlite —debug on

—pause

在进行调试的时候,等待用户输入。

—locale

调试本地化安装,如:en_US.UTF-8

以上是GDAL的一些通用命令使用方法,下面针对ogrinfo特有命令做相关介绍。

ogrinfo常用命令

-ro:read only,以只读形式打开文件

-al:all layer,获取所有layer的特征信息。如在cmd中输入:ogrinfo -ro -al states_ugl.shp,可看到下图:

 

其所有特征字段信息数据均会展现出来。

-rl:random layer,在GDAL2.2版本开始使用,表示启用随机读取模式,即按在数据集中找到的顺序迭代特性,而不是按每层迭代特性。对于像OSM、GMLAS等格式文件读取速度回快很多。

-so:summary only,仅显示摘要信息:显示部分字段类型信息,仅显示投影、架构、功能计数和范围等摘要信息。如在cmd中输入:ogrinfo -ro -al -so states_ugl.shp

 

 

-q:quite,显示主要信息,包括坐标系、层模式、范围和功能计数(但是个人觉得没这么多,只有:图层数量,名称,层模式,可能是我的shp文件问题)。在cmd中输入:ogrinfo -q states_ugl.shp

#输入
ogrinfo -ro  -q states_ugl.shp
#输出
1: states_ugl (Polygon)  

-where:类似sql语句查询,只对shape文件的属性进行匹配查询。如在cmd中输入:ogrinfo -ro -al -so -where CLASS=’land’ states_ugl.shp

 

或者通过导入文件的方式执行where查询(GDAL2.1版本以后才支持)

在数据源文件夹中创建一个where.txt文件,内容为CLASS=’water’,然后在cmd中运行:ogrinfo -ro -al -so -where @where.txt shates_ugl.shp

 

-sql:类似sql语句查询,同时支持单独指定sql文件(.txt、.sql都可以)。

如在cmd中输入:ogrinfo -ro -al -so -sql “SELECT CLASS,STATE FROM states_ugl”  E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\tutorial\data

 

 或者在cmd中输入:ogrinfo -ro -al -where @E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\Example1.1\data\where.txt -sql @E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\Example1.1\data\sql.txt E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\tutorial\data
 

这个语句有上面的基础很好理解。文件路径是绝对路径,除非你的cmd命令定位的数据源文件夹中存在sql过滤文件和where过滤文件。

 

 

-dialect:ogr版本sql语句。不大了解,标准sql语句也能使用,而且官网说性能地下。同时,sqlite支持的sql语句都能使用,所以使用通用sql语句就好,不做进一步的尝试与讲解。

 

-spat xmin ymin xmax ymax:根据数据范围过滤。

在cmd中输入:ogrinfo -ro -al -so states_ugl.shp 可以查看其数据范围为“ (-97.238976, 41.619778) - (-82.122902, 49.385620) ” ,上图有。

在cmd中输入:ogrinfo -ro -al -so -spat -90 42 -82 45 states_ugl.shp

 

 

-geomfield field:

-fid:OGR支持的一个特殊过滤字段,fid。可以在 -where 中使用,如: -where “fid in (200,201,202)”

 

在cmd中输入:ogrinfo -ro -al -where “fid in (200,201,202)” states_ugl.shp

 

 

-fields={YES/NO}:设置是否显示字段数据,如果是YES,显示字段数据信息,如果为NO,不显示。默认YES。

在cmd中输入:ogrinfo -ro -al -fields=NO states_ugl.shp

 

-geom={YES/NO/SUMMARY/WKT/ISO_WKT}:用于控制字段数据、几何图形的POLYGON数据显示以及输出(GDAL2.1版本的默认格式ISO_WKT)。

YES:默认值,全部显示,显示格式为OGC WKT格式输出。

NO:不显示POLYGON数据

如在cmd中输入:ogrinfo -ro -al -gemo=NO states_ugl.shp

SUMMARY:显示简要数据,但是多了点的个数

 

设置为WKT、ISO_WKT效果通YES。WKT处其实显示的是坐标信息。

-oo NAME=VALUE:数据集打开操作项。

有点类似 —config KEY VALUE。只是-00 NAME=VALUE 是 名称=值。表达方式不一样。

 
#data.json的定义
{
  “type”: “FeatureCollection”,
  “features”:
  [
    {
      “type”: “Feature”,
      “geometry”: {
        “type”: “Point”,
        “coordinates”: [ 2, 49 ]
      },
      “properties”: {
        “a_property”: “foo”,
        “some_object”: {
          “a_property”: 1,
          “another_property”: 2
        }
      }
    }
  ]
}

然后在cmd中输入:

ogrinfo data.json -al -oo FLATTEN_NESTED_ATTRIBUTES=yes

  可以看到如下转换:

INFO: Open of `data.json'
      using driver `GeoJSON' successful.

Layer name: data
Geometry: Point
Feature Count: 1
Extent: (2.000000, 49.000000) - (2.000000, 49.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"]]
a_property: String (0.0)
some_object_a_property: Integer (0.0)
some_object_another_property: Integer (0.0)
OGRFeature(data):0
  a_property (String) = foo
  some_object_a_property (Integer) = 1
  some_object_another_property (Integer) = 2
  POINT (2 49)

 

-nomd:阻止元数据打印。有些数据集可能包含许多元数据字符串。

 

-listmdd:列出所有的元数据。

 

-nomd 和 -listmdd 都是针对元数据的。

#metadata 元数据
Metadata:
  DBF_DATE_LAST_UPDATE=2002-03-07

#在states_ugl.shp 文件查看的时候,你们会发现有这了数据。
#-nomd不显示这条
#默认显示, -listmdd显示有所的。  

-mdd domain:从指定的域显示元数据。all可以显示所有域的元数据。

-nocount:没有Feature数量,即图形要素数量Feature Count: 204

-noextent:不输出空间范围。即没有 Extent: (-97.238976, 41.619778) - (-82.122902, 49.385620)

—formats:列出OGR支持的数据格式。上面讲过。

datasource_name:表示数据源、或者多个数据源文件所在目录、或者其他定义的全局虚拟名称。查看:https://gdal.org/ogr_formats.html 此网页,了解OGR支持的数据格式。

如:在cmd中知己输入(不定位到数据所在文件夹):ogrinfo -ro -al -so E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\tutorial\data

会罗列出当前文件下下面所有可以打开的数据文件的信息。

 

layer:获取请求图层数据信息。

如在cmd中输入:ogrinfo -ro -al -so E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\tutorial\data  roads_ugl

则是显示图层名称为roads_ugl的数据信息

 

或者输入:ogrinfo -ro -al -so E:\SvnWorkspace\LY_WEB_GIS\branches\Documents\ms4w-mapserver-for-wimdows\release-1911-x64-gdal-2-3-3-mapserver-7-2-1\apps\tutorial\data  roads_ugl states_ugl

 

其他命令官网

如果想学习而不等待博客更新,可以先上官网看看。

gdalinfo命令

官网:https://gdal.org/gdalinfo.html

dalsrsinfo命令

官网:https://gdal.org/gdalsrsinfo.html

gdallocationinfo命令

官网:https://gdal.org/gdallocationinfo.html

gdal_translate命令

官网:https://gdal.org/gdal_translate.html

gdaltransform命令

官网:https://gdal.org/gdaltransform.html

 后记

 

写得很累,每个命令的作用,效果,一步一步的操作基本都写得非常详细。但是这是个学习的过程。行者无疆,让前面的人累点吧!毕竟也没人指导,百度下的资料也是很稀缺的。要么就是个大纲一样。要么就是让人不知所云。

加油各位。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值