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です。

続く…

地図や位置情報を用いたシステムのご提案・開発ならマルティスープへ

マルティスープは、創業以来のGISとモバイル開発の実績と技術力で、営業支援システムやリサーチ・公共インフラ・工事・警備業界の現場を支援するシステム開発など、地図や位置情報を使った業務システムの導入のご提案や開発をいたします。

現場をつなぐコミュニケーションが屋内外業務のパフォーマンスを最大限に。マルティスープのiField(アイ・フィールド)®シリーズは、屋内外業務の現場の実力を減少させるコミュニケーション障壁を除き、使い慣れたスマートデバイスを使って 現場の実力をリアルに伝えるサービス。

位置・空間情報のエキスパート集団として一緒に働きませんか?

マルティスープは地図情報をはじめとする位置・空間情報技術のエキスパート集団です。当社で日々研究している地図や位置情報といった技術は、災害支援など貢献度の高いシステムとして使用されることもあれば、スマートフォンアプリのゲームとして使われることもあり、その利用用途・価値は、今後もますます広がっていっています。
私たちの企業理念は、「創る喜び、使う喜び」です。
今後の開発体制をより強化するために、新卒・中途問わず、当社の未来を共に創っていただける新メンバーを募集します!

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

2017.04.23

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

みなさん、こんちには。

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

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

続きを読む

2017.03.11

GoogleマップにGeoJSONで図形を描画する

みなさん、こんにちは!

前回、KMLファイルを使って図形を描画する方法を紹介しましたが、今回は GeoJSON ファイルを使って図形を描画・・・

続きを読む

2017.11.20

QGIS で主題図を作る③鉄道・バス停データ

みなさん、こんにちは!

今日は、主題図を作るために使えるデータの紹介をしていきたいと思います。

続きを読む

 - GIS, QGIS, スタッフ日記