Rでのラスターグリッドのスナップ


10

Rで2つのラスターグリッドを配置しようとしています。配置したら、それらを一緒に追加できるようにしたいと考えています。

私はを作ることstackがうまくいくかどうかを確認しようとしました:

grid_snap <- stack(habi_sdw, Pop_sdw)

そして、私は次のエラーを受け取ります:

compareRaster(x)のエラー:範囲が異なります

ラスターグリッドには次のプロパティがあります。

show(habi_sdw)
# class       : RasterLayer 
# dimensions  : 9187, 9717, 89270079  (nrow, ncol, ncell)
# resolution  : 0.00892857, 0.00892857  (x, y)
# extent      : -28.83706, 57.92186, -36.02464, 46.00214  (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs 
# data source : C:\Users\di39\AppData\Local\Temp\R_raster_di39\raster_tmp_2015-08-12_172902_12860_17067.grd 
# names       : layer 
# values      : 0, 333707.6  (min, max)

show(Pop_sdw)
# class       : RasterLayer 
# dimensions  : 10143, 8858, 89846694  (nrow, ncol, ncell)
# resolution  : 0.008333333, 0.008333333  (x, y)
# extent      : -17.53524, 56.28143, -46.97893, 37.54607  (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
# data source : C:\Users\di39\AppData\Local\Temp\R_raster_di39\raster_tmp_2015-08-12_170421_12860_12760.grd 
# names       : pop2010ppp 
# values      : 0, 128925.9  (min, max)

alignExtent()ラスターパッケージでの使用は、正しいアプローチではないようです。

解像度が少し異なるため、リサンプリングする必要がありますか?

(0.00892857 x 0.00892857)vs(0.008333333 vs 0.008333333)

回答:


15

この質問は、データの抽出と解像度の変更をラスターごとにクリップするのと似ていますが、角度が異なります。しかし、答えは同じだと思います。まず、どのラスターを確定したいかを選択します。簡単にするために、ここで前の回答を繰り返します。

必要なライブラリをロードします。

library(raster)
library(rgdal)

ラスタを読み取る:

r1 = raster("./dir/r1.tif")
r2 = raster("./dir/r2.tif")

同じグリッドにリサンプル:

r.new = resample(r1, r2, "bilinear")

必要に応じて(マスキングの場合)、一致するようにエクステントを設定します。

ex = extent(r1)
r2 = crop(r2, ex)

いずれかのラスターの外側にあるデータを削除しました(必要な場合):

r.new = mask(r.new, r2)

これでラスターが一致しました。


0

はい。ラスターが同じサイズで同じ範囲になるようにするには、ラスターをリサンプリングする必要があります。Rはそれ自体では対処しません。どちらのラスターにももう一方が完全に含まれていない場合は、希望の解像度で最小範囲のラスターを作成し、それと一致するように他のラスターをリサンプリングしてトリミングすることを検討する必要があります。


2
たとえば、サンプルコードを提供するなどして、答えを詳しく説明してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.