2016-12-15 1 views
0

Je travaille avec des fichiers de formes dans R que j'ai besoin de convertir de polygone en raster. Alors que les vecteurs semblent parfaits lorsqu'ils sont tracés, lorsqu'ils sont convertis en raster à l'aide de 'rasterize', ils produisent des lignes horizontales erronées. Voici un exemple du problème:Erreur de rasterisation: la conversion de polygone en raster produit des lignes horizontales

Polygon Raster

Voici un exemple générique du code que j'utilise (désolé que je ne peux pas télécharger les données lui-même comme il est propriétaire):

spdf.dat <- readOGR("directory here", "layer here") 

# Plot polygon 
plot(spdf.dat, col = 'dimgrey', border = 'black') 

# Extract boundaries 
ext <- extent(spdf.dat) 

# Set resolution for rasterization 
res <- 1 

# determine no. of columns from extents and resolution 
yrow <- round(([email protected] - [email protected])/res) 
xcol <- round(([email protected] - [email protected])/res) 

# Rasterize base 
rast.base <- raster(ext, yrow, xcol, crs = projection(spdf.dat)) 

# Rasterize substrate polygons 
rast <- rasterize(spdf.dat, rast.base, field = 1, fun = 'min', progress='text') 
plot(rast, col = 'dimgrey') 

Cela semble-t-il être un problème avec les données source ou la fonction de pixellisation? Quelqu'un at-il déjà vu ce genre d'erreur? Merci pour tout conseil que vous pouvez fournir.

+0

J'ai essayé votre code avec mes données et il a le bon comportement. Votre code me va bien. peut-être un problème avec vos données? Essayez avec un autre de vos ensembles de données. – Bastien

+0

Quand je regarde votre silhouette, il me semble que les lignes apparaissant problématiques dans le raster sont situées à la même latitude que certaines îles. Essayez de supprimer ces îles de votre jeu de données. Si le problème disparaît, vous saurez que vos données constituent le problème et que le problème réside dans vos données. – Bastien

+0

Vous pouvez essayer le paquet gdalUtils qui a une fonction: 'gdal_rasterize' – Bastien

Répondre

1

Pour le rendre officiel afin que la question est considérée comme une réponse, je vais copier mes réponses commentées ici. Vous pouvez donc l'accepter. Quand je regarde votre silhouette, il me semble que les lignes apparaissant problématiques dans le raster sont situées à la même latitude que certaines îles. Essayez de supprimer ces îles de votre jeu de données. Si le problème disparaît, vous saurez que vos données constituent le problème et que le problème réside dans vos données.

Une autre option consiste à essayer le paquet gdalUtils qui a une fonction: gdal_rasterize. Peut-être que gdal est moins exigeant dans les données d'entrée.