QGISでラスターセルにラベルを付ける方法は?


10

QGISプリントマネージャーツールで小さな解像度のラスターファイルを表示しようとしています。各セルの値(各セルの中央付近)に小さなラベルを表示したいと思います。

どうすればできますか?このタスクを完了するのに役立つプラグインはありますか?

私の考えは、gdal2xyzを使用し、CSVプラグインを使用してそのようなファイルをロードし、それをベクターファイルとして保存することです。残念ながら、私は多くのラスターファイルを持っているため、多くの作業が必要です。

もう1つのアイデアは、gdal2xyz.pyを使用してから、ogr2ogrを使用してベクターファイルとして保存することです。

このプロセスをバッチ処理する方法はありますか?もっと簡単にできるオープンソースプログラムはありますか?


このような意味ですか?この機能の機能リクエストはすでにあります
トーマス

回答:


7

セルにラベルを付けるためのQGISのプラグインや機能はないようです。

変換されたベクターファイルを使用してセルの中心にラベルを付けることは、おそらく最善の策です。オープンソースの統計パッケージRには、優れた空間ツールが多数あり、ラスターファイルをバッチ処理または迅速に処理して、シェープファイル(ベクトル/ポイント)を作成できます。

library(maptools)
library(raster)

# Load the raster from a file
r <- raster("/workspace/TEMP/raster.asc")

# Convert to spatial points
p <- as(r, "SpatialPointsDataFrame")

# Save as a shapefile
writeSpatialShape(p, "/workspace/TEMP/raster_points")

シェープファイルには、各ポイントのラスター値を含む列があります。次に、サイズが0で、適切にラベル付けされたポイントをQGISにロードできます。それらはセルの中央に表示されます。

たとえば、ディレクトリ内のすべてのTIFファイルを確認するには:

for (file in dir("/workspace/TEMP/", pattern="*.tif")) { # list all .tif files
  r <- raster(file)
  p <- as(r, "SpatialPointsDataFrame")
  writeSpatialShape(p, substr(file, start = 1, stop = nchar(file) -4)) # substr() removes extension.
}

4

Rが利用できない場合(またはQGIS環境内で実行する場合)、SAGAツールが処理ツールボックスにあり、セル値を抽出するためのポイントへのラスター値があります。

出力Shapesレイヤーにラベルを付けて、元のラスターでオーバーレイできます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.