2011-02-11 7 views
4

私はbioclim変数のレンガファイルを持っています、レンガは4つの30秒タイルレンガからマージされていましたので、少し大きいです。研究領域のレンガファイルをポリゴンを境界として切断して取得したいと考えています。私は何をすべきか?それ以外の場合は、レンガではできない場合は、ラスターでもできますか?あなたは小さな長方形にレンガをトリミングしたい場合は、事前にポリゴンを使ってレンガをカットする方法は?

感謝〜

マルコ

+0

形式は何ですか。 Rasterやadehabitatがそれを行うかもしれません。私は.asc bioclimファイルを扱うためのカスタマイズされた関数をいくつか持っています。 –

+0

"grd"とも呼ばれるラスターパッケージのラスターまたはレンガです。これはラスタパッケージのデフォルトフォーマットです。 – Marco

答えて

4

extent()をチェックしてください。また、drawExtent()をクリックして選択する場合は、

EDIT:「カット」と「マスク」という用語を使用しているため、正しく理解しているかどうかはわかりませんが、ここでは役立つ2つの方法があります。両方を使用することもできます。

# an example with dimensions: 77, 101, 3 (nrow, ncol, nlayers) 
myGrid_Brick <- brick(system.file("external/rlogo.grd", package="raster")) 

# a simple polygon within those dimensions 
myTriangle_P <- Polygon(cbind(c(10, 80, 50, 10), c(10, 20, 65, 10))) 
myTriangle_Ps <- Polygons(list(myTriangle_P), "fubar") 
myTriangle_SP <- SpatialPolygons(list(myTriangle_Ps)) 
myTriangle_Ras <- rasterize(myTriangle_SP, myBrick) 

# this will crop a brick to minimal rectangle that circumscribes the polygon 
# extent(myCrop) is smaller than extent(myGrid) but no values are changed 
myCrop_Brick <- crop(myGrid_Brick, myTriangle_SP) 

# while this converts every coordinate that is NA in 
# the mask to become NA in the returned brick 
# while leaving the brick extent unchanged 
myMask_Brick <- mask(myGrid_Brick, myTriangle_Ras) 
+0

ありがとうJonw!私はcrop()、extent()またはdrawExtent()は "境界線"または "マスク"を制限するのではなく、グリッドの四隅であるエクステントのみを制約するものだと思います。言い換えれば、私のすべてのステップがその境界内でのみ影響を与えることができる方法があるかどうかを知りたいですか? – Marco

+0

もう一度ありがとう!私はマスクが私が必要とするものだと思う! – Marco

+1

@Marco:これが正解であれば、投票数の横にあるチェックマークをクリックすることで、将来のユーザーに見せることができます。また、あなたが私の答えを受け入れるなら、いくつかの点を得るでしょう。 :) –

関連する問題