こんにちは!GIS導入支援コンサルタントのippuku_timeです。
今日から「5分で分かるSuperMap iDesktopX製品・機能紹介シリーズ」と題して、多機能ながら直感的に使えるGISソフトウェア「SuperMap iDesktopX」の魅力をお伝えしていきます。記念すべき第1回は、このソフトウェアが一体何なのか、その全体像をご紹介します。
【第1回】5分で分かる!クロスプラットフォームGIS「SuperMap iDesktopX」とは?
1. SuperMap iDesktopXの概要
SuperMap iDesktopXは、WindowsだけでなくLinux環境でも快適に動作する、先進的なクロスプラットフォーム対応のデスクトップGISソフトウェアです。従来のGISソフトウェアが特定のOSに縛られがちだった問題を解消し、より柔軟な開発・運用環境を提供します。
データの作成・加工から高度な空間解析、2D/3Dでの可視化まで、GISに必要なあらゆる機能を網羅。クラウドサービスとのシームレスな連携も可能で、空間データのプロフェッショナルな活用を強力にサポートします。
2. ニーズで選べる3つのエディション
iDesktopXは、ユーザーの多様なニーズに応えるため、3つのエディションを提供しています。
エディション
|
主な特徴
|
基礎版
|
データ管理、編集、2D/3D表示、基本的な空間解析など、GISのコア機能を提供。GISの基本操作を習得したい方や、基本的なデータ閲覧・編集が目的の方に最適です。
|
標準版
|
基礎版の機能に加え、高度なデータ編集(トポロジー処理など)、統計グラフ、マップダッシュボード、データ移行ツールなどを搭載。より専門的なデータ処理や可視化を行いたい方向けです。
|
上級版
|
標準版の全機能に加え、ビッグデータ管理・分析、高度な空間解析、映像解析など、最先端の機能を提供。大規模データの解析や研究開発に携わるプロフェッショナルに最適なエディションです。
|
さらに、特定の業務に特化した機能を追加できる拡張モジュールも用意されており、必要な機能を柔軟に組み合わせて利用できます。
3. これ一つで完結!iDesktopXの主な機能
iDesktopXが提供する豊富な機能の中から、特に代表的なものをいくつかご紹介します。
(1) データ管理
① 多様なデータ形式に対応しており、Shapefile、GeoPackage、PostGIS、Oracleなど、様々なGISデータやデータベースを直接扱えます。
② クラウドストレージ(AWS S3互換オブジェクトストレージサービスなど)上のデータにも直接アクセスでき、データ管理の手間を大幅に削減します。
(2) データ編集と処理
① テンプレートを用いた効率的なデータ作成や、複数ユーザーによる同時共同編集(バージョン管理)をサポートします。
② 200種類以上のデータ処理ツールを備え、データの融合、間引き、リサンプリングなどが可能です。
(3) 地図作成と可視化
① 個別値主題図や段階区分主題図など、多彩な主題図を直感的な操作で作成できます。
② 点、線、ポリゴンのシンボルを自由にデザインでき、表現力豊かな地図を作成可能です。
③ マップダッシュボード機能を使えば、地図、グラフ、映像などを組み合わせた統合的な可視化ダッシュボードを構築できます。
(4) 空間解析
① バッファ分析、オーバーレイ分析といった基本的なベクタ解析から、水文解析、ネットワーク解析まで、高度な解析機能を網羅しています。
② 空間統計分析ツールを使えば、データの地理的な分布パターンやホットスポット(集積地)を特定できます。
(5) 3D機能
① 2Dデータから簡単に3Dモデルを立ち上げるクイックモデリング機能を搭載しています。
② 写真測量データやBIMモデルなど、多様な3Dデータを統合的に扱うことができ、日照分析や可視領域分析などの3D空間解析も実行可能です。
(6) プロセスオートメーションとカスタム開発
① 複数の処理ツールを繋ぎ合わせて一連の作業を自動化する「プロセスオートメーション」機能により、定型業務を効率化できます。
② JavaやPythonによる機能拡張(二次開発)に対応しており、独自のツールやUIを構築できます。
4. iDesktopXが選ばれる3つの理由
(1) 高効率、使いやすさ、クロスプラットフォーム
Javaで開発されており、WindowsとLinuxの両環境で同じように動作します。リボンスタイルの直感的なインターフェースで、GIS初心者からプロまで、誰でも効率的に操作できます。
(2) プログラマブル、拡張可能、カスタマイズ可能
プラグイン方式を採用しており、必要な機能だけを組み込んで利用できます。また、JavaやPythonのAPIを通じて、UIのカスタマイズや独自機能の追加が容易に行えます。
(3) 全く新しいクラウド連携機能
SuperMapが提供するGISサーバー製品(SuperMap iServer)へのサービス公開がワンクリックで可能です。クラウド上のGISリソースを共有・活用し、組織全体でのデータ連携を加速させます。
5. 直感的なユーザーインターフェース
iDesktopXは、Microsoft Office製品でおなじみのリボンスタイルのUIを採用しています。機能がタブやグループごとに整理されており、目的のツールをすぐに見つけることができます。
このように、論理的に整理された画面構成により、ストレスなく作業に集中できます。
まとめ
今回は、SuperMap iDesktopXの製品概要と主な特徴についてご紹介しました。iDesktopXが、単なる地図作成ソフトではなく、データの管理から高度な分析、3D、クラウド連携、さらにはシステム開発までをカバーする統合的なGISプラットフォームであることがお分かりいただけたかと思います。
次回は、**第2回「クイックスタート!iDesktopXで最初の地図を作ってみよう」**と題して、実際の操作画面を見ながら簡単な地図作成のチュートリアルをお届けします。お楽しみに!
付録:サンプルコード(Python)
iDesktopXに内蔵されたPython IDEを使って、データ処理を自動化する簡単な例をご紹介します。以下のコードは、指定したデータセットの属性テーブルに新しいフィールドを追加し、既存のフィールド値に基づいて計算した値を入力するものです。
Python
# -*- coding: utf-8 -*-
# SuperMap iObjects Python APIをインポート
from PySuperMap import *
def main():
"""
属性テーブルのフィールドを更新するサンプル関数
"""
try:
# 1. 現在のワークスペースを取得
workspace = Workspace()
print("現在のワークスペースに接続しました。")
# 2. データソースとデータセットを取得
# ここでは "Japan" という名前のデータソースを想定
datasource = workspace.get_datasource("Japan")
if datasource is None:
print("データソース 'Japan' が見つかりません。")
return
# "Admin" という名前のベクタデータセットを想定
dataset = datasource.get_dataset("Admin")
if dataset is None:
print("データセット 'Admin' が見つかりません。")
return
print(f"データセット '{dataset.name}' を処理します。")
# 3. 新しいフィールドを追加(例:人口密度)
field_name = "Pop_Density"
field_info = FieldInfo(field_name, FieldType.DOUBLE)
# フィールドが既に存在しないか確認してから追加
if dataset.get_field_infos().get_index(field_name) < 0:
if dataset.add_field(field_info, True):
print(f"フィールド '{field_name}' を追加しました。")
else:
print(f"フィールド '{field_name}' の追加に失敗しました。")
return
else:
print(f"フィールド '{field_name}' は既に存在します。")
# 4. レコードセットを取得してフィールド値を計算・更新
# "POP" フィールド(人口)と "AREA" フィールド(面積 km2)が存在すると想定
recordset = dataset.get_recordset()
if recordset is None:
print("レコードセットの取得に失敗しました。")
return
recordset.move_first()
while not recordset.is_eof():
# 編集モードを開始
recordset.edit()
# 人口と面積の値を取得
population = recordset.get_value("POP")
area = recordset.get_value("AREA")
# 人口密度を計算 (面積が0でないことを確認)
if area is not None and population is not None and area > 0:
density = population / area
# 計算結果を新しいフィールドに設定
recordset.set_value(field_name, density)
# 編集内容を更新
recordset.update()
# 次のレコードへ移動
recordset.move_next()
print("人口密度フィールドの更新が完了しました。")
except Exception as e:
print(f"エラーが発生しました: {e}")
finally:
# 5. リソースを解放
if 'recordset' in locals() and recordset is not None:
recordset.dispose()
print("処理を終了します。")
if __name__ == '__main__':
main()
コメント
コメントを投稿