河川次数の集計
(Datum ワークステーション)
ノードの前後で次数が同じとき、ノードを超えて1本としてカウントする SML。
Ver. 2.1
SML のダウンロード
Ver. 1
SML のダウンロード
操作手順
- 「解析処理」 > 「SML」 > 「スクリプトの編集...」 を選びます。

- 「ファイル」 > 「開く」 > 「*.SMLファイル...」 を選び、今回の SML を選びます。日本語を使用していますので、開くときの「エンコーディング」は、"日本語(Shift-JIS)" にしてください。

- 開きました。

- 1行1,000列のラスタの1行目に、次数ごとのノード削除前のライン数を格納しました。2行目にノード削除後のライン数を格納しました。最大次数は1,000です(カラム数を大きくすれば、集計可能な最大次数も大きく出来ます)。またラスタタイプが "16bit符号なし" であるため、カウントできる最大ライン数は各次数につき65,025(本)です (ラスタタイプを32bit符号なし整数以上にすれば、それ以上のカウントも可能です)。
- SML の後半部が、今回の SML の中心部分です。次数毎にラインを取り出し、ノードを削除した後、ライン数をカウントしています。ノード削除のために、ラインに付いた属性テーブルは削除しています。
- まずは、簡単なデータでテストしてみます。

- [実行] ボタンを押します。
- 流路ベクタを選択します。

- テーブル、フィールドを選びます。

- 「ファイルを選択」 ウィンドウが出ます。[一つ上へ上がる] や [移動...] ボタンを使って、RVC ファイルを作成するディレクトリ(フォルダ)に移動します。[新規ファイル...] ボタンを押します。

- 「ファイルの新規作成」 ウィンドウが出ますので、RVC ファイル名を与えます。

- 次数がカウントアップして、コンソールウィンドウに集計結果が表示されます。

- 指定した RVC ファイルに、次数ごとに抜き出されたベクタが出来ます。

- オブジェクト名は、分かりやすいように"フィールド名 _ 次数" になっています。またメモとして、流路ベクタ名、テーブル名、フィールド名、次数を記載しました。[すべてを追加] ボタンを使ってベクタを一括して選びます。
- 抜き出したベクタを次数別に表示したのが次の図です。
- 次数1:

- 次数2:

- 次数3:

- 次数4:

- ストレーラーの手法では、次数1については、合流前の2本が1本になっています。「1本ではなく、2本としてカウントすべきである」とすると、次数1については「ノード削除前」のライン数を採用すればいいでしょう。しかし、同様のことが次数2や3でも起きています。この辺りの事情は、シュリーブやシャイデッガーの手法でも同様です。
- 他方、ホートンの手法では、同じ次数の流路が合流すると、流路の長い方の次数を大きくしていますので、この問題はありません。

解説
メールマガジン 第221号「流路次数の集計(2)」 2005/10/14
作成
更新
株式会社オープン・ジー・アイ・エス
