• 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:WINDOWSsystem32>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:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1appsExample1.1data 定位到你的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:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1appsExample1.1data

      在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:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1apps utorialdata

      

      或者在cmd中输入:ogrinfo -ro -al -where @E:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1appsExample1.1datawhere.txt -sql @E:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1appsExample1.1datasql.txt E:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1apps utorialdata

      这个语句有上面的基础很好理解。文件路径是绝对路径,除非你的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:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1apps utorialdata

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

      

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

        如在cmd中输入:ogrinfo -ro -al -so E:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1apps utorialdata  roads_ugl

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

      

        或者输入:ogrinfo -ro -al -so E:SvnWorkspaceLY_WEB_GISranchesDocumentsms4w-mapserver-for-wimdows elease-1911-x64-gdal-2-3-3-mapserver-7-2-1apps utorialdata  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

     后记

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

      加油各位。

  • 相关阅读:
    MJExtension的使用
    Swift
    2月22号 UITableView
    1月25号 CALayer
    1月22号 animation—1
    1月22号 KVC KVO
    2016.01.22 简单动画
    2016.01.22 KVC&KVO
    2016.01.22 单例模式(Singleton)
    2016.01.21 UITabBarController
  • 原文地址:https://www.cnblogs.com/eshinex/p/10301738.html
Copyright © 2020-2023  润新知