(57)【特許請求の範囲】
【請求項１】
コンピュータのＣＰＵが、等高線の線分上の点を起点とし、隣に位置する低位の等高線の線分上の点を到達点として、個々の落水線線分データを生成して、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法であって、
該地形データ処理方法は、
所定順に選択した等高線データのデータ点を順次落水線生成の起点として選定する第１のステップと、
前記選択した等高線データの隣に位置する低位の等高線データのデータ点のうち、前記起点からの距離が短いものが優先的に選ばれたデータ点を選択点として選定する第２のステップと、
前記選択点と前記起点の距離を演算し、最も距離が短い選択点を到達点の候補として、前記起点と前記到達点の候補を結ぶ線分に対して、前記選択点の全てを含む等高線の線分を仮線分として選択し、前記仮線分と交差しない前記起点と前記到達点の候補を結ぶ線分を選定し、該選定した線分の到達点を含む等高線は前記選択した等高線の隣に位置する低位の等高線であると判断する第３のステップと、
前記起点と、前記到達点の候補の前後の複数のデータ点と、をそれぞれ結ぶ線分、及び、前記起点と、該起点から前記到達点の候補の前後の複数のデータ点をそれぞれ結ぶ線分に対してそれぞれ下ろした垂線が該複数のデータ点を結ぶ線分と交わる交点と、を結ぶ線分が前記仮線分と交差しないとき、それらのデータ点及び交点を落水線作成の到達点の候補として追加する第４のステップと、
全ての到達点の候補の中から起点に最も近い候補を到達点として決定する第５のステップと、
前記起点から前記到達点に向かって落水線線分データを生成する第６のステップとを含み、
前記コンピュータのＣＰＵは、
前記決定した到達点を次に生成する落水線線分データの起点として、前記第２乃至第６のステップを順次繰り返し実行し、
前記第２のステップにおいて、選定した選択点が後の処理によってなくなるかデータ点を選択点として選定できないとき、前記第１のステップにおいて、選択した等高線データにおいて次順のデータ点を選択して前記第２乃至第６のステップを繰り返し実行し、
前記第１のステップにおいて、選定すべきデータ点がないとき、次順の等高線データを選択し、選択した等高線データの最初のデータ点を落水線生成の起点として選定して前記第２乃至第６のステップを繰り返し実行することにより、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法。
【請求項２】
コンピュータのＣＰＵが、等高線の線分上の点を起点とし、隣に位置する低位の等高線の線分上の点を到達点として、個々の落水線線分データを生成して、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法であって、
等高線データのデータ点の属性は、
当該データ点を起点とする落水線データが存在しないことを示すもの、
落水線データのライン番号及びポイント番号、または、
既に当該データ点から落水線データを生成しようとして不可能であったことを示すものを、択一的に付与されるものであり、
該地形データ処理方法は、
前記等高線データの全データ点について、当該データ点を起点とする落水線データが存在しないことを示すものを属性として付与する第１のステップと、
所定順に選択した等高線データにおいて所定順に選択したデータ点に付与されている属性が、
後のステップにおいて付与されるものを含め、落水線データのライン番号とポイント番号であるか、または、既に当該データ点から落水線データを生成しようとして不可能であったことを示すものであるときは、前記選択したデータ点を落水線データの発生点である起点とせず次順のデータ点を選択する一方、
前記選択したデータ点を起点とする落水線データが存在しないことを示すものであるとき、該データ点を落水線データの発生点である起点とする第２のステップと、
前記起点からの距離が短いものが優先的に選ばれたデータ点を選択点として選定する第３のステップと、
前記選択点と前記起点の距離を演算し、最も距離が短い選択点を到達点の候補として、前記起点と前記到達点の候補を結ぶ線分に対して、前記選択点の全てを含む等高線の線分を仮線分として選択し、前記仮線分と交差しない前記起点と前記到達点の候補を結ぶ線分を選定し、該選定した線分の到達点を含む等高線は前記選択した等高線の隣に位置する低位の等高線であると判断する第４のステップと、
前記起点と、前記到達点の候補の前後の複数のデータ点と、をそれぞれ結ぶ線分、及び、前記起点と、該起点から前記到達点の候補の前後の複数のデータ点をそれぞれ結ぶ線分に対してそれぞれ下ろした垂線が該複数のデータ点を結ぶ線分と交わる交点と、を結ぶ線分が前記仮線分と交差しないとき、それらのデータ点及び交点を落水線作成の到達点の候補として追加する第５のステップと、
全ての到達点の候補の中から起点に最も近い候補を到達点として決定する第６のステップと、
前記起点から前記到達点に向かって落水線線分データを生成する第７のステップと、
前記決定した到達点を次に生成する落水線線分データの起点とする第８のステップとを含み、
前記コンピュータのＣＰＵは、
前記次の起点が等高線データのデータ点でないとき、または、前記次の起点が等高線データのデータ点であるが前記属性が該データ点を起点とする落水線データが存在しないことを示すものであるとき、前記第３乃至第８のステップを順次繰り返し実行し、
前記第２のステップにおいて、前記次の起点の前記属性が、落水線データのライン番号とポイント番号であるか、または、既に当該データ点から落水線データを生成しようとして不可能であったことを示すものであるとき、当該落水線の起点以降の落水線データの新規生成を停止し、当該落水線データの始点から当該起点までのデータ点について、等高線データのデータ点と一致するとき、その等高線データのデータ点に現在作成中の落水線データのライン番号とポイント番号を属性として付与し、次順のデータ点を選択して前記第３乃至第８のステップを繰り返し実行し、
前記第３のステップにおいて、選定した選択点が後の処理によってなくなるかデータ点を選択点として選定できないとき、既に当該データ点から落水線データを生成しようとして不可能であったことを示すものを属性として付与し、次順のデータ点を選択して前記第３乃至第８のステップを繰り返し実行し、
前記第２のステップにおいて、前記所定順に選択した等高線データにおいて次順のデータ点が存在しないとき、次順の等高線データの最初のデータ点を起点として前記第３乃至第８のステップを繰り返し実行することにより、
等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法。
【請求項３】
前記地形データ処理方法はさらに、
落水線データの各線分について、落水線が水平面となす角度である勾配と落水線が北となす角度である斜面方位の演算を実行するステップを含むことを特徴とする請求項1又は請求項２に係る地形データ処理方法。
【請求項４】
前記地形データ処理方法はさらに、
落水線データの線分について、連続する二つの線分の勾配の変化を次の式（１）により求めることにより、落水線データの連続する二つの線分を結ぶ点における垂直断面上での斜面の垂直断面形を分類するステップを含むことを特徴とする請求項1又は請求項２に係る地形データ処理方法。
τｊ = 180°- εｊ + εｊ-1        式（１）
（式中、τｊは、連続する二つの落水線の垂直断面上でなす角、εｊは、下方の落水線が水平面となす角、εｊ-1は、上方の落水線が水平面となす角を表す。）
【請求項５】
前記地形データ処理方法はさらに、
複数の落水線データの終点の標高が同一であってそれら複数の終点の平面距離が所定値より小さい場合に、それらの落水線データの終点は同一であるとし、終点が同一である落水線データの総数が所定数を超過するとき、これらの落水線データに水系番号を順に付与させ、終点が同一である落水線データの総数が所定数に達しないときいかなる水系にも属しない旨の属性をそれらの落水線データに付与するステップを含み、
全ての落水線データを、いずれの水系番号の水系に属するか、又は、いずれの水系にも属しないかを分類するステップを含むことを特徴とする請求項1又は請求項２に係る地形データ処理方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、標高や勾配や斜面方位や斜面型などを指標として、コンピュータ上にて、地形分類を行うための地形データ処理方法及びその装置に関するものである。
本発明により取得される山地地域の地形分類図は、地すべり、岩屑なだれ、雪崩などの深刻な被害をもたらす現象を解析し、予測する上で、基礎資料となる。具体的には、近年、地方自治体等が行っている、災害時に住民の避難活動を支援するハザードマップの作成に活用できる。
【０００２】
【従来の技術】
地形分類図は、伝統的に、地形図（等高線図）をベースにして、写真判読などをはじめとする手作業で作成されてきた。このため、データを正確に解析するためには多大の労力を要し、膨大なコストがかかるという問題があった。また、人間による手作業のため、個人差や見落としなどが存在した。この解決策として、日本全国をカバーする数値地図50mメッシュ（標高）などを用いて、地形特徴の把握、数値地形計測及び流域解析等をコンピュータ上で行う手法が開発されている。均一に配置された標高グリッドデータを使用し、同一の手法を用いて計算を行うことにより、客観的、かつ、広範囲の地形解析を、自動的に短時間に行うことが可能である。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記標高グリッドデータは、コンピュータ処理に適していて処理速度を格段に向上できる反面、等高線データなどを基に作成されることが多く、グリッド化された時点でデータが等間隔に分断されてしまうことから、データや情報量が落ちる。したがって、谷線や尾根線のような斜面の境界を考慮した計算を行うことが難しい。
【０００４】
しかし、標高グリッドデータの基データとして使われることが多い等高線データをそのまま使用することにより、等高線が持つ情報にしたがって忠実に斜面を分類することが可能であり、その際、使用する等高線で表現された谷や尾根を考慮した、手作業による分類を再現することができる。
本発明は、上記従来の実情に鑑みてなされたもので、その目的とするところは、従来手作業で実現していた専門家レベルの解析精度を維持しつつ、コンピュータ処理可能な新規の地形データ処理方法及びその装置を提供すること、及び、デジタル化した等高線データから落水線データを生成し、生成した落水線データを利用してコンピュータ処理可能な地形データ処理方法及びその装置を提供することにある。
これらの処理方法及びその装置により、地形分類図作業の一部工程が自動化され、作成作業の効率化が図られるものである。
【０００５】
【課題を解決するための手段】
本発明は上記目的を達成するために、請求項１に係る発明は、コンピュータのＣＰＵが、等高線の線分上の点を起点とし、隣に位置する低位の等高線の線分上の点を到達点として、個々の落水線線分データを生成して、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法であって、該地形データ処理方法は、所定順に選択した等高線データのデータ点を順次落水線生成の起点として選定する第１のステップと、前記選択した等高線データの隣に位置する低位の等高線データのデータ点のうち、前記起点からの距離が短いものが優先的に選ばれたデータ点を選択点として選定する第２のステップと、前記選択点と前記起点の距離を演算し、最も距離が短い選択点を到達点の候補として、前記起点と前記到達点の候補を結ぶ線分に対して、前記選択点の全てを含む等高線の線分を仮線分として選択し、前記仮線分と交差しない前記起点と前記到達点の候補を結ぶ線分を選定し、該選定した線分の到達点を含む等高線は前記選択した等高線の隣に位置する低位の等高線であると判断する第３のステップと、前記起点と、前記到達点の候補の前後の複数のデータ点と、をそれぞれ結ぶ線分、及び、前記起点と、該起点から前記到達点の候補の前後の複数のデータ点をそれぞれ結ぶ線分に対してそれぞれ下ろした垂線が該複数のデータ点を結ぶ線分と交わる交点と、を結ぶ線分が前記仮線分と交差しないとき、それらのデータ点及び交点を落水線作成の到達点の候補として追加する第４のステップと、全ての到達点の候補の中から起点に最も近い候補を到達点として決定する第５のステップと、前記起点から前記到達点に向かって落水線線分データを生成する第６のステップとを含み、前記コンピュータのＣＰＵは、前記決定した到達点を次に生成する落水線線分データの起点として、前記第２乃至第６のステップを順次繰り返し実行し、前記第２のステップにおいて、選定した選択点が後の処理によってなくなるかデータ点を選択点として選定できないとき、前記第１のステップにおいて、選択した等高線データにおいて次順のデータ点を選択して前記第２乃至第６のステップを繰り返し実行し、前記第１のステップにおいて、選定すべきデータ点がないとき、次順の等高線データを選択し、選択した等高線データの最初のデータ点を落水線生成の起点として選定して前記第２乃至第６のステップを繰り返し実行することにより、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法とした。
【０００６】
削除
【０００７】
また請求項２に係る発明は、コンピュータのＣＰＵが、等高線の線分上の点を起点とし、隣に位置する低位の等高線の線分上の点を到達点として、個々の落水線線分データを生成して、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法であって、該地形データ処理方法は、等高線データの全データ点について、当該データ点を起点とする落水線データが存在しないことを示す属性を付与する第１のステップと、所定順に選択した等高線データにおいて所定順に選択したデータ点に付与されている属性が、後のステップにおいて付与されるものを含め、落水線データのライン番号とポイント番号であるか、または、既に当該データ点から落水線データを生成しようとして不可能であったことを示すものであるときは、前記選択したデータ点を落水線データの発生点である起点とせず次順のデータ点を選択する一方、前記選択したデータ点を起点とする落水線データが存在しないことを示すものであるとき、該データ点を落水線データの発生点である起点とする第２のステップと、前記起点からの距離が短いものが優先的に選ばれたデータ点を選択点として選定する第３のステップと、前記選択点と前記起点の距離を演算し、最も距離が短い選択点を到達点の候補として、前記起点と前記到達点の候補を結ぶ線分に対して、前記選択点の全てを含む等高線の線分を仮線分として選択し、前記仮線分と交差しない前記起点と前記到達点の候補を結ぶ線分を選定し、該選定した線分の到達点を含む等高線は前記選択した等高線の隣に位置する低位の等高線であると判断する第４のステップと、前記起点と、前記到達点の候補の前後の複数のデータ点と、をそれぞれ結ぶ線分、及び、前記起点と、該起点から前記到達点の候補の前後の複数のデータ点をそれぞれ結ぶ線分に対してそれぞれ下ろした垂線が該複数のデータ点を結ぶ線分と交わる交点と、を結ぶ線分が前記仮線分と交差しないとき、それらのデータ点及び交点を落水線作成の到達点の候補として追加する第５のステップと、全ての到達点の候補の中から起点に最も近い候補を到達点として決定する第６のステップと、前記起点から前記到達点に向かって落水線線分データを生成する第７のステップと、前記決定した到達点を次に生成する落水線線分データの起点とする第８のステップとを含み、前記コンピュータのＣＰＵは、前記次の起点が等高線データのデータ点でないとき、または、前記次の起点が等高線データのデータ点であるが前記属性が該データ点を起点とする落水線データが存在しないことを示すものであるとき、前記第３乃至第８のステップを順次繰り返し実行し、前記第２のステップにおいて、前記次の起点の前記属性が、落水線データのライン番号とポイント番号であるか、または、既に当該データ点から落水線データを生成しようとして不可能であったことを示すものであるとき、当該落水線の起点以降の落水線データの新規生成を停止し、当該落水線データの始点から当該起点までのデータ点について、等高線データのデータ点と一致するとき、その等高線データのデータ点に現在作成中の落水線データのライン番号とポイント番号を属性として付与し、次順のデータ点を選択して前記第３乃至第８のステップを繰り返し実行し、前記第３のステップにおいて、選定した選択点が後の処理によってなくなるかデータ点を選択点として選定できないとき、既に当該データ点から落水線データを生成しようとして不可能であったことを示す属性を付与し、次順のデータ点を選択して前記第３乃至第８のステップを繰り返し実行し、前記第２のステップにおいて、前記所定順に選択した等高線データにおいて次順のデータ点が存在しないとき、次順の等高線データの最初のデータ点を起点として前記第３乃至第８のステップを繰り返し実行することにより、等高線から隣に位置する低位の等高線に対して最大傾斜で下る落水線を生成する地形データ処理方法として、請求項１に係る発明に比し大幅に演算時間を短縮した。
【０００８】
削除
【０００９】
削除
【００１０】
削除
【００１１】
また、請求項３に係る発明は、請求項1又は請求項２に係る地形データ処理方法に加え、落水線データの各線分について、落水線が水平面となす角度である勾配と落水線が北となす角度である斜面方位の演算を実行することを含むことを特徴とする。
【００１２】
削除
【００１３】
また、請求項４に係る発明は、請求項1又は請求項２に係る地形データ処理方法に加え、落水線データの線分について、連続する二つの線分の勾配の変化を次の式（１）により求めることにより、落水線データの連続する二つの線分を結ぶ点における垂直断面上での斜面の垂直断面形を分類することを含むことを特徴とする。
τｊ = 180°- εｊ + εｊ-1              式（１）
【００１４】
削除
【００１５】
また、請求項５に係る発明は、請求項1又は請求項２に係る地形データ処理方法に加え、複数の落水線データの終点の標高が同一であってそれら複数の終点の平面距離が所定値より小さい場合に、それらの落水線データの終点は同一であるとし、終点が同一である落水線データの総数が所定数を超過するとき、これらの落水線データに水系番号を順に付与し、終点が同一である落水線データの総数が所定数に達しないときいかなる水系にも属しない旨の属性をそれらの落水線データに付与するステップを含み、全ての落水線データを、いずれの水系番号の水系に属するか、又は、いずれの水系にも属しないかを分類することを特徴とする。
【００１６】
削除
【００１７】
【実施例】
【データ構造】
本発明は、等高線データに基づいて落水線データを生成するものである。
そこで先ず、等高線データのデータ構造について説明する。
図２は、等高線データのイメージ図である。この図において、等高線の四角内の数字はライン番号を、同じく円内の数字はポイント番号を示している。
図２（Ｂ）は、等高線データのデータ構造を示すもので、記憶装置のデータ領域であるデータファイルは、ｘ座標とｙ座標（平面位置）のデータを格納するｘｙファイルと、ｚ座標（標高）のデータを格納するｚファイルに分けられており、各ファイルには、前記ライン番号、ポイント番号、ＥＮＤ記号が格納されている。
【００１８】
【落水線データ生成処理（その１）】
落水線は等高線と直交しながら、最大傾斜方向へ下る線である。このため、落水線は決して尾根や谷を横切ることはない。したがって、落水線の作成は、地形特徴を得るために行う最初に行う最も基本的な処理である。
【００１９】以下、請求項１に係る発明の１実施例について詳細に説明する。
ＣＰＵは、記憶装置に記憶された解析対象地域における等高線データの全てを読み込み、該等高線データのうち、ライン番号が最も小さいものを選択し、その等高線データの最初のデータ点から落水線データの作成を開始する。
【００２０】以下、落水線データ生成プログラムのフローチャートを図１１を参照して説明する。
ＣＰＵは、ステップ１０１において等高線データ全てを記憶装置から読み込み、次のステップ１０２で最初にライン番号がｎである等高線データをＭn、Ｍnのｎｎ番目のデータ点をｍnn、作成する落水線データの落水線番号をs、落水線番号sである落水線データをWs、Wsのss番目の点をwssとし、次のステップで点ａから落水線の線分を下方に向けて引くとき、ａを起点mとする。
ｎ，ｓ，ｎｎに１をデータセットしてｍ＝ｍnnと定義したうえで、ｓｓに１をデータセットする（ステップ１０４〜１０７）。
次いで、ステップ１０８〜１０９において、当該等高線データＭnより標高が１ランク低い等高線データがあり、かつ、Ｍnより低い等高線データのデータ点が前記起点ｍの半径Ｒ以内にあるとき、標高が１ランク低い等高線データの全てのデータ点のうち、起点ｍから所定半径Ｒ以内に存在するデータ点を全て選択し、選択した全てのデータ点（以下「選択点」という。）にフラグ１を立てる（ステップ１１０）。
ステップ１０８において、当該等高線データＭnより標高が１ランク低い等高線データがないとき、および、ステップ１０９において、Ｍnより低い等高線データのデータ点が起点ｍの半径Ｒ以内にないときは、その起点は落水線データの終点であって、ｍから落水線の線分を下方へ引くことはできないから、次のデータ点を選択（ｎｎ＝ｎｎ＋１）（ステップ１５０）して、ステップ１０６に戻る。
上記の所定半径Ｒは、本実施例では、解析者が入力装置より設定可能とされている。
この所定半径Ｒは、解析対象地域に対して選定するものであり、等高線密度、得られたデータの精度等を考慮して選ぶ。山地地域を対象地域とする本実施例では、R=150mとした（1:25,000地形図上では6mmとなる）。Ｒの選択は、計算時間に影響するので重要である。
【００２１】ＣＰＵは、前記選択点と前記起点ｍの距離を演算（ステップ１１１）し、最も距離が短い選択点をデータ点ｔ1とし、該データ点ｔ1を含む等高線データをデータ線分Ｔとする（ステップ１１２）とともに、起点ｍから半径Ｒ以内に存在する全てのデータ点を含む、同じ等高線データ上の連続する二つのデータ点をつなぐ線分（以下「等高線の線分」という。）」を選択する（ステップ１１３）。
以下、データ点ｔ1において、等高線データＭnの隣りに位置し、かつ、Ｍnのより標高が１ランク低い等高線データを捜す。
すなわち、選択されたこれらの等高線の線分（以下「仮線分」という。）を用いて、標高が１ランク低い等高線データＴが選択された等高線データＭnの隣りに存在するかどうかを調べる。
ｔ1がＭnの隣りの等高線データのデータ点であれば、線分ｍｔ1はどの仮線分とも交差することはない（図３、A）。
しかし、ｔ1がＭnの隣りの等高線データのデータ点でないならば、線分ｍｔ1は上記したいずれかの仮線分と交差する（図3、B１）。
よって、ステップ１１４において、線分ｍｔ1が仮線分と交差すると判断されたときは、ｔ1を選択点の中から除去して（ステップ１１６）、他に選択点がある限り（ステップ１１７）ステップ１１２に戻ってｔ1の次に起点ｍに近い点ｔ2を選んで、ステップ１１３、１１４に進んでこの処理を繰り返す。ステップ１１７において他に選択点がないときは、前述した手順でステップ１０６に戻る。
このとき、全ての選択点を用いても標高が１ランク低い等高線データを決定できない場合は、データ点ｍを落水線データの終点とする。
【００２２】一方、線分ｍｔ1が仮線分と交差しないと判断されたときは、等高線データＴは等高線データＭnの隣りに存在するものとして、
Ｔ＝Ｑ、ｔ1＝ｑjとする（ｑjはＱのｊ番目のデータ点）。
このとき、ｋ＝ｊ．ｋｋ＝ｊとし、データ点ｑjの前後のデータ点についても、仮線分と交差するか否か調べるために、
min=ｊ−５（但し、ｊ−５＜０ならｍｉｎ＝１）とし、
max＝ｊ＋５（但し、ｊ＋５＞［Ｑのポイント番号の最大値］なら、ｍａｘ＝［Ｑのポイント番号の最大値］）とする（ステップ１１５）。
次いで、起点ｍと１ランク下の隣に位置する等高線データＱのデータ点ｑjの前後（この例では、前後５つずつ）のデータ点との線分（ｑj+5．．．．ｑj-5）は仮線分と交差するかについて調べ（ステップ１２３〜１２５，１２７〜１２９）、起点ｍと各データ点との線分が仮線分と交差しないものを落水線作成の先端点ｗの候補とする（ステップ１２６．１３０）。
さらに、起点ｍから、ｑk+1とｑkを通る直線とｑkk-1とｑkkを通る直線に垂線をおろして交点をｐk、ｐkkとし（ステップ１３４．１４０）（図４参照）、ｐk、ｐkkは線分ｑk+1ｑk、ｑkk+1ｑkkの上にあり、かつ、ｍｐk、ｍｐkkの線分は仮線分と交差しないものについて、落水線作成の先端点ｗの候補とする（ステップ１３７、１４３）。
そして、すべての先端点ｗの候補の中から起点ｍに最も近い点を落水線作成の先端点ｗとして選び、ｍとｗを結んで落水線を生成し、生成した落水線データは、落水線データファイルに記憶される（ステップ１４６．１４７）。
【００２３】  ここでさらに、１ランク下の隣に位置していた等高線データから落水線を生成するために、等高線データＱをＭnに、データ点ｗをｍに置換し（ステップ１４８）、ｓｓを１インクリメントしてステップ１０８に戻り、ステップ１０９からステップ１４９までの処理を繰り返し、落水線の終点に到達するまで落水線を生成し続ける。
そして落水線の終点まで到達したら、再度ステップ１５０において、ｎｎを１インクリメントして、次のデータ点から落水線の終点に到達するまで落水線データを生成する。
当該等高線データの最後のデータ点からの落水線データの生成が終了した（ステップ１２１）ら、ｎを１インクリメントして、Ｍnの最初のデータ点から落水線データを生成し、順次この処理を実行し、ライン番号が最大のデータに到達したとき落水線データの生成を終了する。
本実施例では、落水線データの発生源である起点を等高線線分データのデータ点としているが、これに限ることなく、等高線線分データの点、例えば中間点であってもよいこと勿論である。
また、落水線データの先端点を選定するに際し、起点ｍから所定半径Ｒ以内に存在するデータ点としたが、ｍからの距離が短い順に所定数としてもよく、要するに、起点からの距離が短いものが優先的に選ばれたデータ点を選択点として選定すればよい。
【００２４】
【落水線データ生成（その２）】
本発明は、上記した請求項１、２に係る落水線データ生成（その１）のように落水線データを重複して生成することなく、落水線データの生成時間を短縮することを目的として創作されたものである。
このため本発明は、等高線データの全データ点に、fall＿ｉ［等高線データのライン番号］［等高線データのポイント番号］＝−１（既成の落水線が存在するときに、その落水線番号を入れる）と、fall＿ｊ［等高線データのライン番号］［等高線データのポイント番号］＝−１（その点から落水線を引けないときは−１０，既成の落水線が存在するときは、その点での落水線のポイント番号を入れる）という属性を与える（ステップ２０３）点に特徴がある。
このことにより、既に落水線データを生成したか否か、又は、生成しようとして不可能であったか否かを判別できるようにする。
【００２５】図１３のフローチャートを参照して、本実施例について説明する。
ＣＰＵは、ステップ２０１において等高線データ全てを読み込み、次のステップ２０２で最初にライン番号がｎである等高線データをＭn、Ｍnのｎｎ番目のデータ点をｍnn、作成する落水線データの落水線番号をs、落水線番号sである落水線データをWs、Wsのss番目の点をwssとする。
ステップ２０３では、等高線データの全データ点に上述の属性を与える。
次のステップ２０４で、点ａから落水線の線分を下方に向けて引くとき、ａを起点mとする。
次いで、ｎ，ｓ，ｎｎに順次１をデータセットしてｍ＝ｍnnと定義したうえで、ｓｓ＝１とデータセットする（ステップ２０５〜２０８）。
【００２６】本実施例の特徴的な部分として、ステップ２０９において、落水線データのライン番号が正であるか否か、そして、ステップ２１０において、落水線データ生成手段が落水線データを生成しようとして不可能であったか否かを判断する。
このステップ２０９，２１０により、既に落水線データが生成されているか否かが判断される。
このとき、当該データ点ｍを起点とする落水線データが既に生成されていたら、新たに落水線データを生成することなく、ステップ２１１に移り、落水線データのポイント番号が１であるか否か判断し、１でなければ落水線データのライン番号を１繰り上げ（ステップ２１２）、次にステップ２１３において、ｍがＭnの終点であるか否か判断し、終点でなければ、次のデータ点を選択（ｎｎ＝ｎｎ＋１）（ステップ２１４）してステップ２０７に戻る。ｍがＭnの終点であれば、Ｍnがライン番号最大の等高線データか否か判断し、Ｍnがライン番号最大の等高線データでなければ、次の等高線データを選択（ｎ＝ｎ＋１）（ステップ２１６）してステップ２０６に戻り、Ｍnがライン番号最大の等高線データであれば、落水線データの生成処理を終了する。
【００２７】前記ステップ２１０において、落水線データのポイント番号が−１０であるか否かを判断する。この属性−１０については後述するが、既に、ｍから落水線データを延長させようとして不可能であった、換言すれば、当該データ点は落水線の終点であると判断されるので、ｍを始点とする落水線線分データは発生させないで、次のステップ２１１に移る。
落水線データのポイント番号が−１０でないときは、ｍを落水線データＷ（落水線番号ｓ）の発生点とする。このとき、ｍはＷのｓｓ番目の点（初期値ｓｓ＝１）となる（ステップ２０８）。
【００２８】次いで、ステップ２１７において、当該等高線データＭnより標高が１ランク低い等高線データはあるか否か判断し、なければ、当該落水線データの終点であると判断されるから、ステップ２６６において、落水線データのポイント番号として−１０という属性を付与して、次のデータ点を選択（ｎｎ＝ｎｎ＋１）（ステップ２１４）してステップ２０７に戻る。
ステップ２１７以降、等高線ＱをＭに、ｗをｍに置き換えるステップ２５２までの処理は、前記第1の実施例と同一であるので、説明を省略する。ステップ２５１において、見つかった落水線の端点ｗを書き出し、ｗが既成の等高線のデータ点であるか否かを判定し（ステップ２５４）、否であれば、ステップ２１７に戻って次の落水線データの生成処理に入る。否でなければ、現在作成中の落水線が既成の落水線に合流したか否かを判定するため、ステップ２５５の処理へ進み、落水線データのポイント番号が−１０か、また落水線データのライン番号が−１か否か判断し、−１０であれば、ｍは終点（ステップ２６５）であり、−１であれば、ステップ２１７に戻り落水線データの生成処理に入る。
前記ステップ２５６において、fall＿i［ｉ］［ｉｉ］が−１でないときは、ｍiiを通る落水線データが既に存在する。そして、ｍiiはfall＿i[ i ] [ ii ]番目の落水線データのfall＿j［ｉ］［ｉｉ］番目の点である（ステップ２５８）。
このときは、この落水線データ点にＷsに、当該データ点ｍから既に生成された落水線データのfall＿j［ｉ］［ｉｉ］＋１番目の点から終点までを接続する（ステップ２５８）。
次いでステップ２５９において、Wの始点からｓｓ−１番目の点について調べる(図14)。
ライン番号ｒの等高線データＭrのｒｒ番目のデータ点ｍrrと一致する（ステップ２６０）点については、等高線データのデータ点に、fall＿i［ｒ］［ｒｒ］＝Ｗsでのライン番号ｓ、fall＿j［ｒ］［ｒｒ］＝Ｗsでのポイント番号、という属性を与える。すなわち、ステップ２０３においてfall＿i［ｎ］［ｎｎ］，fall＿j［ｎ］［ｎｎ］に付与した属性−１を、落水線データＷsでのライン番号とポイント番号に書き換える。
なお、ステップ２４８において、ｗの候補が全く存在しないときは、ステップ２６６の処理をした上で、ステップ２１１に戻る。
また、ステップ２５６において、落水線データのライン番号が−１であるときは、落水線データは存在しないのであるから、ステップ２１７に進む。
さらに、ステップ２５５において、落水線データのポイント番号が−１０であるときは、既にｍから落水線データを延長させようとして不可能であったので、mを落水線データWの終点として、前述のステップ２５９、及びステップ２６０〜２６４の処理をし、ステップ２１３へ戻る。
当該等高線データの最後のデータ点からの落水線データの生成が終了したら、次のライン番号の等高線データの最初のデータ点から落水線データを生成し、順次この処理を実行し、ライン番号が最大の等高線データに到達したときコンピュータによる落水線データの生成を終了する。
段落００２１において前述したとおり、落水線の作成は、地形特徴を得るために行う最初に行う最も基本的な処理であり、本発明はこの処理に引き続き各種の処理を実行するものである。
【００２９】
【水平断面形の分類】
斜面の水平断面形の分類を行うためには、等高線が、標高の高い等高線と低い等高線のどちらに向かって突き出ているのかを知る必要がある。
このため先ず、等高線データMの左右どちらの側に、標高の低いあるいは高い隣に位置する等高線データが存在するのかを判別しなければならない。
さらに、斜面の水平断面形は、等高線の形状によって分類されることから、曲線の変曲点が、水平断面形を分ける点になる。従来、変曲点を捜すためにデータ点を通る曲線を近似し、この曲線に沿って変曲点を求めていたが、これでは解析に要する時間が膨大になるため、本発明者らは、等高線データを用いた、より簡単な解析手法を開発した。
したがって本発明は、等高線がそれよりも１ランク低いあるいは高い等高線の左右どちらの側に位置するかについての位置関係を特定する手法と、前記変曲点間にある等高線の線分が直線状か、尾根型か、谷型かを判別する手法と、から構成されている。
そこで以下、請求項３乃至請求項５に係る発明の１実施例について詳細に説明する。
まず、本発明では、等高線データＭの向きは、データ番号が大きくなる向きと定める（図２）ことから、例えば図２において、ライン番号１の等高線データを基準とするとき、ライン番号４の等高線データは左側に存在する。
また、本発明では、等高線データＭを基準とするとき、その左右の等高線データのいずれが高いか（あるいは、低いか）を表すための属性としてＪを用いる。Ｊ＝１であるときは、等高線データＭの左側の標高が高い（または、右側の標高が低い）。Ｊ＝２であるときは、等高線データＭの左側の標高が低い（または、右側の標高が高い）。
図８により、等高線データＭにおいて、連続する二つの線分αj-1、αjの外積が負であるとき、その中点mjは左側に突き出し、正であるときは、その中点mjは右側に突き出す。
このとき、等高線データＭの等高線の右隣（あるいは左隣）の等高線が等高線データＭに対して低いか（あるいは高いか）が判かれば、中点mjにおける水平断面形が決定される。
（１ランク低い等高線データとの位置関係…チェック１）
図１５、１６を参照して、ステップ３０１において、等高線データを読み込み、等高線データＭ（ライン番号i）のj番目のデータ点をmj、j−１番目のデータ点をmj-1、j＋１番目のデータ点をmj+1とおく。このとき、カウンタの値、count=0とする。
次のステップ３０２で、等高線データＭの参照点mjにおいて、Ｍの隣に位置し、かつ、Ｍより標高が１ランク低い等高線データＫを捜す。
先ず、等高線データＫが等高線データＭの左右どちらの側に位置するかを調べ、次いで、１ランク高い等高線データＨが等高線データＭの左右どちらの側に位置するかを調べる。
以下、具体的に説明する。
ステップ３０４において、参照点mjから等高線データＫへの最短距離の線を引き、この線とＫとの交点をｋとする。もし、点ｋが存在しない場合は、Ｋの位置を判断できないため、ステップ３１６へジャンプし、参照等高線データＭの参照点において、隣に位置し、かつ、より標高が高い等高線データＨを捜し（ステップ３１７）、参照点mjから等高線データＨへの最短距離の線を引き、この線とＨとの交点をｈとする（ステップ３１８）。
参照点mjからmj+1、mj-1、kまでのベクターをそれぞれα、γ、βとし（図５）、等高線データのx座標とy座標の値のみを用いて（Z=0とし）、外積γ×βとβ×αを計算する（ステップ３０６）。ステップ３０７において、γ×β>0、かつ、β×α>0であると判断されたとき、点kは等高線データＭの右側に位置し、図５のように、等高線データＭの右側が低いことになるから、Ｊのカウンタを＋１して（ステップ３０９）Ｊ[１]＝１とする（ステップ３１０）。
また、もし、ステップ３１１においてγ×β<0、かつ、β×α<0であると判断されたとき、点kは等高線データＭの左側に位置し、等高線データＭの左側が低いことになる（ステップ３１１）から、Ｊのカウンタを＋１して（ステップ３１３）Ｊ[１]＝２とする（ステップ３１４）。
（γ×β>0、かつ、β×α<0）、あるいは、（γ×β<0、かつ、β×α>0）、あるいは、γ×β=0あるいは、β×α=0であるとき、点ｋは判断には適さない点であるので、ステップ３１６へジャンプして、次のチェック２に移る。
（１ランク高い等高線データとの位置関係…チェック２）
Ｍの隣に位置し、かつ、Ｍより標高が高い等高線データＨとＨへの最短距離の線との交点ｈを使用することを除き、１ランク低い等高線データとの位置関係のチェックと同じ処理を行う。すなわち、ステップ３１６〜３２９において、等高線データＨがＭの左右どちらの側に位置するかを調べる。
参照点mjからhまでのベクターをβ'とし、等高線データx座標とy座標の値のみを用いて（Z=0とし）、外積γ×β'とβ'×αを計算する（図５）。
ステップ３２１においてγ×β'>0、かつ、β'×α>0であるとき、点hは等高線データＭの右側に位置し、等高線データＭの右側が高いことになる。このときは、Ｊ[１]＝２とする（ステップ３２４）。
また、もし、γ×β'<0、かつ、β'×α<0である（ステップ３２５）とき、点hは等高線データＭの左側に位置し、図５のように、等高線データＭの左側が高いことになる。このときは、Ｊ[１]＝１とする（ステップ３２８）。
（γ×β'>0、かつ、β'×α<0）、あるいは、（γ×β'<0、かつ、β'×α>0）、あるいは、γ×β'=0あるいは、β'×α=0であるとき、点hは判断には適さない点であるので、ステップ３３０へジャンプする。
図１５と１６では、等高線データＭとその隣に位置する等高線データとの相対的な位置関係を確認するために、参照点（ mj=mj+1,mj+2,・・ ）を変えながら、上記チェック１と上記チェック２の処理を３回繰り返す。このとき、チェック回数は前記カウンタの値として記録される。
その後、前記３回のチェックの結果得られた等高線位置データJ[1]、J[2]、J[3]の値が、全て一致しているとき、これを等高線データのデータ領域に位置情報についての属性として書き出す。一致しないときは、データ点が等高線データの終点に到達するまでに一定数確保できる場合は、前記チェック１、２を最初からやり直す。チェック１（またはチェック２）における判定を１回行えば、二つの等高線データの相対位置関係が決まる。チェック１またはチェック２の判定の回数が増えれば判定結果の正確さが増す。
なおこの実施例では、データ点が等高線データの終点に到達するまでに一定数確保できない場合は、一致するデータを１、２番目のカウンタの等高線位置データJ[1]、J[2]とし、J[3]のデータを取り直す。また、次のデータ点が等高線データの終点である場合は、前記３回のチェックの結果得られた等高線位置データJ[1]、J[2]、J[3]の値のうち一致するものを、等高線データファイルに、属性として位置情報を書き出すこととしている。
なお、前記位置情報の内容は、等高線の右側が低いか、左側が高いとき、１、等高線の右側が高いか、左側が低いとき、２としている。
この実施例では、各等高線データの二番目のデータ点からチェックが開始され、参照点を変えながら、３回同じ位置関係が認められたとき、その位置関係を正として受け入れるようにしているが、チェック開始データ点、実施回数は特にこれに限定されない。
【００３０】
【水平断面形の判定】
図１７のステップ３６１において、記憶装置に記憶された等高線データ及び各等高線データの位置情報Jの値、すなわち、１か２を読み込む。
次のステップ３６２で、直線斜面を作業者が目的に応じて定義するγ°を入力する。この実施例ではγ°を５°としている。
次のステップ３６４で、等高線データＭのデータ点mjにおいて、データ点mjからデータ点mj+1へ向かうベクターをαjとおくとき、等高線データＭの全てのデータ点において、αj-1とαjの成す角θjと、外積αj-1×αjを計算する（図７参照。ステップ３６４）。但し、Ｍの始点と終点では計算しない。
もし、点mj+1での外積の符号が、点mjでの外積の符号と異なる場合は、点mjとmj+1との中点を変曲点とし、等高線データＭに新たなデータ点として加える。
次いで、元の等高線データＭの全てのデータ点において、斜面の水平断面形を判定する。
等高線データＭの両側に、等高線データＨとＫが存在するとき、等高線データＨ、Ｍ、Ｋの標高をそれぞれ、EH、EM、EKとする（EH≧EM≧EK。ただし、EH=EM=EKである場合は除く。）。このとき、αj-1×αj<0であれば、ラインmj-1mjmj+1は等高線データＭの左側に突き出る（図８A）。また、αj-1×αj>0であれば、ラインmj-1mj mj+1は等高線データＭの右側に突き出る（図８B）。
もし、外積αj-1×αj=0である場合は、mj-1 mj mj+1は直線であり、ベクターαj-1とαjの角θjは0°に等しい（0°≦θ<180°）。
点mjにおける斜面の水平断面形は、下記の要領で分類される。
ケース１．αj-1×αj =0（θ=0°）：直線（等斉）斜面
ケース２．αj-1×αj<０（左側に突き出る）  かつ  等高線データH(K)が等高線データＭの左（右）側に位置する（Ｊ＝１）：集水（谷型）斜面（図８A）
ケース３．αj-1×αj <０（左側に突き出る）  かつ  等高線データH(K)が等高線データＭの右（左）側に位置する（Ｊ＝２）：発散（尾根型）斜面（図８A）
ケース４．αj-1×αj >０（右側に突き出る）  かつ  等高線データH(K)が等高線データＭの左（右）側に位置する（Ｊ＝１）：発散斜面（図８B）
ケース５．αj-1×αj>０（右側に突き出る）  かつ  等高線データH(K)が等高線データＭの右（左）側に位置する（Ｊ＝２）：集水斜面（図８B）
計算上、θj = 0°となることはまれであるから、直線斜面を定義するγに対して、幅を持たせる必要があるため、本実施例では、±５°で計算している。
【勾配と斜面方位の計算】
図６のように、勾配と斜面方位を得るための単位は、落水線の線分wjwj+1あるいはwj-1wjである。勾配εjは線分wjwj+1と水平面が成す角であり（図6A）、斜面方位ωjは、北と線分wjwj+1が成す角である（図6B）。
角εjとωjは、属性として、落水線の線分wjwj+1に付与される。
【斜面の垂直断面形の分類】
斜面の垂直断面形は連続する、演算によって得られる二つの落水線の線分wj-1wjとwjwj+1との勾配の変化によって、分類することが出来る（図６A）。角δj（0°<δj≦180°）は、落水線の線分wj-1wjとwjwj+1が水平面上で成す角である（図６B）。δj<90°である場合は、斜面の垂直断面形を計測するラインとしては不適当であるので、このラインは使用しない。点vj+1は点wjとwj+1との中点であり、線分vj-1wjvjは斜面の垂直断面形の一単位である。角τj、δj、εj、εj-1は、属性として、ラインvj-1wjvjに付与される。斜面の垂直断面形は、三つの基本的な型−τj=180°（等斉斜面）、τj>180°（凹型斜面）、τj<180°（凸型斜面）−に分類することが出来る。しかし、実際は、厳密にτj=180°となる斜面はほとんど存在しないことから、等斉斜面を決めるτjに対して、幅を持たせる必要がある。また、等高線の精度を考慮した場合、幅を持たせることは合理的である。
前提：標高が同じ二つの落水線データのデータ点の距離がｄ［ｍ］以内（デフォルトは0.5[m]）であるとき、二つの落水線データは合流するとする。
【落水線データ用いた水系分類の方法】
本発明の落水線作成手法は、隣に位置する等高線、したがって標高の異なる等高線を直線でつなげることから、図３（Ｂ１）に示すように、屈曲の激しい部分では、落水線は途切れる。
このような部分は、全体からみるとわずかな数なので、現在、途切れた部分については、手作業でつなぐのが最も実用的である。
そこで、作成された落水線の中で、途切れている部分があれば、その部分を手作業でつないで落水線データを補正し、当該補正した落水線データを解析対象とする。
【００３１】水系については、本発明で、同一の終点に収束する落水線データは、同じ水系であると定義している。
実際には、標高が同一の２つの落水線の終点の平面距離がd [ m ] 以内であるとき、この２つの落水線は同一の終点に収束する、というように処理している。この実施例では、デフォルトはd=0.0 [ m ] としている。例えば、元データが1:25,000の等高線であり、図上0.１[ mm ]しか離れていない終点を同一としたいときは、d=2.5 [ m ]となる。このdは、本発明では解析者が目的に応じて入力するようにしてある。
また、最低f本以上の落水線が同一の終点を持つとき、これらの落水線が水系を形成する、としている。このfは、本発明を使って解析する人が目的に応じて入力するようにしてある。
ステップ５０１において、上記補正済みの落水線データを読み込み、全ての落水線データに−１という水系番号の属性を与える。
次のステップ５０２でkとsの初期値設定を行い、次のステップ５０３で、Wsの終点をwとし、sより落水線番号が大きい落水線データの中から、終点の標高がwと同じであり、wとの水平距離がd（使用者が決定）以内である落水線データを選ぶ。これらの落水線の総数が、f以上であるとき（ステップ５０４）、選ばれた落水線それぞれに同じ水系番号kを与える（ステップ５０５）。また、総数がfより小さい場合は、選ばれた落水線それぞれに−１０という水系番号の属性を与える（ステップ５０６）。
sが最大の落水線番号（ステップ５０７）であれば終了、でなければ落水線番号に+1をする（ステップ５０８）。Wsの属性 が −10（ステップ５０９）であればステップ５０７へジャンプする。それ以外の場合、ステップ５１０においてWsの属性> 0の場合は同様にステップ５０７へジャンプする。満たさないものは、水系番号ｋに+1を与えステップ５０３へジャンプする。
以上の処理にて、落水線は水系毎に分類される。
水系番号毎（例えば、１，２，３，…）に、落水線の色を変えることにより、落水線をベースにして、分類された水系を表示、印刷することができ、視覚的に理解し易い水系図を作成することができる。
【図面の簡単な説明】
【図１】斜面の形状（Dikau(1990)を変更）の分類図である。L，直線；V，凸；C，凹。太線はこれらの形状を三つのグループに分ける。（１）ともに直線；（２）一方が直線で、他方が曲線；（３）ともに曲線
【図２】等高線データ構造と形式を示す。
【図３】点qjの決定と点qjを見つけるときのエラーの例を示す。（Ａ）t1は選択点の中で最もmに近く、等高線データTは等高線データMの隣に位置し、仮線分mt1はどの等高線とも交差しない。t4とt5は選択点ではない。Ｂ１）仮線分mt1は等高線データＭと交差する。このエラーは等高線データＭが屈曲している部分で、しばしば発生する。
【図４】点wの候補を捜す手順を示す。
【図５】等高線データMとMの隣のH（あるいはK）の関係を表す。
【図６】勾配と斜面方位の計算と斜面の垂直断面形の分類を示す。
【図７】斜面の水平断面形を分類する点を示す。
【図８】連続するベクターの外積によって得られる斜面の水平断面形を示す。
【図９】斜面の水平断面形の一単位を示す。
【図１０】水平断面形の出力例。太線は尾根型、細線は谷型を示す。
【図１１】落水線生成プログラム（その１）フローチャート
【図１２】落水線生成プログラム（その１）フローチャートの続き
【図１３】落水線生成プログラム（その２）フローチャート
【図１４】落水線生成プログラム（その２）フローチャートの続き
【図１５】水平断面形プログラムフローチャート
【図１６】水平断面形プログラムフローチャートの続き
【図１７】斜面の水平断面形の判定プログラムフローチャート
【図１８】一単位ラインの属性解析プログラムフローチャート
【図１９】垂直断面形のプログラムフローチャート
【図２０】水系分類プログラムフローチャート
【図１】
0003873121.tif 000002
【図２】
0003873121.tif 000003
【図３】
0003873121.tif 000004
【図４】
0003873121.tif 000005
【図５】
0003873121.tif 000006
【図６】
0003873121.tif 000007
【図７】
0003873121.tif 000008
【図８】
0003873121.tif 000009
【図９】
0003873121.tif 000010
【図１０】
0003873121.tif 000011
【図１１】
0003873121.tif 000012
【図１２】
0003873121.tif 000013
【図１３】
0003873121.tif 000014
【図１４】
0003873121.tif 000015
【図１５】
0003873121.tif 000016
【図１６】
0003873121.tif 000017
【図１７】
0003873121.tif 000018
【図１８】
0003873121.tif 000019
【図１９】
0003873121.tif 000020
【図２０】
0003873121.tif 000021