pbsmapping 및 shapefiles를 사용하여 R의 지리적 데이터를 플로팅하는 데 도움이

StackOverflow https://stackoverflow.com/questions/1481032

문제

사용 r의 O'Reilly의 데이터 매시업 영감으로, 나는 유타 주 솔트 레이크 카운티의 모양 파일에 소수의 주소를 계획하고 있습니다. 여기.

데이터 프레임 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

그리고 나는 그것을 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

그래서 나는 내가 줄거리에 필요한 모든 것을 가지고 있지만 작동하지 않는 것 같습니다. ShapeFile을로드하고 사용하여 플롯 할 때

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

나는 빈 모양 파일을보고 남았습니다. 또한 EventData 객체에 대해 FindPolys를 실행하려고하면 NULL이 반환됩니다.

> findPolys(addressEvents,myShapeFile)
NULL

이 작업을 어떻게 만들 수 있습니까? 나는 아무런 문제없이 O'Reilly 튜토리얼을 완료 할 수 있었고 여기서 내가 어디에서 잘못 될지 알아내는 데 어려움을 겪고 있습니다. ShapeFile, 내 데이터 프레임 또는 NowlyElse인지 모르겠습니다.

내 데이터와 ShapeFile을 가져 오기 위해 사용하는 명령은 다음과 같습니다.

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)
도움이 되었습니까?

해결책

특히 Eduardo의 답변에서 이러한 관련 질문을보고 싶을 수도 있습니다.

다른 팁

pbsmapping은 일부 원유 휴리스틱을 사용하여 .prj 파일에서 투영을 해결하는 것처럼 보입니다. (도움말 (importshapefile) 참조). 나는 개인적으로 PRJ 파일 내부의 모든 내용을 이해하지 못하지만이 웹 사이트를 사용하여 www.spatialreference.org 나는 당신의지도 일치를 생각합니다.

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

새 모양 파일을 얻을 때 마다이 웹 사이트에서 프로젝션 시스템을 찾은 다음 Proj4 문자열을 찾습니다.이 경우 " +proj = utm +zone = 12 +elps = grs80 +datum = nad83 +units = m +입니다. no_defs "

(내가 PBSMapping을 모른다고 말한 것처럼, 당신은 다음과 같이 maptools를 사용하여 이것을 읽을 수 있습니다)

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

그런 다음 Latlong으로 전환합니다

library(rgdal)

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

그리고

플롯 (sftransformed, axes = t)

축에 올바른 단위가있는 플롯을 제공합니다.

pbsmapping이 proj4 문자열을 이해하는지 확실하지 않습니까? 정직하지 않은 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top