Я новичок в работе с геопространственными данными, и я пытаюсь загрузить набор данных .csv с широтой и долготой и значениями в виде многослойного растрового файла. Вот как выглядят данные
> df
# A tibble: 1,323 x 6
ISO LAT LON exposed_assets exposed_pop windspeed
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 MEX 15.7 -97.1 0 0 34.9
2 MEX 15.7 -97 2152. 8.62 34.0
3 MEX 15.8 -97.3 0 0 35.2
4 MEX 15.8 -97.2 352191. 167. 34.4
etc
Кажется, метод rasterFromXYZ
из пакета raster
должен делать то, что мне нужно, однако я получаю следующее предупреждение
> r = rasterFromXYZ(df[-1])
Warning message:
In matrix(values, nrow = ncell(x), ncol = nlayers(x)) :
data length [22263] is not a sub-multiple or multiple of the number of rows [7425]
И данные загружаются некорректно. Как видите, максимальное значение windspeed
в r
составляет 2151,701, однако это значение фактически было в столбце exposed_pop
файла .csv.
> r
class : RasterBrick
dimensions : 99, 75, 7425, 3 (nrow, ncol, ncell, nlayers)
resolution : 0.1, 0.1 (x, y)
extent : 15.65, 23.15, -106.85, -96.95 (xmin, xmax, ymin, ymax)
crs : NA
source : memory
names : exposed_assets, exposed_pop, windspeed
min values : 0.0000, 0.0000, 34.0037
max values : 66472940.491, 47620.445, 2151.701
Я проверил, что были в кадре данных нет дубликатов или значений NA, так что может быть причиной этого предупреждения и как я могу правильно загрузить эти данные?
Для воспроизводимости, вот подмножество данных, которые кажутся проблемными: c ( дает такое же предупреждение и загружает неправильные значения для windspeed
)
> dput(df[1110:1135,-1])
structure(list(LAT = c(21.9, 21.9, 21.9, 21.9, 21.9, 21.9, 21.9,
21.9, 21.9, 21.9, 21.9, 21.9, 21.9, 21.9, 21.9, 21.9, 21.9, 21.9,
21.9, 21.9, 21.9, 21.9, 22, 22, 22, 22), LON = c(-106.7, -106.6,
-106, -105.9, -105.8, -105.7, -105.6, -105.5, -105.4, -105.3,
-105.2, -105.1, -105, -104.9, -104.8, -104.7, -104.6, -104.5,
-104.4, -104.3, -104.2, -104.1, -106, -105.9, -105.8, -105.7),
exposed_assets = c(0, 0, 0, 0, 0, 222972.894088, 2463194.45998,
5177821.32741, 6713738.64112, 17980448.5808, 13707489.7546,
14975480.4695, 7773565.02961, 3224217.43413, 7403629.83371,
7066001.45019, 4229731.31557, 3810642.16981, 3705484.76291,
2861531.43593, 4994856.14058, 6330653.64562, 0, 0, 0, 509998.137351
), exposed_pop = c(0, 0, 0, 0, 0, 27.9003314972, 325.891448975,
777.652648926, 1305.87854004, 5254.45507812, 2812.10693359,
3389.27685547, 1154.47375488, 161.85168457, 824.549377441,
700.931152344, 248.07270813, 198.266082764, 178.928314209,
108.784866333, 324.559875488, 484.665252686, 0, 0, 0, 54.7332305908
), windspeed = c(58.305871031, 61.2305201929, 75.1606977525,
75.6692450358, 75.2585164937, 73.9301376648, 71.8375101982,
69.2120544391, 66.2811279675, 63.2245023136, 60.1662838419,
57.183936863, 54.3213107924, 51.6000196116, 49.0277997888,
46.604147059, 44.3239358955, 42.1796684768, 40.1628344475,
38.264709033, 36.4768026702, 34.7910975464, 70.3395670652,
70.6504099539, 70.2394850598, 69.1322960305)), row.names = c(NA,
-26L), class = c("tbl_df", "tbl", "data.frame"))
Спасибо!