NDVIのラスターを読み取ると、手動で設定するまで@ data @ valuesスロットに実際の値が含まれないのは、理由の一番下に到達しようとしています。例えば:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
これは、同じ方法で読み込んだ他のラスターでは発生しなかったため、混乱しています。もっと具体的になりたいのですが、以前と違うことをしたことは覚えていません。以下を使用して、値を手動で取得するのは簡単です。
NDVI1@data@values <- getValues(NDVI19east)
しかし、すべてのファイルに対してこれを行う必要があるのは、まだ苦痛です。したがって、2つの部分から成る質問:
そもそもなぜこれが起こったのですか?ラスターファイルの格納方法(つまり、メモリにあるかどうか)に関係があることは理解していますが、データにアクセスするために使用するメソッドがどのように変更されるかを本当に理解することはできません...
ファイルをRasterLayersとして読み取り、それらのファイルの値にアクセスするために、このプロセスを自動化する方法はありますか(おそらくlapplyに似た方法を使用して)?私の現在のプロジェクトでは、NDVI、Rainfall、およびその他の環境変数の6〜10個のファイルを一度に読み取り、それらを組み合わせていくつかの加重オーバーレイを実行します。データをインポートするプロセスを自動化すると役立ちます。
logical(0)
実際にするための値である任意のファイルから作成されたラスタ*オブジェクト。いずれにせよ、@ mdsumnerが言うように、これらの値を直接読み取らないでください。(あなたNDVI1@data@values <- getValues(NDVI19east)
は何にも影響しませんが、これらの値は無視されます)。これらのオブジェクトを効果的に使用する方法を理解していないのは、おそらくスクリプトのさらに下です。getValuesを使用できますが、それでもほとんど必要ありません。あなたが達成しようとしていることの簡単な自己完結型の例を提供します。