2009-09-26 12 views
6

O'Reilly's Data Mashups in R का उपयोग प्रेरणा के रूप में करते हुए, मैं साल्ट लेक काउंटी के एक आकारफाइल पर कुछ हद तक पते की साजिश करने की कोशिश कर रहा हूं, यूटा को here मिला।पीबीएसमैपिंग और आकारफाइल का उपयोग कर आर में भौगोलिक डेटा की साजिश में सहायता

मैं डेटा फ्रेम 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 

तो ऐसा लगता है कि मैं सब कुछ मिल गया है मैं साजिश-लेकिन करने की जरूरत है यह काम नहीं कर रहा है। जब मैं

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

का उपयोग करके आकारफाइल और साजिश लोड करता हूं, तो मैं एक खाली आकारफाइल को देख रहा हूं। इसके अतिरिक्त, जब मैं अपने ईवेंटडेटा ऑब्जेक्ट के खिलाफ खोजने के लिए कोशिश करता हूं और चलाता हूं, तो यह शून्य लौटाता है।

> findPolys(addressEvents,myShapeFile) 
NULL 

मैं यह काम कैसे कर सकता हूं? मैं बिना किसी समस्या के O'Reilly ट्यूटोरियल को पूरा करने में सक्षम था और मुझे यह पता लगाने में कठिनाई हो रही है कि मैं यहां गलत कहां जा रहा हूं। मैं नहीं जानता कि इसका आकारफाइल, मेरा डेटा फ्रेम, या whateverelse है।

यहाँ आदेशों मैं अपने डेटा आयात करने का उपयोग करें और शेपफ़ाइल

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) 
+0

मेरे पेट मुझसे कहता है कि इसकी नहीं अपने डेटा, बल्कि इसकी मेरी शेपफ़ाइल ।मैं आकारफाइल की अवधारणा के लिए वास्तव में नया हूँ। जब मैं O'Reilly के उदाहरण आकारफाइल का उपयोग करके प्लॉट करता हूं, एक्स और वाई अक्ष लंबे और अक्ष की तरह दिखते हैं। जब मैं यूटा आकारफाइल का उपयोग करके प्लॉट करता हूं, एक्स और वाई अक्ष एक अलग संख्या प्रणाली की तरह दिखते हैं। –

+0

मैंने पीबीएसमैपिंग पैकेज का कभी भी उपयोग नहीं किया था। मै मैपटोल के साथ थोड़ा गड़बड़ कर चुका हूं। –

उत्तर

4

लगता PBSmapping जैसे कुछ कच्चे heuristics का उपयोग करता .prj फ़ाइल से प्रक्षेपण बाहर काम कर रहे हैं। (सहायता देखें (importShapefile))। मैं व्यक्तिगत रूप से एक PRJ फाइल के अंदर सब सामान समझ में नहीं आता, लेकिन इस वेबसाइट का उपयोग कर www.spatialreference.org मुझे लगता है अपने नक्शे से मेल खाता है

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

जब भी मैं एक नया आकार फ़ाइल प्राप्त मुझे लगता है कि यह इस पर प्रक्षेपण प्रणाली है वेबसाइट और उसके बाद proj4 स्ट्रिंग की तलाश करें, जो इस मामले में "+ proj = utm + zone = 12 + ellps = GRS80 + डेटाम = NAD83 + इकाइयों = एम + no_defs"

(जैसा कि मैंने कहा था कि मैं नहीं हूं ' टीबीएसमैपिंग को नहीं जानते, लेकिन आप इसे मैपटोल का उपयोग करने में निम्नानुसार पढ़ सकते हैं)

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

और फिर

library(rgdal) 

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

और

साजिश का उपयोग कर LatLong में कन्वर्ट (sftransformed, अक्ष = टी)

अक्ष पर सही इकाइयों के साथ एक साजिश देता है।

सुनिश्चित नहीं है कि पीबीएसमैपिंग प्रोजे 4 स्ट्रिंग को समझती है या नहीं? ऐसा लगता है कि यह ईमानदार नहीं है।

संबंधित मुद्दे