タグ別アーカイブ: ラスタ

複数の画像を結合させる

ArcGISでは、座標さえ正しく指定されていれば何枚でもラスタ(例えばgeotiffやjpegなどの画像ファイル)を正しい位置に配置することが出来ますが、処理の都合上、ラスタを合体させたい場合には、モザイク処理を行います。

普段の生活で”モザイク処理”というと、”公然と見せてはいけないものをぼかす”ような処理を想像してしまいますが、GISでは複数の画像をくっつける処理のことを言います。

ArcToolboxより、モザイクと検索すると幾つかのコマンドが出てきますので、お好みの方法で処理してください。

Index polygonを作るArcScriptの紹介

以前、複数のラスタの配置図を作るという記事でインデックスポリゴンの作成方法を紹介しましたが、もっと使いやすいArcScriptが公開されていましたのでご紹介します。

Create Raster Index Shapefile

インストールは、インストーラーがついていますので、setup.exeをダブルクリックし、インストール先フォルダを選択するだけです。

ボタンを表示するには、
ツール>カスタマイズ>コマンド>Query Tools>Create Raster Index Shapefile
とすすみ、適当な所にボタンを配置します。

設定は以下の通り、誰でも分かる簡単な内容です。

  • Input Folder:ラスタが入っているフォルダを選択
  • Output Shapefile:保存先及び名前を指定
  • Process Subfolders:サブフォルダも検索してくれます
  • Project polygons WGS84:座標系をWGS84に変換してくれます

あとは、Create Indexボタンを押せば、サブフォルダにあるラスタデータも全て統合した、使いやすいインデックスポリゴンを作成してくれます。進捗率だけではなく、どのファイルを処理中かも表示されますので、本当に作業中なのか不安になることがありません。

で、出来上がるシェイプファイルも扱いやすい。ジオメトリが壊れているのでそのままでは使えなかったり、パス名が長いと途中でパス名が切れてしまうような、困った仕様ではありません。

属性テーブルも扱いやすいです。

  • Shape:当然Polygon
  • NAME:ファイル名
  • PATH:ファイルの保存先(ファイルパス)&ファイル名
  • FORMAT:ファイル形式(TIFFとかJPEG)
  • COMP:圧縮タイプ(無圧縮ならNone)
  • PYRAMID:ピラミッドの有無(作成済みだとTrue)
  • BANDS:バンド数
  • PIXEL_TYPE:画素タイプ(8ビットとか)
  • SP_REF:そのラスタが設定されている空間参照
  • UNIT:単位
  • SIZE_X:ピクセルサイズX(X方向の画素数)
  • SIZE_Y:ピクセルサイズY(Y方向の画素数)
  • COLS:何かを基準にした列数
  • ROWS:何かを基準にした行数
  • X_MIN:X座標の最小値
  • X_MAX:X座標の最大値
  • Y_MIN:Y座標の最小値
  • Y_MAN:Y座標の最大値

これだけの情報がリスト化されていれば、属性で表示すべきラスタをフィルタリングしたり、ハイパーリンクを付けたりが容易ですね。コレは、誰にでもお勧めできて、ぜひ常用したいArcScriptです。

超高速3次元データビューアー

航空レーザー測量により取得したデータは、広範囲の標高をある程度正確に取得できて大変有用なのですが、ノーマルのArcGISでは描画が遅くイライラします。

そこで、3次元の点の集まりであるレーザープロファイラデータの処理に特化したフリーソフトの紹介です。また、同サイトでは、xyz座標が記載されたcsvテキストファイルをASCII Gridに変換するフリーソフトも公開されています。ArcGISのプラグインではなく、単体で動くソフトです。

このソフトが無料とは信じられません。これはすごいです。

以下に紹介するどちらのソフトも、日本語化されていませんが、ごくごく簡単な英語なので、誰でも使えます。また、ライセンス取得等も必要がないので、ソフトをダウンロードしたらすぐに使えます。インストール自体は、特にオプションはないので迷わず行えます。

■超高速3次元ポイントビューアー
LViz – LiDAR / ALSM 3D Visualization tool
http://lidar.asu.edu/LViz.html (LViz-1.4.1.1.exe)

●LVizの使い方

  1. x,y,z座標が記載されたテキストを用意します。
  2. LVizを起動します。
  3. メニューの『Import』から、『Import Multi-Column Point Cloud File』を選択
    Filename > 座標を記載したファイルを指定
    File Delimeter > csvファイルの区切りを指定
    Get Headersをクリック
    X,Y,Z > 表示したい列を選択する。csvファイルにidとかが記載されている場合は、適宜指定する。
  4. Importが終わると、ArcGISやAutoCADでは考えられないような描画スピードで、膨大なポイントデータを表示してくれます。

■テキストからラスタ(ASCII Grid)に高速変換するソフト
GEON Points2Grid Utility
http://lidar.asu.edu/points2grid.html (GEON-points2grid-Utility-Setup-v1_3.exe)

●GEON Points2Gridの使い方

  1. x,y,z座標が記載されたテキストを用意します。
  2. GEON points2Gridを起動します。
  3. いきなり入力ダイアログが表示されるので、適宜入力する。
    Input File > 上記テキストを指定
    Grid Type > Min,Max,Mean,IDW,Point Countのうち好きなのを選択
    Algorithm Parameters > Grid Resolution 例えば10mメッシュが欲しければ10と入力
    Search Radius Value 特に変更不要
    Output Directory > 出力先フォルダを指定
    Output File > ファイル名を指定
  4. あとは、OKボタンを押すだけで、あっという間にラスタ変換が終わります。

