Saya seorang pemula mutlak data geografis, jadi tolong, maafkan saya jika pertanyaannya tidak tepat.
Saya mengunduh data dari NCDC NARR dan berhasil memuat ke R menggunakan raster
paket. Saya ingin mendapatkan daftar dengan garis lintang, bujur dan nilai. Saya mengerti bahwa rasterToPoints()
harus melakukan apa yang saya inginkan, namun, nilai garis lintang dan bujur saya terlihat aneh:
r <- raster(myfile)
data_matrix <- rasterToPoints(r)
head(data_matrix)
x y value
[1,] -5405401 4347242 70
[2,] -5372938 4347242 88
[3,] -5340475 4347242 76
[4,] -5308012 4347242 85
[5,] -5275549 4347242 87
[6,] -5243086 4347242 88
Saya kira saya harus melakukan sesuatu dengan proyeksi yang saat ini Lambert Conformal Conic (LCC). Berikut ini info lebih lanjut tentang raster.
> r
class : RasterLayer
dimensions : 277, 349, 96673 (nrow, ncol, ncell)
resolution : 32463, 32463 (x, y)
extent : -5648874, 5680713, -4628777, 4363474 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_1=50 +lat_2=50 +lat_0=50 +lon_0=-107 +x_0=0 +y_0=0 +a=6371200 +b=6371200 +units=m +no_defs
data source : mypath-to-file
names : value
Apa yang harus saya lakukan untuk mendapatkan nilai garis lintang dan bujur AS yang sebenarnya?
Dapatkan koordinat pusat sel dan buat objek Spasial:
Ubah poin ke target yang Anda inginkan:
Nilai-nilai sudah disalin sebagai kolom pada SpatialPointsDataFrame ini.
Sekarang untuk menyelesaikan, dapatkan data.frame:
Ada implementasi umum dari ini dalam paket SGAT, lihat fungsinya di
lonlatFromCell
sini:https://github.com/SWotherspoon/SGAT/blob/master/R/Raster.R
sumber
> llpts$layer1 <- values(r[[1]]) Error in
[[<-. Data.frame(
* tmp *, name, value = c(NA, NA, NA, NA, NA, : replacement has 96673 rows, data has 95025
Tampaknya Anda memiliki Koordinat yang Diproyeksikan di sana (bukan Latitude / Longitude alias Koordinat GCS). Mungkin tidak jelas bagi Anda bahwa itulah masalahnya. Lihat posting ini. Konversi sistem koordinat geografis di R
sumber
lonlat_r <- projectRaster(r, crs="+init=epsg:4326")
. Namun, tingkat raster baru-181.3232, 181.4938, -1.590457, 87.76154 (xmin, xmax, ymin, ymax)
jauh dari apa yang saya harapkan dari AS (yang seharusnya berada di antara 30 hingga 70 dan -60 hingga -160). Saya harus salah paham sesuatu.