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"

土壌の深さのマップを取得するには、緯度と経度、および土地のポイントを接続する必要があるようです.私は本当に混乱しています.誰かがこの種のデータで私を助けてくれますか.

4

4 に答える 4

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")

ここに画像の説明を入力


軸のタイトルを変更する場合は、 の変数名を変更しないaesでください。これらの値はデータ内の列を参照しており、それらを変更するとエラーが発生します。 には軸という名前がありませXland_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")
于 2012-09-06T08:06:28.687 に答える
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

netcdf ファイルの要約で述べたように、変数は次元ではなく次元のみにSoilDepth依存するため、このデータセットをプロットするときにどこに行くのかわかりません。landxy

編集

xyおよびをリンクするキーがあることがわかりましたland

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)

ここに画像の説明を入力

于 2012-09-06T07:23:30.783 に答える
5

R で視覚化しますか?

別のソフトウェアで視覚化することが問題にならない場合は、ここで入手できるncBrowseを使用するか、NASA が提供するより複雑なPanoplyを使用して、ここでダウンロードできます。

Rで作業したい場合は、ncdfパッケージを使用できます。関数のおかげで、データを抽出できますget.var.ncdfspパッケージとspplot関数のおかげでプロットするか、rglパッケージ (またはそれ以外scatterplot) を使用できます。

于 2012-09-06T07:15:51.343 に答える
4

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

ここを参照してください: http://meteora.ucsd.edu/~pierce/ncview_home_page.html

于 2013-09-22T20:31:23.090 に答える