層別ランダムサンプリングツール


9

QGISのラスター内のさまざまなクラスに一定量のランダムポイントを生成する方法はありますか?GRASSやGDALなどの拡張機能があります...


私には答えはありませんが、何らかの方法があります。おそらくrまたはpythonを使用しますが、今のところ、それを行うための最良の方法を見つけていません。答えはとても面白いです。ベスト
セドリックラルドゥー2016年

1
あなたはGRASS GIS 7のv.randomコマンドで簡単に行うことができます参照grass.osgeo.org/grass72/manuals/...
markusN

また、直接使用してランダムポイントをラスターとして生成しr.random、「異なるクラス上」の部分を把握することもできます。したがって、次のように表示するなど、ラスターからベクターを前後に変換を避けることができgrass.osgeo.org/grass72/manuals/r.random.html
ニコスAlexandris

回答:


6

ラスターをベクターレイヤーに変換すると可能です。

この分類ラスターから始める簡単な例:

ここに画像の説明を入力してください

を使用Raster > Conversion > Polygonizeしてベクターレイヤーに変換します。

ここに画像の説明を入力してください

クラス全体(個別の「パッチ」ごとではなく)にポイントを作成する場合は、Vector > Geometry Tools > Singleparts to Multipartsツールを使用します。

次に、に進みVector > Research Tools > Random Points、前のベクターレイヤーを選択し、各クラスで同じ数のポイントを作成する場合Input Boundary LayerUse this number of pointsオプションをオンにします。

ここに画像の説明を入力してください

クラスに応じてポイント数を変更する場合は、ポリゴンレイヤーの属性テーブルに列を追加し、各クラスのポイント数を指定してから、ランダムポイントのUse value from input fieldオプション(の代わりにUse this number of points)をオンにしますツール。

ここに画像の説明を入力してください ここに画像の説明を入力してください


1
ベクトルレイヤーを作成する方法はありませんか?ラスターが非常に大きい場合(ベクターに変換する場合)は、多くの計算能力が必要と思われます...
Stophface

それが私が考えられる唯一の方法です...たぶん誰かが別の解決策を考え出すでしょうが、このステップを回避できるとは思いません。
ArMoraer 2016年

うーん、思った通り。QGISは計算を終了しません。ポリゴン化はできますが、singleparts to multipartsビットが機能しません...クラッシュします
Stophface

または、ディゾルブツールを試すこともできます。QGISネイティブのDissolveは非常に遅いため、Dissolve polygons代わりにOGR ツールを試すことができます(処理ツールボックスにあります)。
ArMoraer 2016年

私もそれを試しました。同じ結果...言ったように:ラスターをポリゴン化した後に受け取るポリゴンは非常に大きいです。ポリゴン化が機能したことに
驚いた

3

私が書いたように:大きなラスターでは、ラスターをベクターに変換してから、シングルパートからマルチパートにディゾルブすることはできません。を使用してラスターに直接サンプルを取得する簡単な方法がありRます。

library(raster)
library(rgdal)

# read a raster, GeoTiff or something
forSampling <- raster(someRaster.tif)

# make stratified random sampling
# set sp = TRUE to get a spatialPointsDataframe
# that one can easily be converted into a shapefile
sampleSp <- sampleStratified(x = forSampling, size = 50, xy = TRUE, sp = TRUE)

# write it out to a shapefile for further processing
writeOGR(obj = sampleSp, dsn = "aa", layer = "sampleSp", driver="ESRI Shapefile") # this is in geographical projection
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.