2017-04-11 6 views
0

多くのラスタをポリゴンに変換しています。しかし、かなりの数のケースでは、予期せぬ地形が見えており、私はそれらを取り除くことができません。ラスタをポリゴンに変換するときに望ましくないサブジメトリー

これは、R v3.3.3およびラスターパッケージv2.5-8に対応しています。

私が抱えている問題を再現する必要がある例を次に示します。

hereを使用しているラスタをダウンロードできます。

# first, read in raster and coarsen to something more manageable 

library(raster) 
library(rgeos) 
env <- raster('adefi.tif') 
env2 <-aggregate(env, 8) 

# Reclassify such that cells are either 1 or NA 
env2[!is.na(env2)] <- 1 

# this is what the raster now looks like: 
plot(env2) 

enter image description here

# Now I convert to polygon, choosing to dissolve 
p <- rasterToPolygons(env2, dissolve=T) 

plot(p) 

enter image description here

# I find that I can't get rid of these subgeometries 
p <- gUnaryUnion(p) # identical result 
gIsValid(p) # returns TRUE 

私は、問題がどこにあるかわからないんだけど...それはラスタパッケージは、セルポリゴンに変換する方法でますか?それとも、rgeosパッケージがそれらのセルポリゴンを一緒に解消するのでしょうか? 回避策はありますか?

答えて

0

これは投影の問題のようです。これは私の作品:

library(raster) 
library(rgeos) 

env <- raster(file.path(fp, "adefi.tif")) 
env2 <- aggregate(env, 8) 
env2[is.na(env2) == F] <- 1 
# Project Raster 
proj_env2 <- projectRaster(env2, crs = CRS("+init=epsg:3577")) 
p <- rasterToPolygons(proj_env2, dissolve = T) 
plot(p) 

EPSG以来の再投影する必要がなぜわからない:3577は、元の投影と同じように見えますが、私は通常、必ずすべてを作るためにproj4string()またはspTransform()を使用して投影を確認ラインナップされます。

関連する問題