エンドツーエンドの地理空間ストレージ、分析、視覚化

地理空間データにはさまざまな形式があり、データの処理、分析、視覚化にはさまざまな機能が必要です。 地理情報システム (GIS) は一般的ですが、そのほとんどがクラウドネイティブではありません。 ほとんどの GIS はデスクトップ上で動作するため、その規模やパフォーマンスには限界があります。 データをバックエンドに移行する方法は進歩していますが、これらのシステムは依然として IaaS にバインドされているため、スケールが困難です。

この記事では、クラウドネイティブの機能を使うための概要のアプローチを、いくつかのオープンソース ソフトウェア オプションと商用オプションと共に説明します。 3 つのペルソナを考慮します。 ペルソナとは、実装の詳細に立ち入ることなく、概要のフローを求めているアーキテクトです。 次のようなペルソナがいます。

  • 一般的な地理空間アーキテクト。 このアーキテクトは、地理空間を実装する手段を探していますが、GIS やリモート センシングのバックグラウンドを持っていない場合があります。
  • OSS 地理空間アーキテクト。 このアーキテクトは、オープンソース ソフトウェア (OSS) ソリューション専任ですが、コンピューティングとストレージにクラウドを利用しています。
  • COTS 地理空間アーキテクト。 このアーキテクトは、COTS 専任ですが、クラウドのコンピューティングとストレージも利用しています。

考えられるユース ケース

これらのアーキテクチャに用意されているソリューションは、多くのユース ケースに適用されます。

  • レイヤーや気候データなど、大量のラスター データへのアクセスを処理、格納、提供します。
  • ERP システムからのエンティティ位置データを GIS 参照データと結合します。またはベクター データ、配列、ポイント クラウドなどを含みます。
  • 移動するデバイスからのモノのインターネット (IoT) テレメトリを格納します。また、リアル タイムに、またはバッチで分析します
  • 分析地理空間クエリを実行します。
  • キュレーションされコンテキスト化された地理空間のデータを Web Apps に埋め込みます。
  • ドローン、航空写真、衛星画像、LiDAR、グリッド モデルの結果などのデータを処理します。

一般的な地理空間アーキテクチャ

Azure には多くのネイティブ地理空間機能があります。 この図とその次の図を見ると、地理空間データが経る概要の段階がわかります。 まず、データ ソース、インジェスト手順、データが格納、変換、提供、提供、発行、そして最終的に使用される場所があります。 ネイティブ地理空間機能を持つサービスの横にある地球アイコンに注目してください。 また、これらの図は線形プロセスとは見なされません。 "変換" 列から始めて、"発行" と "使用" に進み、さらに派生したデータセットを作成することがあります。この場合、前の列に戻る必要があります。

Geospatial On Azure

このアーキテクチャ フローでは、データがデータベース、ファイル、またはストリーミング ソースから送信され、ネイティブの GIS 形式で格納されない可能性があることを想定しています。 Azure Data Factory を使って、または Azure IoT、Event Hubs、Stream Analytics を介してデータを取り込んだら、Azure SQL、Azure SQL Managed Instance、Azure Database for PostgreSQL、または Azure Data Lake Storage でウォーム ストレージに永続的に格納することができます。 そこから、Azure Batch または Synapse Spark プールを使ってバッチでデータを変換して処理することができます。このどちらも Azure Data Factory または Synapse パイプラインを使って自動化できます。 リアルタイム データの場合、Stream Analytics、Azure Maps を使ってさらに変換または処理したり、Azure Digital Twins を使ってコンテキストに組み込んだりすることができます。 データの変換が完了したら、Azure SQL DB または Azure Database for PostgreSQL、Synapse SQL プール (抽象化された非地域空間データ用)、Azure Cosmos DB または Azure Data Explorer でのその他の用途にも利用できます。 準備ができたら、データはデータベース API を使って直接クエリを実行できますが、多くの場合、発行レイヤーが使われます。 小規模なデータセットであれば Azure Maps Data API で十分ですが、そうでなければ、Web サービスまたはデスクトップ アプリケーションからデータにアクセスできるように、OSS または COTS に基づいた非ネイティブ サービスを導入することができます。 最後に、Azure App Service でホストされている Azure Maps Web SDK で地理視覚化が考慮されます。 もう 1 つのオプションは、Power BI で Azure Maps を使うことです。 最後に、HoloLens と Azure Spatial Anchors を使ってデータを表示し、仮想現実 (VR) と拡張現実 (AR) エクスペリエンスのために現実世界に配置することができます。

