r- Ошибка извлечения Velox: «Ошибка в boostFactory $ makePointGrid ... std :: bad_alloc» - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь извлечь растровые данные из сетки точек (сейчас n = 8), но я получаю неоднозначное сообщение об ошибке, и я понятия не имею, почему.Это кажется довольно простой операцией с Velox.Это может быть что-то не так с моим кодом, но я очень внимательно следил за виньеткой.

Используемый мной растр nlcd - 2010 Североамериканская система мониторинга изменений земель (NALCMS) с 30 мразрешение .

#----Loading NLCD raster----
nlcd=raster(file_name)

#----Generating overall outline of selected states----
states.full = c("Maine", "New Hampshire", "Vermont", "Massachusetts",
                "Rhode Island", "Connecticut", "New York", "Pennsylvania",
                "New Jersey")
us = raster::getData('GADM', country = 'US', level = 1)

#----Generating regular grid within that outline----
st.contour <- us[us$NAME_1 %in% states.full,]
st.contour = spTransform(st.contour, CRS("+proj=laea +x_0=0 +y_0=0 +lon_0=-74 +lat_0=40 +units=m"))
grid <- makegrid(st.contour, cellsize = 250000) # cellsize in map units! "(+units=)
grid <- SpatialPoints(grid, proj4string = CRS(proj4string(st.contour)))
date() ; grid <- grid[st.contour, ] ; date()

#----Cropping the nlcd raster----
grid.r = spTransform(grid, crs(nlcd))
grid.r@bbox = matrix(c(1550000.0, 2550000.0, -434099.8, 722809.3), 2,2, byrow=T)
nlcd.crop = crop(nlcd, grid.r)
nlcd.vx <- velox(nlcd.crop)

#----Creating polygon buffers----
spol <- gBuffer(grid.r, width=500, byid=TRUE)
spdf <- SpatialPolygonsDataFrame(spol, data.frame(id=1:length(spol)), FALSE)

#----Velox Extract----
date()
ex.mat <- nlcd.vx$extract(spdf)
ex.mat
date()
...