(57)【要約】【課題】  河川区間の自動検索を可能とする。【解決手段】  全国の流域内の河川区間ラインデータに対し、地理情報をベースにして河川名、流域、上流、下流、合流方向が規則的に区別できる、法則性を持った河川区間ＩＤ（例えば番号）が割り振られ、河川区間ＩＤが記憶部に予め記憶されている。処理部は、記憶部に記憶された河川区間ＩＤの規則性を利用して、河川区間の自動検索（任意の河川区間へ流入する上流域全ての河川区間、及び、任意の河川区間から海までの河川の流下経路の抽出）を行う。例えば、処理部は、検索する基準となる基準河川区間ＩＤ（例えば、図中白抜き数字で示されるＩＤ）を設定し、記憶部に記憶された各河川区間ＩＤと基準河川区間ＩＤとに基づき、各河川区間ＩＤが基準河川区間ＩＤよりも「上流」又は「下流」又は「上流でも下流でもない」のいずれかに分類し、それぞれ所定のファイルに記憶する。【選択図】  図５
2005316519.tif 000002
【特許請求の範囲】
【請求項１】
所望の河川区間から河口までの流下経路を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、各識別情報が示す値以下であると判断された場合に、選択された河川区間識別子を下流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、基準河川区間識別子のサブ流域識別子が、河口に流れ込む河川区間を示す値か否かを判断するステップと、
処理部は、河口に流れ込む河川区間を示す値と判断されるまで、基準河川区間識別子を、１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更し、河川区間識別子ファイルを参照して、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を選択し、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子を、下流河川区間識別子ファイルに記憶することを繰り返すステップと
を含む前記河川区間検索方法。
【請求項２】
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと
をさらに含む、所望の河川区間から河口までの流下経路及び当該河川区間の上流区間を検索するための請求項１に記載の河川区間検索方法。
【請求項３】
所望の河川区間の上流区間を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、上流区間を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内河川区間の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと
を含む前記河川区間検索方法。
【請求項４】
処理部は、前記大きいか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きくないと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致するものでないと判断された場合に、選択された河川区間識別子をその他河川区間識別子ファイルに記憶するステップ
をさらに含む請求項２又は３に記載の前記河川区間検索方法。
【請求項５】
処理部は、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する、選択された河川区間識別子について、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子以外の河川区間識別子を、その他河川区間識別子ファイルに記憶するステップ
をさらに含む請求項１に記載の前記河川区間検索方法。
【請求項６】
前記本流であるか否かを判断するステップは、
基準河川区間識別子の小区間識別子の第２識別情報が０であればサブ流域の本流であると判断し、一方０以外であればサブ流域の本流でないと判断する請求項２又は３に記載の河川区間検索方法。
【請求項７】
処理部は、前記河口に流れ込む河川区間を示す値か否かを判断するステップで、河川区間識別子が河口に流れ込む河川区間を示す値と判断された場合、下流河川区間識別子ファイルに記憶された下流河川区間識別子を降順又は昇順に並べるステップ
をさらに含む請求項１に記載の河川区間検索方法。
【請求項８】
前記河口に流れ込む河川区間を示す値か否かを判断するステップは、
処理部は、基準河川区間識別子のサブ流域識別子及び／又は小区間識別子の各識別情報全てが０であれば河口に流れ込む河川区間を示す値と判断し、それ以外であれば河口に流れ込む河川区間を示す値でないと判断する請求項１に記載の河川区間検索方法。
【請求項９】
前記下流河川区間識別子ファイルに記憶することを繰り返すステップは、
処理部は、基準河川区間識別子のサブ流域識別子を下位から検索し、最初に０以外の数となる識別情報においてこれが１小さいサブ流域識別子を求め、そのサブ流域識別子を新たなサブ流域識別子とし、河川区間識別子ファイルを参照して新たなサブ流域識別子を有する河川区間識別子の内、小区間識別子の示す値が最大の河川区間識別子を読み出し、基準河川区間識別子を読み出された河川区間識別子に変更することにより、基準河川区間識別子を１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更すること
を含む請求項１に記載の河川区間検索方法。
【請求項１０】
前記河川区間識別子は、河川又は水系毎の水系識別子をサブ流域識別子の上位にさらに含み、基準河川区間識別子と同一の水系識別子を有する河川区間識別子に対して、上流区間又は流下経路の検索がされる請求項１又は３に記載の河川区間検索方法。
【請求項１１】
河川の本流と支流の関係、及び、支流が他の支流に流れ込む関係は、本流が管轄上または地域慣習上決まっている場合はそれを優先し、それ以外は合流点からより長いほうを本流、短いほうを支流とし、又は、長いほうを第ｋ−１の支流、短いほうを第ｋの支流として、河川区間識別子が割り当てられた請求項１又は３に記載の河川区間検索方法。
【請求項１２】
処理部は、河川区間識別子に対応して、河川区間に生息する生物の生息情報、河川区間に存在するダム情報又は河川内構造物情報、その河川区間に汚濁を付加する排水施設情報、各種統計情報等のいずれか又は複数を含む属性データが記憶された属性データテーブルを参照し、上流河川区間識別子ファイル及び／又は下流河川区間識別子ファイルに記憶された各河川区間識別子に基づき、対応する属性データを取得し、及び、表示部に表示又は出力部に出力するステップ
をさらに含む請求項１又は３に記載の河川区間検索方法。
【請求項１３】
処理部は、河川区間識別子ファイルに記憶された河川区間識別子を順次読み出し、河川区間識別子が割り当てられた法則性に従って河川の構成を示す河川図を表示部に表示し、及び、上流河川区間識別子ファイル及び／又は下流河川区間識別子ファイルに記憶された河川区間識別子を順次読み出し、読み出された河川区間識別子に基づき上流区間又は流下経路を、表示された河川図に重畳して表示するステップ
をさらに含む請求項１又は３に記載の河川区間検索方法。
【請求項１４】
所望の河川区間から河口までの流下経路を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）河川の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、基準河川区間識別子のサブ流域識別子及び小区間識別子を下位の識別情報から順次参照し、最初に０以外になる識別情報に対応する、基準河川区間識別子の識別情報について、その識別情報が示す値を減少させるステップと、
処理部は、河川区間識別子ファイルを参照して、値が減少された基準河川区間識別子と一致する河川区間識別子を検索し、該当する河川区間識別子を読み出して下流河川区間識別子ファイルに記憶するステップと、
処理部は、値が減少された識別情報が０か否かを判断するステップと、
処理部は、値が減少された識別情報が０でないと判断された場合、その識別情報が示す値をさらに減少させて、これと一致する河川区間識別子の検索及び記憶を繰り返し、一方、値が減少された識別情報が０であると判断された場合、値が減少された識別情報のひとつ上位の識別情報が示す値を減少させて、これと一致する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、識別情報の示す値が減少された基準河川区間識別子のサブ流域識別子流域小区間識別子が全て０になるまで、該当する河川区間識別子の検索及び記憶を繰り返すステップと、
を含む河川区間検索方法。
【請求項１５】
所望の河川区間の上流区間を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、上流区間を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内河川区間の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、河川区間識別子のひとつを選択するステップと、
処理部は、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、（１）選択された河川区間識別子と基準河川区間識別子のサブ流域識別子が一致し、かつ、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいことにより、選択された河川区間識別子が基準河川区間の上流にあると判断し、又は、（２）基準河川区間識別子のサブ流域識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｊ識別情報（ｊは整数）の１つ上位の第ｊ＋１識別情報と、選択された河川区間識別子のサブ流域識別子の第ｊ＋１識別情報とが一致し、かつ、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいことにより、選択された河川区間識別子が、検索基準河川区間を含むサブ流域よりも上流のサブ流域に含まれると判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記含まれると判断するステップで、選択された河川区間識別子が基準河川区間の上流にあると判断され、若しくは、選択された河川区間識別子が、検索基準河川区間を含むサブ流域よりも上流のサブ流域に含まれると判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと
を含む前記河川区間検索方法。
【請求項１６】
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、各識別情報が示す値以下であると判断された場合に、選択された河川区間識別子を下流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、基準河川区間識別子のサブ流域識別子が、河口に流れ込む河川区間を示す値か否かを判断するステップと、
処理部は、河口に流れ込む河川区間を示す値と判断されるまで、基準河川区間識別子を、１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更し、河川区間識別子ファイルを参照して、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を選択し、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子を、下流河川区間識別子ファイルに記憶することを繰り返すステップと
をコンピュータに実行させるための河川区間検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、上流区間を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと
をコンピュータに実行させるための河川区間検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
所望の河川区間から河口までの流下経路、当該河川区間の上流区間、及び、当該河川区間の流下経路でも上流区間でもない区間を検索するための河川区間検索プログラムであって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、各識別情報が示す値以下であると判断された場合に、選択された河川区間識別子を下流河川区間識別子ファイルに記憶するステップと、
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと
処理部は、前記大きいか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きくないと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致するものでないと判断された場合に、選択された河川区間識別子をその他河川区間識別子ファイルに記憶するステップ
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、基準河川区間識別子のサブ流域識別子が、河口に流れ込む河川区間を示す値か否かを判断するステップと、
処理部は、河口に流れ込む河川区間を示す値と判断されるまで、基準河川区間識別子を、１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更し、河川区間識別子ファイルを参照して、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を選択し、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子を、下流河川区間識別子ファイルに記憶することを繰り返すステップと、
処理部は、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する、選択された河川区間識別子について、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子以外の河川区間識別子を、その他河川区間識別子ファイルに記憶するステップと
をコンピュータに実行させるための河川区間検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、河川区間検索方法、河川区間検索プログラム及び河川区間検索プログラムを記録した記録媒体に係り、特に、流域内河川区間に割り当てられた識別子（ＩＤ）を利用した河川区間検索方法、河川区間検索プログラム及び河川区間検索プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
現状では、全国規模で統一・公開されている既存の河川ラインデータは、国土地理院で整備している国土数値情報（国土情報整備事業によって作成されたデジタルデータ）等がある。これは、単なるデジタル化されたラインデータ（例えば、絵の中の線のような物）である。この河川ラインデータには、そのＩＤ番号に河川の上流・下流関係を示す情報が含まれていない。このため、特定河川区間データに対し、上流域、下流河川の検索を行う事が困難である。
【０００３】
また、標高ラスターデータを必要とせずに、広大な領域における河川網等に関する線画化ラスターデータ及び網ベクトルデータを作成する線画化処理方法等が開示されている（例えば、特許文献１参照）。特許文献１に記載の方法では、原河川網ラスターデータに対して、最上流端と最下流端を指定し、最上流端と支川上流端及び最下流端を結ぶ全ての経路を自動生成している。また、複数の支川を仮幹川に順次合流させることができるように、河川の上流から下流へ向けて全ての河川上の点に番号をつけて、河川網ベクトルデータが出力される。
【特許文献１】特開２００−１４９０３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
現在日本の河川の各区間には、一元管理された特定番号が存在しない。したがって、流域内全体を視野に入れた管理を行う事が非常に困難な状態である。これは、現在の河川管理体制が、一級河川については国、二級河川については地方自治体という様に分割されており、管轄地域の違いが大きく影響していると考えられる。また、流域が二つ以上の県にまたがっている場合に、地方自治体の担当部局が別である事も一因であると想定される。この現状が流域一貫の管理（流域全体を統合的に管理していく考え方）を困難にしている。また、河川区間の自動検索を可能とすることは、流域管理にとって必要不可欠ともいえる。
【０００５】
現在日本中の河川区間に一元的に管理された番号が振られていないことは、住所に例えれば、市町村・字・番地があっても郵便番号がない状態である。○○川水系、○○川、○○沢と表示されても、そこがどこにあるのか、またその上流・下流はどんなところなのかなど、詳細には想像出来ない場合がある。また、国民のほとんどは、自分達の居住地がどの水系にあるのか、また海まではどのように繋がっているのかを認識出来ないこともある。このことは、漠然とした飲料水への不安と、水に流せば後はどうにかなるといった無責任な下水処理感覚が広まる要因ともなり得る。
【０００６】
また、特許文献１に記載の方法等は、例えば、河川の番号は河川網ベクトルデータを作成するための手段である。また、付与された番号に基づき、特定区間からの上流と下流を辿ることは困難である。
【０００７】
本発明は以上の点に鑑み、全国規模で、全ての河川区間に所定の法則性を持つ固有の認識番号を割り振り、その番号の振り分け方の規則性を活用し、河川区間の自動検索を可能とすることを目的とする。また、本発明は、任意の河川区間へ流入する上流域全ての河川区間の自動検索、及び、任意の河川区間から海までの流下経路の自動検索を可能とすることを目的とする。さらに、河川区間に様々な地理情報を事前に属性としてデータベース化しておき、河川の上流と下流の因果関係を含めた空間的解析を可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、全国の流域内の河川区間ラインデータに対し、法則性を有する特定の固有番号（以下、河川区間ＩＤ）を与え、そのＩＤ番号の法則性を利用して流域内の特定河川区間（その区間より上流域の全ての河川区間、またその区間から下流の海までの最短区間）を検索可能とする。
さらに、河川区間に対してそこに含まれる環境属性（生物生息情報、産業関連情報、環境負荷インベントリー等）をあらかじめデータベース化しておけば、流域内河川の空間的な解析をとおして環境保全や国土防災の面でより高度な流域管理が可能となる。
【０００９】
本発明は、例えば、以下の事項を実現する。
（１）河川区間ＩＤを付けるべきデジタル化された河川区間ラインデータを作成する（河川区間の定義）。
（２）河川区間ラインデータに上流と下流の位置関係を持つＩＤ番号を付加する（河川区間ＩＤの付け方の法則性）
（３）河川ラインデータに属性情報として、河川構造物、生物生息情報、汚濁排水地点情報、採水地点データ、下水処理施設データ等を結合しデータの表を作成する（流域環境データの一元的な管理）。
（４）記憶部に記憶された上述の河川区間ＩＤに基づき、上流・下流の自動検索を行う。コンピュータの処理部により、河川区間の上流下流の関係を判断して求め、その属性データの間の因果関係を解析する。
【００１０】
本発明の第１の解決手段によると、
所望の河川区間から河口までの流下経路を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、各識別情報が示す値以下であると判断された場合に、選択された河川区間識別子を下流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、基準河川区間識別子のサブ流域識別子が、河口に流れ込む河川区間を示す値か否かを判断するステップと、
処理部は、河口に流れ込む河川区間を示す値と判断されるまで、基準河川区間識別子を、１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更し、河川区間識別子ファイルを参照して、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を選択し、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子を、下流河川区間識別子ファイルに記憶することを繰り返すステップと
を含む前記河川区間検索方法が提供される。
【００１１】
本発明の第２の解決手段によると、
所望の河川区間の上流区間を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、上流区間を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内河川区間の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと
を含む前記河川区間検索方法が提供される。
【００１２】
本発明の第３の解決手段によると、
所望の河川区間から河口までの流下経路を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）河川の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、基準河川区間識別子のサブ流域識別子及び小区間識別子を下位の識別情報から順次参照し、最初に０以外になる識別情報に対応する、基準河川区間識別子の識別情報について、その識別情報が示す値を減少させるステップと、
処理部は、河川区間識別子ファイルを参照して、値が減少された基準河川区間識別子と一致する河川区間識別子を検索し、該当する河川区間識別子を読み出して下流河川区間識別子ファイルに記憶するステップと、
処理部は、値が減少された識別情報が０か否かを判断するステップと、
処理部は、値が減少された識別情報が０でないと判断された場合、その識別情報が示す値をさらに減少させて、これと一致する河川区間識別子の検索及び記憶を繰り返し、一方、値が減少された識別情報が０であると判断された場合、値が減少された識別情報のひとつ上位の識別情報が示す値を減少させて、これと一致する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、識別情報の示す値が減少された基準河川区間識別子のサブ流域識別子流域小区間識別子が全て０になるまで、該当する河川区間識別子の検索及び記憶を繰り返すステップと、
を含む河川区間検索方法が提供される。
【００１３】
本発明の第４の解決手段によると、
所望の河川区間の上流区間を検索するための河川区間検索方法であって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、上流区間を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内河川区間の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、河川区間識別子のひとつを選択するステップと、
処理部は、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、（１）選択された河川区間識別子と基準河川区間識別子のサブ流域識別子が一致し、かつ、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいことにより、選択された河川区間識別子が基準河川区間の上流にあると判断し、又は、（２）基準河川区間識別子のサブ流域識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｊ識別情報（ｊは整数）の１つ上位の第ｊ＋１識別情報と、選択された河川区間識別子のサブ流域識別子の第ｊ＋１識別情報とが一致し、かつ、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいことにより、選択された河川区間識別子が、検索基準河川区間を含むサブ流域よりも上流のサブ流域に含まれると判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記含まれると判断するステップで、選択された河川区間識別子が基準河川区間の上流にあると判断され、若しくは、選択された河川区間識別子が、検索基準河川区間を含むサブ流域よりも上流のサブ流域に含まれると判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと
を含む前記河川区間検索方法が提供される。
【００１４】
本発明の第５の解決手段によると、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、各識別情報が示す値以下であると判断された場合に、選択された河川区間識別子を下流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、基準河川区間識別子のサブ流域識別子が、河口に流れ込む河川区間を示す値か否かを判断するステップと、
処理部は、河口に流れ込む河川区間を示す値と判断されるまで、基準河川区間識別子を、１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更し、河川区間識別子ファイルを参照して、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を選択し、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子を、下流河川区間識別子ファイルに記憶することを繰り返すステップと
をコンピュータに実行させるための河川区間検索プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００１５】
本発明の第６の解決手段によると、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、上流区間を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと、
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと
をコンピュータに実行させるための河川区間検索プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００１６】
本発明の第７の解決手段によると、
所望の河川区間から河口までの流下経路、当該河川区間の上流区間、及び、当該河川区間の流下経路でも上流区間でもない区間を検索するための河川区間検索プログラムであって、
処理部は、河川の水系を細分化した各サブ流域と、各サブ流域内の河川を構成する各小区間とに対して付与された河川区間識別子を記憶した河川区間識別子ファイルから、又は、入力部から、流下経路を検索する基準となる基準河川区間識別子を入力するステップであって、前記河川区間識別子は、上位から第１識別情報乃至第ｍ識別情報（ｍは整数）の順に並べて構成されたサブ流域識別子と、上位から第１識別情報乃至第ｎ識別情報（ｎは整数）の順に並べて構成された小区間識別子とを含み、前記サブ流域識別子と前記小区間識別子はそれぞれ、（１）水系の本流又はサブ流域内の本流は、サブ流域識別子及び小区間識別子の第１識別情報が下流から上流側に向うに従い番号が増加し、（２）水系の本流又はサブ流域内の本流に流れ込む第１の支流は、サブ流域識別子及び小区間識別子の第１識別情報は流れ込む本流の第１識別情報と一致し、かつ、第２識別情報は下流から上流側に向うに従い番号が増加し、及び、（３）水系又はサブ流域内の第ｋ−１の支流（ｋは２以上ｍ−１又はｎ−１以下の整数）に流れ込む第ｋの支流は、サブ流域識別子及び小区間識別子の第１識別情報乃至第ｋ識別情報は流れ込む第ｋ−１の支流の第１乃至第ｋ識別情報と一致し、かつ、第ｋ＋１識別情報は下流から上流側に向うに従い番号が増加するように割り当てられた識別子である、前記入力するステップと、
処理部は、河川区間識別子ファイルを参照し、入力された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子のひとつを選択するステップと、
処理部は、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、入力された基準河川区間識別子の小区間識別子の各識別情報が示す値以下であるか否かを判断するステップと、
処理部は、各識別情報が示す値以下であると判断された場合に、選択された河川区間識別子を下流河川区間識別子ファイルに記憶するステップと、
処理部は、前記各識別情報が示す値以下であるか否かを判断するステップで各識別情報が示す値以下でないと判断された場合、基準河川区間識別子の小区間識別子の第２識別情報が予め設定された０又は予め設定された最小値か否かに基づき、基準河川区間がサブ流域の本流であるか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流であると判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きいか否かを判断するステップと、
処理部は、基準河川区間がサブ流域の本流でないと判断された場合、選択された河川区間識別子が示す値が、基準河川区間識別子が示す値より大きく、かつ、基準河川区間識別子の小区間識別子を下位の識別情報から上位の識別情報へ順次参照したときに値が最初に０以外になる第ｉ識別情報（ｉは整数）の１つ上位の第ｉ＋１識別情報と、選択された河川区間識別子の小区間識別子の第ｉ＋１識別情報とが一致するか否かを判断するステップと、
処理部は、前記大きいか否か判断するステップで、選択された河川区間識別子が示す値の方が大きいと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致すると判断された場合に、選択された河川区間識別子を上流河川区間識別子ファイルに記憶するステップと
処理部は、前記大きいか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きくないと判断された場合に、及び／又は、前記一致するか否かを判断するステップで、選択された河川区間識別子が示す値の方が大きく、かつ、第ｉ＋１識別情報が一致するものでないと判断された場合に、選択された河川区間識別子をその他河川区間識別子ファイルに記憶するステップ
処理部は、河川区間識別子ファイルに記憶された河川区間識別子について、基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を全て選択するまで、河川区間識別子を選択して該当する河川区間識別子の検索及び記憶を繰り返すステップと、
処理部は、基準河川区間識別子のサブ流域識別子が、河口に流れ込む河川区間を示す値か否かを判断するステップと、
処理部は、河口に流れ込む河川区間を示す値と判断されるまで、基準河川区間識別子を、１つ下流のサブ流域中で小区間識別子が最大の河川区間識別子に変更し、河川区間識別子ファイルを参照して、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する河川区間識別子を選択し、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子を、下流河川区間識別子ファイルに記憶することを繰り返すステップと、
処理部は、変更された基準河川区間識別子のサブ流域識別子と同じサブ流域識別子を有する、選択された河川区間識別子について、選択された河川区間識別子の小区間識別子の各識別情報が示す値がそれぞれ、変更された基準河川区間識別子の小区間識別子の各識別情報が示す値以下である河川区間識別子以外の河川区間識別子を、その他河川区間識別子ファイルに記憶するステップと
をコンピュータに実行させるための河川区間検索プログラムが提供される。
【発明の効果】
【００１７】
本発明によると、全国規模で、全ての河川区間に所定の法則性を持つ固有の認識番号を割り振り、その番号の振り分け方の規則性を活用し、河川区間の自動検索を可能とすることができる。また、本発明によると、任意の河川区間へ流入する上流域全ての河川区間の自動検索、及び、任意の河川区間から海までの流下経路の自動検索を可能とすることができる。さらに、本発明によると、河川区間に様々な地理情報を事前に属性としてデータベース化しておくことで、河川の上流と下流の因果関係を含めた空間的解析を可能とすることができる。
【００１８】
また、本発明によると、例えば、以下のような事例に速やかに対応が可能となる。
（特定区間から上流部の自動検索の実用例）
１）川のある地点で問題が生じた場合（悪臭の発生、魚類の大量死、著しい汚染など）、その河川区間から上流の河川すべてを検索し、問題となりそうな個所（下水排水施設、工事現場等）との因果関係を検討する事が可能となる。
例えば、河川の特定区間で魚類の大量死など生態学的異常が認められた場合、排水施設地点を河川区間の属性情報として事前に登録しておけば、問題地点から上流の河川区間を全て検索する事を通して、上流区間の属性データ（この場合は有害物質等の排出量など）との因果関係を推察する事が可能となる。
２）河川内横断構造物（例えば農業用頭首工やダムなど）の設置を計画した場合、そこに水が流れ込む集水域の抽出や汚濁負荷発生可能地域の予測等ができる。
３）工場の取水設備や上水施設等の建設を計画した場合、その上流からその地点に流入する流量や汚濁の負荷量の推定等ができる。
【００１９】
（特定区間から下流部（河口まで）の自動検索の実用例）
１）特定の河川区間にダム建設や河川改修などの事業が発生し、下流に及ぼす影響評価（アセスメント）を求められた場合、そこから河口部までの河川に関わる情報が速やかに検索する事が可能となる。例えば、河川内横断構造物を設置しようとする場合、その下流部に貴重な生物は生息していないか等を検索することができる。
例えば、ある河川区間にダムの建設計画があり、ダムサイトから下流の生態系への影響をアセスする場合、ダムのデータと既存生態調査データ（貴重種やサケ科魚類など遡上性回遊魚の生息調査データ）を河川区間データに結合しておく。河川区間はＩＤによって上流下流の関係が検索可能であるから、そのダムによって海から分断化される地域、またダムから海までの通常の河川水の流れる最短経路を速やかに検索可能となり検索された区間における生物生息情報とダムのデータ（構造・規模・建設年等）を比較検討する事が可能となる。
２）サケ科魚類などの通し回遊魚を川に戻そうと考えた場合、その生息地点（産卵適地等）から海までにどのような河川構造物が何基存在しているのか等を検索することができる。
３）淡水生物の生息環境と下流にある河川構造物の構造（魚道の有無）の関係などを検索することができる。
【００２０】
（流域全体としての実用例）
流域の全体的な管理の面では、河川区間に対して、様々な情報を登録し、流域全体の上下流の繋がりを基に、空間的な解析（ネットワーク解析）を行うシステムの実現により、より効率化が期待できる。河川区間に登録される情報とは、生物生息情報、土地利用状況、人口・産業活動にかかわる統計データ、汚濁物排出データ、水資源利用データ、河川内横断構造物データ等である。
【００２１】
また、既存の河川ラインデータでは、地理情報システムの中で利用した場合、上流．下流の関係が構築できてないために、流域内河川のネットワークに関わる解析が不可能であるが、本システムの実現により、利用者は自分の着目するデータ（ダムと魚類生息地、河川の汚染地点と排水施設）を河川区間データの属性に与える作業を半自動的又は自動的に行えば、あとは自動的に容易にその上流と下流の関係を解析可能となる。
【発明を実施するための最良の形態】
【００２２】
Ｉ．第１の実施の形態
１．河川区間識別子（河川区間ＩＤ）
図１は、河川区間を模式的に示す図である。
河川区間ＩＤを添付する河川ラインデータは、例えば１／２５０００レベルの地理情報の中で河川及び水路と認められている線データと、各自治体管轄の河川とを含む河川ラインデータとを用いることができる。
【００２３】
河川区間は、河口を持つ集水域全体を対象とする水系ポリゴンの中で、サブ流域ポリゴン、源流点、合流点、河口点によって定義される。図中、水系ポリゴンを破線で、サブ流域ポリゴンのひとつを太線で、源流点、合流点及び河口点をそれぞれ黒丸で示す。また、河川区間は、図中実線で示される複数の小区間で構成される。水系ポリゴンは、サブ流域ポリゴンに細分化される。また、サブ流域ポリゴンは、サブ流域内を流れる河川区間を示す小区間を含む。
なお、源流点または合流点またはサブ流域界ポリゴン間の境界を河川区間の上流端という。また、河口点または合流点またはサブ流域界ポリゴン間の境界を河川区間の下流端という。
【００２４】
図２は、河川区間ＩＤの付け方の法則性の説明図である。
河川区間ＩＤは、例えば、水系ＩＤ（Ｘ桁の整数）と、サブ流域ＩＤ（ｍ個の識別情報からなるＹ桁の数字）と、小区間ＩＤ（ｎ個の識別情報からなるＺ桁の数字）と、合流情報ＩＤとを連結して構成され、合計（Ｘ＋Ｙ＋Ｚ＋１）桁の数字で定義される。全ての河川区間ＩＤは、全国内でユニーク（一意的）とすることが可能である。また、河川のネットワーク構造も再現可能である。なお、ＩＤには数字以外にも文字、記号など適宜の識別情報を用いても良い。
【００２５】
水系ＩＤは、流域固有の番号を全国の河川水系に与え、上位Ｘ桁とする。図２のＡＡＡＡ・・・で示される（Ａは例えば数字）。つまり、利根川は何番、江戸川は何番といった水系をユニークに識別するための番号（例えば水系の名前のようなもの）である。これは、海に注ぎ込む河口をもつ全国の河川すべてに対して与えられる。水系ＩＤにより、海に注ぐ水系がユニークに特定される。
【００２６】
一級河川などの大きな河川に対しては、国土交通省が与えている番号を用いることができる。また、例えば、半島にある小さな川など国管轄以外の河川に対しても適宜の番号を付与する。水系ＩＤとしては、一例として、１２３４５６等とすることができる。水系ＩＤの桁数は日本の場合５桁で足りるが、本実施の形態では余裕を持って６桁で表現している。なお、河川ＩＤの桁数は、対象とする河川の数に応じて適宜の桁数としてもよい。
【００２７】
サブ流域ＩＤは、水系を細分化したサブ流域ポリゴンに法則性を持つＩＤを新たに定義し、中位Ｙ桁とする。図２のＭｍ，Ｍｍ−１，・・・・・，Ｍ２，Ｍ１で示される（Ｍは例えば数字）。ｍはサブ流域ＩＤの識別情報の数を表す。サブ流域ＩＤにより、河川区間の大まかな位置が特定される。
【００２８】
ここで、サブ流域という言葉について説明する。水系（流域）はひとつの河口に流れ込む水の集まってくる範囲（分水嶺で囲まれる範囲）を表す概念である。利根川流域とか信濃川流域といった一番大きな範囲を示す。これを、水系ポリゴンと呼ぶ。これに対して、サブ流域とは地形的な特徴を基に、水系を細分化して小さな集水域に区分けしたものの一つ一つである。これをサブ流域ポリゴンと呼ぶ。例えば、茨城県（流域に相当）の中に、つくば市や水戸市（サブ流域に相当）が存在するようなものである。
【００２９】
重要なことのひとつは、サブ流域ポリゴンは地形を基にしているため半永久的に更新されず、人為的な影響によって変化しないと仮定していることである。サブ流域の範囲を決めるための具体的な例を挙げると、国土地理院が国土数値情報の中で整備している面データ、「ファイル名：流域界・非集水域（ｋｓ２７３）」などが利用可能である。
【００３０】
小区間ＩＤは、サブ流域ポリゴン内の河川区間について、法則性を持つＩＤを新たに定義し、ｎ個の識別情報を含む下位Ｚ桁とする。図２のＮｍ，Ｎｍ−１，・・・・・，Ｎ２，Ｎ１で示される（Ｎは例えば数字）。小区間ＩＤによりサブ流域内の河川区間が厳密に特定される。なお、新たな河川ラインの追加・修正などの更新はこの小区間ＩＤを追加、変更することにより対応できる。なお、小区間とは、サブ流域の中を流れる河川区間のことであり、河川の一部を示す。つまり、一つの水系の中でサブ流域と小区間が入れ子構造になっている。
【００３１】
合流情報ＩＤ（図２のＡ）は、該当河川区間が次の合流点で下流方向に対し左側から合流すればＬ、逆に右側から合流すればＲ、河口の河川区間はＥを与える。なお、これらの記号は合流する河川区間及び河口にのみ付けられる。これにより合流地点での位置関係が把握可能となる。なお、合流情報ＩＤは、Ｌ、Ｒ、Ｅ以外にも適宜の記号、数字、文字等を用いてもよい。また、合流情報ＩＤには、合流する河川区間及び河口以外にのみ付ける以外にも、合流しないことを示す適宜の情報をつけても良い。
【００３２】
図３は、サブ流域ＩＤの振り方の法則性の説明図である。図４は、小区間ＩＤの振り方の法則性の説明図である。図４は、ひとつのサブ流域内の小区間を模式的に示したものである。図３及び図４の例では、実線は河川区間を表し、黒丸はサブ流域の境界もしくは小区間の合流点、または上流端、河口点を表している。また、太線矢印は水の流れを表している。
【００３３】
サブ流域ＩＤも小区間ＩＤもＩＤの振り方の法則（ルール）は同様である。この場合、一つの水系はサブ流域という小さな集水域のネットワーク（上流と下流の連結構造）から成り立っていること、さらに個々のサブ流域の中にはも一つ一つの小区間のネットワークが存在している事が重要である。
【００３４】
ひとつのサブ流域内に存在する小区間ＩＤ数よりも、ひとつの水系ポリゴン内に存在するサブ流域ＩＤ数のほうが一般には多いので、ＩＤの桁数は小区間ＩＤよりもサブ流域ＩＤのほうを多くすることができる。サブ流域ＩＤの識別情報数はｍ、小区間ＩＤの識別情報数はｎとしているが、実際の日本の場合では、ｍ、ｎともに６個程度で実用可能である。なお、これ以外にも適宜の識別情報数とすることができる。サブ流域、小区間にＩＤを振る場合には、水の流れを意識して、上流下流と関係を知っておく必要がある。
【００３５】
ｍが６個のサブ流域ＩＤの一例を示す。サブ流域ＩＤは、Ｍ６、Ｍ５、Ｍ４、Ｍ３、Ｍ２、Ｍ１（Ｍは整数）で構成される。各識別情報Ｍ６〜Ｍ１の部分には、以下の法則に従った整数が入る。なお、以下の説明において、例えばＩＤを数として扱う場合には、Ｍ、Ｎをひとつの数字のまとまりとして「識別情報の桁」と表現することがある。
【００３６】
法則性（１）は、サブ流域も小区間も本流と支流を定義する。これは、流域の中での河川の親子関係のようなものである。例えば、利根川流域には鬼怒川が完全に含まれるが、利根川を本流（親）と考えれば鬼怒川は支流（子）と考えられる。
本流と支流の定義は、本流（主流路）が管轄上決まっている場合はそれを優先し、それ以外では合流点からより長いほうを本流、短いほうが支流とすることができる。
【００３７】
法則性（２）は、Ｍ６（第１識別情報）の２桁は本流（一番の親）に対応し、下流から上流側に向うにつれて番号が１ずつ上がっていく（図中黒丸枠）。なお、Ｍ６には、例えば十進法で００〜９９の値が入る。
【００３８】
法則性（３）は、本流（Ｍ６が増加する親）に流れ込む支流（子、一次支流）は、Ｍ６のすぐ下の桁Ｍ５（第２識別情報）の番号が０１から１つずつ増加していく。Ｍ６が００の区間の親に合流する支流は、すべての支流のＭ６の部分が００であり、その下の桁の番号が０１から１ずつ増加していく（図中、太丸破線枠、（３）―１）。Ｍ６が０１の区間に流れ込むすべての支流は、Ｍ６はすべて０１となり、その下のＭ５の部分が同様に０１から１ずつ増加していく（図中、細丸破線枠、（３）―２）。Ｍ６，Ｍ５が００、０１で示される一次支流に流れ込む二次支流（孫）はＭ６，Ｍ５がすべて００、０１であり、その下のＭ４（第３識別情報）が１から増加していく（図中、三角破線枠、（３）―３）。同様に、二次支流に流れ込む三次支流（ひ孫）はＦ（第４識別情報）の桁が１から一つずつ増加する（図中、四角破線枠、（３）―４）。以後、四次支流、五次支流・・・についても同様とすることができる。
【００３９】
法則性（４）は、河川の支流の数と複雑さ（河川の次数）によってサブ流域ＩＤの識別情報数が予め決定される。例えば、ひ孫以下が存在する複雑な状態の場合などのように、水系に多くのサブ流域を持つ場合は識別情報数を事前に増やしておく。
【００４０】
図４にｎが６個の小区間ＩＤの一例を示す。小区間ＩＤは、Ｎ６，Ｎ５，Ｎ４，Ｎ３，Ｎ２，Ｎ１で構成される。各識別情報Ｎ６〜Ｎ１の部分には、例えば整数が入る。番号の振り方は、上述のサブ流域ＩＤの法則（１）〜（４）と同様である。すなわち、Ｎ６（第１識別情報）が上述のＭ６に対応し、以下、Ｎ５（第２識別情報）がＭ５、Ｎ４（第３識別情報）がＭ４、Ｎ３（第４識別情報）がＭ３、Ｎ２（第５識別情報）がＭ２、Ｎ１（第６識別情報）がＭ１にそれぞれ対応する。なお、小区間は一般に数が少ないので、サブ流域ＩＤと比較するとＭ６の２桁がＮ５の１桁に、同じくＭ５の２桁がＮ５の１桁になっている。なお、これに限らず識別情報の整数の桁数は適宜の桁数としてもよい。
【００４１】
合流情報ＩＤの法則は、該当河川小区間が次の合流点で流下方向に対し左側から合流すればＬ、逆に右側から合流すればＲを与える（図４、点線枠）。最下流部はＥとする。小区間が合流しない場合には合流情報ＩＤはつけない又は合流しないことを示す適宜の情報をつけても良い。
なお、本実施の形態では、サブ流域ＩＤ及び小区間ＩＤは０から始まり、１ずつ増加していくが、これに限らず予め定められた適宜の数から始まり、所定数ずつ増加するようにしてもよい。
【００４２】
図５は、河川区間ＩＤを用いた河川区間検索と流域の概念図である。図には、ＩＤの割り振り方（法則性）と、対象河川区間（図中、白抜き数字で示すＩＤ番号１２３４５６  ０１０１００００  １００００Ｌ）を例にとり、検索方法・結果の概略とを示す。この例では、識別情報の数はサブ流域（つまりＭ）が６個、小区間（つまりＮ）が５個となっている。
【００４３】
図５に示す各河川区間に対して、上述の法則性に従って割り当てられた河川区間ＩＤについて、以下に簡単に説明する。水系ＩＤ（例えば、１２３４５６）は水系の名前のようなものであるので適当な番号を用いることができる。水系に固有であれば任意である。例えば、この水系に含まれるすべての河川区間ＩＤには頭に１２３４５６の番号がつく。
【００４４】
また、サブ流域ＩＤ（例えば、０１０１００００）は、０１、０１、０、０、０、０という識別情報のまとまりを持っている。以下、下位３個の識別情報はは連続して記述する。河川本流に対応したサブ流域ＩＤは、下流から順番に「００、００、００００」、「０１、００、００００」、「０２、００、００００」というサブ流域ＩＤが振られる。例えば図５の斜線で示されるサブ流域は「０１、００、００００」という番号のサブ流域に合流している。このために（Ｍ６・・・Ｍ１）で表現すればＭ５の部分が００から１つ大きくなって「０１、０１、００００」という番号が割り振られている。
【００４５】
次に、小区間ＩＤについて説明する。例えば、図中白抜き数字で示す小区間は、サブ流域の中で小区間としては本流（親）であり、サブ流域の最下流から上流に向かって２番目の小区間になる。そのために、小区間ＩＤをＮ５〜Ｎ１で表現すれば、本流の部分に相当するＮ５の部分の番号は、０から１増えて１、他のＮ４、Ｎ３、Ｎ２、Ｎ１は０として１００００となる。合流情報ＩＤは対象となる河川区間が合流する場合、下流の合流点に向かってその河川区間が左から合流するのであればＬ、右側から合流するのであればＲと定義することができる。図では、図中白抜き数字で示す小区間は次の合流点で、下流に向かって左岸側から合流している。このために合流情報はＬとなる。
【００４６】
なお、サブ流域ＩＤ及び小区間ＩＤの割り当てに対しては半自動化した処理を行うこともできる。例えば、処理部は、ディスプレイ上に示された河川のラインデータに対する上流端と下流端の指示を入力部から入力し、上述の規則性に従い自動的に下流から番号を振っていくようにしてもよい。また、すべてのＩＤを自動的に処理部が割り振るようにしてよい。
図５では枠のある河川ＩＤは全て、検索を開始した河川区間の上流である。またアンダーラインを引いてある小区間ＩＤ、サブ流域ＩＤの本流区間は流下経路を示している。
【００４７】
２．河川区間検索
本実施の形態では、河川区間検索の例として、対象区間から上流域のすべての河川区間（河川ネットワーク）を選び出す上流区間検索と、対象区間から河口までのすべての河川区間（一本のルート）を選び出す流下経路検索と示す。
【００４８】
上流検索：上流検索は大きく二つのパターンに分けて説明できる。
パターン１）検索を開始する河川区間（以下スタート区間）がサブ流域の本流にある場合。
検索順序は、１．スタート区間を含むサブ流域（以下スタートサブ流域）でスタート区間のＩＤよりも大きな数字の河川区間を検索する。２．スタートサブ流域の上流にサブ流域があればそこに含まれる河川区間を全て検索する。３．  １．２．の検索結果をまとめる。
パターン２）スタート区間がサブ流域の支流にある場合。検索順序は、１．スタートサブ流域の中でスタート区間ＩＤよりも大きな小区間を検索する。２．１．の結果から、スタート区間の上流ではない区間を削除する。
下流検索：下流検索は大きく三つの段階で説明できる。
ステップ１）スタート区間の小区間ＩＤを下の桁から検索し、最初に０でない識別情報を見つける。この識別情報を１ずつ小さくしていき、これと同じ河川区間ＩＤを検索する。
識別情報が０になると、ひとつ大きな識別情報を対象に同様の検索を行う。最後の識別情報の値が０になったところでスタートサブ流域内の下流区間検索が終了する。
ステップ２）スタートサブ流域の１つ下流のサブ流域に対象を移し、そのサブ流域の中で最大の数を持つ小区間ＩＤを探し、これを次のスタート区間とする。そしてこのサブ流域の中で、ステップ１）と同様の方法で下流区間を検索する。
ステップ３）ステップ２）の作業を河口に辿り着くまで（つまりサブ流域ＩＤと小区間ＩＤのすべての識別情報が０）繰り返す。
【００４９】
例えば、図５はパターン２）の例であり、白抜き数字で示す河川区間（ＩＤ番号１２３４５６  ０１０１０００  １００００Ｌ）に対して、この河川区間ＩＤが示す値又はサブ流域ＩＤと小区間ＩＤの示す値より大きな値を示す河川区間ＩＤを有するすべての河川区間は、この河川区間１２３４５６  ０１０１０００  １００００Ｌに辿り着く。図５の中太線及び枠つき太字のＩＤで示された河川区間が検索される。
以下に、具体的な河川区間検索システムについて説明する。
【００５０】
（ハード構成）
図６は、河川区間検索システムに関するハードウェアの構成図である。このハードウェアは、中央処理装置（ＣＰＵ）である処理部１、入力部２、出力部３、表示部４及び記憶部５を有する。また、処理部１、入力部２、出力部３、表示部４及び記憶部５は、スター又はバス等の適宜の接続手段で接続されている。
【００５１】
記憶部５は、全河川区間ＩＤファイル５１、上流河川区間ＩＤファイル（｛ＩＤＳ｝ｕｐ）５２、下流河川区間ＩＤファイル（｛ＩＤＳ｝ｄｏｗｎ）５３、その他河川区間ＩＤファイル（｛ＩＤＳ｝ｏｔｅｈｒ）５４を含む。また、記憶部５は、属性データテーブル５５をさらに含んでも良い。
【００５２】
全河川区間ＩＤファイル５１は、各河川区間に対して割り当てられた河川区間ＩＤが予め記憶されるファイルである。上流河川区間ＩＤファイル５２は、所望の河川区間ＩＤに対して、上流にあると判断された河川区間ＩＤを記憶するためのファイルである。下流河川区間ＩＤファイル５３は、所望の河川区間ＩＤに対して、その河川区間から河口までの河川区間ＩＤを記憶するためのファイルである。その他河川区間ＩＤファイル５４は、所望の河川区間ＩＤに対して、上流及び下流にあると判断された河川区間以外のＩＤを記憶するためのファイルである。すべてのベクトルは河川区間ＩＤの集合であり、例えば、デリミタ（０〜９以外）付のテキストとして定義されることができる。
なお、上流河川区間ＩＤファイル５２、下流河川区間ＩＤファイル５３、その他河川区間ＩＤファイル５４は、予め適宜の領域を確保しておくことができる。また、その他河川区間ＩＤファイル５４を省略することもできる。
【００５３】
属性データテーブル５５は、例えば、河川構造物、生物生息情報、汚濁排水地点情報、採水地点データ、下水処理施設データ、土地利用状況、人口・産業活動にかかわる統計データ、水資源利用データ、産業関連情報、環境負荷インベントリー等が河川区間ＩＤに対応して記憶される。なお、属性データテーブルの詳細な構成例については後述する。
【００５４】
（メインフロー）
図７は、上流区間及び流下経路検索のための処理フローチャートである。
なお、以下の説明において、（Ｍｍ、・・・、Ｍ２、Ｍ１、Ｎｎ、・・・、Ｎ２、Ｎ１）は、検索対象の個々の河川区間のＩＤの一部を表す。ここで、Ｍはサブ流域ＩＤに含まれる識別情報、Ｎは小区間ＩＤに含まれる識別情報を表す。また、（Ｍｓ、ｍ、・・・、Ｍｓ、２、Ｍｓ、１、Ｎｓ、ｎ、・・・、Ｎｓ、２、Ｎｓ、１）は、検索基準となる河川区間のＩＤ（以下検索基準河川区間ＩＤ、ＩＤｓ）の一部を表す。なお、Ｍ及びＮは、それぞれ整数値である。また、以下の説明においては、１つの河川について河川区間ＩＤが前河川区間ＩＤファイル５１に記憶されている場合について説明するが、複数の河川区間ＩＤが記憶されている場合には、検索基準河川区間ＩＤと同じ河川ＩＤを有する河川区間ＩＤを検索対象とすればよい。
【００５５】
まず、処理部１は、検索スタート河川区間のＩＤ（以下、検索スタート河川区間ＩＤ、ＩＤＳＴＡＲＴ）を選択する（Ｓ１０１）。例えば、演算部は、入力部２から検索の基準となる河川区間ＩＤを入力しても良いし、記憶部５の河川区間ＩＤファイル５１に記憶された河川区間ＩＤを適宜表示部４に表示し、検索スタート河川区間ＩＤが選択されるようにしてもよい。
【００５６】
次に、処理部１は、初期設定をする（Ｓ１０３）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）の初期値を、選択された検索スタート河川区間ＩＤ（ＩＤＳＴＡＲＴ）に設定する。また、処理部１は、ＩＤｓ（又はＩＤＳＴＡＲＴ）の小区間ＩＤを下位の桁から参照し、最初に０以外になる桁数に、パラメータｉを設定する。例えば、ＩＤｓの小区間ＩＤ（Ｎｓ、ｋ、ｋは１〜ｎの整数）を下の桁からＮｓ、１、Ｎｓ、２・・と検索し、最初に０以外になるＮｓ、ｋを見つけ、パラメータｉをそのｋの値とする。具体的な例で示すと、ＩＤｓの小区間ＩＤが０１１１１０の場合、下から２桁目が０以外の数字なのでｉ＝２となる。
【００５７】
また、処理部１は、記憶部５の上流河川区間ＩＤファイル５２（以下、｛ＩＤＳ｝ｕｐ５２）、下流河川区間ＩＤファイル５３（以下、｛ＩＤＳ｝ｄｏｗｎ５３）、その他河川区間ＩＤファイル５４（以下、｛ＩＤＳ｝ｏｔｅｈｒ５４）にＮＵＬＬ文字列を与える。
【００５８】
処理部１は、サブ流域内の上流区間・下流区間検索を実行する（Ｓ１０５）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）と同じサブ流域ポリゴン内の河川区間ＩＤを、「上流」、「下流」、「その他」に分類し、分類結果に応じて所定のファイル｛ＩＤＳ｝ｕｐ５２、｛ＩＤＳ｝ｄｏｗｎ５３、｛ＩＤＳ｝ｏｔｈｅｒ５４に河川区間ＩＤを記憶する。なお、具体的な処理については後述する。
【００５９】
処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）が河口に流れ込む区間を示すか判断する（Ｓ１０７）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤ（Ｍ）の各桁全てが０であれば、河口に流れ込む区間を示すと判断し、それ以外であれば河口に流れ込む区間を示さないと判断することができる。なお、処理部１は、河川に流れ込む区間を示すか判断するタイミング（例えば、後述する検索基準河川区間ＩＤの変更の前か後か）に応じて、サブ流域ＩＤと小区間ＩＤの両方の各桁が全て０である場合に、河口に流れ込む区間を示すと判断しても良い。
【００６０】
また、本実施の形態では、河川区間ＩＤの各桁の初期値を０として、上流へ向かうに従い値が増加するようにしているが、河川区間ＩＤが予め定められた値を初期値として割り当てられた場合には、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤが予め定められた初期値であるか否かにより、河口に流れ込む区間を示すと判断しても良い。以下のステップにおいて、０であるか否かの判断についても同様である。
【００６１】
処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）が河口に流れ込む区間を示さないと判断した場合（Ｓ１０７）、１つ下流のサブ流域中で１番上流の河川区間ＩＤを検索基準河川区間ＩＤ（ＩＤｓ）とする（Ｓ１０９）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤ（Ｍ）を下位から検索し、最初に０以外の数となる桁を０として新たなサブ流域識別子とする。図５に示す例では、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤが網掛け部で示す０１０１０００の場合、下から４桁目の１を０としてサブ流域ＩＤを０１０００００とする。図５のように、このサブ流域ＩＤは、網掛け部で示すサブ流域の１つ下流のサブ流域を示す。
【００６２】
また、処理部１は、Ｍ１≦Ｍｓ，１、かつ、Ｍ２≦Ｍｓ，２、かつ、・・・、Ｍｍ≦Ｍｓ，ｍを満たすサブ流域のうち、現在のサブ流域を除きサブ流域ＩＤが最大のサブ流域ＩＤを新たなサブ流域識別子としてもよい。
【００６３】
処理部１は、河川区間識別子ファイルを参照して新たなサブ流域識別子を有する河川区間識別子の内、小区間識別子又は河川区間識別子の示す値が最大の河川区間識別子を読み出し、基準河川区間識別子（ＩＤｓ）を読み出された河川区間識別子に変更する。
【００６４】
次に、処理部１は、下流区間検索を実行し（Ｓ１１１）、ステップＳ１０７へ移る。例えば、処理部１は、サブ流域内の河川区間が、ステップＳ１０９で変更された検索基準河川区間ＩＤ（ＩＤｓ）の下流か又はそれ以外か分類し、分類結果に応じて所定のファイル｛ＩＤＳ｝ｄｏｗｎ５３又は｛ＩＤＳ｝ｏｔｅｈｒ５４に河川区間ＩＤを記憶する。なお、下流区間検索の詳細については後述する。
【００６５】
処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）が河口に流れ込む区間を示すと判断した場合（Ｓ１０７）、｛ＩＤＳ｝ｄｏｗｎ５３に記憶された下流河川区間ＩＤを降順（又は昇順）に並べ（Ｓ１０９）、処理を終了する。下流河川区間ＩＤを降順に並べることで、検索スタート河川区間のＩＤ（ＩＤＳＴＡＲＴ）から河口までの経路（流下経路）を示す河川区間が順に並ぶ。なお、ステップＳ１０９の処理は省略してもよい。
【００６６】
（上流河川区間検索・下流河川区間検索）
図８は、上述のステップＳ１０５の上流区間・下流区間検索についてのサブブローチャートである。
まず、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）と同じサブ流域の河川区間ＩＤを選択する（Ｓ２０１）。なお、選択された河川区間ＩＤを説明の便宜上ＩＤＳＥＬと記す。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤに基づき記憶部５の河川区間ＩＤファイルを参照し、サブ流域ＩＤが一致する河川区間ＩＤのひとつを選択する。このとき、後述するステップＳ２１７から戻ってきた場合には、前に選択したＩＤとは異なるＩＤを選択するようにする。
【００６７】
処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）が、検索基準河川区間を含むサブ流域の中の流下経路であるか判断する（Ｓ２０３）。例えば、処理部１は、選択された河川区間ＩＤのサブ流域ＩＤの各桁（Ｍｎ〜Ｍ１）が、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤの各桁（Ｍｓ、ｎ〜Ｍｓ、１）と全て一致し、かつ、選択された河川区間ＩＤ（ＩＤＳＥＬ）の小区間ＩＤの各桁（Ｎｍ〜Ｎ１）が全て、検索基準河川区間ＩＤ（ＩＤｓ）の小区間ＩＤの各桁（Ｎｓ、ｍ〜Ｎｓ、１）以下であれば、検索基準河川区間を含むサブ流域の中の流下経路であると判断することができる。一方、これらの条件を満たさなければ検索基準河川区間を含むサブ流域の中の流下経路でないと判断することができる。
【００６８】
換言すると、以下の式を満足すれば、検索基準河川区間を含むサブ流域の中の流下経路であると判断することができる。
Ｍｎ＝Ｍｓ、ｎ、・・・、Ｍ２＝Ｍｓ、２、Ｍ１＝Ｍｓ、１、かつ、
Ｎｎ≦Ｎｓ、ｎ、・・・、Ｎ２≦Ｎｓ、２、Ｎ１≦Ｎｓ、１
なお、処理部１は、ステップＳ２０１で検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤと一致する河川区間ＩＤのひとつを選択している場合には、サブ流域ＩＤの各桁（Ｍｓ、ｎ〜Ｍｓ、１）の一致の判断を省略してもよい。処理部１は、これ以外にも河川区間ＩＤ（ＩＤＳＥＬ）に従い適宜の手法により検索基準河川区間を含むサブ流域の中の流下経路であるかを判断しても良い。
【００６９】
処理部１は、検索基準河川区間を含むサブ流域の中の流下経路であると判断した場合（Ｓ２０３）、選択された河川区間ＩＤ（ＩＤＳＥＬ）を｛ＩＤＳ｝ｄｏｗｎ５３に記憶し（Ｓ２０５）、ステップＳ２１７の処理に移る。
【００７０】
一方、処理部１は、検索基準河川区間を含むサブ流域の中の流下経路でないと判断した場合（Ｓ２０３）、検索基準河川区間がサブ流域の主流であるか判断する（Ｓ２０７）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）の小区間ＩＤの内、上から２桁目、すなわち第２識別情報（Ｎｓ、ｎ−１）が０であればサブ流域の主流であると判断し、一方０以外であればサブ流域の主流でないと判断することができる。
【００７１】
処理部１は、検索基準河川区間がサブ流域の主流であると判断した場合（Ｓ２０７）、選択された河川区間ＩＤ（ＩＤＳＥＬ）が示す値が、検索基準河川区間ＩＤ（ＩＤｓ）が示す値より大きいか判断する（Ｓ２０９）。例えば、処理部１は、ＩＤＳＥＬとＩＤｓの合流情報を除き、河川ＩＤ、サブ流域ＩＤ、小区間ＩＤの各桁で構成される数字の列を１つの数として扱い、その値を比較する。なお、合流情報の他に、河川ＩＤ及び／又はサブ流域ＩＤを除いて比較してもよい。処理部１は、ＩＤＳＥＬが示す値がＩＤｓが示す値より大きければ（Ｓ２０９）、ステップＳ２１５の処理に移り、一方ＩＤＳＥＬが示す値がＩＤｓが示す値より大きくなければ（Ｓ２０９）、ステップＳ２１３の処理に移る。
【００７２】
一方、ステップＳ２０７において検索基準河川区間がサブ流域の主流でないと判断された場合（Ｓ２０７）、処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）が検索基準河川区間ＩＤから見てサブ流域内の上流区間であるか判断する（Ｓ２１１）。例えば、処理部１は、設定されたパラメータｉに基づき、以下の式を満足すれば選択された河川区間ＩＤがサブ流域内の上流区間であると判断し、それ以外であれば検索基準河川区間はサブ流域内の上流区間でないと判断することができる。
Ｎｉ＋１＝ＮＳ、ｉ＋１、かつ、ＩＤＳＥＬ＞ＩＤｓ
【００７３】
処理部１は、サブ流域内の上流区間でないと判断した場合（Ｓ２１１）、ステップＳ２１３の処理に移り、一方、サブ流域内の上流区間であると判断した場合（Ｓ２１１）、ステップＳ２１５の処理に移る。
【００７４】
ステップＳ２１３では、処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）を｛ＩＤＳ｝ｏｔｅｈｒ５４に記憶し（Ｓ２１３）、ステップＳ２１７の処理に移る。また、ステップＳ２１５では、処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）を｛ＩＤＳ｝ｕｐ５２に記憶し（Ｓ２１５）、ステップＳ２１７の処理に移る。
【００７５】
ステップＳ２１７では、処理部１は、検索基準河川区間と同じサブ流域にある河川区間ＩＤを全て選択したか判断する（Ｓ２１７）。例えば、処理部１は、ステップＳ２０１において河川区間ＩＤファイルに記憶されている河川区間ＩＤを順次参照するようにし、全ての河川区間ＩＤを参照したか判断できるようにしてもよい。
処理部１は、河川区間ＩＤを全て選択した場合（Ｓ２１７）図７のフローチャートに戻り、一方河川区間ＩＤを全て選択していない場合（Ｓ２１７）、ステップＳ２０１の処理へ戻る。
【００７６】
（下流区間検索）
図９は、ステップＳ１１１の下流区間検索のサブフローチャートである。
まず、処理部１は、ステップＳ１０９で変更された検索基準河川区間ＩＤ（ＩＤｓ）と同じサブ流域の河川区間ＩＤを選択する（Ｓ３０１）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤに基づき記憶部５の全河川区間ＩＤファイル５１を参照し、サブ流域ＩＤが一致する河川区間ＩＤのひとつを選択する。このとき、後述するステップＳ３０９から戻ってきた場合には、前に選択したＩＤとは異なるＩＤを選択するようにする。
【００７７】
次に、処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）が、ＩＤｓが示す検索基準河川区間を含むサブ流域の中の流下経路であるか判断する（Ｓ３０３）。例えば、処理部１は、上述のステップＳ２０３と同様にサブ流域の中の流下経路であるか判断することができる。
【００７８】
処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）が、ＩＤｓが示す検索基準河川区間を含むサブ流域の中の流下経路であると判断した場合（Ｓ３０３）、選択された河川区間ＩＤを｛ＩＤＳ｝ｄｏｗｎ５３に記憶し（Ｓ３０５）、ステップＳ３０９の処理に移る。一方、処理部１は、選択された河川区間ＩＤ（ＩＤＳＥＬ）が、ＩＤｓが示す検索基準河川区間を含むサブ流域の中の流下経路でないと判断した場合（Ｓ３０３）、選択された河川区間ＩＤを｛ＩＤＳ｝ｏｔｅｈｒ５４に記憶し（Ｓ３０７）、ステップＳ３０９の処理に移る。
【００７９】
ステップＳ３０９では、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）と同じサブ流域にある河川区間ＩＤを全て選択したか判断する（Ｓ３０９）。処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）と同じサブ流域にある河川区間ＩＤを全て選択した場合（Ｓ３０９）、図７のフローに戻り、一方河川区間ＩＤを全て選択していない場合（Ｓ３０９）、ステップＳ３０１の処理へ戻る。
【００８０】
図１０は、サブ流域内の河川区間ＩＤと検索の流れの模式図である。
例えば、検索スタート河川区間ＩＤ（ＩＤｓ）として、図中楕円で囲まれた河川区間（サブ流域ＩＤ、０１１１１０）が選択された場合について説明する。図示の例では、サブ流域は６桁（ｍ＝６）で表され、パラメータｉは２である。
上述の処理を実行することにより、図中破線で示す河川区間の河川区間ＩＤが下流区間として、下流河川区間ＩＤファイル５３に記憶される。また、図中一点鎖線で示す河川区間の河川区間ＩＤが上流区間として、上流河川区間ＩＤファイル５２に記憶される。また、図中実線で示す河川区間は、上流区間でも下流区間でもなく、河川区間ＩＤがその他河川区間ＩＤファイル５４に記憶される。
【００８１】
図１８は、検索基準河川区間がサブ流域の支流である場合の、処理結果を模式的に示す図である。例えば、検索基準河川区間を、河川区間ＩＤが、（１２００００、０１１０００）の区間（図中、二重線で示す区間）としたときの、各ファイル５２、５３、５４にそれぞれ記憶される河川区間を示す。
【００８２】
図１９は、検索基準河川区間がサブ流域の本流である場合の、処理結果を模式的に示す図である。例えば、検索基準河川区間を、河川区間ＩＤが、（１２００００、２０００００）の区間（図中、二重線で示す区間）としたときの、各ファイル５２、５３、５４にそれぞれ記憶される河川区間を示す。
【００８３】
（変形例）
なお、上述の説明では、上流区間及び流下経路の双方を検索しているが、いずれか一方のみを検索するようにしてもよい。
上流区間のみを検索するには、例えば、図７及び図８に示すフローチャートにおいて、ステップＳ１０７〜Ｓ１１３と、ステップＳ２０５とを省略し、ステップＳ２０３でＩＤＳＥＬがＩＤｓを含むサブ流域の中の流下経路でないと判断された場合には（Ｓ２０３）、ステップＳ２１３の処理に移るようにすればよい。
【００８４】
図１１は、上流区間検索のみを実行するフローチャートの他の例である。
まず、処理部１は、ステップＳ１０１、Ｓ１０３の処理を実行する。なお、処理の詳細については、上述の処理と同様であるのでその説明を省略する。以下、図７に示す対応する各ステップと同様の処理については、図７の対応する符号を付し、処理の詳細な説明を省略する。
【００８５】
次に、処理部１は、記憶部５の河川区間ＩＤファイルを参照し、河川区間ＩＤのひとつを選択する（Ｓ２５１）。このとき、ステップＳ２１７から戻ってきた場合には、前に選択したＩＤとは異なるＩＤを選択するようにする。また、処理部１は、ステップＳ２０３〜Ｓ２０７の処理を実行する。なお、ステップＳ２０３は省略してもよい。
【００８６】
処理部１は、ステップＳ２０７でＹｅｓの場合、ステップＳ２５９の処理へ移る。ステップＳ２５９では、処理部は、「選択された河川区間と検索基準河川区間が同じサブ流域にあるという条件において、選択された河川区間ＩＤ（ＩＤＳＥＬ）が示す値が、検索基準河川区間ＩＤ（ＩＤｓ）が示す値より大きいか」、または、「選択された河川区間が、検索基準河川区間を含むサブ流域よりも上流のサブ流域に含まれるかどうか」を判断する（Ｓ２５９）。例えば、処理部１は、以下の条件を満足するか判断する。
（１）ＩＤｓを含むサブ流域にあり（サブ流域ＩＤが同じ）、ＩＤＳＥＬ＞ＩＤｓ、又は
（２）Ｍｊ＋１＝ＭＳ、ｊ＋１、かつ、ＩＤＳＥＬ＞ＩＤｓ
ここで、ｊは、ＩＤｓのサブ流域ＩＤ（Ｍｓ、ｋ、ｋは１〜ｎの整数）を下の桁からＭｓ、１、Ｍｓ、２・・と検索し、最初に０以外になるＭｓ、ｋを見つけたときの、ｋの値をパラメータｊとしたものである。具体的な例で示すと、ＩＤｓのサブ流域ＩＤが０１１１１０の場合、下から２桁目が０以外の数字なのでｊ＝２となる。Ｍｊ＋１、ＭＳ、ｊ＋１はそれぞれ、Ｍｊ、ＭＳ、ｊのひとつ上位の桁になる。
処理部１は、上述のいずれかの条件を満たす場合（Ｓ２５９）、ステップＳ２１５の処理に移り、一方、それ以外の場合（Ｓ２５９）、ステップＳ２１３の処理へ移る。また、処理部１は、ステップＳ２１１〜Ｓ２１７の処理を実行する。
【００８７】
また、流下経路のみを検索するには、例えば、図８のステップＳ２０７〜Ｓ２１５の処理を省略し、ステップＳ２０３でＩＤＳＥＬがＩＤｓを含むサブ流域の中の流下経路でないと判断された場合には（Ｓ２０３）、ステップＳ２１３の処理に移るようにすればよい。
【００８８】
（下流経路検索の第２のフロー）
図１２は、河川区間ＩＤを用いた下流経路検索の他の検索方法の説明図である。図には、河川区間ＩＤ番号（１２３４５６  ０１０１０００  １００００Ｌ）を対象として、その対象から河口までの河川区間を検索する場合の例を示す。
【００８９】
下流河川区間の他の検索は、以下の手順を順次実行する。まず、検索基準河川区間のＩＤの下位の識別情報に注目し下位から０以外の識別情報を検索する。その桁の数字を１小さくし、そのＩＤと同じ河川区間ＩＤを検索する。これを、その桁の０になるまで繰り返す（下流検索（１））。次に、その桁の数字が０になったら１つ桁を上位にあげて、上述の下流検索（１）と同様に検索する（下流検索（２））。さらに、同様の検索（１）及び（２）を河口を含む河川区間が検索されるまで繰り返す（下流検索（３））。例えば、検索基準河川区間ＩＤのサブ流域ＩＤと小区間ＩＤが全て０となるまで繰り返す。図５の例では、結果として太線及び下線付きのＩＤで示された河川区間が検索される。なお、サブ流域ＩＤの上位（Ｍ６，Ｍ５に相当する部分）は、２桁の数字として扱い、この２桁の数字を１ずつ小さくさする。
【００９０】
図１３は、流下経路検索のための第２の処理フローチャートである。
まず、処理部１は、検索スタート河川区間ＩＤ（ＩＤＳＴＡＲＴ）を選択する（Ｓ１０１）。なお、処理の詳細は上述と同様であるので説明を省略する。
【００９１】
次に、処理部１は、初期設定をする（Ｓ４０３）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）の初期値を、選択された検索スタート河川区間ＩＤ（ＩＤＳＴＡＲＴ）に設定する。また、処理部１は、ＩＤｓ（又はＩＤＳＴＡＲＴ）のサブ流域識別子及び小区間識別子の下位の桁から順次参照し、最初に０以外になる桁数に、パラメータｐを設定する。例えば、ＩＤが０１１１１０であれば、下位から２桁目で最初に０以外になるので、ｐ＝２となる。さらに、処理部１は、記憶部５の下流河川区間ＩＤファイル５３（以下、｛ＩＤＳ｝ｄｏｗｎ５３）、その他河川区間ＩＤファイル（｛ＩＤＳ｝ｏｔｅｈｒ）５４にＮＵＬＬ文字列を与えてもよい。
【００９２】
処理部１は、ＩＤｓの下からｐ番目の桁の値を例えば１減少させる（Ｓ４０５）。処理部１は、全河川区間ＩＤファイル５１を参照して、値が減少されたＩＤｓと一致する河川区間ＩＤを検索し、該当する河川区間ＩＤを読み出して、｛ＩＤＳ｝ｄｏｗｎ５３に記憶する（Ｓ４０７）。次に、処理部１は、ＩＤｓが河口に流れ込む区間を示すか判断する（Ｓ４０９）。例えば、処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）のサブ流域ＩＤ（Ｍ）及び小区間ＩＤ（Ｎ）の全てが０であれば、河口に流れ込む区間を示すと判断し、それ以外であれば河口に流れ込む区間を示さないと判断することができる。
【００９３】
処理部１は、ＩＤｓが河口に流れ込む区間を示さないと判断した場合（Ｓ１０７）、ＩＤｓの値が減少された識別情報（下位からｐ番目の値）が０か判断する（Ｓ４１１）。処理部１は、ＩＤｓの値が減少された識別情報が０でない場合、ステップＳ４０５の処理へ戻る。一方、処理部１は、ＩＤｓの値が減少された識別情報が０の場合、パラメータｐの値を増やす（Ｓ４１３）。例えば、処理部１は、パラメータｐの値を１増やす。パラメータｐの値を１増やすことにより、ステップＳ４０５において値が減少される識別情報が１つ上位に移る。又は、例えば処理部は、処理部１は、ＩＤｓ（又はＩＤＳＴＡＲＴ）のサブ流域識別子及び小区間識別子の下位の桁から順次参照し、最初に０以外になる桁数に、パラメータｐを設定してもよい。その後、処理部１は、ステップＳ４０５の処理へ移り、ステップＳ４０５以降の処理を実行する。
【００９４】
処理部１は、検索基準河川区間ＩＤ（ＩＤｓ）が河口に流れ込む区間を示すと判断した場合（Ｓ１０７）、上述と同様に｛ＩＤＳ｝ｄｏｗｎ５３に記憶された下流河川区間ＩＤを降順（又は昇順）に並べ（Ｓ１１３）、処理を終了する。なお、ステップＳ１１３の処理は省略してもよい。
【００９５】
３．属性データの利用
図１４は、河川区間ＩＤに結合させる属性データテーブルのフォーマット（１）である。図１４には、生物調査データの例を示す。
属性データテーブル５５は、例えば、水生生物（淡水魚類）リストテーブル５５−１、文献リストテーブル５５−２、調査地点位置（河川区間ＩＤ）リストテーブル５５−３を含む。
水生生物（淡水魚類）リストテーブル５５−１は、例えば、文献ＩＤ、種名、計測尾数、生息密度等の水生生物に関する適宜の情報が、河川区間ＩＤに対応して記憶される。文献リストテーブル５５−２は、例えば、適宜のＩＤ、文献ＩＤ、元データ、著者名（監修）、発行年、文献名、発行・出版社・雑誌名、巻、号、ページ、特定魚種の調査報告、備考などが対応して記憶される。調査地点位置（河川区間ＩＤ）リストテーブル５５−３は、例えば、河川区間ＩＤ、３次メッシュ番号、サブ流域ＩＤ、流域ＩＤ、河川名、Ｘ座標（ＵＴＭ）、Ｙ座標（ＵＴＭ）が対応して記憶される。
【００９６】
例えば、特定の河川区間にダム建設や河川改修などの事業が発生し、下流に及ぼす影響評価（アセスメント）を求められた場合、そこから河口部までの河川に関する生物情報を検索する事が可能となる。また、その下流部または上流部に貴重生物種等は生息していないか等を検索することができる。
例えば、処理部１は、ダム建設等がされる河川区間ＩＤを検索スタート河川区間ＩＤとして、上述のフローチャートに示す処理を実行して上流区間及び／又は流下経路の河川区間ＩＤを上流河川区間ＩＤファイル５２及び下流河川区間ＩＤファイル５３に記憶する。また、処理部１は、上流河川区間ＩＤファイル５２及び下流河川区間ＩＤファイル５３に記憶された各河川区間ＩＤに基づき、水生生物リストテーブル５５−１を参照し、河川区間ＩＤに対応する種名、計測尾数、生息密度などの適宜の情報を取得及び表示等することができる。また、取得された河川区間ＩＤに対応する文献ＩＤを取得し、文献ＩＤに基づき文献リストテーブル５５−２を参照して、文献リストを取得及び表示等することもできる。さらに、取得された河川区間ＩＤに基づき、調査地点位置テーブル５５−３を参照し、河川区間ＩＤに対応する河川名、Ｘ座標、Ｙ座標等を取得及び表示等することもできる。
【００９７】
図１５は、河川区間ＩＤに結合させる属性データテーブルのフォーマット（２）である。図１５には、河川構造物データの例を示す。例えば、図１５（ａ）は、貯水ダムの例であり、図１５（ｂ）は砂防ダムの例である。なお、頭首工、河口堰、治山ダムなどに関する同様のテーブルを有することもできる。
貯水ダムの例における属性データテーブル５５−４は、例えば、河川区間ＩＤと、ダム名、水系名、該当河川名、ダム湖等の貯水ダム情報とが対応して記憶される。また、砂防ダムの例における属性データテーブル５５−５は、例えば、河川区間ＩＤと、分類、水系名、渓流名等の砂防ダム情報とが対応して記憶される。
【００９８】
例えば、サケ科魚類などの通し回遊魚を川に戻そうと考えた場合、その地点から海までにどのような河川構造物が何基存在しているのか等を検索することができる。例えば、処理部１は、サケ科魚類などの通し回遊魚を川に戻そうとする地点の河川区間ＩＤを検索スタート河川区間ＩＤとして、上述のフローチャートに示す処理を実行して流下経路の河川区間ＩＤを取得及び表示等する。また、処理部１は、貯水ダム及び／又は属性データの例における属性データテーブル５５−４、５５−５を参照して取得された河川区間ＩＤと一致する河川区間ＩＤがあるか検索し、取得及び表示等された河川区間ＩＤにダムがあるか否かを判断することができる。また、処理部１は、属性データテーブル５５−４及び／又は５５−５から河川区間ＩＤに対応した各種データを取得することもできる。
【００９９】
また、属性テーブル５５は、例えば、河川区間ＩＤに対応して、その河川区間に排水する排水施設情報が記憶されることもできる。例えば、悪臭の発生、魚類の大量死等が発生した場合、その地点から上流にある排水施設を検索することができる。例えば、処理部１は、悪臭が発生した地点の河川区間ＩＤを検索スタート河川区間ＩＤとして、上述のフローチャートに示す処理を実行して上流区間の河川区間ＩＤを取得及び表示等する。また、処理部１は、属性データテーブル５５を参照して、取得された河川区間ＩＤと一致する河川区間ＩＤがあるか検索し、該当する河川区間ＩＤに対応した排水施設情報を取得及び表示等することができる。
なお、上述のテーブル構成は一例であり、上述の情報から適宜の情報を選択して記憶するようにしてもよいし、これ以外の情報を記憶してもよい。
【０１００】
４．応用例
（河川図の表示）
図１６及び図１７は、河川区間ＩＤの応用例を示す図である。図１６は、デジタル河川図の説明図である。流域の河川区間ＩＤに基づき河川のネットワーク（河川図）を自動的に再現することができる。
図１６（ａ）は、河川区間ＩＤが記憶されたテーブルの例である。このテーブルの例では、河川区間ＩＤの（ＩＤ）と合流情報ＩＤ（ＬＲ）は別のフィールドに記憶されている。図１６（ｂ）及び（ｃ）は、処理部１が図１６（ａ）に示す河川区間ＩＤに基づき河川のネットワークをプログラムによって自動的に再現した図（１）及び（２）である。
【０１０１】
河川区間ＩＤを記憶部５に記憶しておけば仮想的な河川を作成でき、デジタル河川図を描くことが可能である。この河川図は、例えば、すべての自治体で紙の台帳として管理されている「都道府県河川台帳」に相当し、「都道府県河川台帳」の代わりとなることができる。また、特定の一区間を指定し、そこに流れ込むすべての河川区間、またその区間から海までの最短経路を検索し、表示できる。
【０１０２】
例えば、処理部１は、全河川区間ＩＤファイル５１に記憶された河川区間ＩＤを順次読み出し、河川区間ＩＤが割り当てられた法則性に基づき、河川図を表示部４に表示する。図１６（ｂ）と図１６（ｃ）のように、異なるタイプの表示をすることもできる。
【０１０３】
図１７は、上流区間検索、流下経路検索の結果が河川図に反映された例を示す図である。処理部１は、上流河川区間ＩＤファイル５２又は下流河川区間ＩＤファイル５３に記憶された河川区間ＩＤを順次読み出し、読み出された河川区間ＩＤに基づき上流河川区間又は流下経路を、河川全体について表示された河川図に重畳して表示部４に表示することができる。図１７（ａ）は、処理部１が図中矢印の先端で示される特定地点を検索スタート河川区間として上述の上流区間検索を実行して、その地点から上流域全ての河川区間を検索し、検索結果を河川図に表した図である。検索結果が太線で示される。
【０１０４】
また、図１７（ｂ）は、図中矢印の先端で示される特定地点を検索スタート河川区間として流下経路検索を実行してその地点から河口までの流下経路を検索し、検索結果を河川図に表した図である。検索結果が太線で示される。
また、本実施の形態に係る河川区間の検索を利用して、例えば以下のような応用ができる。
【０１０５】
（特定区間から上流部の自動検索の実用例）
１）川のある地点で問題が生じた場合（悪臭の発生、魚類の大量死、著しい汚染など）その河川区間から上流の河川すべてを検索し、問題となりそうな個所（下水排水施設、工事現場等）との因果関係を検討する事が可能となる。
例えば、河川の特定区間で魚類の大量死など生態学的異常が認められた場合、排水施設地点を河川区間の属性情報として事前登録しておけば、問題地点から上流の河川区間を全て検索する事を通して、上流区間の属性データ（この場合は有害物質等の排出量など）との因果関係を推察する事が可能となる。
２）河川内横断構造物（例えば農業用頭首工やダムなど）の設置を計画した場合、そこに水が流れ込む集水地域の抽出や汚濁負荷発生可能地域の予測等ができる。
３）工場の取水設備や上水施設等の建設を計画した場合、その上流からその地点に流入する流量や汚濁の負荷量の推定等ができる。
【０１０６】
（特定区間から下流部（河口まで）の自動検索の実用例）
１）特定の河川区間にダム建設や河川改修などの事業が発生し、上流・下流に及ぼす影響評価（アセスメント）を求められた場合、そこから河口部までの河川に関わる情報が速やかに検索する事が可能となる。例えば、河川内横断構造物を設置しようとする場合、その下流部に貴重な生物種は生息していないか等を検索することができる。
例えば、ある河川区間にダムの建設計画があり、ダムサイトから下流の生態系への影響をアセスする場合。ダムのデータと既存生態調査データ（貴重種やサケ科魚類など遡上性回遊魚の生息調査データ）を河川区間データに結合しておく。河川区間はＩＤによって上流下流の関係が検索可能であるから、そのダムによって海から分断化される地域、またダムから海までの通常の河川水の流れる最短経路を速やかに検索可能となり検索された区間における生物生息情報とダムのデータ（構造・規模・建設年等）を比較検討する事が可能となる。
２）サケ科魚類などの通し回遊魚を川に戻そうと考えた場合、その地点から海までにどのような河川構造物が何基存在しているのか等を検索することができる。
３）淡水生物の生息環境と下流にある河川構造物の構造（魚道の有無）の関係などを検索することができる。
【０１０７】
（流域全体としての実用例）
流域の全体的な管理の面では、河川区間に対して、様々な情報を登録し、流域全体の上下流の繋がりを基に、空間的な解析（ネットワーク解析）を行うシステムの実現により、より効率化が期待できる。河川区間に登録される情報とは、生物生息情報、土地利用状況、人口・産業活動にかかわる統計データ、汚濁物排出データ、水資源利用データ、河川内横断構造物データ等である。
また、既存の河川ラインデータでは、地理情報システムの中で利用した場合、上流．下流の関係が構築できてないために、流域内河川のネットワークに関わる解析が不可能であるが、本システムの実現により、利用者は自分の着目するデータ（ダムと魚類生息地、河川の汚染地点と排水施設）を河川区間データの属性に与える作業を半自動的又は自動的に行えば、あとは自動的に容易にその上流と下流の関係を解析可能となる。
【０１０８】
５．付記
本発明の河川区間検索方法は、その各手順をコンピュータに実行させるための河川区間検索プログラム、河川区間検索プログラムを記憶したコンピュータ読み取り可能な記録媒体、河川区間検索プログラムを含みコンピュータの内部メモリーにロード可能なプログラム製品、そのプログラムを含むサーバ等のコンピュータ、等により提供されることができる。
【０１０９】
ＩＩ．第２の実施の形態
第２の実施の形態において、河川区間識別子及びハード構成は、上述の第１の実施の形態と同様とすることができる。
【０１１０】
１．プログラムの概要
河川網を構成する各河川区間に対して、上流下流関係を明示的に表したＩＤ番号を割り当てたいとき、対象とする河川網のＨｏｒｔｏｎ−Ｓｔｒａｈｌｅｒ河道位数がｎ（正の整数）であるならば、そのＩＤ番号は要素数ｎの１次元配列によって表現できる。
例えば、河道位数が６の河川網を対象とするとき、それを構成する河川区間のＩＤ番号は、識別情報（以下要素と表現することもある）数６の１次元配列で表現できる。なお、各要素の値（要素値）は、正の整数とする。
【０１１１】
この考え方を、「サブ流域相互の上流下流関係」と「同一サブ流域内に属する河川区間相互の上流下流関係」に適用する。すなわち、各サブ流域に対しては、サブ流域相互の上流下流関係を明示的に表した「サブ流域ＩＤ：Ｓｕｂ−Ｂａｓｉｎ  ＩＤ（ＳＢＩＤ）」を割り当て、個々の小区間に対しては、同一サブ流域内における小区間相互の上流下流関係を明示的に表した「小区間ＩＤ：Ｌｏｃａｌ  Ｓｔｒｅａｍ  ＩＤ（ＬＳＩＤ）」を割り当てる。
【０１１２】
河川区間が属するサブ流域ＩＤ：ＢＩＤと、その河川区間の小区間ＩＤ：ＬＳＩＤを連結することによって「Ｇｌｏｂａｌ  Ｓｔｒｅａｍ  ＩＤ（ＧＳＩＤ）」を表現する。すなわち、ＳＢＩＤの要素数がｍ，ＬＳＩＤの要素数がｎの場合、ＧＳＩＤは要素数ｍ＋ｎの１次元配列となる。ＧＳＩＤの最初に水系ＩＤを加え、全国の河川区間をユニークに表現したものが河川区間ＩＤとなる。
【０１１３】
本プログラムは、基準となる河川区間（基準河川区間）をＧＳＩＤによって指定し、その上流に位置する河川区間（上流河川区間）と、その下流に位置する河川区間（下流河川区間）を検索し、上流河川区間のＧＳＩＤおよび下流河川区間のＧＳＩＤを出力するものである。なお、本プログラムは、一般に広く普及しているプログラミング言語「Ｃ」によって書かれたものであり、標準的なＣ言語が動作するコンピュータであれば、機種を問わず実行可能なプログラムとなっている。
【０１１４】
識別番号の順番（図２０）
非零となる識別情報の順番の表現の中でパターン１とパターン２を設ける。上述の第１の実施の形態ではパターン１で統一されている。パターン２を設けたのは、一般的なＣ言語で識別情報を扱う場合、プログラム言語における一次元配列の認識が、左から、０、１、２、３、・・・と処理されるためである。利用する上、表面上はまったく同様であるが、以下のフローのプログラムの中では、パターン２を使う。
識別番号は一般的に下の桁（右）から、１、２、・・・ｍ、（またはｎ）と表現するが、
Ｃプログラムを利用した処理などでは、上の桁（左）から、０、１、・・・ｍ（またはｎ）と表現することがある（図２０（ａ））。
非零となる識別情報の順番の表現。
ｉは小区間ＩＤにおいて、下の桁から数えて識別情報が最初に非零となる識別番号。
ｊはサブ流域ＩＤにおいて、同様に下の桁から数えて識別情報が最初に非零となる識別番号。
（例：河川区間ＩＤ＝ＡＡＡ・・・１．２．０．０．０．０  ０．１．１．０．０．０  Ｚ）の場合パターン１では、ｊ＝５、ｉ＝４、パターン２ではｊ＝１、ｉ＝２。
【０１１５】
２．各ＩＤ番号および記号の定義
河川区間の定義
ＧＳＩＤ：河川区間ＩＤのサブ流域ＩＤ（ＳＢＩＤ）と小区間ＩＤの部分
（Ｍｍ・・・Ｍ２Ｍ１      Ｎｎ・・・  Ｎ２Ｎ１）
Ｍ：サブ流域ＩＤ（ＳＢＩＤ）、Ｎ小区間ＩＤ（ＬＳＩＤ）
基準河川区間ＧＳＩＤ：検索をスタートするＩＤＳＴＡＲＴ。（またはＴａｒｇｅｔ  Ｓｔｒｅａｍ  ＩＤ）
（ＭＳ，ｍ・・・ＭＳ，２ＭＳ，１    Ｎｓ，ｎ  ・・・  Ｎｓ，２  Ｎｓ，１）
Ｍ、Ｎは識別情報（要素値）であり正の整数。添え字ｍ、ｎは識別情報番号（要素番号）を表す。添え字ｓは基準河川区間の識別情報であることを示す。
【０１１６】
検索結果について
プログラムを実行することにより、ＧＳＩＤを持つすべての河川区間を対象とした上流下流判定（基準河川区間の上流に位置するか、下流に位置するかの判定）が行われ、上流河川区間および下流河川区間のＧＳＩＤが出力される。
｛ＩＤＳ｝ｕｐ：上流河川区間のＧＳＩＤ
｛ＩＤＳ｝ｄｏｗｎ：下流河川区間のＧＳＩＤ
｛ＩＤＳ｝ｏｔｈｅｒ：その他の河川区間のＧＳＩＤ
【０１１７】
プログラム中の識別情報と識別情報番号
本プログラムでは、ＳＢＩＤおよびＬＳＩＤの識別情報の数（要素数）は、実用的な理由から両者とも６とした。これにより、ＧＳＩＤの要素数は１２となる。また、ＳＢＩＤおよびＬＳＩＤの識別情報番号（要素番号）は、左から順番に０〜５のように割り当てた（図２０（ｂ））。
【０１１８】
３．１  プログラム全体の流れ（図２１）
Ｓｔａｒｔ
Ｓ１１０１：事前処理
Ｓ１２０１：全河川区間のＧＳＩＤデータの読み込み：ｒｅａｄ＿ｔａｂｌｅ
Ｓ１３０１：基準河川区間のＧＳＩＤデータの読み込み：ｒｅａｄ＿ｔａｒｇｅｔ
Ｓ１４０１：上流検索処理：ｆｉｎｄ＿ｕｐｐｅｒ
Ｓ１５０１：下流検索処理：ｆｉｎｄ＿ｌｏｗｅｒ
Ｓ１６０１：検索結果のファイル出力：ｏｕｔｐｕｔ
Ｅｎｄ
【０１１９】
３−２  Ｓ１１０１事前処理（図２２）
Ｓ１１０１：事前処理
【０１２０】
３−３  Ｓ１２０１  検索対象ＩＤテーブルの読み込み：ｒｅａｄ＿ｔａｂｌｅ（図２３）
Ｓ１２０１：全河川区間のＧＳＩＤデータの読み込み：ｒｅａｄ＿ｔａｂｌｅ
処理部１は、処理対象水系内に含まれる全ての河川区間のＧＳＩＤを読み込む。
ＧＳＩＤデータは，タブによって各要素値が区切られたテキストファイル（タブ区切りテキスト）とする。これは、エクセルなどの一般的な表計算ソフトを用いて容易に作成可能である。
【０１２１】
３−４  Ｓ１３０１  検索開始河川区間の読み込み：ｒｅａｄ＿ｔａｒｇｅｔ（図２４）
Ｓ１３０１：基準河川区間のＧＳＩＤデータの読み込み：ｒｅａｄ＿ｔａｒｇｅｔ
処理部１は、上流、下流河川区間を検索する際の基準河川区間のＧＳＩＤを読み込む。
ＧＳＩＤデータは、タブによって各要素値が区切られたテキストファイル（タブ区切りテキスト）とする。これは、エクセルなどの一般的な表計算ソフトを用いて容易に作成可能である。
【０１２２】
３−５  Ｓ１４０１上流検索処理：  ｆｉｎｄ＿ｕｐｐｅｒ（図２５、２６）
Ｓ１４０１：上流検索処理：ｆｉｎｄ＿ｕｐｐｅｒ
処理開始
Ｓ１４０３：処理部１は、上流か否かの判定フラッグ（ＵＦ）を、１に初期化。
Ｓ１４０５：処理部１は、基準河川区間のＬＳＩＤのうち、要素番号１〜５の要素値がすべて０であれば、ｋ＝０とし、１つでも非零の要素値がある場合は、その中で最も若い要素番号を、ｋに代入する（＊１）。
（＊１）
処理部１は、基準河川区間がサブ流域の本流上にある場合、→ｋ＝０。
処理部１は、基準河川区間がサブ流域の本流上にない場合、→ｋ＞０。
Ｓ１４０７：処理部１は、基準河川区間がサブ流域の本流上にあるか否かの判定処理。
Ａ、  ｋ＞０
Ｓ１４１１：処理部１は、ＳＢＩＤの要素番号０〜５の要素値を比較し、判定フラッグ（ＵＦ）をリコード。
処理部１は、いずれか１つでも基準河川区間の要素値より大きい場合、→ＬＦは０にリコード。
処理部１は、すべての要素値が完全に一致する場合、→ＬＦは１のまま。
処理部１は、いずれか１つでも基準河川区間の要素値より小さい場合、→ＬＦを０にリコード。
Ｓ１４１３：処理部１は、基準河川区間と同一のサブ流域に属している河川区間、つまり、これまでの処理によってＵＦ＝１である河川区間を対象とし、ＬＳＩＤを比較し、判定フラッグ（ＵＦ）をリコード。
処理部１は、要素番号１〜ｋの要素値が、いずれか１つでも基準河川区間のそれと異なる場合、→ＵＦを０にリコード。
処理部１は、要素番号（ｋ＋１）〜５の要素値が、いずれか１つでも基準河川区間のそれより小さい場合、→ＵＦを０にリコード。
Ｂ、  ｋ＝０
Ｓ１４１５：処理部１は、基準河川区間のＳＢＩＤの中で、要素値が０となる最も若い要素番号を調べ、その１つ前の要素番号を、ｊに代入する。
Ｓ１４１７：処理部１は、ＳＢＩＤの要素番号０〜（ｊ−１）の要素値を比較し、判定フラッグ（ＵＦ）をリコード。
処理部１は、いずれか１つでも基準河川区間の要素値と異なる場合、→ＵＦを０にリコード。
Ｓ１４１９：処理部１は、ＳＢＩＤの要素番号ｊの要素値を比較し、判定フラッグ（ＵＦ）をリコード。
処理部１は、基準河川区間の要素値と完全に一致する場合、→ＵＦを２にリコード。
処理部１は、基準河川区間の要素値よりもより小さい場合、→ＵＦを０にリコード。
Ｓ１４２１：処理部１は、基準河川区間と同一のサブ流域に属している河川区間、つまり、これまでの処理においてＵＦ＝２である河川区間を対象とし、ＬＳＩＤを比較し、判定フラッグ（ＵＦ）をリコード。
処理部１は、要素番号０の要素値が、基準河川区間のそれより小さい場合、→ＵＦを０にリコード。
処理部１は、要素番号０の要素値が、基準河川区間のそれ以上の場合、→ＵＦを１にリコード。
処理終了
【０１２３】
３−６  Ｓ１５０１下流検索処理：  ｆｉｎｄ＿ｌｏｗｅｒ（図２７、２８）
Ｓ１５０１：下流検索処理：ｆｉｎｄ＿ｌｏｗｅｒ
処理開始
Ｓ１５０３：処理部１は、下流か否かの判定フラッグ（ＬＦ）を、１に初期化。
Ｓ１５０５：処理部１は、基準河川区間のＳＢＩＤの中で、要素値が０となる最も若い要素番号を調べ、その要素番号を、ｊに代入する。
Ｓ１５０７：処理部１は、ＳＢＩＤの要素番号０〜（ｊ−１）の要素値を比較し、判定フラッグ（ＬＦ）をリコード。
処理部１は、いずれか１つでも基準河川区間の要素値より大きい場合、→ＬＦを０にリコード。
処理部１は、すべての要素値が完全に一致する場合、→ＬＦは１のまま。
処理部１は、いずれか１つでも基準河川区間の要素値より小さい場合、→ＬＦを２にリコード。
Ｓ１５０９：処理部１は、基準河川区間のＬＳＩＤのうち、要素番号１〜５の要素値がすべて０であれば、ｋ＝０とし、１つでも非零の要素値がある場合は、その中で最も若い要素番号を、ｋに代入する（＊１）。
（＊１）
処理部１は、基準河川区間がサブ流域の本流上にある場合、→ｋ＝０
処理部１は、基準河川区間がサブ流域の本流上にない場合、→ｋ＞０
Ｓ１５１１：処理部１は、基準河川区間がサブ流域の本流上にあるか否かの判定処理。
Ａ、  ｋ＞０
Ｓ１５１３：処理部１は、基準河川区間と同一のサブ流域に属している河川区間、つまり、これまでの処理においてＬＦ＝１である河川区間を対象とし、ＬＳＩＤを比較し、判定フラッグ（ＬＦ）をリコード。
処理部１は、要素番号０〜５の要素値のうち、１つでもの基準河川区間のそれよりも大きい場合、→ＬＦを０にリコード．
Ｓ１５１５：処理部１は、基準河川が属するサブ流域よりも下流のサブ流域に属している河川区間、つまり、これまでの処理においてＬＦ＝２である河川区間を対象とし、ＬＳＩＤを比較し、判定フラッグ（ＬＦ）をリコード。
処理部１は、要素番号１〜５の要素値が１つでも非零の場合、→ＬＦを０にリコード。
処理部１は、要素番号１〜５の要素値が全て零の場合、→ＬＦは１にリコード。
Ｂ、  ｋ＝０
Ｓ１５１７：処理部１は、基準河川区間と同一のサブ流域に属している河川区間、つまり、これまでの処理においてＬＦ＝１である河川区間を対象とし、ＬＳＩＤを比較し、判定フラッグ（ＬＦ）をリコード。
処理部１は、要素番号１〜５の要素値が１つでも非零の場合、→ＬＦを０にリコード。
処理部１は、要素番号０の要素値が、基準河川区間のそれよりも大きい場合、→ＬＦを０にリコード。
Ｓ１５１９：処理部１は、基準河川が属するサブ流域よりも下流のサブ流域に属している河川区間、つまり、これまでの処理においてＬＦ＝２である河川区間を対象とし、ＬＳＩＤを比較し、判定フラッグ（ＬＦ）をリコード。
処理部１は、要素番号１〜５の要素値が１つでも非零の場合、→ＬＦを０にリコード。
処理部１は、要素番号１〜５の要素値が全て零の場合、→ＬＦを１にリコード。
処理終了
【０１２４】
３−７  Ｓ１６０１検索結果のファイル出力：ｏｕｔｐｕｔ（図２９）
Ｓ１６０１：検索結果のファイル出力：ｏｕｔｐｕｔ
処理部１は、これまでの処理によってＵＦ＝１である河川区間を上流河川区間とし、そのＧＳＩＤをタブ区切りテキストとしてファイル出力する。
処理部１は、同様に，これまでの処理によってＬＦ＝１である河川区間を下流河川区間とし、そのＧＳＩＤをタブ区切りテキストとしてファイル出力する。
以上により、基準河川区間の上流、下流に位置する河川区間のＩＤ番号が得られる。
【産業上の利用可能性】
【０１２５】
川の上流と下流を速やかに検索し、それぞれに含まれる属性どうしを比較・関連付けるという考え方は、例えば次の産業上の利用分野が想定される。
１）環境アセス分野（環境コンサルティング分野）
河川内横断構造物や下水処理の建設計画に対する、下流部への影響評価。例えば貴重生物種の生息情報の有無。上水施設など下流住民の社会生活に与える影響評価など。また、環境影響を最低とする、施設建設地点の特定。
２）河川管理分野（河川行政）
治水関連：砂防ダム・治山ダム・貯水ダムの最も安全で合理的な建設地点の特定
利水関連：採水施設・多目的ダム建設計画の際の、最適地点の特定
環境関連：河川内横断構造物建設にあたって、環境影響負荷を最低とする建設地点の特定
３）公共事業分野
河川内構造物・河川改修を実際に施行する際、実務の上での効率化（地図化や情報の整理など）。
河川工事や管理履歴の整理が容易となり情報の散逸を防ぐ。
４）民間企業
ＧＩＳ（地理情報システム）分野における河川区間ＩＤの導入。上下流区間検索ソフトの開発。
５）生態系保全分野（研究・学術）
日本の流域内生態系保全の研究は他の先進国と比較して非常に遅れた位置にある。これはＧＩＳ（地理情報システム）で扱える基盤データの普及の遅れと、実用に耐える河川区間の空間解析技術が開発されなかったためである。各大学や研究機関の各研究室（水文・水理、魚類・流域生態、土木、森林科学、環境分野）の研究者は流域の全体を一元的に解析する事の出来る、基盤データの整備を強く望んでいる。
【図面の簡単な説明】
【０１２６】
【図１】河川区間を模式的に示す図。
【図２】河川区間ＩＤの付け方の法則性の説明図。
【図３】サブ流域ＩＤの振り方の法則性の説明図。
【図４】小区間ＩＤの振り方の法則性の説明図。
【図５】河川区間ＩＤを用いた河川区間検索の実例と流域の概念図。
【図６】河川区間検索システムに関するハードウェアの構成図。
【図７】上流区間及び流下経路検索のための処理フローチャート。
【図８】ステップＳ１０５の上流区間・下流区間検索についてのサブブローチャート。
【図９】ステップＳ１１１の下流区間検索のサブフローチャート。
【図１０】サブ流域内の河川区間ＩＤと検索の流れの模式図。
【図１１】上流区間検索のみを実行するフローチャート。
【図１２】河川区間ＩＤを用いた検索方法のひとつの説明図。
【図１３】流下経路検索のための第２の処理フローチャート。
【図１４】河川区間ＩＤに結合させる属性データテーブルのフォーマット（１）。
【図１５】河川区間ＩＤに結合させる属性データテーブルのフォーマット（２）。
【図１６】デジタル河川図の説明図。
【図１７】上流区間検索、流下経路検索の結果が河川図に反映された例を示す図。
【図１８】検索基準河川区間がサブ流域の支流である場合の、処理結果を模式的に示す図。
【図１９】検索基準河川区間がサブ流域の本流である場合の、処理結果を模式的に示す図。
【図２０】識別番号の順番の説明図。
【図２１】プログラム全体の流れ。
【図２２】Ｓ１１０１事前処理の説明図。
【図２３】Ｓ１２０１検索対象ＩＤテーブルの読み込み：ｒｅａｄ＿ｔａｂｌｅの説明図。
【図２４】Ｓ１３０１検索開始河川区間の読み込み：ｒｅａｄ＿ｔａｒｇｅｔの説明図。
【図２５】Ｓ１４０１上流検索処理：ｆｉｎｄ＿ｕｐｐｅｒの説明図（１）。
【図２６】Ｓ１４０１上流検索処理：ｆｉｎｄ＿ｕｐｐｅｒの説明図（２）。
【図２７】Ｓ１５０１下流検索処理：ｆｉｎｄ＿ｌｏｗｅｒの説明図（１）。
【図２８】Ｓ１５０１下流検索処理：ｆｉｎｄ＿ｌｏｗｅｒの説明図（２）。
【図２９】Ｓ１６０１検索結果のファイル出力：ｏｕｔｐｕｔの説明図。
【符号の説明】
【０１２７】
１  処理部
２  入力部
３  出力部
４  表示部
５  記憶部
５１  全河川区間ＩＤファイル
５２  上流河川区間ＩＤファイル（｛ＩＤＳ｝ｕｐ）
５３  下流河川区間ＩＤファイル（｛ＩＤＳ｝ｄｏｗｎ）
５４  その他河川区間ＩＤファイル（｛ＩＤＳ｝ｏｔｅｈｒ）
５５  属性データテーブル
【図１】
2005316519.tif 000003
【図２】
2005316519.tif 000004
【図３】
2005316519.tif 000005
【図４】
2005316519.tif 000006
【図６】
2005316519.tif 000007
【図７】
2005316519.tif 000008
【図８】
2005316519.tif 000009
【図９】
2005316519.tif 000010
【図１０】
2005316519.tif 000011
【図１１】
2005316519.tif 000012
【図１２】
2005316519.tif 000013
【図１３】
2005316519.tif 000014
【図１４】
2005316519.tif 000015
【図１５】
2005316519.tif 000016
【図１７】
2005316519.tif 000017
【図１８】
2005316519.tif 000018
【図１９】
2005316519.tif 000019
【図２０】
2005316519.tif 000020
【図２１】
2005316519.tif 000021
【図２２】
2005316519.tif 000022
【図２３】
2005316519.tif 000023
【図２４】
2005316519.tif 000024
【図２５】
2005316519.tif 000025
【図２６】
2005316519.tif 000026
【図２７】
2005316519.tif 000027
【図２８】
2005316519.tif 000028
【図２９】
2005316519.tif 000029
【図５】
2005316519.tif 000030
【図１６】
2005316519.tif 000031