これらのオプションの多くは省略可能であり、スケーラビリティも維持しながらコストを削減するために OSS を追加したり、特定の機能を利用するためにサード パーティ ツールを追加したりできることにも留意してください。 次のセッションでは、このニーズに対応します。

サード パーティとオープンソース ソフトウェアの地理空間アーキテクチャ

このパターンでは、Azure ネイティブ地理空間機能を使うアプローチを採用すると同時に、いくつかのサード パーティ ツールとオープンソース ソフトウェア ツールを利用します。

このアプローチと前のフロー図の最も大きな違いは、Azure Marketplace から取得できる Safe Software, Inc. の FME を使う点です。 FME を使うと、CAD (Azure Maps Creator 用)、GIS、BIM、3D、ポイント クラウド、LIDAR など、さまざまな地理空間データを統合できます。450 以上の統合オプションがあり、その機能を使って多くのデータ変換を短時間で作成できます。 ただし、仮想マシンの使用に基づいた実装なので、スケーリング機能には限界があります。 FME 変換のオートメーションは、Azure Data Factory や Azure Functions を使った FME API 呼び出しを利用して実現できる場合があります。 Azure SQL にデータを読み込んだら、たとえば、GeoServer で提供し、Web Feature Service (ベクトル) または Web Mapping Tile Service (ラスター) として発行し、Azure Maps Web SDK で可視化することや、デスクトップ用の QGIS と他の Azure Maps ベース マップを使って分析することができます。

Diagram of Azure and 3rd Party tools and open-source software.

COTS 地理空間アーキテクチャ: 静的ソースとストリーミング ソースを使った Esri

次に紹介するのは、商用 GIS をソリューションの基盤として使うアプローチです。 Azure Marketplace から入手できる Esri のテクノロジがこのアーキテクチャの基礎となりますが、他の商用ソフトウェアも同じパターンに当てはめることができます。 これまでと同様に、ソース、インジェスト、(生の) ストア、読み込みと提供はほぼ同じです。 スタンドアロン コンピューター (VM) 上の ArcGIS Pro を使って、Azure Virtual Desktop を含む大規模ソリューションの一部として、データを変換することもできます。 データは ArcGIS Enterprise または Kubernetes 上の ArcGIS Enterprise (Azure Kubernetes Service) を使って発行できます。 画像は、ArcGIS Enterprise のデプロイの一部として ArcGIS Image を使って IaaS 上で処理できます。 データは、ArcGIS JavaScript SDK、ArcGIS Pro エンドユーザー、ArcGIS Runtime モバイル SDK、または ArcGIS for Power BI を使って Azure App Service でホストされる Web アプリで使用できます。 同様に、ユーザーは ArcGIS Online を使ってデータを使用できます。

Diagram of Esri with static and streaming sources.

COTS 地理空間画像アーキテクチャ: Esri の ArcGIS Image と Azure Orbital

次のアーキテクチャは、Azure Orbital と Esri の ArcGIS Image を組み合わせたものです。 このエンドツーエンド フローでは、Azure Orbital を使って衛星との接続をスケジュールし、データを VM にダウンリンクしたり、Azure Event Hubs にストリーミングしたりすることができます。 直接ストリーミングされた衛星データ以外にも、ドローンやその他の画像データをプラットフォームに取り込み、処理することができます。 生データは、Azure NetApp Files、Azure Storage アカウント (BLOB)、または Azure Database for PostgreSQL などのデータベースに格納することができます。 衛星とセンサーのプラットフォームに応じて、データはレベル 0 からレベル 2 のデータセットに変換されます。 NASA のデータ処理レベルに関するページを参照してください。 どのレベルまでが必要かは、衛星とセンサーによって異なります。 次に、ArcGIS Pro を使ってデータを Mosaic データセットに変換できます。 この Mosaic データセットは、(VM または Kubernetes 上の) ArcGIS Enterprise を使って画像サービスに変換されます。 ArcGIS Image Server から画像サービスとして直接データを提供することや、ユーザーが ArcGIS Image for ArcGIS Online を介して画像サービスを使うことができます。

Diagram of Esri's ArcGIS Image and Azure Orbital.

COTS またはオープンソース ソフトウェアの地理空間画像アーキテクチャ: Azure Space から Analysis Ready Dataset へ

