在文件格式之间转换简单要素数据。

概要

ogr2ogr [--help-general] [-skipfailures] [-append] [-update][-select field_list] [-where restricted_where|\@filename][-progress] [-sql <sql statement>|\@filename] [-dialect dialect][-preserve_fid] [-fid FID] [-limit nb_features][-spat xmin ymin xmax ymax] [-spat_srs srs_def] [-geomfield field][-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def] [-ct string][-f format_name] [-overwrite] [[-dsco NAME=VALUE] ...]dst_datasource_name src_datasource_name[-lco NAME=VALUE] [-nln name][-nlt type|PROMOTE_TO_MULTI|CONVERT_TO_LINEAR|CONVERT_TO_CURVE][-dim XY|XYZ|XYM|XYZM|2|3|layer_dim] [layer [layer ...]]# Advanced options[-gt n][[-oo NAME=VALUE] ...] [[-doo NAME=VALUE] ...][-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent][-clipsrcsql sql_statement] [-clipsrclayer layer][-clipsrcwhere expression][-clipdst [xmin ymin xmax ymax]|WKT|datasource][-clipdstsql sql_statement] [-clipdstlayer layer][-clipdstwhere expression][-wrapdateline] [-datelineoffset val][[-simplify tolerance] | [-segmentize max_dist]][-makevalid][-addfields] [-unsetFid][-relaxedFieldNameMatch] [-forceNullable] [-unsetDefault][-fieldTypeToString All|(type1[,type2]*)] [-unsetFieldWidth][-mapFieldType type1|All=type2[,type3=type4]*][-fieldmap identity | index1[,index2]*][-splitlistfields] [-maxsubfields val][-explodecollections] [-zfield field_name][-gcp ungeoref_x ungeoref_y georef_x georef_y [elevation]]* [-order n | -tps][-nomd] [-mo "META-TAG=VALUE"]* [-noNativeData]

描述

ogr2ogr可用于在文件格式之间转换简单要素数据。它还可以在此过程中执行各种操作,例如空间或属性选择,减少属性集,设置输出坐标系甚至在转换过程中重新投影要素。

-f <format_name>

输出文件格式的名称,例如,, 。从GDAL 2.3开始,如果未指定,则从扩展名猜测格式(以前是ESRI Shapefile)。ESRI ShapefileMapInfo FilePostgreSQL

-append

附加到现有图层,而不是创建新图层

-overwrite

删除输出图层并重新创建为空

-update

在更新模式下打开现有的输出数据源,而不是尝试创建一个新的数据源

-select <field_list>

输入层中要复制到新层的字段的逗号分隔列表。即使输入层具有重复的字段名称,如果列表中先前已提及,也会跳过该字段。(默认为all;如果找到具有相同名称的后续字段,则将跳过任何字段。)也可以在列表中指定几何字段。

请注意,此设置不能与一起使用-append。要在添加到图层时控制字段的选择,请使用-fieldmap-sql

-progress

在终端上显示进度。仅在输入图层具有“快速要素计数”功能时才有效。

-sql <sql_statement>

要执行的SQL语句。结果表/层将保存到输出中。从GDAL 2.1开始,该@filename语法可用于指示内容位于指向的文件名中。

-dialect <dialect>

SQL方言。在某些情况下,可以通过传递OGRSQL来使用(未优化的)OGR SQL代替RDBMS的本机SQL。“ SQLITE”方言也可以与任何数据源一起使用。

-where restricted_where

属性查询(如SQL WHERE)。从GDAL 2.1开始,该@filename 语法可用于指示内容位于指向的文件名中。

-skipfailures

失败后继续,跳过失败的功能。

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

空间查询范围,在源层(或用指定的层)的SRS中-spat_srs。仅选择其几何形状与范围相交的要素。除非-clipsrc指定,否则几何不会被裁剪 。

-spat_srs <srs_def>

覆盖空间滤波器SRS。

-geomfield <field>

空间过滤器所基于的几何字段的名称。

-dsco NAME=VALUE

数据集创建选项(特定于格式)

-lco NAME=VALUE

图层创建选项(特定于格式)

