foreach への最初の進出で、次のエラーが発生しました。
Error in function (handle) :
no function to return from, jumping to top level
ワーカーごとに 1 つ取得します。
doMC/multicore バックエンドを使用しています。
最初は、これは foreach 呼び出し内の関数が副作用としてコンソールに送信しようとしていたテキスト進行状況バーが原因だと思っていましたが、それをオフにしてもエラーが発生します。エラーにもかかわらず、評価は続行され、すべてのハムスターが実行されているように見えます。内部の関数は、library(raster) の
reclass() calc() です。これが何を意味するのか、誰にも推測できますか?出力が有効かどうかを確認するのを待っている間に尋ねようと思いました。
アップデート
コードの核心は次のとおりです。
foreach( cover= names( classes), .packages= "raster") %dopar% {
class <- classes[[ cover]]
calc( mlct$pri,
function( pri) {
ifelse( is.na( pri), NA,
ifelse( pri ==class, 1, 0))
},
filename= paste(
mlctName,
paste( cover, ".tif", sep=""),
sep="_"),
overwrite= TRUE, ...)
}
慣れていない場合はlibrary( raster)
、地理空間ラスター データ セットをメモリに取り込まずにやり取りするための巧妙なメカニズムが提供されます。関数は、データをブロックごとに読み書きします。この場合、ワーカーはすべて同じソース データから読み取りますが、個別の出力ファイルに書き込みます。このファイル I/O が、上記で報告された (一見無害な) エラーと関係があるのだろうかと思います。
これで、期待どおりの新しいファイルがすべて吐き出されましたが、コンソールに次のように表示されます。
GDAL Error 1: TIFFFetchDirectory:Sanity check on directory count failed, this is probably not a valid IFD offset
コアが静かであるという事実にもかかわらず、インタープリタープロンプトは再表示されません。ファイル I/O がうまくいかないというもう 1 つの手がかりだと思います。何かご意見は?