土石流区域設定支援システムと同等な横断測線、流下方向(縦断測線)をQGISで再現
はじめに 土石流区域設定支援システム(dem.mdb)のCSVデータより、横断測線、縦断測線をQGIS上で可視化・活用するためのPythonスクリプトを作成しました。 システム独自の「カンマ区切り座標」や「mm単位」を自動変換し、以下の2つのレイヤを自動生成します。 流下方向(縦断): 勾配に応じて色分けし、始点・終点の座標を持たせたライン 横断測線: 各測線の始点と終点を結び、連番を振ったライン 1. 流下方向(縦断)の作成ツール 縦断データのCSVを読み込み、以下の処理を行います。 mm単位の座標をm単位に変換してラインを作成 勾配(角度)を計算し、自動で色分け(0~2度、2~3度...30度以上) 属性テーブルに「勾配角度」と「始点・終点座標(X,Y)」を出力 スクリプトコード import csv import math from qgis.core import ( QgsProject, QgsVectorLayer, QgsFeature, QgsGeometry, QgsField, QgsPointXY, QgsGraduatedSymbolRenderer, QgsRendererRange, QgsSymbol, QgsCoordinateReferenceSystem ) from qgis.utils import iface from PyQt5.QtWidgets import QFileDialog, QMessageBox from PyQt5.QtCore import QVariant from PyQt5.QtGui import QColor def main_process(): # 1. ファイル選択 file_path, _ = QFileDialog.getOpenFileName( None, "CSVファイルを選択してください", "", "CSV Files (*.csv);;All Files (*)" ) if not file_path: return ...