2

Joe Wheatley ( http://joewheatley.net/ncep-global-forecast-system/ ) からの優れた投稿に従って、私は気温のグローバル マップを作成することができました。しかし、海岸線をプロットするだけでなく、 maptools パッケージを使用して国境をプロットしようとしました。問題は、東半球の国境のみがプロットされている場合に発生します。まだスタックオーバーフローとグーグルで探している、私が理解できない何かが欠けているはずです。お役に立てれば幸いです。

これが私が使用しているコードです(ほとんどはジョーの投稿からのものです)

loc=file.path("ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.2013052100/gfs.t00z.sfluxgrbf03.grib2")
download.file(loc,"temp.grb",mode="wb")

system("wgrib2 -s temp.grb | grep :TMP: | wgrib2 -i temp.grb -netcdf TMP.nc",intern=T)
system("wgrib2 -s temp.grb | grep :LAND: | wgrib2 -i temp.grb -netcdf temp.nc",intern=T)

library(ncdf)
landFrac <-open.ncdf("LAND.nc")
lon <- get.var.ncdf(landFrac,"longitude")
lat <- get.var.ncdf(landFrac,"latitude")

temp=open.ncdf("TMP.nc")
t2m.mean <- get.var.ncdf(temp,"TMP_2maboveground")


library("fields")
library("sp", lib.loc="/usr/lib/R/site-library")
library("maptools", lib.loc="/usr/lib/R/site-library")

day="DIA"

png(filename="gfs.png",width=1215,height=607,bg="white")

rgb.palette <- colorRampPalette(c("snow1","snow2","snow3","seagreen","orange","firebrick"), space = "rgb")#colors
image.plot(lon,lat,t2m.mean,col=rgb.palette(200),main=as.expression(paste("GFS 24hr Average 2M Temperature",day,"00 UTC",sep="")),axes=T,legend.lab="o C")
data(wrld_simpl)
plot(wrld_simpl, add = TRUE)

dev.off()

これが生成された画像です

ここに画像の説明を入力

これはグローバル マップです。image.plot で xlim と ylim を使用して地域 (つまり、ヨーロッパ) を抽出する必要があります。

編集: temp.nc ファイルの URL を追加

http://ubuntuone.com/29DKAeRjUCiCzLblgfSLc9

助けていただければ幸いです、ありがとう

4

2 に答える 2

9

データ セットwrld_simplは経度 [-180, 180] に配置されていますが、グリッド データは明らかに [0,360] です。maptools が読み込まれているので、これを試して変更したコピーをプロットに追加します。

plot(elide(wrld_simpl, shift = c(360, 0)), add = TRUE)

パッケージ ラスターの ?rotate を含む、このようなデータを切り取り、移動/結合し、再表示するためのツールは他にもあります。それは本当にあなたが必要とするものに依存します.

別のグラフィックスの代替手段は、マップパッケージで「world2」を使用することです

library(maps)
map("world2", add = TRUE)

それらのいずれかが、上で開始したプロットを終了するために機能します。

これに関連する別の議論があります。

于 2013-05-21T12:36:57.153 に答える
3

あなたはこれを行うことができます:

library(raster)
r <- raster("temp.nc")
r <- rotate(r)
plot(r)
于 2013-05-28T06:59:58.963 に答える