-nln <name>

为新图层分配一个备用名称

-nlt <type>

为创建的图层定义几何类型。之一的NONE, GEOMETRYPOINTLINESTRINGPOLYGON, GEOMETRYCOLLECTIONMULTIPOINTMULTIPOLYGON, MULTILINESTRINGCIRCULARSTRINGCOMPOUNDCURVE, CURVEPOLYGONMULTICURVE,和MULTISURFACE非线性几何类型。在类型名称中添加ZMZM以使用高程,量度或高程和量度指定坐标。PROMOTE_TO_MULTI可用于自动提升将多边形或多面体混合为多面体的层,以及将线串或多线串混合为多线串的层。将shapefile转换为实现对几何类型的严格检查的PostGIS和其他目标驱动程序时,可能会很有用。 CONVERT_TO_LINEAR可用于通过近似它们的非线性几何类型为线性几何类型进行转换,并CONVERT_TO_CURVE促进非直线型到其广义曲线类型(POLYGON到 CURVEPOLYGONMULTIPOLYGONMULTISURFACELINESTRING到 COMPOUNDCURVEMULTILINESTRINGMULTICURVE)。从版本2.1开始,可以将类型定义为已测量(“ 25D”保留为单个“ Z”的别名)。某些强制的几何转换可能会导致无效的几何,例如,当使用强制转换多部分多多边形时,所得的多边形将违反“简单要素”规则。-nlt POLYGON

从GDAL 3.0.5开始,并且 可以同时使用。-nlt CONVERT_TO_LINEAR-nlt PROMOTE_TO_MULTI

-dim <val>

迫使坐标尺寸为val(有效值是XYXYZ, XYM,和XYZM-用于向后兼容性2是一个别名 XY3是一个别名XYZ)。这会影响图层几何类型和要素几何。可以将该值设置为layer_dim 指示将要素几何提升为图层声明的坐标尺寸。GDAL 2.1中添加了对M的支持。

-a_srs <srs_def>

分配输出SRS。Srs_def可以是完整的WKT定义(难以正确逃避),也可以是众所周知的定义(即EPSG:4326)或具有WKT定义的文件。

-t_srs <srs_def>

在输出上重新投影/转换为此SRS。

-s_srs <srs_def>

覆盖源SRS。

-ct <string>

PROJ字符串(单步操作或以+ proj = pipeline开头的多步字符串),描述CoordinateOperation的WKT2字符串或 urn:ogc:def:coordinateOperation:EPSG :: XXXX URN覆盖从源到目标的默认转换目标CRS。它必须考虑源CRS和目标CRS的轴顺序。

3.0版中的新功能。

-preserve_fid

使用源功能的FID,而不是让输出驱动程序自动分配一个新的(对于需要FID的格式)。如果不在附加模式下,则此行为是默认行为,如果输出驱动程序具有FID图层创建选项,则在这种情况下将使用源FID列的名称,并尝试保留源要素ID。可以通过设置禁用此行为-unsetFid

-fid fid

如果提供,将仅处理具有指定功能部件ID的功能部件。不包括空间查询或属性查询。注意:如果要基于特征ID选择多个特征,还可以使用'fid'是OGR SQL可以识别的特殊字段这一事实。因此, -哪里“在(1,3,5)中找到”会选择特征1、3和5。

-limit nb_features

限制每层要素的数量。

-oo NAME=VALUE

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

-doo NAME=VALUE

目标数据集打开选项(特定于格式),仅在-update模式下有效。

-gt n

每笔交易的n组功能(默认为20000)。写入具有事务支持的DBMS驱动程序时,请增加该值以提高性能。n可以设置为无限制,以将数据加载到单个事务中。

-ds_transaction

强制使用数据集级别的事务(对于支持这种机制的驱动程序),尤其是对于FileGDB之类的驱动程序,仅在仿真模式下支持数据集级别的事务。

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

如果使用spat_extent关键字,则将数据源中的几何裁剪到指定的边界框(在源SRS中表示),WKT几何(POLYGON或MULTIPOLYGON),或裁剪到-spa ..选项的空间范围。指定数据源时,通常将其与-clipsrclayer,-clipsrcwhere或-clipsrcsql选项结合使用

