0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

複数のラスターの解像度・範囲を同じにしたい

Posted at

Rで、サイズ(範囲)と解像度がそれぞれ異なるラスターを同じ範囲・同じ解像度に揃えたい。ついでに座標系も変えます。

##環境
R ver4.1.0

##準備
範囲も解像度も異なるラスターを用意します。
raster packageを使用します。

ras0.r
library(raster)

#1つ目: R1
R1=raster(nrows=1000, ncols=5000, extent(c(140.0,141.0,35.0,35.5)), crs=CRS("+init=epsg:4612"), vals=rnorm(5000000))

#2つ目: R2
rv2=rep(c(rep(1,200),rep(0,200),rep(2,200),rep(0,200),rep(2,200),rep(0,200),rep(1,200),rep(2,200),rep(1,200),rep(0,200)),1200)
R2=raster(nrows=1200, ncols=2000, extent(c(140.1,140.9,34.98,35.45)), crs=CRS("+init=epsg:4612"), vals=rv2)

#描画してみる
plot(R1)
plot(R2, add=T)

こんな感じに揃っていない2つのラスター(ちょっと適当に描画)
Rplot1.png

##0. 座標系を変更する
座標系を変えなくていいなら、ここはやらなくていいです。

ras1.r
#測地座標系JGD2000(epsg:4612)からUTM座標系(3100)に変えます
#R1は連続値なのでbilinear、R2は整数値なのでngbを使いました
R1_3100=projectRaster(R1, crs=CRS("+init=epsg:3100"), method='bilinear')
R2_3100=projectRaster(R2, crs=CRS("+init=epsg:3100"), method='ngb')

#描画してみる
plot(R1_3100)
plot(R2_3100, add=T)

Rplot01.png

##1. 切り抜く範囲と解像度の設定
最終的に欲しい範囲と解像度を持ったラスターを作成する。

ras2.r
#切り抜きたい範囲の座標をe1で指定
e1=extent(c(420000, 480000, 3880000, 3920000))

#範囲がe1で、80行x120列(セルサイズは500)の解像度になるラスターを作る(値は入っていない)
#出来上がりはこのラスターのサイズ・解像度になります
R0=raster(nrows=80, ncols=120, e1, crs=CRS("+init=epsg:3100"), vals=NULL)

#この黒い線で囲んだ四角です
plot(R1_3100)
plot(R2_3100, add=T)
plot(e1, add=T)

Rplot02.png

##2. ラスターの範囲と解像度を揃える
cropではなくてresample使います。

ras3.r
#各ラスターをR0に合わせる感じです。
R1_crop=resample(R1_3100, R0, method ='bilinear')
R2_crop=resample(R2_3100, R0, method ='ngb')

##3. 整えたラスターたちをまとめる

ras4.r
R_stack=stack(R1_crop, R2_crop)
names(R_stack)<-c("R1", "R2") #レイヤーの名前を変える

#出来上がり
plot(R_stack)

> R_stack
class      : RasterStack 
dimensions : 80, 120, 9600, 2  (nrow, ncol, ncell, nlayers)
resolution : 500, 500  (x, y)
extent     : 420000, 480000, 3880000, 3920000  (xmin, xmax, ymin, ymax)
crs        : +proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
names      :         R1,         R2 
min values : -0.1953975,  0.0000000 
max values :  0.2295911,  2.0000000 

Rplot03.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?