R में मैप लेयर्स (shp और csv) को ओवरले कैसे करें?


9

यह स्टैकओवरफ्लो से एक क्रॉसपोस्ट है । मैं जीआईएस सॉफ्टवेयर के बारे में बहुत कम जानता हूं और अगर यह बहुत बुनियादी सवाल है तो मैं आर माफी में अपनी सारी मैपिंग कर रहा हूं। मान लीजिए कि मेरे पास विभिन्न स्रोतों से दो आकार-प्रकार हैं, लेकिन विभिन्न विशेषताओं के साथ। कहते हैं, एक टेक्सास की प्रशासकीय सीमाओं के लिए है ( boundaries.shp) और दूसरा टेक्सास नदियों के लिए है ( rivers.shp)। मेरे पास towns.csvराज्य के भीतर कस्बों के स्थानों को दिखाने वाली तीसरी फ़ाइल भी है । फाइलों में पढ़ने के बाद, मैं maptoolsपैकेज में विशेषण सीमाओं पर शहर के स्थानों को ओवरप्लेट कर सकता हूं :

plot(boundaries); points(towns$lon, towns$lat)

लेकिन मैं तीनों को कैसे ओवरले कर सकता हूं? निश्चित रूप से ऐसा करने का एक आसान तरीका है?

जवाबों:


8

PBSMapping आपकी आवश्यकताओं के अनुरूप होना चाहिए। NCEAS में एक ट्यूटोरियल है । नीचे दिए गए कोड को उस ट्यूटोरियल से अनुकूलित किया गया है। मैं आपके डेटा btw के बारे में धारणा बना रहा हूँ। कृपया अपनी स्थिति के लिए उपयुक्त संपादित करें।

library(PBSmapping)

#prepare towns
pts <- read.csv("towns.csv")
towns <- points(towns$lon, towns$lat)
# read in shapefiles 
rivers <- importShapefile("rivers.shp")
boundaries <- importShapefile("boundaries.shp")


# note that importShapefile reads the .prj file if it exists, but it
# does not adopt the proj4 format used by the above approaches
proj.abbr <- attr(boundaries, "projection") # abbreviated projection info
proj.full <- attr(boundaries, "prj") # full projection info
print(proj.abbr)
# [1] "LL"

# generate map using PBSmapping plotting functions
plotPolys(boundaries, projection=proj.abbr, border="gray",
    xlab="Longitude", ylab="Latitude")
addPoints(towns, pch=20, cex=0.8)
addLines(rivers, col="blue", lwd=2.0)

धन्यवाद, आरके मैं अभी भी इसे लटका पाने की कोशिश कर रहा हूं, लेकिन यह एक उत्कृष्ट सूचक था।
user3671

आपका स्वागत है। मज़ा मानचित्रण :)
RK

11

दो भूखंडों को ओवरले करने का सबसे सरल तरीका हो सकता है कि add = TRUEविकल्प का उपयोग करना plot। यहां कृत्रिम डेटा के साथ एक उदाहरण दिया गया है

# Load sp package for creating artificial data
library(sp)

# Create sample town points
towns <- data.frame(lon = sample(100), lat = sample(100))
towns <- SpatialPoints(towns)

# Create sample polygon grid
grd <- GridTopology(c(1,1), c(10,10), c(10,10))
polys <- as.SpatialPolygons.GridTopology(grd)

# Plot polygons
plot(polys)

# Add towns (in red colour)
plot(towns, add = TRUE, col = 'red')

में chipping के लिए धन्यवाद, पीले रंग की। लेकिन यह कहता है कि "ऐड एक ग्राफिकल पैरामीटर नहीं है।"
user3671

जब मैं इसे अपने कंप्यूटर पर चलाता हूं तो उदाहरण ठीक काम करता है, लेकिन ऐसा लगता है कि "ऐड" हमेशा काम नहीं करता है और इनपुट डेटा की श्रेणी पर निर्भर करता है, इस पोस्ट को देखें । तो मेरा सुझाव शायद जाने का सबसे अच्छा तरीका नहीं हो सकता है ...
पीले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.