2001 年 1 月から 2100 年 12 月までの全球海面水温予測を月ごとの解像度で含む netCDF ファイルを使用しています。特定の日付の SST マップを表示できるようにしたいと考えています。つまり、2058 年の SST 予測を視覚化したいと考えています。ただし、この時点で取得できるのは最終的なマップだけです。これは最後のフレームであると想定しています。 2100 年 12 月の地図。
毎月の解像度は必要ないので、12 か月の各セクションの平均を年間平均にしました。私が望むのは一年の決意です。前述したように、特定の日付を呼び出して、その日付の SST 予測を視覚化できるようにしたいと考えています。アニメーションの作成も便利です。
最終的な目標は、これらの SST 予測を使用して、別のマップ レイヤーにあるマグロの生息地予測を推進することです。基本的に、各セル (0.5° x 0.5°) には、SST に基づいたマグロの適性評価があり、その適性は SST の変化に応じて変化します。
私は地中海の一部にしか興味がないので、グリッドを使用してターゲット プロット エリアをそのエリアに設定しました。
私はこれにかなり慣れていないので、コードに根本的に欠けているものがあると確信しています。私はそれにアプローチする方法がわかりません。誰かが私にいくつかの指針を与えることができれば、それは大歓迎です。異なるパッケージを使用して、まったく異なるアプローチであっても。
使用したパッケージ: RNetCDF
grid <- GridTopology(c(-6.5,30), c(0.5,0.5), c(60,32))
NOAAsst <- open.nc("C:/Users/hayde/Desktop/Final Modelling Project/tos_O1.200101-210012.nc")
print.nc(NOAAsst)
dat<-read.nc(NOAAsst)
sst<-dat$tos
lat<-dat$lat
long<-dat$lon
close.nc(NOAAsst)
latx <- rep(lat,length(long))
longx <- rep(long, length(lat))
longx <- as.vector(t(matrix(longx,nrow=length(long))))
sst <- data.frame(var = as.vector(t(apply(sst,c(1,2),"mean"))))
map <- SpatialPointsDataFrame(cbind(longx,latx), sst, proj4string = CRS("+proj=merc +datum=WGS84"))
############ Plotting the image ###############
sst <- data.frame(temperature = rep(NA,length(coordinates(grid)[,1])))
grid <- SpatialGridDataFrame(grid, sst, proj4string = CRS("+proj=merc +datum=WGS84"))
GridPoints<- coordinates(grid)
MapPoints <- coordinates(map)
for(i in 1:dim(GridPoints)[1]) {
distance <- spDistsN1(MapPoints, GridPoints[i,], longlat = TRUE)
grid$temperature[i] <- map$var[which.min(distance)]
}
spplot(grid, scales=list(draw=T))