Domanda

mashup di dati di O'Reilly in R come ispirazione, sto cercando di tracciare una manciata di indirizzi su uno shapefile di Salt Lake County, Utah trovato qui .

Ho frame di dati geoTable:

> geoTable
         address        Y         X EID
1    130 E 300 S 40.76271 -111.8872   1
2    875 E 900 S 40.74992 -111.8660   2
3   2200 S 700 E 40.72298 -111.8714   3
4    702 E 100 S 40.76705 -111.8707   4
5 177 East 200 S 40.76518 -111.8859   5
6    702 3rd ave 40.77264 -111.8683   6
7   2175 S 900 E 40.72372 -111.8652   7
8   803 E 2100 S 40.72556 -111.8680   8

E ho coercizioni in un oggetto EventData:

> addressEvents<-as.EventData(geoTable,projection=NA)
> addressEvents
         address        Y         X EID
1    130 E 300 S 40.76271 -111.8872   1
2    875 E 900 S 40.74992 -111.8660   2
3   2200 S 700 E 40.72298 -111.8714   3
4    702 E 100 S 40.76705 -111.8707   4
5 177 East 200 S 40.76518 -111.8859   5
6    702 3rd ave 40.77264 -111.8683   6
7   2175 S 900 E 40.72372 -111.8652   7
8   803 E 2100 S 40.72556 -111.8680   8

Quindi sembra che ho tutto quello che ho bisogno di tracciare, ma il suo non funziona. Quando carico lo shapefile e la trama usando

addPoints(addressEvents,col="red",cex=.5)

Sto sinistra guardando uno shapefile vuota. Inoltre, quando provo e faccio funzionare findPolys contro il mio oggetto EVENTDATA, restituisce NULL.

> findPolys(addressEvents,myShapeFile)
NULL

Come posso fare questo lavoro? Sono stato in grado di completare il tutorial O'Reilly senza problemi e sto avendo difficoltà a capire dove sto andando male qui. Non so se lo shapefile, il mio telaio dati o whateverelse.

Ecco i comandi che uso per importare i miei dati e file shape

slc<-read.table('~/utah.txt',sep=',',header=TRUE,strip.white=TRUE,stringsAsFactors=FALSE)

myShapeFile<-importShapefile("/Users/neil/Downloads/SGID93_DEMOGRAPHIC_CensusTracts2000/SGID93_DEMOGRAPHIC_CensusTracts2000",readDBF=TRUE)
È stato utile?

Soluzione

Si consiglia inoltre di guardare a queste domande relative, in particolare a risposte di Eduardo:

Altri suggerimenti

Sembra PBSmapping utilizza alcune euristiche greggio a lavorare fuori la proiezione dal file .prj. (Vedi aiuto (importShapefile)). Io personalmente non capisco tutte le cose all'interno di un file prj ma utilizzando questo sito www.spatialreference.org mi sa tuoi mappa partite

http://www.spatialreference.org/ref/epsg/26912/

Ogni volta che ricevo un nuovo file di forma Trovo che sia un sistema di proiezione su questo sito e poi cercare la stringa Proj4, che in questo caso è "+ Proj = utm + zona = 12 + = ellps GRS80 + datum NAD83 = + unità = m + no_defs"

(Come ho detto non lo so PBSmapping, ma si può leggere questo nel usando MapTools come segue)

library(maptools)
sf=readShapeSpatial("SGID93_DEMOGRAPHIC_CensusTracts2000.shp",proj4string=CRS("+proj=utm +zone=12 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"))

e poi convertire in LatLong usando

library(rgdal)

sftransformed=spTransform(sf,CRS("+proj=longlat"))

e

plot (sftransformed, assi = T)

dà una trama con le unità giuste sugli assi.

Non sono sicuro se PBSmapping capisce una stringa Proj4? Sembra che non ad essere onesti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top