Рассчитать наклон по координатной области широты / долготы с соответствующей глубиной в r - PullRequest
1 голос
/ 02 октября 2019

Я построил область с сеткой в ​​заливе Аляски с разрешением 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...