WMSからオフラインマップを作成するためのPythonコンソールの使用(タイルダウンローダ)

この研究は、WMS / WFSやPythonコンソールのスクリプトの助けを借りて、タイルをダウンロードすることにより、QGISマップビューにロードされた任意の地図からオフライン地図を準備する方法について説明します。skriptは、さらなる使用のためにすべてのタイルのモザイクを生成します。

Webマッピングサービス(WMS)サービスを通じて、ラスター/ベクター地図にアクセスすることは非常に一般的かつ効率的です。それは、セキュリティ、集中管理、柔軟な地図スタイルなどのいくつかの利点を有しています。例では、グーグルマップ、ヤフー、ビング、MODIS、ランドサット、NASAによる公開地図、NRSC(インド)です。WMSの欠点/制限は、インターネットやイントラネットを経由して動作することです。特に調査中の現場で、常にインターネット接続を取得できないことがあります。またWMSは、IMGなどのGeoTiff、JPG、などの何らかのオフライン画像フォーマットに比べると、動作が遅いです。

QGISの使用

QGISでは、任意のWMSサービスへアクセス・接続するためのツールを提供しています。WMS接続は単純なURLに基​​づいており、接続が確立されると、地図をQGISのMapViewの上で見ることができます。JPGとしてQGISのMapViewから見える範囲の地図を保存(ファイル>画像として保存)した場合には、特定の地域の地理座標情報を持つワールドファイルが作成されます。例えばsample.jpgが地図でsample.jpgwが座標を持つ。それは、ダウンロードした画像が地理参照されることを意味します。私たちは、手動でグリッド形式でタイルをダウンロードして、後でオフラインで使用できます。面積が非常に小さいか、低解像度画像が精細であればマニュアルのダウンロードが可能です。

QGIS with WMS tiles

WMSタイル付きQGIS

Pythonコンソール

短いスクリプトはPyQGIS開発クックブックでQGISの公式ウェブサイト上で利用可能なヘルプで「Pythonコンソール」で書かれていました。スクリプトは、次のように基本的に4つの成分から成り、

  1. 最初のタイルのX、Y座標(左上と右下)

  2. ダウンロードするタイルのサイズ(0.001 X 0.001など)

  3. ダウンロードするタイルのNO(地図の全範囲とタイルのサイズに基づいて計算されます)

  4. 出力タイル/ファイルを格納する出力ディレクトリ

スクリプトは2つの簡単なforループで機能します。それは最初にQGIS地図ビューと実行行/列の地図の範囲を規定します。地図範囲が設定されると、地図はQGISにロードされます。3秒(インターネット接続に依存します)の遅延は、ユーザー定義のディレクトリ内のjpgとして地図を保存する前に導入されました。スクリプトが実行されると、ディレクトリに作成されたすべてのタイルは直接QGISにロードできるか、または単一のモザイクが 「ラスター > その他 > マージまたは仮想ラスター(カタログ)をビルド 」から準備されます。どちらのツールもモザイクを生成しますが、基本的な違いは、マージでのタイルの独立した画像を作成します一方、仮想ラスターはすべての個々のタイル(タイルは必須)にリンクを生成します。

Python script and directory where tiles are stored

タイルが保存されているPythonスクリプトとディレクトリ

この方法には、サーバー側での地図での変更がオフライン(ダウンロードした地図)には反映されないという限界があります。この場合、ユーザーは、プロセスを繰り返し、新しいオフライン地図を生成する必要があります。第2の限界は、作成されるオフライン地図が画像形式となることです。それは、主題図や画像の分類には使用できません。いくつかの土地利用図は、いくつかの余分な努力といくつかのデータ損失でベクターに変換できます。

範囲

生成されたモザイクは、それが主題図(7-8色)からダウンロードされても、純粋な画像です。再分類のような事前のツールを使用して、このラスタースタッキングレイヤー/バンドポリゴンベクターに変換できます。WMSはgetgeatureinfoを使用してこのようなgetfeatureinfo等は、GetCapabilities、GetMapリクエスト、などのいくつかの要求を取得でき、各ポリゴンの属性情報を有しています。スクリプト知識がなくても誰でも、スクリプトを使用できるようになりますように、スクリプトはプラグインに変換できます。

結論

上記の経験は、QGISを任意の高度なレベルで使用できることを示しています。基本的なプログラミングのスキルがあれば、小さなスクリプトやプラグインを書くことで、仕事の質を向上させ時間を節約できます。QGISの中で、世界的に開発されたプラグインのリポジトリへアクセスできることは、QGISの最高です。PyQGIS開発者クックブックは、スクリプトを書くための素晴らしいリソースであり、ラスタデータ処理はGDALツールの助けで今ははるかに簡単です。

著者

この記事はPrashant Kadgiによって2014年5月寄稿されました。氏はプネ(インド)を拠点に、現在、GIS APPコンサルティングサービスでコンサルタントとして働いています。2009年以来NRM、林業、電子政府、インドと世界のさまざまな地域でのソフトウェア開発プロジェクトでGIS&RSを使用しています。