ogr2ogr
単純な地物データをファイル形式間で変換します.
概要
ogr2ogr [--help] [--long-usage] [--help-general]
[-of <output_format>]
[-dsco <NAME>=<VALUE>]... [-lco <NAME>=<VALUE>]...
[[-append]|[-upsert]|[-overwrite]]
[-update] [-sql <statement>|@<filename>] [-dialect <dialect>]
[-spat <xmin> <ymin> <xmax> <ymax>]
[-where <restricted_where>|@<filename>] [-select <field_list>]
[-nln <name>] [-nlt <type>]...
[-s_srs <srs_def>]
[[-a_srs <srs_def>]|[-t_srs <srs_def>]]
<dst_dataset_name> <src_dataset_name> [<layer_name>]...
Field related options:
[-addfields] [-relaxedFieldNameMatch]
[-fieldTypeToString All|<type1>[,<type2>]...]
[-mapFieldType <srctype>|All=<dsttype>[,<srctype2>=<dsttype2>]...]
[-fieldmap <field_1>[,<field_2>]...]
[-splitlistfields] [-maxsubfields <n>] [-emptyStrAsNull]
[-forceNullable] [-unsetFieldWidth]
[-unsetDefault] [-resolveDomains]
[-dateTimeTo UTC|UTC(+|-)<HH>|UTC(+|-)<HH>:<MM>] [-noNativeData]
Advanced geometry and SRS related options:
[-dim layer_dim|2|XY|3|XYZ|XYM|XYZM]
[-s_coord_epoch <epoch>] [-a_coord_epoch <epoch>]
[-t_coord_epoch <epoch>] [-ct <pipeline_def>]
[-spat_srs <srs_def>] [-geomfield <name>]
[-segmentize <max_dist>] [-simplify <tolerance>]
[-makevalid] [-skipinvalid]
[-wrapdateline] [-datelineoffset <val_in_degree>]
[-clipsrc [<xmin> <ymin> <xmax> <ymax>]|<WKT>|<datasource>|spat_extent]
[-clipsrcsql <sql_statement>] [-clipsrclayer <layername>]
[-clipsrcwhere <expression>]
[-clipdst [<xmin> <ymin> <xmax> <ymax>]|<WKT>|<datasource>]
[-clipdstsql <sql_statement>] [-clipdstlayer <layername>]
[-clipdstwhere <expression>]
[-explodecollections] [-zfield <name>]
[-gcp <ungeoref_x> <ungeoref_y> <georef_x> <georef_y> [<elevation>]]...
[-tps] [-order 1|2|3]
[-xyRes <val>[ m|mm|deg]] [-zRes <val>[ m|mm]] [-mRes <val>]
[-unsetCoordPrecision]
Other options:
[--quiet] [-progress] [-if <format>]...
[-oo <NAME>=<VALUE>]... [-doo <NAME>=<VALUE>]...
[-fid <FID>] [-preserve_fid] [-unsetFid]
[[-skipfailures]|[-gt <n>|unlimited]]
[-limit <nb_features>] [-ds_transaction]
[-mo <NAME>=<VALUE>]... [-nomd]
説明
ogr2ogr は単純な地物データをファイル形式間で変換するために使用できます. また, 処理中に空間または属性の選択, 属性のセットの縮小, 出力座標系の設定, または変換中に地物を再投影するなど, さまざまな操作を実行することもできます.
- --help
このヘルプメッセージを表示して終了します
- --help-general
一般的な GDAL コマンドラインオプションの使用方法を簡単に表示して終了します.
- -if <format>
入力ファイルを開こうとするフォーマット/ドライバ名です. 通常は指定する必要はありませんが, 適切なドライバを選択できない場合に 自動ドライバ検出をスキップするために使用できます. このオプションは複数回繰り返して複数の候補ドライバを指定できます. これらのドライバをデータセットを開くように強制するわけではないことに注意してください. 特に, 一部のドライバはファイル拡張子に 要件を持っています.
Added in version 3.2.
- -of <format_name>, -f <format_name>
出力ファイル形式名, 例:
ESRI Shapefile
,MapInfo File
,PostgreSQL
. GDAL 2.3 以降, 指定されていない場合, 形式は拡張子から推測されます (以前は ESRI Shapefile でした).
- -upsert
Added in version 3.6.
-append
の変種で,OGRLayer::CreateFeature()
で追加する代わりにOGRLayer::UpsertFeature()
操作が使用されて地物を挿入または更新します.現在, これはいくつかのドライバでのみ実装されています: GPKG -- GeoPackage vector と MongoDBv3.
入力地物の FID が設定されており "有意" である場合 (つまり FID 列名が空の文字列でない場合), 既存の地物を更新するキーとして使用されます. ソースとターゲットのレイヤーの FID が一貫していることを確認することが重要です.
GPKG ドライバの場合, 整数主キーでない UNIQUE 列がある場合は,FID が設定されていないか有意でない地物を更新することも可能です (
-unsetFid
はソース地物の FID を無視するために使用できます),
- -overwrite
出力レイヤーを削除して空で再作成します
- -update
新しいデータソースを作成しようとする代わりに既存の出力データソースを更新モードで開きます
- -select <field_list>
新しいレイヤーにコピーする入力レイヤーのフィールドのカンマ区切りリストです.
GDAL 3.9 以降, スペース, コンマ, またはダブルクォートを含むフィールド名は, 開始と終了のダブルクォート文字で囲む必要があります. また, フィールド名内のダブルクォート文字はバックスラッシュでエスケープする必要があります.
使用しているシェルによっては, さらなる引用符が必要になる場合があります. たとえば, Unix シェルで
regular_field
,a_field_with space, and comma
およびa field with " double quote
を選択するには:-select "regular_field,\"a_field_with space, and comma\",\"a field with \\\" double quote\""
フィールドはリスト内で複数回言及されていても, 入力レイヤーに重複するフィールド名がある場合でも, 1 回だけ選択されます.
ジオメトリフィールドもリストで指定できます.
-select が指定されていない場合はすべてのフィールドが選択されます. 空の文字列を指定すると, 任意の属性フィールドを選択せず, ジオメトリのみを保持することができます.
この設定は
-append
と一緒に使用できません. レイヤーに追加する場合のフィールドの選択を制御するには,-fieldmap
または-sql
を使用してください.
- -progress
端末で進行状況を表示します. 入力レイヤーが "高速地物数" 機能を持っている場合のみ機能します.
- -sql <sql_statement>
実行する SQL 文. 結果のテーブル/レイヤーは出力に保存されます. GDAL 2.1 以降,
@filename
構文を使用して, 内容が指定されたファイル名であることを示すことができます. (-spat_srs
と一緒に使用できません.)
- -dialect <dialect>
SQL 方言. 一部の場合, RDBMS のネイティブ SQL の代わりに
OGRSQL
方言値を渡すことで (最適化されていない) OGR SQL 方言 を使用することができます.SQLITE
およびINDIRECT_SQLITE
方言値で SQL SQLite方言 方言を選択でき, これは任意のデータソースで使用できます.
- -where <restricted_where>
属性クエリ (SQL WHERE のような). GDAL 2.1 以降,
@filename
構文を使用して, 内容が指定されたファイル名であることを示すことができます.
- -skipfailures
失敗後に続行し, 失敗した地物をスキップします.
- -spat <xmin> <ymin> <xmax> <ymax>
空間クエリの範囲, 元のレイヤーの SRS (または
-spat_srs
で指定された SRS) で. ジオメトリが範囲に交差する地物のみが選択されます. ジオメトリは-clipsrc
が指定されていない限りクリップされません.
- -geomfield <field>
空間フィルタが作用するジオメトリフィールドの名前です.
- -dsco <NAME>=<VALUE>
データセット作成オプション (フォーマット固有)
- -lco <NAME>=<VALUE>
レイヤー作成オプション (フォーマット固有)
- -nln <name>
新しいレイヤーに別の名前を割り当てます
- -nlt <type>
作成されたレイヤーのジオメトリタイプを定義します.
NONE
,GEOMETRY
,POINT
,LINESTRING
,POLYGON
,GEOMETRYCOLLECTION
,MULTIPOINT
,MULTIPOLYGON
,MULTILINESTRING
,CIRCULARSTRING
,COMPOUNDCURVE
,CURVEPOLYGON
,MULTICURVE
, およびMULTISURFACE
の非線形ジオメトリタイプのいずれかです. タイプ名にZ
,M
, またはZM
を追加して, 標高, 測定, または標高と測定を指定します.PROMOTE_TO_MULTI
は, ポリゴンまたはマルチポリゴンを混在させるレイヤーを自動的にマルチポリゴンに昇格し, ラインストリングまたはマルチラインストリングを混在させるレイヤーをマルチラインストリングに昇格させるために使用できます. ジオメトリタイプを厳密にチェックするターゲットドライバ (PostGIS など) にシェープファイルを変換するときに便利です.CONVERT_TO_LINEAR
は, 非線形ジオメトリタイプを線形ジオメトリタイプに変換して近似するために使用でき,CONVERT_TO_CURVE
は, 非線形タイプを一般化された曲線タイプに昇格させるために使用できます (POLYGON
をCURVEPOLYGON
,MULTIPOLYGON
をMULTISURFACE
,LINESTRING
をCOMPOUNDCURVE
,MULTILINESTRING
をMULTICURVE
). バージョン 2.1 以降, タイプは測定されたものとして定義できます ("25D" は単一の "Z" のエイリアスとして残ります). 一部の強制ジオメトリ変換は無効なジオメトリを生成する可能性があります. たとえば,-nlt POLYGON
でマルチパートマルチポリゴンをポリゴンに強制変換すると, 結果のポリゴンは Simple Features ルールを破ります.GDAL 3.0.5 以降,
-nlt CONVERT_TO_LINEAR
と-nlt PROMOTE_TO_MULTI
を同時に使用できます.
- -dim <val>
座標次元を val に強制します (有効な値は
XY
,XYZ
,XYM
, およびXYZM
です - 互換性のために2
はXY
のエイリアスであり,3
はXYZ
のエイリアスです). これはレイヤーのジオメトリタイプと地物のジオメトリの両方に影響します. 値をlayer_dim
に設定すると, 地物のジオメトリがレイヤーで宣言された座標次元に昇格するように指示できます. M のサポートは GDAL 2.1 で追加されました.
- -a_srs <srs_def>
出力 SRS を割り当てますが, 再投影は行いません (
-t_srs
を使用して再投影します)渡すことができる座標参照システムは,
OGRSpatialReference::SetFromUserInput()
呼び出しでサポートされているものです. これには, EPSG 投影, 地理, または複合 CRS (つまり EPSG:4296), 既知のテキスト (WKT) CRS 定義, PROJ.4 宣言, または WKT CRS 定義を含む .prj ファイルの名前が含まれます.
- -a_coord_epoch <epoch>
Added in version 3.4.
出力 SRS に関連付けられた座標エポックを割り当てます. 出力 SRS が動的 CRS の場合に便利です.
-a_srs
が使用されている場合のみ考慮されます.
- -t_srs <srs_def>
出力時にこの SRS に再投影/変換し, 出力 SRS として割り当てます.
再投影が発生するためには, ソース SRS が利用可能である必要があります. ソース SRS は, 利用可能な場合はソースレイヤーで見つかるものであり, ユーザーによって
-s_srs
で上書きされます.渡すことができる座標参照システムは,
OGRSpatialReference::SetFromUserInput()
呼び出しでサポートされているものです. これには, EPSG 投影, 地理, または複合 CRS (つまり EPSG:4296), 既知のテキスト (WKT) CRS 定義, PROJ.4 宣言, または WKT CRS 定義を含む .prj ファイルの名前が含まれます.
- -t_coord_epoch <epoch>
Added in version 3.4.
出力 SRS に関連付けられた座標エポックを割り当てます. 出力 SRS が動的 CRS の場合に便利です.
-t_srs
が使用されている場合のみ考慮されます. また,-a_coord_epoch
とは相互排他です.PROJ 9.4 以前,
-s_coord_epoch
と-t_coord_epoch
は, 2 つの動的 CRS 間の変換のサポートがないため, 相互排他でした.
- -s_srs <srs_def>
ソース SRS をオーバーライドします. 指定されていない場合, 入力レイヤーで見つかった SRS が使用されます. 再投影するために
-t_srs
と一緒に使用された場合のみ効果があります.渡すことができる座標参照システムは,
OGRSpatialReference::SetFromUserInput()
呼び出しでサポートされているものです. これには, EPSG 投影, 地理, または複合 CRS (つまり EPSG:4296), 既知のテキスト (WKT) CRS 定義, PROJ.4 宣言, または WKT CRS 定義を含む .prj ファイルの名前が含まれます.
- -xyRes "<val>[ m|mm|deg]"
Added in version 3.9.
ジオメトリの X/Y 座標解像度を設定/オーバーライドします. 数値値のみが指定されている場合, それはターゲット SRS の単位で表されていると見なされます. m, mm, または deg 接尾辞を指定して, 値がメートル, ミリメートル, または度であると解釈されることを示すことができます.
このオプションを指定すると, 出力ドライバに渡す前に, ジオメトリ (曲線でないもの) に
OGRGeometry::SetPrecision()
メソッドが実行され, 潜在的に低い精度による無効なジオメトリの生成を回避します (OGR_APPLY_GEOM_SET_PRECISION
構成オプションがNO
に設定されていない限り)このオプションも
-unsetCoordPrecision
も指定されていない場合, 利用可能な場合はソースレイヤーの座標解像度が使用されます.
- -zRes "<val>[ m|mm]"
Added in version 3.9.
ジオメトリの Z 座標解像度を設定/オーバーライドします. 数値値のみが指定されている場合, それはターゲット SRS の単位で表されていると見なされます. m または mm 接尾辞を指定して, 値がメートルまたはミリメートルであると解釈されることを示すことができます. このオプションも
-unsetCoordPrecision
も指定されていない場合, 利用可能な場合はソースレイヤーの座標解像度が使用されます.
- -mRes <val>
Added in version 3.9.
ジオメトリの M 座標解像度を設定/オーバーライドします. このオプションも
-unsetCoordPrecision
も指定されていない場合, 利用可能な場合はソースレイヤーの座標解像度が使用されます.
- -unsetCoordPrecision
Added in version 3.9.
ターゲットレイヤーのジオメトリ座標解像度の設定を防ぎます.
- -s_coord_epoch <epoch>
Added in version 3.4.
ソース SRS に関連付けられた座標エポックを割り当てます. ソース SRS が動的 CRS の場合に便利です.
-s_srs
が使用されている場合のみ考慮されます.PROJ 9.4 以前,
-s_coord_epoch
と-t_coord_epoch
は, 2 つの動的 CRS 間の変換のサポートがないため, 相互排他でした.
- -ct <string>
PROJ 文字列 (単一ステップ操作または +proj=pipeline で始まる複数ステップ文字列), CoordinateOperation を記述する WKT2 文字列, またはソースからターゲット CRS へのデフォルトの変換をオーバーライドする urn:ogc:def:coordinateOperation:EPSG::XXXX URN です.
通常, ソース CRS が北方/東方軸順序を持つ場合はパイプラインの先頭に
step proj=axisswap order=2,1
を含め, ターゲット CRS が北方/東方軸順序を持つ場合はパイプラインの末尾に含める必要があります.Added in version 3.0.
- -preserve_fid
出力ドライバが FID を必要とするフォーマットの場合, 出力ドライバが自動的に新しい FID を割り当てる代わりに, ソース地物の FID を使用します. 追加モードでない場合, 出力ドライバに FID レイヤー作成オプションがある場合, この動作はデフォルトであり, ソース FID 列の名前が使用され, ソース地物 ID が保持されることが試みられます. この動作は
-unsetFid
を設定することで無効にできます. このオプションは-explodecollections
と互換性がありません.
- -fid <fid>
指定された場合, 指定された地物 ID の地物のみが処理されます. 空間クエリまたは属性クエリと排他的に操作します. 注意: 地物 ID に基づいて複数の地物を選択する場合は, 'fid' が OGR SQL によって認識される特別なフィールドであることを利用できます. したがって, -where "fid in (1,3,5)" は地物 1, 3, および 5 を選択します.
- -limit <nb_features>
レイヤーごとの地物数を制限します.
- -oo <NAME>=<VALUE>
入力データセットオープンオプション (フォーマット固有).
- -doo <NAME>=<VALUE>
宛先データセットオープンオプション (フォーマット固有), -update モードでのみ有効です.
- -gt <n>
トランザクションごとに n 個の地物をグループ化します (デフォルト 100,000). トランザクションサポートを持つ DBMS ドライバに書き込むときのパフォーマンスを向上させるために値を増やします.
n
はデータを単一のトランザクションにロードするために無制限に設定できます.
- -ds_transaction
データセットレベルのトランザクションの使用を強制します (そのようなメカニズムをサポートするドライバに対して), 特にエミュレーションモードでのみデータセットレベルのトランザクションをサポートする FileGDB などのドライバに対し
- -clipsrc [<xmin> <ymin> <xmax> <ymax>]|WKT|<datasource>|spat_extent
(再投影前に) ジオメトリを次のいずれかにクリップします:
指定されたバウンディングボックス (元の SRS で表現)
WKT ジオメトリ (元の SRS で表現された POLYGON または MULTIPOLYGON)
データソースから選択された 1 つ以上のジオメトリ
spat_extent キーワードを使用する場合の -spat オプションの空間範囲.
データソースを指定する場合, 通常は -clipsrclayer, -clipsrcwhere, または -clipsrcsql オプションと組み合わせて -clipsrc を使用する必要があります.
- -clipsrcsql <sql_statement>
SQL クエリを使用して, ソースクリップデータソースから必要なジオメトリを選択します.
- -clipsrclayer <layername>
ソースクリップデータソースから指定されたレイヤーを選択します.
- -clipsrcwhere <expression>
属性クエリに基づいて, ソースクリップレイヤーから必要なジオメトリを制限します.
- -clipdst [<xmin> <ymin> <xmax> <ymax>]|<WKT>|<datasource>
(再投影後に) ジオメトリを次のいずれかにクリップします:
指定されたバウンディングボックス (変換先 SRS で表現)
WKT ジオメトリ (変換先 SRS で表現された POLYGON または MULTIPOLYGON)
データソースから選択された 1 つ以上のジオメトリ
データソースを指定する場合, 通常は -clipdstlayer, -clipdstwhere, または -clipdstsql オプションと組み合わせて -clipdst を使用する必要があります.
- -clipdstsql <sql_statement>
SQL クエリを使用して, 宛先クリップデータソースから必要なジオメトリを選択します.
- -clipdstlayer <layername>
宛先クリップデータソースから指定されたレイヤーを選択します.
- -clipdstwhere <expression>
属性クエリに基づいて, 宛先クリップレイヤーから必要なジオメトリを制限します.
- -wrapdateline
日付変更線 (long. = +/- 180deg) を横切るジオメトリを分割します.
- -datelineoffset
日付変更線からのオフセット (デフォルト long. = +/- 10deg, 170deg から -170deg の範囲内のジオメトリが分割されます)
- -simplify <tolerance>
単純化のための距離許容度. 注意: 使用されるアルゴリズムは, 特にポリゴンジオメトリについて, 地物ごとにトポロジーを保存しますが, レイヤ全体には保存しません.
このオプションの指定値は,
OGRGeometry::Simplify()
メソッドを使用して出力ジオメトリの連続する点をマージするために使用される許容度です. 距離の単位は, ソースベクトルデータセットのジオリファレンス単位です. このオプションは-t_srs
によって暗黙的に再投影される前に適用されます.
- -segmentize <max_dist>
このオプションの指定値は, 中間点が追加される前の出力ジオメトリの連続する 2 つの点の最大距離です. 距離の単位は, ソースラスタのジオリファレンス単位です. このオプションは
-t_srs
によって暗黙的に再投影される前に適用されます.
- -makevalid
ジオメトリが Simple Features 仕様のルールに従って有効であることを確認するために,
OGRGeometry::MakeValid()
操作, およびOGRGeometryFactory::removeLowerDimensionSubGeoms()
を実行します.
- -skipinvalid
ジオメトリが Simple Features 仕様のルールに従って有効であるかどうかを確認するために, ジオメトリに
OGRGeometry::IsValid()
操作を実行します. 有効でない場合, 地物はスキップされます. このチェックは他のすべてのジオメトリ操作の後に行われます.
- -fieldTypeToString All|<type1>[,<type2>]...
指定されたタイプのフィールドを宛先レイヤーの文字列型のフィールドに変換します. 有効なタイプは :
Integer
,Integer64
,Real
,String
,Date
,Time
,DateTime
,Binary
,IntegerList
,Integer64List
,RealList
,StringList
です. 特別な値All
はすべてのフィールドを文字列に変換するために使用できます. これは, 長い SQL クエリを入力することを避けることができる OGR SQL の CAST 演算子の代替方法です. これは, ソースドライバで使用されるフィールドタイプに影響を与えず, 後からの変換のみです. また, このオプションは, 出力ドライバでハードコードされたフィールドの存在とタイプに影響を与えません (例: KML, GPX) ことに注意してください.
- -mapFieldType {<srctype>|All=<dsttype>[,<srctype2>=<dsttype2>]...}
指定されたタイプのフィールドを別のタイプに変換します. 有効なタイプは :
Integer
,Integer64
,Real
,String
,Date
,Time
,DateTime
,Binary
,IntegerList
,Integer64List
,RealList
,StringList
です. タイプには,Integer(Boolean)
,Real(Float32)
, ... のようなサブタイプを含めることもできます. 特別な値All
はすべてのフィールドを別のタイプに変換するために使用できます. これは, 長い SQL クエリを入力することを避けることができる OGR SQL の CAST 演算子の代替方法です. これは, -fieldTypeToString の一般化です. これは, ソースドライバで使用されるフィールドタイプに影響を与えず, 後からの変換のみです. また, このオプションは, 出力ドライバでハードコードされたフィールドの存在とタイプに影響を与えません (例: KML, GPX) ことに注意してください.
- -dateTimeTo {UTC|UTC(+|-)<HH>|UTC(+|-)<HH>:<MM>}
ソース値で指定されたタイムゾーンから
-dateTimeTo
で表現されたターゲットタイムゾーンに日時値を変換します. タイムゾーンが不明またはローカルタイムの日時は変更されません.HH は [0,14] の範囲内で, MM=00, 15, 30, または 45 である必要があります.
- -unsetFieldWidth
フィールド幅と精度を 0 に設定します.
- -splitlistfields
StringList, RealList, または IntegerList タイプのフィールドを, 必要なだけの String, Real, または Integer タイプのフィールドに分割します.
- -maxsubfields <val>
各分割フィールドに作成されるサブフィールドの数を制限するために
-splitlistfields
と組み合わせるために使用されます.
- -explodecollections
ソースファイルの任意のジオメトリコレクション内の各ジオメトリに 1 つの地物を生成します. これは
-sql
オプションの後に適用されます. このオプションは-preserve_fid
と互換性がありませんが, 必要に応じて元の FID を保存するために-sql "SELECT fid AS original_fid, * FROM ..."
を使用できます.
- -zfield <field_name>
指定されたフィールドを使用してジオメトリの Z 座標を埋めます.
- -gcp <ungeoref_x> <ungeoref_y> <georef_x> <georef_y> [<elevation>]
指定された地上制御点を使用して座標変換を計算します. 変換方法は
-order
または-tps
オプションを指定することで選択できます. gdal_edit や gdal_translate のようなラスタツールとは異なり, GCP は出力データセットに追加されません. このオプションは複数回提供することができ, (少なくとも 2 つの GCP が必要です).
- -order <n>
変形に使用される多項式の順序 (1 から 3). デフォルトは, GCP の数に基づいて多項式の順序を選択します.
- -tps
利用可能な GCP に基づいて薄板スプライン変換器の使用を強制します.
- -fieldmap
ソースから宛先にコピーするフィールドのインデックスのリストを指定します. リストで指定された (n) 番目の値は, ソースレイヤの n 番目のフィールドをコピーするためのターゲットレイヤ定義内のフィールドのインデックスです. インデックスのカウントはゼロから始まります. フィールドを省略するには, -1 の値を指定します. ソースレイヤのフィールド数と同じ数の値がリストに含まれている必要があります. フィールドを同じ順序で転送するように指定するには 'identity' 設定を使用できます. この設定は
-append
設定と一緒に使用する必要があります.
- -addfields
これは
-append
の特殊なバージョンです.-append
とは異なり,-addfields
は, ソースレイヤで見つかった新しいフィールドを既存のターゲットレイヤに追加する効果があります. これは, 厳密に同一の構造を持たないファイルをマージするときに便利です. これは, 既存の空でないレイヤにフィールドを追加することをサポートしていない出力フォーマットでは機能しないかもしれません. -addfields を使用する予定の場合は, 初期インポートにも -forceNullable を含める必要があるかもしれません.
- -relaxedFieldNameMatch
ターゲットドライバにその実装がある場合, ソースと既存のターゲットレイヤのフィールド名の一致をより緩和された方法で行います.
- -forceNullable
ソースレイヤに存在する場合, ターゲットレイヤに非 NULL 制約を伝播しません.
- -unsetDefault
ソースレイヤに存在する場合, ターゲットレイヤにデフォルトフィールド値を伝播しません.
- -unsetFid
ソース FID 列の名前とソース地物 ID がターゲットレイヤで再利用されるのを防ぐために指定できます. このオプションは, ORDER BY 句でソース地物を選択する場合に便利です.
- -emptyStrAsNull
Added in version 3.3.
空の文字列値を NULL として扱います.
- -resolveDomains
Added in version 3.3.
これが指定されると, コード化されたフィールドドメインにリンクされた選択されたフィールドは, コード化された値の説明を含む追加のフィールド (
{dstfield}_resolved
) が付属します.
- -nomd
出力ドライバでサポートされている場合, ソースデータセットとレイヤからメタデータをターゲットデータセットとレイヤにコピーしないようにします.
- -mo <META-TAG>=<VALUE>
出力ドライバでサポートされている場合, 出力データセットに設定するメタデータキーと値を渡します.
- -noNativeData
同じフォーマットに変換するときに, 一部のドライバ (GeoJSON のような) によって保存される, OGR 抽象化によってキャプチャされないソースフォーマットの詳細であるネイティブデータのコピーを無効にします.
Added in version 2.1.
- <dst_dataset_name>
出力データセット名.
- <src_dataset_name>
ソースデータセット名.
- <layer_name>
出力データセットにコピーする 1 つ以上のソースレイヤ名. レイヤ名が渡されない場合, すべてのソースレイヤがコピーされます.
パフォーマンスヒント
トランザクショナル DBMS (SQLite/PostgreSQL,MySQL, など) に書き込む場合, BEGIN TRANSACTION と COMMIT TRANSACTION ステートメントの間で実行される INSERT ステートメントの数を増やすと有益である場合があります. この数は -gt オプションで指定されます. たとえば, SQLite の場合, -gt 65536 を明示的に定義することで, 数十万行または数百万行を含むいくつかのテーブルを埋める際に最適なパフォーマンスが得られます. ただし, -skipfailures は -gt をオーバーライドし, トランザクションのサイズを 1 に設定します.
PostgreSQL の場合, PG_USE_COPY
設定オプションを YES に設定すると, 挿入パフォーマンスが大幅に向上します. PG ドライバのドキュメントページを参照してください.
一般的には, パフォーマンスヒントのために入力および出力ドライバのドキュメントページを参照してください.
既知の問題
GDAL 3.8 以降, ogr2ogr は一部のソースフォーマット (特に GeoPackage または FlatGeoBuf) に対して Arrow 配列ベースの API (cf RFC 86: Column-oriented read API for vector layers) を内部的に使用し, 最も基本的な操作に対してパフォーマンスを向上させます. この ogr2ogr 内部ロジックの大幅な変更により, 完全に安定化するために GDAL 3.8.x バグ修正リリース全体で多くの修正が必要でした. ほとんどの問題は GDAL 3.9 で解決されていると考えています. 以前の GDAL バージョンで満たされないエラーが発生した場合, ogr2ogr コマンドラインで --config OGR2OGR_USE_ARROW_API NO
を指定して, 反復的な地物ベースのアプローチを使用する古典的なアルゴリズムを選択できます. GDAL >= 3.9 でそのフラグが必要な場合は, GDAL issue tracker に問題を報告してください.
C API
このユーティリティは, GDALVectorTranslate()
で C からも呼び出すことができます.
例
Shapefile から GeoPackage への基本的な変換:
ogr2ogr output.gpkg input.shp
座標参照系を
EPSG:4326
からEPSG:3857
に変更:ogr2ogr -s_srs EPSG:4326 -t_srs EPSG:3857 output.gpkg input.gpkg
既存のレイヤに追加する例:
ogr2ogr -append -f PostgreSQL PG:dbname=warmerda abc.tab
バウンディングボックス (<xmin> <ymin> <xmax> <ymax>) で入力レイヤをクリップ:
ogr2ogr -spat -13.931 34.886 46.23 74.12 output.gpkg natural_earth_vector.gpkg
-where
句で地物をフィルタリング:ogr2ogr -where "\"POP_EST\" < 1000000" \ 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
設定を使用します. ソースレイヤの最初のフィールドは, ターゲットレイヤの 3 番目のフィールド (インデックス 2 = 3 番目のフィールド) を埋めるために使用され, ソースレイヤの 2 番目のフィールドは無視され, ソースレイヤの 3 番目のフィールドはターゲットレイヤの 5 番目のフィールドを埋めるために使用されます.ogr2ogr -append -fieldmap 2,-1,4 dst.shp src.shp
CSV ドライバでジオメトリを出力します.
デフォルトでは, このドライバはレイヤ作成時にジオメトリをデフォルトで保存しません. 明示的なレイヤ作成オプションが必要です:
ogr2ogr -lco GEOMETRY=AS_XYZ TrackWaypoint.csv TrackWaypoint.kml
ジオメトリのみを抽出します.
入力レイヤに名前付きジオメトリ列があるかどうかによって, 異なる状況があります. まず, ogrinfo で報告されたジオメトリ列があるかどうかを確認します.
ogrinfo -so CadNSDI.gdb.zip PLSSPoint | grep 'Geometry Column' Geometry Column = SHAPE
入力フォーマットが FileGeodatabase の場合, それは SHAPE と呼ばれ, そのため SELECT ステートメントで直接参照できます.
ogr2ogr -sql "SELECT SHAPE FROM PLSSPoint" \ -lco GEOMETRY=AS_XY -f CSV /vsistdout/ CadNSDI.gdb.zip
名前付きジオメトリ列がない shapefile の場合, デフォルトの OGR SQL 方言を使用すると, 暗黙のジオメトリ列を指定するための特別な名前として
_ogr_geometry_
を使用できます. 名前はアンダースコアで始まり, SQL 構文では, ダブルクォートで囲まれている必要があります. さらに, コマンドラインインタプリタはダブルクォートをエスケープする必要があるかもしれず, 最終的な SELECT ステートメントは次のようになります:ogr2ogr -sql "SELECT \"_ogr_geometry_\" FROM PLSSPoint" \ -lco GEOMETRY=AS_XY -f CSV /vsistdout/ CadNSDI.shp
SQL SQLite 方言を使用する場合, ソースジオメトリ列に名前がない場合, 特別なジオメトリ名は
geometry
です.ogr2ogr -sql "SELECT geometry FROM PLSSPoint" -dialect SQLite \ -lco GEOMETRY=AS_XY -f CSV /vsistdout/ CadNSDI.shp