-clipsrcsql <sql_statement>

而是使用SQL查询选择所需的几何。

-clipsrclayer <layername>

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

-clipsrcwhere <expression>

根据属性查询限制所需的几何形状。

-clipdst <xmin> <ymin> <xmax> <ymax>

重新投影到指定的边界框(在dest SRS中表示),WKT几何(POLYGON或MULTIPOLYGON)或从数据源中裁剪几何。指定数据源时,通常需要结合使用-clipdstlayer,-clipdstwhere或-clipdstsq ..选项。

-clipdstsql <sql_statement>

而是使用SQL查询选择所需的几何。

-clipdstlayer <layername>

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

-clipdstwhere <expression>

根据属性查询限制所需的几何形状。

-wrapdateline

跨越日期线子午线的分割几何体(长= +/- 180度)

-datelineoffset

与日期线的偏移,以度为单位(默认长。= +/- 10度,将拆分170度至-170度之间的几何形状)

-simplify <tolerance>

距离公差以简化。注意:所使用的算法会保留每个要素的拓扑,尤其是对于多边形几何体,而不是整个图层。

-segmentize <max_dist>

2个节点之间的最大距离。用于创建中间点。

-makevalid

在几何上运行该OGRGeometry::MakeValid()操作,然后运行, OGRGeometryFactory::removeLowerDimensionSubGeoms()以确保它们对于“简单要素”规范的规则有效。

-fieldTypeToString type1,...

将指定类型的任何字段转换为目标图层中string类型的字段。有效类型为:Integer,Integer64,Real,String,Date,Time,DateTime,Binary,IntegerList,Integer64List,RealList,StringList。特殊值All可用于将所有字段转换为字符串。这是使用OGR SQL的CAST运算符的另一种方法,可以避免键入长的SQL查询。请注意,这不会影响源驱动程序使用的字段类型,仅是事后转换。

-mapFieldType srctype|All=dsttype,...

将指定类型的任何字段转换为另一种类型。有效类型为:Integer,Integer64,Real,String,Date,Time,DateTime,Binary,IntegerList,Integer64List,RealList,StringList。类型也可以包括括号之间的子类型,例如Integer(Boolean),Real(Float32),…。特殊值All可用于将所有字段转换为另一种类型。这是使用OGR SQL的CAST运算符的另一种方法,可以避免键入长的SQL查询。这是-fieldTypeToString的概括。请注意,这不会影响源驱动程序使用的字段类型,仅是事后转换。

-unsetFieldWidth

将字段宽度和精度设置为0。

-splitlistfields

根据需要将StringList,RealList或IntegerList类型的字段拆分为多个String,Real或Integer类型的字段。

-maxsubfields <val>

与组合-splitlistfields以限制为每个拆分字段创建的子字段的数量。

-explodecollections

为源文件中任何种类的几何图形集合中的每个几何图形生成一个特征,并在任何-sql选项之后应用。

-zfield <field_name>

使用指定的字段填充几何的Z坐标。

-gcp <ungeoref_x> <ungeoref_y> <georef_x> <georef_y> <elevation>

添加指示的地面控制点。可以多次提供此选项以提供一组GCP。

-order <n>

用于翘曲的多项式的阶数(1到3)。默认设置是根据GCP的数量选择多项式顺序。

-tps

根据可用的GCP强制使用薄板花键变压器。

-fieldmap

指定要从源复制到目标的字段索引列表。列表中指定的第(n)个值是目标图层定义中该字段的索引,必须在其中复制源图层的第n个字段。索引计数从零开始。要省略字段,请指定值-1。列表中的值必须与源层中字段的数量一样多。我们可以使用“身份”设置来指定应使用相同的顺序来传输字段。此设置应与-append设置一起使用。

-addfields

这是的专用版本-append。与相反-append, -addfields具有将现有源层中找到的新字段添加到现有目标层中的作用。当合并具有非严格相同结构的文件时,此选项很有用。对于不支持将字段添加到现有非空图层的输出格式,这可能不起作用。请注意,如果计划使用-addfields,则可能需要将其与-forceNullable结合使用,包括进行初始导入。

