河川次数の集計
(Datum ワークステーション)

ノードの前後で次数が同じとき、ノードを超えて1本としてカウントする SML。

Ver. 2.1

SML のダウンロード

count_path_UTF8_v21.sml

Ver. 1

SML のダウンロード

count_path_v1.sml

操作手順

  1. 「解析処理」 > 「SML」 > 「スクリプトの編集...」 を選びます。
  2. 「ファイル」 > 「開く」 > 「*.SMLファイル...」 を選び、今回の SML を選びます。日本語を使用していますので、開くときの「エンコーディング」は、"日本語(Shift-JIS)" にしてください。
  3. 開きました。
  4. 1行1,000列のラスタの1行目に、次数ごとのノード削除前のライン数を格納しました。2行目にノード削除後のライン数を格納しました。最大次数は1,000です(カラム数を大きくすれば、集計可能な最大次数も大きく出来ます)。またラスタタイプが "16bit符号なし" であるため、カウントできる最大ライン数は各次数につき65,025(本)です (ラスタタイプを32bit符号なし整数以上にすれば、それ以上のカウントも可能です)。
  5. SML の後半部が、今回の SML の中心部分です。次数毎にラインを取り出し、ノードを削除した後、ライン数をカウントしています。ノード削除のために、ラインに付いた属性テーブルは削除しています。
  6. まずは、簡単なデータでテストしてみます。
  7. [実行] ボタンを押します。
  8. 流路ベクタを選択します。
  9. テーブル、フィールドを選びます。
  10. 「ファイルを選択」 ウィンドウが出ます。[一つ上へ上がる] や [移動...] ボタンを使って、RVC ファイルを作成するディレクトリ(フォルダ)に移動します。[新規ファイル...] ボタンを押します。
  11. 「ファイルの新規作成」 ウィンドウが出ますので、RVC ファイル名を与えます。
  12. 次数がカウントアップして、コンソールウィンドウに集計結果が表示されます。
  13. 指定した RVC ファイルに、次数ごとに抜き出されたベクタが出来ます。
  14. オブジェクト名は、分かりやすいように"フィールド名 _ 次数" になっています。またメモとして、流路ベクタ名、テーブル名、フィールド名、次数を記載しました。[すべてを追加] ボタンを使ってベクタを一括して選びます。
  15. 抜き出したベクタを次数別に表示したのが次の図です。
  16. 次数1:
  17. 次数2:
  18. 次数3:
  19. 次数4:
  20. ストレーラーの手法では、次数1については、合流前の2本が1本になっています。「1本ではなく、2本としてカウントすべきである」とすると、次数1については「ノード削除前」のライン数を採用すればいいでしょう。しかし、同様のことが次数2や3でも起きています。この辺りの事情は、シュリーブやシャイデッガーの手法でも同様です。
  21. 他方、ホートンの手法では、同じ次数の流路が合流すると、流路の長い方の次数を大きくしていますので、この問題はありません。

解説

メールマガジン 第221号「流路次数の集計(2)」 2005/10/14

作成
更新
株式会社オープン・ジー・アイ・エス