1. Pertanyaan
Saya telah menemukan peringatan menggunakan fungsi projectRaster () dalam paket raster di R. Contoh lengkap yang dapat direproduksi ditempelkan di bawah ini.
Warning message:
In rgdal::rawTransform(projto_int, projfrom, nrow(xy), xy[, 1], :
33940 projected point(s) not finite
Pertanyaan saya adalah: Apakah peringatan ini masalah yang harus saya perbaiki jika saya bekerja pada data terestrial? Dengan kata lain data "hilang". Ini akan menjadi masalah besar bagi saya jika memang demikian. Jika itu masalahnya, apakah Anda tahu jika ada cara saya bisa memperbaikinya?
Saya telah mencari solusi untuk masalah ini secara online dan menemukan beberapa menyebutkannya di sini , di sini & di sini, tetapi saya rasa tidak ada yang menawarkan jawaban yang cocok untuk masalah ini.
2. Muat perpustakaan raster
library(raster)
3. Pertama-tama buat peta (panjang lat) dunia, dengan konstanta di setiap sel kisi
Saya meletakkan konstanta di setiap sel grid untuk melihat apakah saya dapat mendiagnosis masalah di mana peringatan cenderung mempengaruhi data, jika sama sekali.
rastertest.longlat<-raster(ncol=360, nrow=180)
values(rastertest.longlat)<-c(rep(1,n=180*360))
4. Jika Anda memproyeksi ulang peta (panjang lat) ke kotak area yang sama, itu menghasilkan pesan peringatan
rastertest.eck4<-projectRaster(rastertest.longlat, res=c(100000,100000), crs="+proj=eck4",method="ngb", over=T)
Warning message:
In rgdal::rawTransform(projto_int, projfrom, nrow(xy), xy[, 1], :
33940 projected point(s) not finite
Saya pikir pesan ini pada dasarnya mengatakan bahwa proyeksi ulang gagal untuk beberapa sel kisi.
5. Tetapi jika Anda merencanakan dua peta, sepertinya peringatan ini tidak akan menimbulkan masalah bagi data
Itu adalah Anda tidak melihat celah putih dalam data yang diplot. Dugaan saya adalah bahwa sel-sel yang hilang adalah sel-sel non terestrial, di bagian atas dan ujung dunia. Ada ide?
par(mfrow=c(2,1))
plot(rastertest.longlat, col="blue")
data(wrld_simpl)
wrld <- spTransform(wrld_simpl, CRS('+proj=longlat'))
plot(wrld, add=TRUE)
plot(rastertest.eck4, col="blue")
wrld <- spTransform(wrld_simpl, CRS('+proj=eck4'))
plot(wrld, add=TRUE)
Ini bukan jawaban lengkap untuk pertanyaan awal saya, dalam hal semua detail kasar, tetapi memberikan pembaca yang tertarik ke suatu tempat untuk pergi.
Secara umum data hilang dan terdistorsi selama proyeksi ulang raster dari longlat ke proyeksi area yang sama. Ini bisa menjadi masalah untuk analisis global. Jika Anda bisa mendapatkan data dalam format vektor, lebih baik memproyeksi ulang menggunakan format itu.
Berikut ini adalah satu referensi tentang masalah umum. Dan di sini lain mencoba untuk mengukur kerugian. Semoga itu bisa membantu.
sumber