-relaxedFieldNameMatch

如果目标驱动程序有实现,则以更轻松的方式在源和现有目标层之间进行字段名称匹配。

-forceNullable

如果不可空约束存在于源层中,则不要将其传播到目标层。

-unsetDefault

如果默认字段值存在于源层中,则不要将其传播到目标层。

-unsetFid

可以指定以防止源FID列的名称和源要素ID再次用于目标层。例如,如果选择带有ORDER BY子句的源要素,则此选项很有用。

-nomd

当输出驱动程序支持时,禁止将元数据从源数据集和图层复制到目标数据集和图层。

-mo META-TAG=VALUE

当输出驱动程序支持时,传递元数据键和值以在输出数据集上进行设置。

-noNativeData

禁止复制本机数据,即OGR抽象未捕获的源格式的详细信息,否则在转换为相同格式时,某些驱动程序(如GeoJSON)会保留这些格式。

2.1版中的新功能。

性能提示

当写入事务性DBMS(SQLite / PostgreSQL,MySQL等)时,增加在BEGIN TRANSACTION和COMMIT TRANSACTION语句之间执行的INSERT语句的数量可能是有益的。此数字是使用-gt选项指定的。例如,对于SQLite,显式定义-gt 65536可确保最佳性能,同时填充某些包含数十万或数百万行的表。但是,请注意,-skipfailures会覆盖-gt并将事务大小设置为1。

对于PostgreSQL,可以将PG_USE_COPY配置选项设置为YES,以显着提高插入性能。请参阅PG驱动程序文档页面。

通常,请参考输入和输出驱动程序的文档页面以获取性能提示。

C API

也可以使用C从C调用此实用程序GDALVectorTranslate()

例子

从Shapefile到GeoPackage的基本转换:

ogr2ogr -f GPKG output.gpkg input.shp

将坐标参考系从更改EPSG:4326EPSG:3857

ogr2ogr -s_srs EPSG:4326 -t_srs EPSG:3857 -f GPKG output.gpkg input.gpkg

附加到现有层的示例(需要同时使用标志-update-append标志):

ogr2ogr -update -append -f PostgreSQL PG:dbname=warmerda abc.tab

裁剪具有边界框的输入层(<xmin> <ymin> <xmax> <ymax>):

ogr2ogr -spat -13.931 34.886 46.23 74.12 -f GPKG output.gpkg natural_earth_vector.gpkg

-where子句过滤功能:

ogr2ogr -where "\"POP_EST\" < 1000000" -f GPKG output.gpkg natural_earth_vector.gpkg ne_10m_admin_0_countries

从ETRS_1989_LAEA_52N_10E重新投影到EPSG:4326并裁剪到边界框的示例:

ogr2ogr -wrapdateline -t_srs EPSG:4326 -clipdst -5 40 15 55 france_4326.shp europe_laea.shp

使用-fieldmap设置的示例。源层的第一字段用于填充目标层的第三字段(索引2 =第三字段),源层的第二字段被忽略,源层的第三字段用于填充目标层的第五字段目标层。

ogr2ogr -append -fieldmap 2,-1,4 dst.shp src.shp

更多示例。

shp转geojson

ogr2ogr -where "\"func_class\" in(1,2,3)" -f "GeoJSON" WAY.geojson WAY.shp

合并geojson

ogr2ogr -append hebei.geojson tianjin.geojson

合并筛选

ogr2ogr -select "MESH_CODE,ROAD_ID" Road_out.shp Road.shp

