2017-12-19 13 views
2

ArcGISで作成したポリゴンシェイプファイルiを使用してラスタスタックをトリミングしたいが、エクステントが重複しないというエラーが発生する。ポリゴンを含むトリミングR:エラーエクステントが重複しない

まずIラスタスタック作成:

myCRS <- [email protected] 

次いでシェープ読み取る

test1 < stack("C:/mydir/test1.tif") 

定義投影を

myExtent <- readShapePoly("C:/mydir/loc1.shp", verbose=TRUE, proj4string=myCRS) 

作物

私は解決策で検索しましたが、私はそれだけで投影が問題となる可能性が見つけるには、しかし、彼らは同じCRSの両方definetlyです:

> test1$test1.1 
class  : RasterLayer 
band  : 1 (of 4 bands) 
dimensions : 10980, 10980, 120560400 (nrow, ncol, ncell) 
resolution : 10, 10 (x, y) 
extent  : 6e+05, 709800, 5690220, 5800020 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +ellps=WGS84 
+towgs84=0,0,0 
data source : C:\mydir\test1.tif 
names  : test1.1 
values  : 0, 65535 (min, max) 

> myExtent 
class  : SpatialPolygonsDataFrame 
features : 1 
extent  : 499386.6, 517068.2, 6840730, 6857271 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +ellps=WGS84 
+towgs84=0,0,0 
variables : 2 
names  : Shape_Leng, Shape_Area 
min values : 67444.6461177, 283926851.657 
max values : 67444.6461177, 283926851.657 

答えて

2

メッセージはかなり自明です。あなたのエクステントは重複しません。チェックするにはここをクリックしてください:

library(raster) 
ext.ras <- extent(6e+05, 709800, 5690220, 5800020) 
ext.pol <- extent(499386.6, 517068.2, 6840730, 6857271) 


plot(ext.ras, xlim = c(499386.6,709800), ylim= c(5690220,6857271), col="red") 
plot(ext.pol, add=T, col="blue") 

質問のデータからエクステントオブジェクトを作成しました。 1つのエクステントが左上隅に、もう1つのエクステントが右下に表示されます。 QGISで両方のファイルを読み込もうとしましたが、おそらく簡単に見ることができます。

enter image description here

彼らは本当に私はあなたがあなたのシェープファイルを読み込む方法を疑うであろうよりも、オーバーラップすると仮定されている場合。代わりの

myExtent <- readShapePoly("C:/mydir/loc1.shp", verbose=TRUE, proj4string=myCRS) 

使用:

library(rgdal) 
myExtent <- readOGR("C:/mydir","loc1.shp") 
myExtent <- spTRansform(myExtent, CRS(proj4string(test1))) 
+0

はあなたが提案し、それはこれが、理由はあなたの呼び出し 'myExtent <である可能性があり、完全 – dtanon

+1

働いていたとして、私は)readOGR()とspTransformを(使用、ありがとう - readShapePoly ( "C:/mydir/loc1.shp"、verbose = TRUE、proj4string = myCRS) 'のように、実際のものではない投影を与えていました。投影と投影の変換には大きな違いがあります。射影を使ってプレイするときは、適切な関数( 'spTransform'、' projectRaster'または 'gdalwarp')を使って常に変換するよりも、関数がファイルから射影を読み込ませるようにしてください – Bastien

関連する問題