Я построил область с сеткой в заливе Аляски с разрешением 0,02 десятичных градусов (~ 1 нм);
library(sp)
library(rgdal)
# Set interval for grid cells.
my.interval=0.02 #If 1 is 1 degree, which is 60nm, than 0.1 is every 6nm, and 0.05 is every
3nm, so 0.0167 is every 1nm
# Select range of coordinates for grid boundaries (UTM to maintain constant grid cell area regardless of geographic location).
lonmin = -140.5083
lonmax = -131.2889
latmin = 53.83333
latmax = 59.91667
LON = seq(lonmin, lonmax, by=my.interval)
LAT = seq(latmin, latmax, by=my.interval)
# Compile series of points for grid:
mygrd = expand.grid(
Longitude = seq(lonmin, lonmax, by=my.interval),
Latitude = seq(latmin, latmax, by=my.interval)) %>%
#mutate(z=1:n()) %>%
data.frame
Я экспортировал эту сетку в виде файла .csv и перенес ее в ArcGIS, где я использовал несколько растров батиметрии, чтобы извлечь глубину дна в средней точке каждой ячейки. Затем я экспортировал это из ГИС обратно в R как фрейм данных файла .csv. Так что теперь у него есть еще один столбец под названием «Глубина». Сейчас я просто добавлю столбец со случайными числами «глубины»:
mygrd$Depth<-NA
mygrd$Depth<-runif(nrow(mygrd), min=100, max=1000)
Я хотел бы рассчитать наклон в средней точке каждой ячейки (между точками).
Я пытался сделать это с помощью функции slope () в пакете SDMTools, которая требует, чтобы у вас был SpatialGridDataFrame в пакете sp.
Я не могу заставить это работать;Я также не уверен, что это самый простой способ сделать это? У меня есть фрейм данных с 3 столбцами: долгота, широта и глубина. Я хотел бы рассчитать наклон. Если кто-нибудь знает лучший способ сделать это, дайте мне знать! Любая помощь высоко ценится!
Вот код, который я пытался использовать:
library(SDMTools)
proj <- CRS('+proj=longlat +datum=WGS84')
coords <- mygrd[,1:2]
t2 <- SpatialPointsDataFrame(coords=coords, data=mgrd proj4string=proj)
t2<-SpatialPixelsDataFrame(points=t2[c("Longitude","Latitude")], data=t1[,c(1,2)])
t3 <- SpatialGridDataFrame(grid=NULL, data=t2, proj4string=CRS("+proj=longlat +datum=WGS84"))
class(t3)
slope.test<-slope(t3, latlon=TRUE)