私は2001年1月から2100年までの世界的な海面温度予測を毎月の解像度で含むNetCDFファイルを扱っています。特定の日付のSSTマップ、つまり2058年のSST予測を視覚化できるようにしたいと思います。しかし、私はこの時点で最終的なマップを得ることができます。最後のフレーム、つまり2100年12月地図。netCDFマップの時系列で特定の日付を表示
私は毎月の解像度が必要ないので、毎月の平均を12ヶ月単位で平均しました。 1年の決断は私が欲しいものです。私が言ったように、私は特定の日付を呼び出し、その日付の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))
...
ncviewは、出版品質ではありませんが、それはあなたが効率的にデータを探索することができます。 'netcdf'を読み、書き、プロットすることができます。 – jsta