ポリゴンが経度/緯度座標にあると想定しましたが、そうではありません。
library(raster)
library(rgdal)
p <- shapefile('Global_Threats/Integrated_Future/rf_int_2030_poly.shp')
p
#class : SpatialPolygonsDataFrame
#features : 63628
#extent : -18663508, 14601492, -3365385, 3410115 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=cea +lon_0=-160 +lat_ts=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
#variables : 3
#names : ID, THREAT, THREAT_TXT
#min values : 1, 0, Critical
#max values : 63628, 2000, Very High
投影を変更することができます
pgeo <- spTransform(p, CRS('+proj=longlat +datum=WGS84'))
そして、次のようなことをします:
ext <- floor(extent(pgeo))
rr <- raster(ext, res=0.5)
rr <- rasterize(pgeo, rr, field=1)
または、元の CRS を保持して、次のようにします。
ext <- extent(p)
r <- raster(ext, res=50000)
r <- rasterize(p, r, field=1)
plot(r)
非常に小さなポリゴンを大きなラスター セルにラスタライズしていることに注意してください。多角形がセルの中心を覆っている場合、その多角形は「内側」と見なされます (つまり、多角形が複数のセルを覆っている場合を想定しています)。したがって、これらのデータには、はるかに高い解像度を使用する必要があります (そして、おそらく結果を集計します)。または、ポリゴンの重心をラスタライズすることもできます。
ただし、これをすべて逆方向に行っているため、上記のどれも実際には関係ありません。ポリゴンは明らかにラスターから派生したものであり (それらがどれほどブロック状であるかを見てください)、ラスターは指定したデータセットで使用できます!
したがって、ラスタライズする代わりに、次のようにします。
x <- raster('Global_Threats/Integrated_Future/rf_int_2030')
x
#class : RasterLayer
#dimensions : 25456, 80150, 2040298400 (nrow, ncol, ncell)
#resolution : 500, 500 (x, y)
#extent : -20037508, 20037492, -6363885, 6364115 (xmin, xmax, ymin, ymax)
#coord. ref. : NA
#data source : C:\temp\Global_Threats\Integrated_Future\rf_int_2030
#names : rf_int_2030
#values : 0, 2000 (min, max)
#attributes :
# ID COUNT THREAT_TXT
# 0 80971 Low
# 100 343535 Medium
# 1000 322231 High
# 1500 168518 Very High
# 2000 83598 Critical
ここでパラワンの一部をプロットします:
e <- extent(c(-8990636, -8929268, 1182946, 1256938))
plot(x, ext=e)
plot(p, add=TRUE)
より低い解像度が必要な場合は、 を参照してくださいraster::aggregate
。別の座標参照系については、 を参照してくださいraster::projectRaster
。