Microsoft の Planetary Computer のように、検索とクエリの機能を持つ API を介して Analysis Ready Dataset を使用できる場合、最初に衛星からデータをダウンロードする必要はありません。 ただし、画像のリード タイムを短くする必要がある場合、Azure Space からデータを直接取得することが理想的です。なぜなら、衛星オペレーターまたはミッション駆動型組織は Azure Orbital 経由で衛星との接続をスケジュールできるためです。 レベル 0 からレベル 2 の Analysis Ready Dataset に移行するプロセスは、衛星や画像製品によって異なります。 多くの場合、複数のツールと中間手順が必要になります。 Azure Batch または他のコンピューティング リソースでは、クラスター内でデータを処理し、結果のデータを格納できます。 データは、ArcGIS、QGIS、またはその他の地理視覚化ツールで使用できるようになるまでに、複数の手順を経る場合があります。 たとえば、データが Cloud Optimized GeoTIFF (COG) 形式になると、ストレージ アカウントまたは Azure Data Lake 経由で提供され、STAC API 経由でアクセスおよびクエリできるようになります。これは、AKS などを使って、サービスとして Azure 上にデプロイすることができます。 または、データは GeoServer を使って Web Mapping Tile Service として発行されます。 コンシューマーは ArcGIS Pro や QGIS で、または Azure Maps または Esri のモバイルおよび Web SDK を使って Web アプリからデータにアクセスできます。

Diagram of Azure Space to Analysis Ready Dataset.

コンポーネント

  • Azure Event Hubs は、ビッグ データのためのフル マネージド ストリーミング プラットフォームです。 このサービスとしてのプラットフォーム (PaaS) には、パーティション分割されたコンシューマー モデルが用意されています。 複数のアプリケーションでこのモデルを使用して、データ ストリームを同時に処理できます。
  • Azure Orbital は、フル マネージドのサービスとしてのクラウドベースの地上局であり、空間データを Azure に直接取り込むことで操作を合理化できます。
  • Azure Data Factory は、異なるデータ ストアからのデータを処理する統合サービスです。 このフル マネージドのサーバーレス プラットフォームを使用して、データ変換ワークフローを作成、スケジュール設定、調整できます。
  • Azure Cosmos DB は、最新のアプリ開発に対応するフル マネージドの NoSQL データベース サービスです。
  • Azure Synapse Analytics は、データ ウェアハウスやビッグ データ システム全体にわたって分析情報を取得する時間を早めるエンタープライズ分析サービスです。
  • Azure Digital Twins は、環境全体 (建物、工場、農場、エネルギー ネットワーク、鉄道、スタジアム、都市全体など) のデジタル モデル に基づいてツイン グラフを作成できるようにするサービスとしてのプラットフォームです。
  • Azure Virtual Desktop は、クラウド上で実行されるデスクトップおよびアプリの仮想化サービスです。
  • Azure Databricks はデータ分析プラットフォームです。 フル マネージド Spark クラスターは、複数のソースからの大量のデータ ストリームを処理します。 Azure Databricks は、分析とデータの視覚化に使用する地理空間のデータを大規模に変換できます。
  • Azure Batch を使うと、大規模な並列処理とハイ パフォーマンス コンピューティング ジョブを実行できます。
  • Azure Data Lake Storage は、ハイ パフォーマンスの分析ワークロード用のスケーラブルで安全なデータ レイクです。 このサービスを使用すると、数百ギガビットのスループットを維持しながら、数ペタバイトの情報を管理できます。 通常、データは、構造化データ、半構造化データ、または非構造化データを含む複数の異種ソースから取得されます。
  • Azure SQL Database は、PaaS バージョンの SQL Server であり、インテリジェントでスケーラブルなリレーショナル データベース サービスです。
  • Azure Database for PostgreSQL は、オープンソースの PostgreSQL データベース エンジンのコミュニティ エディションに基づくフル マネージド リレーショナル データベース サービスです。
  • PostGIS は、GIS サーバーと統合される PostgreSQL データベースの拡張機能です。 PostGIS は、地理的なオブジェクトを含む SQL の場所のクエリを実行できます。
  • Power BI は、ソフトウェア サービスとアプリのコレクションです。 Power BI を使用すると、関連付けられていないデータ ソースに接続し、それらのビジュアルを作成できます。
  • Power BI 用 Azure Maps ビジュアルは、空間データを使用してマップを拡張する方法を提供します。 このビジュアルを使用して、位置データがビジネス メトリックに与える影響を示すことができます。
  • App Service とその Web Apps 機能によって、Web アプリを構築、デプロイ、スケーリングするためのフレームワークが提供されます。 App Service プラットフォームによって、組み込みのインフラストラクチャ メンテナンス、セキュリティ更新プログラムの適用、スケーリングが提供されます。
  • Azure Maps 用 GIS データ API は、マップ データを GeoJSON やベクター タイルなどの形式で格納および取得します。
  • Azure Data Explorer は、大量のデータを処理できる高速フル マネージド Data Analytics サービスです。 このサービスは、当初は時系列とログ分析に重点を置いていました。 現在は、アプリケーション、Web サイト、IoT デバイス、その他のソースからのさまざまなデータ ストリームも処理できます。 Azure Data Explorer の地理空間の機能には、マップ データをレンダリングするためのオプションが用意されています。
  • Azure NetApp Files は、エンタープライズ クラスでハイパフォーマンスの従量制課金ファイル ネットワーク接続ストレージ (NAS) サービスです。
  • Quantum GIS は、地理空間データの編集、分析、地理視覚化をサポートする無料でオープンソースのデスクトップ GIS です。
  • ArcGIS Enterprise は、マッピングと地理視覚化、分析、データ管理のためのプラットフォームです。データ、アプリケーション、カスタムのロー コードまたはノー コード アプリケーションをホストします。 ArcGIS Pro または ArcGIS Desktop (ArcGIS Pro に取って代わられたため、ここには含めていません) というデスクトップ GIS と連携して機能します。
  • ArcGIS Pro は、Esri のプロフェッショナル向けデスクトップ GIS アプリケーションです。 パワー ユーザーは、これを使ってデータの探索、地理視覚化、分析を行うことができます。 2D および 3D 機能を備えており、NV シリーズなどの Azure ハイ パフォーマンス コンピューティング VM 上で最適に動作します。 ArcGIS の使用は、Azure Virtual Desktop を使ってスケールできます。
  • ArcGIS Image for ArcGIS Online は、ArcGIS Online (SaaS) の拡張機能です。地理視覚化、ホスティング、発行、分析を行うことができます。
  • STAC API 仕様を使って、カタログを介してラスター データをクエリおよび取得できます。

