どういうわけか解決しようとしている次の問題があります。
gstat/gdal パッケージを使用して、異なる IDW 補間の 10 個の配列を作成しました。
これで、ハードドライブにエクスポートしようとしている次の変数ができました。
DI.IDW.SAND.P.0.1, DI.IDW.SAND.P.0.2, [...]
全部で、補間中に使用されるさまざまな累乗 (ipd 値) の 10 の異なる配列です。
ハード ドライブへの手動エクスポートは正常に機能します。
writeGDAL(DI.IDW.Sand.P.0.1, fname = vec.rast[1], drivername = "GTiff", mvFlag = -1)
しかし今、自動化は正しい解決策を見つけられないところです:
data.frame
for ループの関連情報を含むを作成しました。
runner.sand = data.frame("IDP" = c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1), "str"=c("DI.IDW.Sand.P.0.1", "DI.IDW.Sand.P.0.2", "DI.IDW.Sand.P.0.3", "DI.IDW.Sand.P.0.4", "DI.IDW.Sand.P.0.5", "DI.IDW.Sand.P.0.6", "DI.IDW.Sand.P.0.7", "DI.IDW.Sand.P.0.8", "DI.IDW.Sand.P.0.9", "DI.IDW.Sand.P.1"))
それから私は試しました:
for (i in c(1:length(runner.sand[,1]))) {
writeGDAL(paste("DI.IDW.Sand.P", runner.sand[i,1], sep = "."), runner.sand[i,2], drivername = "GTiff")
}
しかし、私はいつもこのエラーを受け取ります:
Error in nchar(fname) : 'nchar()' requires a character vector
また、自動化しようとすると、次のproj4string
エラーが発生します。
for (i in c(1:length(runner.sand[,2]))) {
proj4string(runner.sand[i,2]) = CRS(paste("+init=epsg:",epsg,sep=""))
#dat.ov = over(IDP.opt, runner.sand[i,2]) # for later idp optimazation with residual values
#IDP.opt = cbind(IDP.opt@data, dat.ov)
}
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function 'proj4string' for signature '"character"'
繰り返しますが、「通常の」変数名を手動で入力すると、完全に機能します。
proj4string(DI.IDW.Sand.P.0.1) = CRS(paste("+init=epsg:",epsg,sep=""))
ここに示されているソリューションも で試しましたassign
が、何もうまくいきません。ご協力いただきありがとうございます!