2010-01-15 7 views
15

J'ai des difficultés à lire dans un fichier .shp (fichier de forme d'esri) dans R. J'ai essayé plusieurs options dans R, et j'ai essayé de convertir le fichier de forme dans ArcMap en quelque chose lit correctement dans le fichier de forme, mais rien n'a encore fonctionné. (Dans ArcMap j'ai corrigé la géométrie, convertie de simple en multipolygone, etc. ce qui n'était probablement pas nécessaire ou pertinent)lire et tracer un fichier de forme d'esri dans R

Cela a probablement quelque chose à voir avec le fait que mon fichier de forme contient des 'régions' (multi-polygones) au lieu de 'polygones' ...

Comment puis-je lire ce type de fichier de forme correctement dans R pour tracer? (Il ressemble à une forme normale dans ArcMap)

Dans ArcMap le fichier de forme ressemble à ceci: http://bfast.r-forge.r-project.org/arcmapshape.jpg

(montre un fichier de forme avec des polygones dans d'autres polygones)

En R il ressemble à ceci : enter image description here

(montre un fichier de forme où certains polygones sont mal remplis)

I utilisé le code suivant dans R:

require(maptools) 
require(rgdal) 

newproj <- "+proj=utm +zone=55 +south +ellps=GRS80 +units=m" 
shape<- readShapeSpatial(pdir, proj4string = CRS(newproj),repair=TRUE,force_ring=T,verbose=TRUE) # without any errors 
plot(shape, col="gray",border="blue", axes=TRUE) 

# via rgdal 
folder <- c("spatial") 
lyr <- c("clipped_forest_mga") 
shp <- readOGR(dsn=folder,layer=lyr) 
plot(shp, col="gray",border="blue", axes=TRUE) 

Les deux commandes plot() donnent le même résultat R. Aucune erreur ne se produit. seul le message suivant

OGR data source with driver: ESRI Shapefile 
Source: "P:/Victoria_DSE/BFAST_spatial/vector/PLM_excl_fire03_09_GDA94LL/mgaz94z55/clipped_EG", layer: "clipped_forest_mga" 
with 1 features and 4 fields 
Feature type: wkbMultiPolygon with 2 dimensions 

Comment cela peut-il être résolu?

+0

Ceci est une question modérément spécialisée, et il y a une liste spéciale pour cela - avez-vous envisagé de demander sur r-ssig-spatial? –

Répondre

11

Jan,

Votre fichier de formes a probablement été lu correctement. Il est plus probable que le tracé n'était pas correct. Essayez spplot() au lieu de la parcelle():

spplot(shp, col.regions="gray", col="blue") 

Si votre shapefile a plus d'une colonne (ce qui est probable), ajouter zcol = 1 (ou toute autre colonne) de sorte que vous obtenez seulement un panneau

spplot(shp, zcol=1, col.regions="gray", col="blue") 

Si vous voulez vraiment utiliser l'intrigue, vous devez définir une couleur pour l'arrière-plan, sinon les trous seront imprimés en transparence. Donc, définissez pbg = "white". Essayez:

plot(shp, col="gray", border="blue", axes=TRUE, pbg="white") 

Par ailleurs, la liste que je pense que Dirk se référait à R-sig-Geo est et vous pouvez y trouver de nombreuses réponses et poser de nombreuses questions liées sig.

+2

Réponse très claire! Les deux solutions fonctionnent. Merci de votre aide. J'ai trouvé quelques pages Web très pratiques avec d'autres exemples de R pour tracer des cartes spatiales contenant des données de grille et vecteur: http://geography.uoregon.edu/GeogR/examples/maps_examples02.htm http: // r-spatial. sourceforge.net/gallery/ Cheers, Jan – Janvb

Questions connexes