これでフィルタリング処理もできれば最高ですが、フリーソフトでここまで出来れば文句ありませんね。

ラスタデータを複雑な形で抽出する方法

ArcGISでラスタを配置した場合、特に処理を行わなければ、元々のラスタの形のまま(四角形のまま)配置されますが、後から必要な範囲だけをくり抜くことが出来ます。

この作業には、ArcGISとSpatialAnalystというエクステンションを使用します。

○必要なデータ
ベースとなるラスタ(数値地図・航空写真・衛星写真・DEMなど)と抽出したい形のポリゴンシェープファイル(どんなに複雑な形状でもOK)を用意する。

○作業手順
ArctoolBoxより、Spatial Analystツール>抽出>マスクで抽出(Extract by Mask)を実行。

【入力ラスタ】欄に、先ほどのラスタを指定
【入力ラスタ、またはフィーチャマスクデータ】欄に、先ほどのshapeファイルを指定
【出力ラスタ】欄は、出力先なのでお好きなフォルダ&ファイル名を指定

これだけの手順で、ポリゴンと重なった部分のみで作られたラスタデータを作成することができます。

昔の地形と今の地形を比較する

昔と今で地形がどの程度違うのかを比較する場合、写真と地図のどちらを使っても比較することが出来ますが、写真の場合は位置あわせが面倒なので、私の場合は古地図を使います。

昭和初期の古い地形図は、国土地理院より購入することができます。
国土地理院(旧版地図)
http://www.gsi.go.jp/MAP/HISTORY/5-25/index5-25.html

古い1/25000地形図は、日本測地系で作成されているため、標準地域メッシュ・ポリゴン作成ユーティリティ(http://www.esrij.com/support/arcgis_desktop/downloads/ArcGIS_Standard.html)を使って、日本測地系の2次メッシュを作成し、四隅を合わせます。

そのままだと日本測地系で使いにくいので、ArcToolboxを使って世界測地系に変換しておくとよいでしょう。その際、ラスタ名が日本語だとエラーが出るようです。

データ管理ツール>投影変換と座標変換>ラスタ>ラスタの投影変換

そうして作った古地図と最新の地図を比較すれば、地形がどの程度変化しているのか一目瞭然です。

ラスタ変換の方法は目的にあわせて変える

水位や標高データ等を、扱いやすいようにラスタ変換する場合、IDW、スプライン、グリギングと大きく分けて3つの手法があります。

目的に応じて使い分けるようですが、元々の値の内数になるのはIDW、スプライン及びグリギングは元々の値を越えたセル値を設定してしまいます。計算上出てきた値よりも大きくなっては困る場合は、滑らかな形に補正するIDWが良さそうです。

IDWは距離が近いほど、その値を重視した補正(乗算)を行いますので、より点の値を重視したラスタを作りたい場合は2とか3とかにします。たぶん滑らかな方が良い場合は、乗数1が良いのかなと思います。

IDWでラスタを作れないほどデータ数が多い場合は、Spatial Analystツールから内挿>Natural Neighbor であれば作成することが出来るようです。

細かいことを知りたい場合は、マニュアル(ユーザーズガイドp.395)を見てください。

ラスタのリサンプリングについての説明

基本的に、ラスタ地形図として配置するだけの時には、気にしなくて良いです。

ラスタ演算をする場合のみ、考慮してください。何も気にせずラスタを使っていると『最近隣内挿法』になりますが、これだと問題アルよ、という内容です。

最近隣内挿法
ラスタのセルの値を、最も近いポイントのデータと同じにする方法。
ある範囲は5、ある範囲は1など、はっきりとデータの境界が区分されるべきデータで使用する。

共一次内挿法
ラスタのセルの値を、近くの4点の値を元に加重平均で求める方法。
例えば、水位や濃度など、ホントは滑らかなデータなんだけど、代表点でしか値を求められない場合に、この方法でリサンプリングします。
ただし、滑らかに補完するため、元々のジャストポイントのデータをラスタから復元することは出来ません。また、ボヤッとしたデータになります。

三次たたみ込み内挿法
共一次内挿法より詳細な方法で、近接する16個の値から平均値を出します。精度は高いですが、処理に時間がかかります。

ただし、何でもかんでも『三次たたみ込み内挿法』を使えば良いという訳ではありません。

最近隣内挿法では濃淡にむらがある出力結果が得られ、共一次内挿法ではスムースな結果が得られます。また、三次たたみ込み内挿法では、鮮明な結果が得られます。

配置した画像のレクティファイ

航空写真などのラスタを背景として表示したい場合は、ジオリファレンスの更新をすればOK。

Spatial Analystを使ってラスタ演算などの解析を行う場合にのみ、レクティファイが必要になります。

ラスタの配置時のずれを小さくするには、四隅を順番に位置合わせするのではなく、外周部から中心に向けてジグザグにやると、いい感じになります(以下のテキストの感じ)。

1○○○3
○○○○○
○6○5○
○○○○○
4○○○2