2017-02-17 4 views
1

私はポリゴンにラスタに変換しています。私の最初のラスタでは、細胞は、異なる面積を持っていますが、私はrasterToPolygonsし、それをプロットを使用してポリゴンに変換するとき、私は初期の細胞が別の領域を持っていたにも関わらず、等距離のグリッドを参照してください?それは私のRコードの問題、または突起の私の悪い理解して問題ラスタからポリゴンまでのラスタは、セルの面積が異なっていても通常のグリッドを表示しますか?

ですか?セルの面積に比例した面積のポリゴンを表現するにはどうすればよいでしょうか?

library(raster) 
r <- raster(nrow=18, ncol=36) 
r$value <- 1:ncell(r) 
r$area <- as.data.frame(area(r))$layer 

head(as.data.frame(r)) 

ras_to_pol <- rasterToPolygons(r) 
spplot(ras_to_pol, "area", main="Area of initial cells converted to polygons") 

enter image description here

ありがとう!あなたのコードで

答えて

1

、あなたは細胞の解像度やラスタの範囲や投影を指定していません。 したがってrasterデフォルトに:

extent  : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

し、nrow=18, ncol=36を使用しているので、あなたは、平面上に「直交座標」でそれらをプロットするときに、緯度と経度、したがって「正方形」細胞に10度の両方の細胞を取得します。

「色」によって示されるようにしかし、地理的座標に「スフェロイド」は10×10度セルに対応する表面の面積が実際、(説明のためにここhttps://gis.stackexchange.com/a/29743、ここhttps://badc.nerc.ac.uk/help/coordinates/cell-surf-area.html参照)緯度とともに変化あなたのプロットで。あなたは、変数「エリア」とのポリゴンを持つようにしたい場合は

あなたは、等面積投影に再投影しなければなりません。多くのがあります。ここで私は、一例として、円錐等しい面積を使用しています:

ras_to_pol_new <- spTransform(ras_to_pol, CRS("+init=epsg:3410")) 
spplot(ras_to_pol_new, "area", main="Area of initial cells converted to polygons") 

enter image description here

あなたが多角形の面積は緯度に伴って減少するかを見ることができます。 (予測に非常に良いプライマーについて、あなたは例えば見ることができます:https://kartoweb.itc.nl/geometrics/Map%20projections/mappro.html)説明のため

+0

ありがとう!だから問題は、私がデカルト座標でプロットしているということですか?それらの面積に比例した "形状"のセルを持つために使用する座標系/投影はどれですか? – Matifou

+0

まあ、実際にあなたが "デカルト座標"を使用しているという事実からです。地理的な投影が同じ領域である(私が考える)ことはできないという事実から、 「可変領域」を見るには、等面積投影法に再投影する必要があります(編集された解答を参照)。 – lbusett

+0

素晴らしい、これは完全に質問に答える、ありがとう! – Matifou

関連する問題