Я абсолютный новичок в географических данных, поэтому, пожалуйста, прости меня, если вопрос не уместен.
Я загрузил данные из NCDC NARR и сумел загрузить их в R с помощью raster
пакета. Я хотел бы получить список с широтой, долготой и значением. Я понимаю, что rasterToPoints()
должен делать именно то, что я хочу, однако мои значения широты и долготы выглядят странно:
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
Я полагаю, что я должен сделать что-то с проекцией, которая в настоящее время является конформной конической формой Ламберта (LCC). Вот дополнительная информация о растре.
> 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
Что мне делать, чтобы получить реальные значения широты и долготы США?
Получить координаты центров ячеек и создать пространственный объект:
Преобразуйте точки к желаемой цели:
Значения уже скопированы как столбцы в этом SpatialPointsDataFrame.
Теперь, чтобы закончить, получите data.frame:
Есть общая реализация этого в пакете SGAT, смотрите
lonlatFromCell
здесь функцию :https://github.com/SWotherspoon/SGAT/blob/master/R/Raster.R
источник
> 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
Похоже, что у вас там есть проекционные координаты (а не координаты широты / долготы или координаты GCS) Возможно, вам не было ясно, в чем проблема. Смотрите этот пост. Преобразование географической системы координат в R
источник
lonlat_r <- projectRaster(r, crs="+init=epsg:4326")
. Тем не менее, размер нового растра-181.3232, 181.4938, -1.590457, 87.76154 (xmin, xmax, ymin, ymax)
далек от того, что я ожидал бы от США (который должен быть где-то между 30 до 70 и от -60 до -160). Я должен был что-то неправильно понять.