2012-09-05 2 views
5

私は私が土壌の深さのマップを取得するために、経度だけでなく、土地のポイントと緯度を接続するために持っていることを思わ私はちょうど土壌の深さマップnetcdfファイルからマップを視覚化するには?

[1] "file C:\\Users\\SoilDepth-gswp.nc has 3 dimensions:" 
    [1] "x Size: 360" 
    [1] "y Size: 150" 
    [1] "land Size: 15238" 
    [1] "------------------------" 
    [1] "file C:\\SoilDepth-gswp.nc has 3 variables:" 
    [1] "float nav_lon[x,y] Longname:Longitude Missval:1e+30" 
    [1] "float nav_lat[x,y] Longname:Latitude Missval:1e+30" 
    [1] "float SoilDepth[land] Longname:Soil depth Missval:1.00000002004088e+20" 

を視覚化したいと考えたNetCDFファイルを持っています私は本当に混乱しています。誰もこの種のデータで私を助けることができますか?

+0

あなたのグリッドの大きさは(360 * 150 = 54e3)で、あなたの 'land'変数のサイズは、あなたのグリッド寸法の倍数ではありません。これは、15238である一方で。あなたはこれについて説明していますか? –

+0

このデータはどこから取得しましたか?またはあなた自身で作成しましたか?この差は、NA値の存在、すなわち海洋に土壌深さがないことによって生じる可能性がある。 –

+1

'土地'は変数ではなく、別の次元なので、サイズx * yである必要はありません。 – plannapus

答えて

10
library(ncdf) 
# I'm assuming this is the netcdf file you are working with: 
download.file("http://dods.ipsl.jussieu.fr/gswp/Fixed/SoilDepth.nc", destfile="SoilDepth.nc") 
soil <- open.ncdf("SoilDepth.nc") 
#The way to extract a variable is as following: 
soil$var[[3]] -> var3 # here, as shown in your question, SoilDepth is the 3rd variable 
get.var.ncdf(soil, var3) -> SoilDepth 

dim(SoilDepth) 
[1] 15238 

としてはので、私はそれがこのデータセットをプロットすることになるとどこそれはあなたを残しんかわからない変数SoilDepthだけでなくxy上の寸法landに依存して、あなたのnetCDFファイルの要約に言われました。

編集

それは、xリンクキーがあり判明yland

download.file("http://dods.ipsl.jussieu.fr/gswp/Fixed/landmask_gswp.nc", destfile="landmask.nc") 
landmask <- open.ncdf("landmask.nc") 
landmask$var[[3]] -> varland 
get.var.ncdf(landmask, varland) -> land 
sum(land==1) 
[1] 15238 

だから、プロットするために:

# The values where stored in an expected order, hence the transpose 
land = t(land) 
land[land==1] <- SoilDepth 
land[land==0] <- NA 
land = t(land) 
image(land) 

enter image description here

+0

'get.var.ncdf(nc、" SoilDepth ")'の結果でplotを呼び出すだけで素晴らしいtimeseriesが生成されません。奇妙なファイル... –

+0

おそらく、次元 '土地'と次元 'x'と' y'の間に暗黙の関係がありますが、私はそれを見つけることができません... – plannapus

+0

私はまた、関係を見つけるのは難しいです。 OPはデータの作成者に依頼する必要があります。 –

5

Rで視覚化しますか?それは別のソフトウェアで視覚化する問題ではない場合

、あなたがhereをdonwloadできNASAが提供するhere利用可能ncBrowse、または一式、より複雑なものを、使用することができます。

Rで作業する場合は、ncdfパッケージを使用できます。 get.var.ncdf機能により、データを抽出することができます。 spパッケージとspplot機能を使用するか、rglパッケージ(またはそれ以外の場合はscatterplot)を使用してプロットすることができます。

+0

@plannapusの答えにこの問題を解決するためのコードをいくつか追加しました。 –

11

視覚化のためにggplot2パッケージを使用することをお勧めします。 @plannapusの優れたソリューションの使用:

require(reshape) 
require(ggplot2); theme_set(theme_bw()) 
land_df = melt(land) 
ggplot(aes(x = X1, y = X2, fill = value), data = land_df) + 
    geom_raster() + coord_equal() + 
    scale_fill_continuous(na.value = "transparent") 

enter image description here


を使用すると、軸のタイトルを変更したい場合は、aesで変数名を変更しないでください。これらの値はデータ内の列を参照し、それらを変更するとエラーが発生します。Xという軸はland_dfにありません。軸に置かれた名前を変更する場合:

ggplot(aes(x = X1, y = X2, fill = value), data = land_df) + 
    geom_raster() + coord_equal() + 
    scale_fill_continuous(na.value = "transparent") + 
    scale_x_continuous("X") 
+0

読む 'scale_fill_continuous'、彼らはあなたを気にする場合は、あなたがやってそれらを削除することができるはずですかhttp://had.co.nz/ggplot2/scale_continuous.html –

+0

:? +テーマ(axis.title = element_blank() ) – JEquihua

4

ファイルをすばやく見るには、ncviewを使用できます。マップはあまり美しいものではありませんが、特定のファイルがどのように見えるかを知る上で非常に機能的です。また、これはリモートサーバーで簡単に動作します。

はこちらをご覧ください:http://meteora.ucsd.edu/~pierce/ncview_home_page.html

関連する問題