簡體   English   中英

利用R在不規則網格上插值和繪制2d /空間時間序列數據

[英]Interpolation and plotting of 2d/spatial timeseries data on an irregular grid with R

(這是我的第一篇文章,所以(i)我希望不要破壞太多規則,(ii)必須在外部存儲示例圖

我想要顯示不規則網格時間序列數據,其中顯示的參數也是緯度或水深等地理測量的函數。 包含日期(日期),地理參數水深(dep)和感興趣鹽度(sal)參數的示例數據文件以及使用ggplot2生成的初步散點圖存儲在我們的

owncloud

密碼:時間序列

ggplot圖的R代碼是:

# Load required packages
library(ggplot2)
library(data.table)
library(colorRamps)
library(scales)

# Import spatial timeseries data
df      <- data.table(read.csv("timeseries_example.csv"))
df$date <- as.POSIXct(strptime(df$date, format="%m/%d/%Y", tz="GMT"))

# Scatterplot with color representing the z parameter

Fig <-
ggplot(data=df, aes(date, dep, col=Sal))+
  geom_point()+
  scale_y_reverse()+
  scale_colour_gradientn(colours = matlab.like2(7), oob=squish)

tiff("./example_timeseries_R_ggplot.tiff", width = 200, height = 100, 
  units =  'mm', res = 300, compression = 'lzw')
Fig
dev.off()

由於數據在空間和時間上間隔不規則,使用ggplot的geom_tile()函數繪圖需要插值。

免費提供的軟件海洋數據視圖( ODV )實現了這種插值,我想重現與R一起存儲在我們自己的雲(上面的鏈接)中的ODV圖。

由於這個問題類似於以前解決的問題,我試圖在一個更精細的日期網格上插入參數sal,並使用包akima dep。 但是,這不適用於作為POSIXct對象的x參數。

有人有解決方案嗎?

我對MBA套餐好運:

# Load required packages
library(ggplot2)
library(lubridate)
library(reshape2)
library(colorRamps)
library(scales)
library(MBA)

# Import spatial timeseries data
df      <- read.csv("timeseries_example.csv")
df$date <- as.POSIXct(strptime(df$date, format="%m/%d/%Y", tz="GMT"))
df$date <- decimal_date(df$date)

mba <- mba.surf(df[,c('date', 'dep', 'Sal')], 100, 100)
dimnames(mba$xyz.est$z) <- list(mba$xyz.est$x, mba$xyz.est$y)
df3 <- melt(mba$xyz.est$z, varnames = c('date', 'depth'), value.name = 'salinity')

Fig <-
  ggplot(data=df3, aes(date, depth))+
  geom_raster(aes(fill = salinity), interpolate = F, hjust = 0.5, vjust = 0.5) +
  geom_contour(aes(z = salinity)) + 
  geom_point(data = df, aes(date, dep), colour = 'white') +
  scale_y_reverse() +
  scale_fill_gradientn(colours = matlab.like2(7))
Fig

輪廓圖

使用插值設置可以清除一些異常情況。 我剛剛使用了默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM