3

緯度と経度として表されるデータセットと、各緯度と経度のペアに関連付けられた値(「クラス」という名前)があります。これは、「Rの「格子」パッケージの下でlevelplot()またはcontourplot()を使用して表現したい」 "。サンプル データセットは次のようになります。

> data_2[510:520,]
          lon      lat class
510 -47.61849 40.00805     2
511 -47.36740 40.01180     1
512 -47.11629 40.01551     1
513 -46.86518 40.01918     1
514 -46.61404 40.02282     1
515 -46.36290 40.02642     3
516 -46.11173 40.02999     1
517 -45.86056 40.03352     1
518 -45.60937 40.03700     3
519 -45.35817 40.04045     3
520 -45.10695 40.04386     3

メイン データセットの経度と緯度の値は連続していません。

私の問題は、すべての緯度と経度の組み合わせに対して「クラス」値がないことです。このため、上記の値をプロットしようとすると、多くの空白が残ります。私が望むのは、連続した塗りつぶされた(すべての緯度と経度の組み合わせに対して)プロットを取得することです。

以下は、プロットしようとしている方法の 1 つの例です。

levelplot(data_2$class ~ data_2$lon * data_2$lat、data = data_2、region = TRUE、aspect = "fill")

これを達成するために使用できるlevelplot()またはcontourplot()関数で使用できるオプションはありますか、またはこのソリューションを思い付くのに役立つ「R」の他のパッケージ/メソッドはありますか?

4

2 に答える 2

1

無料の電子ブック「A Practical Guide to Geostatistical Mapping」(http://spatial-analyst.net/book/download) を参照して、R での多くの例を含む空間推定方法を確認することをお勧めします。

Ben が指摘したように、ある種の空間補間を行う必要があります。パッケージinterpolate内の関数を使用した簡単な例を次に示します。intamap

library(intamap)
library(lattice)

# Generate an example dataset
set.seed(10)

class1 <- data.frame(lon=rnorm(50, mean=-46, sd=4), 
                     lat=rnorm(50, mean=32, sd=4), 
                     value=1)

class2 <- data.frame(lon=rnorm(50, mean=-40, sd=4), 
                     lat=rnorm(50, mean=39, sd=4), 
                     value=2)

class3 <- data.frame(lon=rnorm(50, mean=-50, sd=3), 
                     lat=rnorm(50, mean=40, sd=2), 
                     value=3)

df <- rbind(class1, class2, class3)

# Generate a 50 x 50 grid over which to predict new values
prediction.grid <- expand.grid(lon=seq(from=min(df$lon), 
                                       to=max(df$lon), 
                                       length=50),
                               lat=seq(from=min(df$lat), 
                                       to=max(df$lat), 
                                       length=50))
# Spatialize the data.frames                           
coordinates(df) <- c("lon", "lat")
gridded(prediction.grid) <- c("lon", "lat")

fit <- interpolate(df, prediction.grid)

# Built-in plots, including variogram and pertinent stats:
plot(fit)

# Pull out the fitted values into a dataframe
predictions <- as.data.frame(t(fit$outputTable))

levelplot(mean ~ x * y, data=predictions, region=TRUE, aspect="fill")
于 2011-08-29T20:29:10.800 に答える
0

最初に何らかの補間を行う必要があります。akimaパッケージはおそらく最善の策です。の例を参照してください?akimagstat::krige別の可能性です。

于 2011-08-29T20:02:38.313 に答える