MULTISOUP

MULTISOUP

MULTISOUP

Staff Blog

Introduction example

2017.10.23

Mac で xml を gml に変換する(バッチ処理)

img

みなさん、こんにちは。

以前のブログで、Macで基盤地図情報をダウンロードしたもののxmlファイルなのでQGISで使えない問題が発生していた件ですが、以下のブログを参考にPythsonを使って変換してみようと思います。

 

Mac環境でgmlをshpに変換

東京大学 新領域創成科学研究科 味埜・佐藤研究室のページのようです。

変換方法としては、この記事で紹介されているコンバータを使用するのですが、私はとても遠回りしましたので備忘録的にメモしておきます。

 

 

<OS>Mac OS Sierra 10.12.6

1  Python をインストールする。

 pythonの為に、XCode、XCode コマンドラインツール、homebrewをインストールする。Xcodeは、Appstoreから。XCode コマンドラインツールは、このリンクのように確認しました。homebrewは、こちらからダウンロードしました。ターミナルを立ち上げて、指定のコマンドを入力しました。詳しいやり方は、以下を参考にしてください。

Homebrewインストール手順

 次に、Pythonをインストールします。コチラからMac用のをダウンロードしました。ダウンロードから完了までは、環境が近かったこちらのサイト「【決定版】MacでPythonを使って『機械学習』を学ぶための環境構築」を参考にしました。このページの「python3でよく使うライブラリをインストール」までを完了させました。

これで、Pythonを使える環境になりました。

 

 

2 lxmlをインストールする。

 lxmlってなんだい?と思い、検索してみますと…

 

lxml はハイパフォーマンス特性を実証するとともに、XPath 1.0、XSLT 1.0、カスタム要素クラス、さらには Pythonic なデータ・バインディング・インターフェースのネイティブ・サポートを備えた最初の Python XML ライブラリーです。

lxml を使用して Python での XML 構文解析をハイパフォーマンスにする

 

 

具体的になんなのか無学のわしにはわからなかったのですが、データ変換には、lxmlモジュールが必要ということなのでインストールします。今度は、こちらのサイト「Pythonのlxmlモジュールをインストールする」を参考にします。まず、Pythonのモジュール管理には専用のパッケージ管理システムpipをインストールし、でlxmlをインストールします。

 

 

3 jpgisgmlv4togml-converterをダウンロードして解凍します。

  やっと変換のための道具が揃いました!!やったー!!

 

 

4 Terminal上で以下のようなコマンドを打ちます。

cat (元ファイル.xml) | python (jpgisgml2gml.pyをパス付きで記述) > (変換後ファイル.gml) 


 

なので私は実際にこのように打ち込みました。

cat testa.xml | python jpgisgml2gml.py >testa.gml

 

 

変換したいファイルとさっきダウンロードしたコンバータは同じディレクトリ内に置いておきました。

見事に変換成功!GMLになりました^^

 

 

しかし、はて、1ファイルだけできてもな… と思いましたので、バッチ処理でディレクトリ内全ての該当ファイルをgmlに変換したい。。と思い、以下のようなシェルスクリプトを作りました。

#!/bin/sh

for f in *.xml

do

cat $f |  python jpgisgml2gml.py >  “${f%.*}.gml”

done

 

適当な名前で保存し、実行しました。

$ chmod u+x(適当な名前).sh

$ ./(適当な名前).sh

 

 

全てのファイルが、既存のファイル名を生かしたままgmlファイルになりました!

これでやっと QGISにデータを乗せることができました。

社内のQGIS先生ありがとう!!

次回は、GML→SHPです。

続く…

【関連記事】こんな記事も読まれています

2017.04.23

KML を GeoJSON に変換して描画する

みなさん、こんちには。

最近、Google マイマップを使って図形を描画する機会がありました。

そこで、マイマップの機能を使い、K・・・

続きを読む

2017.03.05

Google マップにKMLファイルをロードする

みなさん、こんにちは。

今回は、Google Maps に KMLファイルをロードしてマーカー、ライン、ポリゴンを表示する方法を紹介します。<・・・

続きを読む

2017.04.26

ジオ展来場御礼&当日の様子

みなさん、こんにちは!

先日4/20(金)、ジオ展<・・・

続きを読む

 - GIS, QGIS, スタッフ日記

お問い合わせお見積もりから開発のご相談まで、お気軽にお問い合わせください。

(※)は入力必須項目です。

当社では、お客様がお問い合わせの際に必要な個人情報または、 お問い合わせ内容等につきましては、
お問い合わせの回答の目的のみに利用します。

Google Maps for Work™に関するご質問やお見積りは、
マルティスープまでお気軽にお問い合わせください03-3518-9013 (受付時間:平日 9:00−18:00)