data.frame
リモートセンシング画像を xy 座標の 2 列とピクセル値の 3 列目に変換したいと考えています。これは のデフォルトのデータ入力です
ppmlasso
。
元の画像は、以前の座標のない行列として R にインポートされます。最小および最大の座標と解像度はテキスト ファイルで指定されるので、それらを使用して のim
クラスを作成しますspatstat
。seq
これは、たとえば画像の解像度が 10 m の 10 進座標を使用した簡単な例です。
mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
m <- mat[4:1,]
i <- im(m, xcol = seq(5,45, by=10), yrow = seq(5,35,by=10))
plot(i, axes = T)
print(mat)
これまでのところ、RS データの 2 つの異なる表現 -matrix
とim
. ここで、3 番目の表現が必要です。data.frame
座標ペア用の 2 つの列と、それぞれの RS 値用の 3 番目の列があります。直感的に私はこれをしました:
r <- raster(i)
v <- as.vector(as.matrix(r))
df <- cbind(coordinates(r),v)
print(df)
に行く理由は、通話raster
を使用することです。ただし、結果は間違っています。列ごとに値を呼び出しながら、行全体に沿って一番上の行から順に呼び出されるためcoordinates
、座標のペアとマトリックスの値は一致しません。coordinates
as.vector
提案?