投稿

1月, 2026の投稿を表示しています

土石流区域設定支援システムと同等な横断測線、流下方向(縦断測線)をQGISで再現

イメージ
はじめに 土石流区域設定支援システムのデータベース( dem.mdb )から、縦断情報と横断情報を読み取り、QGIS上に測線を作成するPythonスクリプトを作成しました。 当初はMDBを直接開く部分でうまくいかなかったため、次の手順で処理していました。 これまでの方法 MDBをAccessで開く → Excelの各シートへコピー → CSV出力 → QGISでCSVを選択 → Pythonを実行 今回、Microsoft AccessのODBC接続方法を見直したことで、QGISからMDBを直接読み込み、1回の操作で2つのレイヤを一括作成できるようになりました。 新しい方法 QGISで dem.mdb を選択 → 「流下方向」と「横断測線」を一括作成 MDB内の独自形式である「カンマ区切り座標」と「mm単位」を自動変換し、以下の2レイヤを生成します。 流下方向(縦断): 区間勾配を計算し、勾配に応じて色分けしたライン 横断測線: 各横断グループの始点と終点を結んだライン 1. 更新版:MDBを直接読み込んで一括作成 この更新版では、MDB内の次の2テーブルを直接読み込みます。 縦断情報 : GISKey 、 ID 、 ILData 横断情報 : GISKey 、 ID 、 ILData ILData には、標高・X座標・Y座標がカンマ区切りかつmm単位で記録されています。スクリプトはこれをm単位へ変換してQGISのラインを作成します。 一括処理の内容 MDBファイルを1回選択するだけで、縦断・横断をまとめて処理 GISKey ごとにデータを分離し、異なる箇所同士の誤接続を防止 縦断はID順に接続し、距離・標高差・勾配角度を計算 横断はIDの10000単位のグループごとに、最小IDと最大IDを接続 作成した2レイヤをMDB名のレイヤグループに格納 処理件数とスキップ件数を完了画面に表示 作成される属性 レイヤ 主な属性 流下方向 GISKey、始点ID、終点ID、勾配角、絶対勾配角、水平距離、標高差、始点・終点座標 ...