2017-01-27 9 views
2

とカーネル密度(kde2d)を組み合わせるIがRの初心者ですとベースマップとカーネル密度画像プロットを組み合わせについて質問があります。私が行っている。このためベースマップ

spe <- read.table(text = 'Lat Long 
-16.664969 52.85978 
-16.663191 52.94521 
-16.664250 52.85902 
-16.664250 52.85902 
-16.665164 52.87561 
-16.664374 52.98654 
-16.663627 53.12452 
-16.663479 52.85833 
-16.663479 52.85833 
-16.663032 52.85823 
-16.664142 52.85848 
-16.663351 52.85834 
-16.663196 52.85829 
-16.663339 52.85803 
-16.665213 52.85939 
-16.664166 52.85912 
-16.664166 52.85912 
-16.663654 52.85868 
-16.663660 52.85868 
-16.661111 52.86002', sep = " ", header = T) 

: 例えばデータセットのサブセットをカーネル密度推定と画像:

library(MASS) 
    f1 <- kde2d(spe$Lat, spe$Long, n = 500,h=0.0005) 
    image(f1,col= colorRampPalette(c("white", "red"))(15)) 

は今、私は画像の背後にあるGoogleのベースマップを配置するが、それを行う方法がわからないが、私が試した:

require(ggmap) 
    mapImageData1 = get_map(location = c(lon = -16.664, lat = 52.859), 
          color = "color", 
          source = "google", 
          maptype = "satellite", 
          zoom = 16) 

    ggmap(mapImageData1) 

しかし、どのようにして地図を画像に合わせることができますか?あるいは、kde2dにもかかわらず、ベースマップ上の座標を使って密度推定を行う別の方法がありますか?

多くの感謝!!!誰かが私を助けてくれることを願っています。

答えて

1
library(MASS) 
f1 <- kde2d(spe$Lat, spe$Long, n = 500,h=0.0005) 

あなたは

r1[r1 < 0.0001 ] <- NA 

と非常に低密度の値を削除し、I showed in another questionようggmapベースマップに追加することができ

r1 <- raster(f1) 

RasterLayerにカーネル密度を変換することができます。

bm <- ggmap(get_map(location = c(lon = -16.664, lat = 52.859), 
        maptype = "terrain", zoom = 16)) 

bm + inset_raster(as.raster(r1), xmin = [email protected][1], xmax = [email protected][2], 
        ymin = [email protected][3], ymax = [email protected][4]) 

enter image description here

提供されたデータサンプルが原因の可能性があります。

+0

ありがとうございます!これは素晴らしいですが、カーネル計算に密度がない場合、マップ上に白いボックスが表示されます。これは非常にきれいではないので、透明にする方法を知っていますか? @lmoのヒートマップの考え方は、おそらく別の選択肢ですか?私はそれをどのように実装できますか?多くの多くのありがとう – JmO

+0

非常に低い値が「NA」、すなわち透明であるように編集しました – loki

+0

最後に追加:色を変更する方法を知っていますか、他の質問と同様にすべてをポリゴンに変換しないでください。これは何日もかかり、データにノイズが入るようになります。 – JmO

1

あなたは、インタラクティブなGoogleマップは(静的なものではなく)、あなたが私のgooglewayパッケージの開発版を試してみてください、とheatlayer

使用するにはGoogle MapsのAPIをプロットするためにGoogle MapsのAPIを使用することができますしたい場合あなたは左の土地を見ることができるように、私は少しズームアウトしましたし、「熱が」正しい方向にポイント:api key

## install development version 
# devtools::install_github("SymbolixAU/googleway") 
library(googleway) 
library(magrittr) ## pour les pipes 

map_key <- "your_api_key" 

google_map(key = map_key, data = spe) %>% 
    add_heatmap() 

注意が必要です。

enter image description here

+0

この代替案をありがとう!カーネル密度の結果ではなくヒートマップを示しています。しかし、1つの質問:私は関数を見つけることができません:google_mapパッケージgooglewayまたは関数add_heatmap。編集:google_map githubで見つけましたが、add_heatmapでは見つかりませんでした。ここで私を助けてくれますか? – JmO

+0

@JmO両方の機能が開発版です。投稿を編集してインストールするコードを追加しました。 – SymbolixAU

+0

@JmO - レイヤーをKMLとして保存できる場合は、 'add_kml()'関数もあります – SymbolixAU

関連する問題