上の図にはありませんが、より広範なソリューションには Azure Monitor、Log Analytics、Key Vault も含まれます。

  • Azure Monitor は、環境と Azure リソースに関するデータを収集します。 この診断情報は、可用性とパフォーマンスを維持するために役立ちます。 2 つのデータ プラットフォームがモニターを構成します。
  • Azure Log Analytics は、モニター ログ データに対してクエリを実行する Azure portal ツールです。 Log Analytics には、クエリ結果をグラフ化および統計分析するための機能も用意されています。
  • Azure Key Vault は、トークン、パスワード、API キーなどのシークレットを格納し、これらへのアクセスを制御します。 また Key Vault は、暗号化キーを作成および制御し、セキュリティ証明書を管理します。

代替

Azure Databricks と Synapse Spark プール上では、さまざまな Spark ライブラリを使用して地理空間のデータを操作できます。 以下のライブラリを参照してください。

ただし、Azure Databricks を使用して地理空間のワークロードを処理およびスケーリングするための他のソリューションも存在します。

  • 他の考慮すべき Python ライブラリとして、PySALRasterioWhiteboxToolsTurf.jsPointpatsRaster VisionEarthPyPlanetary ComputerPDAL などがあります。

  • ベクター タイルは、地図上の GIS データを効率的に表示する方法を提供します。 ソリューションから PostGIS を使用してベクター タイルを動的に照会することができます。 この方法は、100 万個未満のレコードが含まれる単純なクエリと結果セットに適しています。 ただし、次のような場合には、別の方法が適している可能性があります。

    • クエリの計算コストが高くなる。
    • データが頻繁に変更されることがない。
    • 大量のデータ セットを表示する。

このような状況では、Tippecanoe を使用してベクター タイルを生成することを検討してください。 Tippecanoe は、データ処理フローの一部として、コンテナーとして、または Azure Functions と一緒に実行できます。 結果のタイルを API を使用して利用できるようにすることができます。

  • Event Hubs と同様に、Azure IoT Hub は大量のデータを取り込むことができます。 ただし IoT Hub は、デバイスとの双方向通信機能も提供します。 デバイスから直接データを受信しても、コマンドとポリシーをデバイスに送り返す場合は、Event Hubs ではなく IoT Hub を検討してください。

次のステップ