QGISに付属の便利なコマンド

QGISをインストールすると、便利なコマンドが付いてくるので、いくつか使い方を紹介します。 このページではQGISのバージョンは3.6、PowerShellのバージョンは5.1.17763.592を使っています。

こちらのページで紹介した、環境変数の設定までを済ませておいて下さい。


ファイルを変換する

ogr2ogr -f "MapInfo File" 変換後ファイル.mif 変換前ファイル.shp

変換前.shpを変換後ファイル.mifに変換します。-f のオプションに渡す文字列には、変換後のファイルフォーマットを指定します。どんなフォーマットが対応しているかは、次のコマンドで確認できます。

ogrinfo --formats

日本語が文字化けする場合

ogr2ogr -lco ENCODING=cp932 -f "MapInfo File" 変換後ファイル.mif 変換前ファイル.shp

Shift-JISで出力したい場合は、オプションに「-lco ENCODING=cp932」を指定します。


ファイルの座標系を変える

ogr2ogr -t_srs EPSG:2443 -s_srs EPSG:4326 変換後ファイル.mif 変換前ファイル.mif

-t_srsで変換後ファイルの座標系を指定します。

-s_srsで変換前ファイルの座標系を指定します。

ファイルをまとめて変換する

指定したフォルダ内のシェープファイルKMLに変換するコードです。

$env:GDAL_DATA="C:\Program Files\QGIS 3.6\share\epsg_csv" # GDALが使うデータフォルダ
$before=".shp"               # 変換前の拡張子
$after=".kml"                # 変換後の拡張子
$dir="d:\変換したいファイル" # 変換したいファイルが格納されているフォルダ
$type="KML"                  # 変換後のファイルタイプ

New-Item $dir\"conv" -itemType Directory -Force
foreach ($s in Get-ChildItem $dir\ -Name *$before)
{
 $new = [System.IO.Path]::ChangeExtension($s, $after)
 ogr2ogr -f $type $dir\conv\$new $dir\$s
}

上のコードの1~5行目を編集して、PowerShellに貼り付けて実行してみてください。


PostGISにインポートする

ogr2ogr -lco encoding=CP932 PG:"host=localhost user=ユーザー名 dbname=インポート先データベース password=〇〇〇〇" -nln レイヤ名 インポートしたいファイル

GeoPackageにGeoTiffを追加する

gdal_translate -of GPKG 追加したいtiff.tif 追加先.gpkg -co  APPEND_SUBDATASET=YES -co RASTER_TABLE=テーブル名

追加先.gpkgが存在しない場合は、作成されます。

GeoPackageにシェープファイルを追加する

$dst="F:\〇〇.gpkg" # 追加先のgeopackageファイル

foreach ($s in Get-ChildItem  .\ -Name *.shp)
{
  ogr2ogr -append  $dst $s
}

shpが格納されているフォルダに移って、上のコードの1行目を編集して、PowerShellに貼り付けて実行してみてください。

お疲れさまでした。