2016-05-23 13 views
0

Rworldmapは気候データのマッピングに必要なものと似ていますが、気候データを基にベースマップを整理する際に問題があります。私はマッピングは、ここから8月、2015年JAMSTECから海洋温度データである午前:rworldmapの座標、NetCDFのデータとマップの照合方法は?

http://www.jamstec.go.jp/ARGO/argo_web/ancient/MapQ/Mapdataset_e.html

データセット名はTS_201508_GLB.ncです。私が使っているRスクリプトは以下の通りです。国の概要は問題ありませんが、データは海洋のみであり、データは海に表示されず、何とか相殺されています。データをマップに合わせる方法を教えてください。

私は多くの記事を読んだことがありますが、2つを整列させる方法はわかりません。私が持っているデータは経度と緯度です。南緯はマイナス、西経はマイナスで、どうやって混乱するのか分かりません。地図はどのように表示されますか、緯度/経度のための特別なコンベンションがありますか?

ご協力いただきありがとうございます。 コード:

library(RNetCDF) 
library(sp) 
library(rworldmap) 
library(rgeos) 
library(RColorBrewer) 
library (classInt) 
library(grid) 
library(spam) 
library(maps) 
library(maptools) 
library(fields) 
library(methods) 
library(rgdal) 
library(rworldxtra) 

fname <- "G:/Climate_Change/Ocean_Warming/MOAA_GPV_Jamstec_Temperature/TS_201508_GLB.nc" 
moaa <- open.nc(fname) 
# moaa 
print.nc(moaa) 
file.inq.nc(moaa) 
#TOI is the temperature array extracted from the NCDF file 
TOI = var.get.nc(moaa,"TOI",start=c(1,1,1),count=c(360,132,25)) 
TOI[1,1,1] 
Long = var.get.nc(moaa,"LONGITUDE") 
Lat = var.get.nc(moaa, "LATITUDE") 
Pres = var.get.nc(moaa,"PRES") 

# create grid 
offset=c(-179.5,-60.50) 
cellsize = c(abs(Long[1]-Long[2]),abs(Lat[1]-Lat[2])) 
cells.dim = c(dim(Long), dim(Lat)) 

# create gt 
gt <- GridTopology(cellcentre.offset=offset,cellsize=cellsize,cells.dim=cells.dim) 

# create map window 
mapDevice() 
# Create a color pallette 
colourPalette=c('blue','lightblue','white',brewer.pal(9,'YlOrRd')) 
# Values at 2000 decibar for August 2015 
ncMatrix <- TOI[,,25] 
# Gridvalues 
gridVals <-data.frame(att=as.vector(ncMatrix)) 

# create a spatialGridDataFrame 
sGDF <-SpatialGridDataFrame(gt,data=gridVals) 
# Vector to classify data 
catMethod=seq(from=0,to=4,by=.33) 
# plotting the map and getting params for legend 
mapParams <- mapGriddedData(sGDF, nameColumnToPlot='att',catMethod=catMethod,colourPalette=colourPalette,addLegend=FALSE) 
+0

ようこそ。コードを整理してください(すべてのパッケージは本当に必要ですか?すべてのコメントは '#'で始まりますか?)。さらに、問題を手近に示すスクリーンショットも役立ちます。最後に、これはhttp://gis.stackexchange.comに適しているかもしれません。 – lukeA

+0

私はあなたが言っていることを感謝しますが、私が試してコメントを入れたときにエラーメッセージが表示されます。私はそれが素晴らしい見ていたが、それは投稿しないだろう。 '#'は受け付けません。 –

+0

Dave2eのコメントを修正してくれてありがとう!私はそれをする方法を学ぶ必要があります。 –

答えて

0

私はついにそれを考え出しました。 rworldmapは、地図の左上(ノースウエストコーナー)から整理されたデータ、つまりLong = -180、Lat = 90を必要とします。 NetCDFデータは、Long = 0、Lat = -90(マップの中央と南端)から始まります。

# 
# Flip the Latitude values so south is last 
ncMatrix2 <- ncMatrix[,dim(Lat):1] 

そして、東経及び西経の値を切り替える::だから私たちは南北方向に値を逆にする必要があり

# 
#Longitude values need to be from -180 to 0 then 0 to 180 
# So we divide into East and West, then recombine with rbind 
East_Long_values <-ncMatrix2[1:180,] 
West_Long_Values <-ncMatrix2[181:360,] 
ncMatrix3 <- rbind(West_Long_Values,East_Long_values) 

そして、他のすべて作品を。

関連する問題