ogr2ogr矢量数据要素格式转换相关推荐

  1. python结合ogr2ogr之地理数据格式转换-2

    python结合ogr2ogr之地理数据格式转换-1 这篇公众号文章里,初步记录了使用python调用org2ogr进行数据格式转换以及打包exe的过程,测试了常用的几种数据,shp数据.dxf数据. ...

  2. ESRI的Shapefile文件向Google Earth中KML文件的格式转换

    转载自http://wenku.baidu.com/link?url=3TG7c0cERbdnZwFBLq6n2v-chB-k4ja5ikNYSyRQHyLf4yvYCGBEGrlhch8GD5e-9 ...

  3. FFmpeg学习4:音频格式转换

    前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式 ...

  4. gltf与glb格式转换 gltf-pipeline、binary-gltf-utils

    gltf与glb格式转换 1. [gltf-pipeline](https://github.com/seminar2012/gltf-pipeline) 2. [binary-gltf-utils] ...

  5. 图像指针与矩阵格式转换——Mat转uchar*及uchar*转Mat代码实现

    本篇文章实现RGB3通道图像Mat转uchar及uchar转Mat,编程环境:vs2013,opencv2.4.13 ,由于OpenCV读入和显示都是BGR类型,本文显示图像也用的BGR格式,若需换成 ...

  6. ASP.NET2.0图片格式转换【月儿原创】

    ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.20 说明:本文实现了 图片格式随意转换( ...

  7. 语言 全排列 函数_Power Query 中日期时间格式转换需要了解的区域语言对照表

    不同的国家有不同的日期时间书写格式,比如: 多数亚洲国家:yyyy-MM-dd hh:mm 有些欧洲国家:dd.MM.yyyy HH:mm 极少数的国家:MM/dd/yyyy h:mm tt 还有各种 ...

  8. 日期格式转换 java 2016-09-03T00:00:00.000+08:00

    /**   * 日期格式转换yyyy-MM-dd'T'HH:mm:ss.SSSXXX  (yyyy-MM-dd'T'HH:mm:ss.SSSZ) TO  yyyy-MM-dd HH:mm:ss   * ...

  9. 扩增子分析解读3格式转换,去冗余,聚类

    本网对Markdown排版支持较差,请跳转"宏基因组"公众号阅读: 写在前面 之前发布的<扩增子图表解读>系列,相信关注过我的朋友大部分都看过了(链接直达7月文章目录) ...

最新文章

  1. 学习笔记-Redis设计与实现-链表
  2. 示例在同一台机器上使用RMAN克隆数据库
  3. 江西中医院大学计算机学院,大家好!给大家介绍一下,这是我的大学@江西中医药大学...
  4. mongodb php 报错,PHP5 mongodb 切换db报错 Authentication failed on database admin-汗血宝马
  5. fiddler手机模拟器抓包_利用Fiddler对Android模拟器网络请求进行抓包
  6. 【LeetCode】1.两数之和
  7. 连接虚拟机mysql无法访问_连接虚拟机mysql无法访问,报错编号1130的解决方法
  8. OSG的垃圾回收机制
  9. pytorch 训练过程学习率设置衰减
  10. Windows7修改hosts提示:您没有权限在此位置中保存文件
  11. 理解数据类型与数学运算:摄氏温度与华氏温度的相互转换
  12. 快捷方式图标变成白色
  13. 10大最具影响力人物
  14. Kotlin 协程与架构组件一起使用及底层原理分析,音视频开发前景
  15. 如何使用纯 CSS 制作四子连珠游戏
  16. 大数据离线---网站日志流量分析系统---日志数据原始信息
  17. 全网心疼的鸿星尔克,距离安踏还差两个李宁
  18. Python模拟财富分配实验
  19. Arduino的图形化开发环境: ArduBlock
  20. 蜜罐 | HFish介绍

热门文章

  1. Python编程之外星人入侵(一)
  2. python类中包含一个特殊的变量、它可以访问类的成员_区域联防的运用中遵循并贯彻以球为主的防守原则,做到球人区三者兼顾。( )...
  3. Python在IDLE中实现清屏和更改IDEL的shell的背景颜色
  4. 初等三四阶行列式计算器
  5. 乱弹琴20140421
  6. excel的常用函数
  7. Zhong__xlrd基本使用
  8. SQL Server数据库插入数据中文显示乱码问题
  9. Excel 2010 VBA 入门 040 批量删除空行
  10. 一键获取前程无忧招聘信息,并存储到excel中,全程只需要输入职位名称(51job 你要的自动化 这里全都有~~~)