定義されたグリッド セルでラスターを高解像度から低解像度 (異なる範囲) にリサンプリングしたいと考えています。スナップの入力として既存のラスター ファイルを使用する方法はありますか?
ラスターパッケージでは、aggregate
適切resample
なようですが、その方法がわかりません。
定義されたグリッド セルでラスターを高解像度から低解像度 (異なる範囲) にリサンプリングしたいと考えています。スナップの入力として既存のラスター ファイルを使用する方法はありますか?
ラスターパッケージでは、aggregate
適切resample
なようですが、その方法がわかりません。
projectRaster
ある投影法と解像度のラスターがあり、別の特定の解像度と投影法で出力する必要がある場合に、これ を使用できます。
引数はfrom
高解像度ラスターで、to
引数は低解像度ラスターです。集計に正しい方法を選択していることを確認してください (つまりbilinear
、連続データの場合とngb
(最近傍) カテゴリ データの場合)。
require( raster )
# Projection info
proj1 <- CRS("+proj=laea +lon_0=20 +lat_0=5 +ellps=sphere +unit=km +to_meter=1e3")
proj2 <- CRS("+proj=longlat +datum=WGS84 +ellps=WGS84")
# High res raster
r1km <- raster( nrows = 1515 , ncols = 2300 , xmn = -4000 , xmx = -1700 , ymn = -15 , ymx = 1500 , crs = proj1 )
# Low res raster
r5km <- raster( nrows = 303 , ncols = 460 , xmn = -20 , xmx = -5 , ymn = 4 , ymx = 15 , crs = proj2 )
# Set some values in high res raster
pts <- rasterToPoints(r1km)
values( r1km ) <- 0.01*pts[,1] + sin(0.02*pi*pts[,2])
# Reproject using the attributes of the low res raster for output
out <- projectRaster( from = r1km , to = r5km , method = "bilinear" )
# Plot - extent of second raster doesn't fully cover first so some data is missing
par( mfrow = c(1,2) )
plot( r1km )
plot( out )
入力データと出力データが解像度を除いて同じである場合は、集計を使用できます...
# If same extent and resolution require use aggregate
r1 <- raster(system.file("external/rlogo.grd", package="raster"))
r5 <- aggregate( r1 , fact = 5 , method = "bilinear" )
par( mfrow = c(1,2) )
plot( r1 )
plot( r5 )
このソリューションは機能します:
system(paste("gdalwarp"
,paste(dir_path,"fileHR.tif",sep="")
,paste(dir_path,"fileLR.tif",sep=""),sep=" "))
はdir_path
ファイルが保存されているディレクトリ、
fileHR.tif
は高解像度ファイル、
fileLR.tif
は低解像度ファイルです。
で外部コマンドを起動し、またはコマンドsystem
を呼び出すことができます。もちろん、これには gdal ユーティリティのインストールが必要ですgdal_translate
gdal_warp