ニャン 様
こんにちは
自分なりにトライしてみましたが、ちょっとしたコツが必要みたいです。
試した環境はWindows10 64bit、QGIS3.10.12 です。トライした手順を記載いたします。
1 単純な線をスキャンしてQGISに取り込みました。
投稿なさったデータをみると属性データが0~255の間のようでしたので、グレースケールでスキャンしています。
2 このデータを単純化するため、0と1のデータにします。使ったのはメニューの「ラスタ - ラスター計算機」です。
線の拾い漏らしが無いように、200以下を「1」にするように計算しています。
なおラスター計算式で等号や不等号を使っている式は、「真の場合」に「1」、「偽の場合」に「0」を出力します。
3 データ型を「int16」に変換します。
データ型がfloatだとr.thinでエラーが発生するようなので、ここでデータ型を変換します。
変換は、メニューの「ラスタ - 変換 - 形式変換(gdal_translate)」の「出力のデータ型」を「int16」にします。
4 「0」値を「null」に置き換えます。
プロセッシングツールの「GRASS - ラスタ(r*)- r.null」を使います。「NULLにセットする数値」に「0」を指定します。
5 線の幅を1セルにします。
プロセッシングツールの「GRASS - ラスタ(r*)- r.thin」を使います。
6 「5」で出力したラスタをベクタに変換します。
プロセッシングツールの「GRASS - ラスタ(r*)- r.to.vect」を使います。「地物のタイプ」に「line」を指定します。
できあがりは、こんな感じでした。
今回のトライで、参考にした情報です。
Converting raster to vector by generating center lines?
Error in r.thin QGIS GRASS: Input raster must be of type CELL
2020年11月29日日曜日 18:11:05 UTC+9 ニャン: