QGISを使用してベクターPDF / SVG / DXFラインワークをジオリファレンスしますか?[複製]


12

私の都市の投票サイトごとに選挙結果を視覚化する小さなWebアプリケーションを作成したいと思います。結果はベルリンでここで行われたことと非常に似ているでしょう。これが私の目的を理解するのに役立つことを願っています。

必要な規模の選挙の生データが公開されており、選挙区の外に並んだ別々のポリゴンでシェープファイルの根拠でこれを視覚化する方法を知っています。私の問題は、おそらくご想像のとおり、このようなものはまだ存在しないということです。

実際に公開されているのは、私が興味を持っている地区の境界線をまとめたPDFファイルです:http : //muenster.de/stadt/stadtplanung/pdf/a3_stimmbezirk.pdf

私は自分で線画を描き直すことに熱心ではないので、これからシェープファイルを作成する方法を探しています。幸いなことに、PDfには個別のベクトルオブジェクトとして線画が含まれています。これらをSVGファイルに抽出しました:https : //www.dropbox.com/s/bn7698yrdh5tdqj/a3_stimmbezirk_ungrouped.svg

SVGをDXFに変換し、qgis 2.0.1にインポートしてみました。これは実際には機能しますが、(予想どおり)大西洋にベクトルを配置し、それを編集して修正する方法を見つけることができません。

これらのベクトルをオープンソースツールでジオリファレンスし、最終的にシェープファイルを作成するにはどうすればよいですか?


Munster用のOpenStreeMap Shapefilesをダウンロードできませんか?download.geofabrik.de/europe/germany/nordrhein-westfalen / ...管理境界はすでにジオリファレンスされています。
マッパーズ

コメントしてくれてありがとう、Mapperz!できるように見えますが、現在の選挙区(「Stimmbezirke」)は含まれていません...またはそれはありますか?
bfncs

回答:


12

同じことをしようとしているときに私はあなたの質問につまずきました、ここに私がそれをした方法があります:

使用したソフトウェア:

  • Inkscape
  • QGIS 2.2
  • QGIS用のアフィン変換プラグイン

PDFからベクターデータを抽出する

基本的にInkscapeでPDFを開き、必要な図形を見つけて、すべての背景と周囲のテキストを削除します。.dxfファイルとして保存します。

ベクターファイルの地理参照

ベクターファイルを操作するには、QGISでESRIシェープファイルに変換する必要があります。

QGISを開き、dxfファイルをラスターレイヤーとして追加し、座標系としてDHDN / Gauss-Krugerゾーン3(EPSG:31467)を選択します。レイヤーを右クリックして、ESRI Shapefileとして保存します。このシェープファイルをラスターレイヤーとして開き、もう1つを削除します。

これで、MünstersWahlbezirkeが座標0、0のどこかにあります。

ベクトルを適切な場所に移動(移動)およびサイズ変更するには、ターゲットの座標とサイズを見つける必要があります。短くするために、WahlbezirkeのGeoJSONをもう1つ用意しました。これはジオリファレンスされていますが、それほど詳細ではないため、それを使用して次のデータを計算しました。

  • ターゲットx、y
  • 抽出したベクトルとターゲットサイズのサイズ比(xMin、xMaxおよびyMin、yMax(QGISのレイヤーメタデータから抽出)を使用して、両方のレイヤーのxおよびy方向の寸法を取得し、xおよびy方向の比を計算します)

私の場合、これらはおおよそ次のようになります。

target x 3406388
target y 5745290
yratio 118,539696
xratio 118,637678

レイヤーで編集モード(鉛筆アイコン)を有効にし、これらの数値をAffine Transformationプラグイン(メニューベクトル、ジオプロセシングツール、Affine)に入力し、「レイヤー全体」を選択します。

アフィン変換

[変換]をクリックし、編集モードを無効にして(および保存)すると、ターゲットがほぼ黄色のレイヤーになります。黄色を削除する方法を考えたことがないので、見やすくするためにレイヤーを削除してから追加し直します。

ラスターレイヤーが非常に小さい(赤丸で囲まれた)このようなビューになってしまう可能性があります。ここでズームインします QGIS 2.2小規模ラスターレイヤー (ここで設定を見落としたかもしれませんが、この動作の原因はわかりません)。層の範囲まで」は役に立ちません。)

すでにジオリファレンスされているレイヤーを追加します。OpenStreetMapレイヤー(OpenLayers拡張機能経由)、NRW WMSなどを使用できます。ベクターはまだ正しい位置にないので、編集モードを有効にして移動し、フィーチャー移動ツールを使用します。

QGIS 2.2移動機能

これでポリラインのレイヤーが作成されました。最後のステップは、これらのラインからポリゴンを作成することです。ここでは説明しませんが、詳細についてはこちらをお読みください。

ここで結果を見てください


詳細な回答をどうもありがとう、私はこの問題についてこれ以上助けが得られるとは思っていませんでしたが、その間プロジェクトを保留にしました。私はまだあなたのステップの複製を終えていませんが、これはまさに私が必要なもののように見えます。あなたの助けのおかげで最終的にそれを成し遂げることを楽しみにしています。
bfncs 14

QGISを使用した編集は退屈で直観的ではありません(ズームの動作やバグなどで確認できます)。結果はGithubでオンラインで自由に使用できます(投稿の最後にリンク)。結果のポリラインをポリゴンに変換するためにまだ行っていないので、しばらくしてから行います。編集: 172の地区を持つ他のマップが必要であることが
わかりました。33の

6

GCPポイントでogr2ogrを使用する別のワークフローを次に示します。

  1. 行をsvgとして抽出します(上記のとおり)
  2. inkscapeに読み込み、dxfとして保存
  3. EPSG:31467をCRSとしてQGISにロードします
  4. 周囲の都市の境界の重要な端からいくつかの座標を読み取ります
  5. OSMエディターJOSMを開き、市境の関係62591をダウンロードします
  6. GPXとして保存します
  7. ボーダーを新しいQGISセッションにロードし、プロジェクトCRSをEPSG:31467に設定します
  8. 上記と同じポイントの座標を読み取ります
  9. GDAL用の次のバッチファイルを作成します。
ogr2ogr -a_srs EPSG:31467 -gcp 66.2423 264.3829 3397709. 5756806. -gcp 227.530 17.636 3404474. 5746477. -gcp 443.61 153.42 3413517. 5752162. -gcp 456.24 421.97 3414043. 5763404. -gcp 294.56 552.56 3407296. 5768889. stimmbezirke.shp stimmbezirke.dxf

バッチを実行し、結果のシェープファイルをQGISにロードします。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.