在 R 中插入每小时海洋温度数据

问题描述

我正在尝试对 2 km^2 内 27 个位置的温度数据执行每小时插值。我的数据格式为:DateTimeUTC、Temp_C、Lat、Lgn、Station Name。我曾尝试点击此链接 https://rspatial.org/raster/analysis/4-interpolation.html,但在需要提供自己的网格时出现错误。我使用的空间有点离岸。然后我尝试按照此链接 https://mgimond.github.io/Spatial/interpolation-in-r.html 上的说明进行操作,但在需要我自己的边界框时也遇到了错误。我试图创建一个循环,可以使用以下代码执行此操作:

temps = 我的数据


library(tidyverse)
library(lubridate)
library(data.table)
library(phylin)
map_dat <- raster::getData("GADM",country="USA",level=1)
map_dat <- subset(map_dat,NAME_1=="California")

temp_sort <- 
  temps %>%
  distinct(DateTimeUTC,Lat,Lng) %>%
  group_by(DateTimeUTC) %>%
  summarise(n_positions = n())

for (hour in temp_sort$DateTimeUTC) {
  temps %>%
    filter(DateTimeUTC == hour) %>%
    select(Temp_C,Lng,Lat)
  int <- idw(values = temps[,2],coords = temps[,3:4],grid = map_dat,p = 2)
  grid.image(int,map_dat,main = 'IDW interp',xlab = 'Longitude',ylab = 'Latitude')
}

这不起作用,因为我无法运行我的点的网格,并且在按照链接使用 IDW 插值时,我在希望插入的空间中遇到了类似的问题。

我很想每小时进行一次插值,然后将它们拼接成 mov 或 gif。这是我的 5,000 小时数据集中的 2 小时。

Dput 输出如下,注意还有额外的列,但上面提到的 4 列是唯一相关的:

structure(list(DateTimeUTC = structure(c(1600722000,1600725600,1600722000,1600725600),tzone = "UTC",class = c("POSIXct","POSIXt")),SN = c("20069752","20069752","20406080","20566747","20406082","1058360","10675228","20627914","VR2Tx-482649","VR2Tx-484552","VR2Tx-484557","VR2Tx-484555","VR2Tx-482645","VR2Tx-484550","VR2Tx-484553","VR2Tx-482643","VR2Tx-482648","VR2Tx-480652","VR2Tx-482647","VR2Tx-484554","VR2Tx-484558","VR2Tx-484551","VR2Tx-484559","VR2Tx-484556","VR2Tx-484556"),Station = c("JWS_Carpinteria_north","JWS_Carpinteria_north","JWS_Padaro_Mid_A","JWS_Padaro_Mid_B","JWS_Padaro_Mid_C","JWS_Padaro_Mid_D","JWS_SantaClaus_OS1","JWS_SantaClaus_OS2","JWS_Padaro_Inshore_A","JWS_Padaro_Inshore_B","JWS_Padaro_Inshore_C","JWS_Padaro_Inshore_D","JWS_Padaro_Inshore_E","JWS_Padaro_Inshore_F","JWS_Padaro_Inshore_G","JWS_Padaro_Inshore_H","JWS_Padaro_Offshore_A","JWS_Padaro_Offshore_B","JWS_Padaro_Offshore_D","JWS_Padaro_Offshore_E","JWS_Padaro_Offshore_F","JWS_Padaro_Offshore_G","JWS_Padaro_Offshore_H","JWS_Padaro_Offshore_I","JWS_Padaro_Offshore_I"),Temp_C = c(16.237,17.189,15.951,15.664,16.046,15.855,16.141,16.713,15.187,15.282,15.76,15.95111111,16.33222222,16.9,18.5,15.7,15.9,15.8,16.4,16.7,15.5,15.4,16,15.6,16.3,15,15.2,14.8,15.1,16.1,16.2,15.5),Source = c("HOBO","HOBO","Receiver","Receiver"
),DateTimePT = structure(c(1600722000,tzone = "America/Los_Angeles",Lat = c(34.39591,34.39591,34.39726,34.39481,34.39294,34.39185,34.41116,34.405,34.41342,34.41036,34.40791,34.40329,34.40059,34.39779,34.39432,34.39329,34.40923,34.40778,34.40252,34.39999,34.3972,34.39452,34.39169,34.39086,34.39086),Lng = c(-119.53958,-119.53958,-119.54523,-119.54215,-119.53622,-119.5334,-119.5615,-119.5505,-119.56553,-119.55805,-119.55453,-119.54897,-119.5459,-119.54272,-119.53448,-119.53027,-119.56564,-119.56136,-119.5548,-119.55154,-119.54817,-119.54495,-119.5414,-119.53675,-119.53675),TempLoggerDepth_m = c(4.39,4.39,6.71,6.1,1.83,5.49,6.4,2.74,5.18,5.79,4.57,4.27,7.01,3.66,3.66)),row.names = c(NA,-46L),spec = structure(list(cols = list(DateTimeUTC = structure(list(
    format = "%m/%d/%Y %H:%M"),class = c("collector_datetime","collector")),SN = structure(list(),class = c("collector_character",Station = structure(list(),Temp_C = structure(list(),class = c("collector_double",Source = structure(list(),"collector"))),default = structure(list(),class = c("collector_guess",skip = 1L),class = "col_spec"),class = c("spec_tbl_df","tbl_df","tbl","data.frame"))

非常感谢您的帮助,我真的很感激任何帮助! :)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...