Usa direttamente lo shapefile. Puoi farlo facilmente con i pacchetti rgdal
o sf
e leggere la forma in un oggetto. Per entrambi i pacchetti è necessario fornire dsn
- l'origine dati, che nel caso di uno shapefile è la directory , e layer
- che è il nome dello shapefile, meno l'estensione:
# Read SHAPEFILE.shp from the current working directory (".")
require(rgdal)
shape <- readOGR(dsn = ".", layer = "SHAPEFILE")
require(sf)
shape <- read_sf(dsn = ".", layer = "SHAPEFILE")
(Per rgdal, in OSX o Linux non è possibile utilizzare la scorciatoia '~' per la directory home come directory dell'origine dati ( dsn
), altrimenti verrà visualizzato un messaggio inutile "Impossibile aprire l'origine dati". Il sf
pacchetto non hanno questa limitazione, tra gli altri vantaggi.)
Questo ti darà un oggetto che è un DataFrame spaziale * (punti, linee o poligoni) - i campi della tabella degli attributi sono quindi accessibili a te allo stesso modo di un normale frame di dati, cioè shape$ID
per la colonna ID.
Se si desidera utilizzare il file ASCII importato, è sufficiente convertire i campi di testo (carattere) xey in numeri, ad esempio:
shape$x <- as.numeric(as.character(shape$x))
shape$y <- as.numeric(as.character(shape$y))
coordinates(shape) <- ~x + y
Modifica 18/01/2015 : nota che rgdal è un po 'meglio dei maptools (che inizialmente ho suggerito qui), principalmente perché legge e scrive automaticamente le informazioni di proiezione.
Appunti:
- le
as.numeric(as.character())
funzioni nidificate : se il testo ASCII è stato letto come un fattore (probabilmente), ciò assicura che si ottengano i valori numerici anziché i livelli dei fattori.
rgdal
e sf
avere modi confusi di accedere a diversi tipi di file e database (ad es. per un file GPX, dsn è il nome del file e sovrappone i singoli componenti come waypoint, trackpoint, ecc.) ed è necessaria un'attenta lettura degli esempi online.