NDVI taramasında okuduğumda, @ data @ değerleri yuvasında neden manuel olarak ayarlayana kadar gerçek değerler bulunmuyor. Örneğin:
NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84")
NDVI@data@values
## returns: logical(0)
Bu, aynı yöntemle yüklediğim diğer rasterlerle olmadı, bu yüzden kafam karıştı. Keşke daha spesifik olabilseydim ama daha önce farklı bir şey yaptığımı hatırlamıyorum. Aşağıdakileri kullanarak değerleri manuel olarak almak yeterince kolaydır:
NDVI1@data@values <- getValues(NDVI19east)
Ama yine de her dosya için bunu yapmak bir acı. Yani, iki bölümlü soru:
Bu neden ilk etapta oldu? Raster dosyasının nasıl saklandığı ile ilgili bir şey olabileceğini anlıyorum (yani bellekte olsun ya da olmasın) ama gerçekten veriye erişmek için kullanmam gereken yöntemleri nasıl değiştirdiğini anlayamıyorum ...
RasterLayers olarak dosyaları okumak ve bu dosyalar için değerlere erişmek için bu işlemi otomatikleştirmenin (belki de lapply'ye benzer bir yöntem kullanarak) bir yolu var mı? Şu anki projem NDVI, Yağış ve diğer çevresel değişkenler için bir seferde 6-10 dosya okumayı ve bunları birleştirerek bazı ağırlıklı bindirmeler yapmayı içeriyor. Verileri içe aktarma işlemini otomatikleştirmek yararlı olacaktır.
logical(0)
aslında karşılığını herhangi bir dosyadan oluşturulan Raster * nesne. Her iki durumda da, mdsumner'ın dediği gibi, bu değerleri doğrudan okumayın ve kesinlikle ayarlamayın! ( hiçbir şeyNDVI1@data@values <- getValues(NDVI19east)
etkilemez , ancak bu değerler yok sayılır). Muhtemelen bu nesneleri etkili bir şekilde nasıl kullanacağınızı bilmediğiniz komut dosyasında daha aşağı. GetValues kullanabilirsiniz, ancak bu nadiren gereklidir. Neyi başarmaya çalıştığınıza dair basit ve bağımsız bir örnek verin.