सबसे उपयोगी स्थानिक आर चाल क्या है?


44

स्थानिक डेटा को संभालने और विश्लेषण करने के लिए आर बहुत मजबूत उपकरण बन रहा है । मैंने SO पर इन जैसे प्रश्नों के माध्यम से कुछ उपयोगी बातें सीखीं और सोचा कि यह कुछ अनुकरणीय होने के लिए उपयोगी हो सकता है, लेकिन अधिक 'स्थानिक रूप से' उन्मुख है।

क्या आप कुछ स्थानिक आर युक्तियाँ और चालें साझा कर सकते हैं जो आपको उपयोगी लगीं?


5
सामुदायिक विकि?
relet


एसीके। धन्यवाद। मेरा मानना ​​है कि मैंने वह देखा, लेकिन इसे भूलना आसान है।
relet

3
इसके अलावा: rspatialtips.org.uk
radek

मुझे लगता है कि यह एक सामुदायिक विकि होना चाहिए क्योंकि यह एक प्रकार की सूची बन गई है।
आरके

जवाबों:


38

यह इतनी चाल नहीं है क्योंकि यह spplot()निफ्टी बिल्ट-इन कार्यक्षमता है। spplot()जबर्दस्ती लीजेंड स्वैच (वर्गीकरण ब्रेक रेंज से मेल खाने के लिए) की क्षमता विशेषता डेटा वितरण और वर्गीकरण प्रकारों पर चर्चा करते समय एक उपयोगी शैक्षणिक उपकरण के रूप में कार्य करती है। नक्शे के साथ संचयी वितरण भूखंडों को मिलाने से इस प्रयास में मदद मिलती है।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

छात्रों को केवल वर्गीकरण प्रकार और डेटा परिवर्तन प्रभाव का पता लगाने के लिए कुछ स्क्रिप्ट मापदंडों को संशोधित करने की आवश्यकता है। यह आमतौर पर आर में उनका पहला फ़ॉरेस्ट है जो ज्यादातर आर्कगिस सेंट्रिक कोर्स है।

यहाँ एक कोड स्निपेट है:

library(rgdal) # Loads SP package by default
NE = readOGR(".", "NewEngland") # Creates a SpatialPolygonsDataFrame class (sp)

library(classInt)
library(RColorBrewer)
pal = brewer.pal(7,"Greens")
brks.qt = classIntervals(NE$Frac_Bach, n = 7, style = "quantile")
brks.jk = classIntervals(NE$Frac_Bach, n = 7, style = "jenks")
brks.eq = classIntervals(NE$Frac_Bach, n = 7, style = "equal")

# Example of one of the map plots
spplot(NE, "Frac_Bach",at=brks.eq$brks,col.regions=pal, col="transparent",
       main = list(label="Equal breaks"))
# Example of one of the cumulative dist plots
plot(brks.eq,pal=pal,main="Equal Breaks")

Ref: R (R। Bivand, E Pebesma & V. Gomez-Ruby) के साथ अनुप्रयुक्त स्थानिक डेटा विश्लेषण


1
बहुत ही शांत! जो बहुत उपयोगी लगता है।
djq

2
PolyGeo एक मध्यस्थ के रूप में बेकार है
रडार

28

संपादित करें: ध्यान दें कि यह अब 2018-10-24 के लिए काम नहीं करता है, Google मानचित्र स्रोतों के लिए नई आवश्यकताओं के कारण।

मैं जियोकोडिंग और गूगल मैप्स डाउनलोड के साथ डिस्मो पैकेज पाकर बहुत खुश था:

library(dismo)
x <- geocode('110 George Street, Bathurst, NSW, Australia')
a <- x[5:8] + c(-0.001, 0.001, -0.001, 0.001)
e <- extent(as.numeric(a))
g <- gmap(e, type = "satellite")

plot(g)

यह विंडोज पर R 2.12.0 में है, यह अन्य प्रणालियों पर निर्भर नहीं होने के कारण, इसकी अक्षमता और इसकी निर्भरता को स्थापित करने के लिए तुच्छ है।

वैकल्पिक शब्द


1
यह बहुत उपयोगी लगता है - हालाँकि, मैं e <- extent(x[4:7] + c(-0.001, 0.001, -0.001, 0.001))एक त्रुटि संदेश प्राप्त करने वाले लाइन विज्ञापन के साथ समस्याओं में चल रहा हूँ Error: c("x", "y") %in% names(x) is not all TRUEx[4:7]हालांकि ठीक लगता है; समस्या क्या हो सकती है इस पर कोई विचार?
djq

हाँ, आपको एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण की आवश्यकता है
mdsumner

मैं इस जवाब में उदाहरण को पुन: पेश करने की कोशिश कर रहा हूं और यह काम नहीं करता है। उदाहरण के लिए x <- geocode('110 George Street, Bathurst, NSW, Australia')रिटर्न ZERO_RESULTS, और जब मैं एक उदाहरण का उपयोग करता हूं जो एक लैट / लॉन्ग देता है, तो फंक्शनe <- extent(x[4:7] + c(-0.001, 0.001, -0.001, 0.001)) also fails.
djq

ऐसा करने का एक और अधिक सुंदर तरीका हो सकता है, लेकिन extentसंख्याओं के एक वेक्टर की आवश्यकता होती है। तो यह काम करता है e <- extent(c(x[,4], x[,5], x[,6], x[,7]) + c(-0.001, 0.001, -0.001, 0.001))
djq 21

2
भी निम्न काम करता है:e <- extent(as.numeric(x[4:7]) + c(-0.001, 0.001, -0.001, 0.001))
snth


11

यह भी एक चाल नहीं है, लेकिन यहां कुछ संसाधन / उदाहरण हैं जो मैंने एकत्र किए हैं

जाली पैकेज का उपयोग करके आर में एरियाल डेटा के छोटे कई मानचित्रों को प्लॉट करने का एक उदाहरण ।

मैपिंग और आर के बारे में पूछे जाने वाले StackOverflow पर कुछ सवाल हैं, और यहाँ एक अच्छा उदाहरण है। मैं अन्य उत्तर और उनके द्वारा दिए जाने वाले संसाधनों (साथ ही कुछ और उदाहरणों के लिए खोज) को भी एसओ पर देखूंगा।

उसी r-sig-geo समूह ब्रैड का एक अलग लिंक पहले ही दिया था। यह बहुत सक्रिय है, और रोजर बिवांड समूह पर हर दिन व्यावहारिक रूप से सवालों के जवाब देता है। दोनों प्रोग्रामिंग और सांख्यिकीय विश्लेषण से संबंधित हैं।

क्रैन स्पैटियल पेज की जाँच के अलावा, मैं विशेष रूप से एड्रियन बैडले द्वारा बनाए गए स्पॅाटैट पेज की जाँच करने का भी सुझाव दूंगा । बहुत सारे उदाहरण, एक पाठ्यक्रम और आगामी ई-पुस्तक। (फिलहाल मैं स्पॅाटस्टेट कोर्स से गुजर रहा हूं, और मुझे लगता है कि यह बिवांड बुक की तुलना में बहुत अच्छा परिचय है)।

नि: शुल्क संसाधन नहीं है, लेकिन आरआई में रुचि रखने वाले किसी भी व्यक्ति के लिए आप उपयोग आर की जांच करने का सुझाव देंगे ! स्प्रिंगर द्वारा श्रृंखला। आर के साथ एक किताब एप्लाइड स्पैटियल डेटा एनालिसिस है (सीधे तौर पर बुक ए बिगिनर गाइड टू आर मेरी सुझाई गई आर बुक है।)

एक मुफ्त ई-पुस्तक, ए प्रैक्टिकल गाइड टू जियोस्टेट्रिक मैपिंग (हेंगल 2009) में आर, ग्रैसस और गूगल अर्थ (केएमएल) में लागू भू-आकृतियों के उदाहरण हैं।

अगर मुझे और अच्छे उदाहरण मिलते हैं तो मैं अपडेट करना जारी रखूंगा (मुझे उम्मीद है कि अन्य लोग भी अच्छे उदाहरण पोस्ट करेंगे!)


धन्यवाद एंडी मुझे जाली उदाहरण पसंद है। Bivand et al पर पूरी तरह से सहमत हैं। पुस्तक - महान संसाधन।
राडेक

10

रेखापुंज विश्लेषण के लिए रेखापुंज पैकेज अत्यंत शक्तिशाली है। मानक मैनुअल के अलावा कुछ विगनेट्स आरंभ करने के लिए।


सब कुछ है कि रेखापुंज पैकेज के लिए संभाल नहीं कर सकते क्योंकि यह राम के साथ काम करता है आप gdal_Utlis पर विचार कर सकते हैं जो आपको बड़ी फ़ाइलों को संसाधित करने की अनुमति देने वाले गदल का उपयोग करने के लिए आवरण फ़ंक्शन प्रदान करता है।
जोआल

7

मैं PostGIS उपयोगकर्ता नहीं हूं, लेकिन निकटतम पड़ोसी प्रश्न के लिए वोरोनोई बहुभुज का सुझाव देने के बाद , मैंने थोड़ी खोज की। मैंने पाया कि R के साथ, आप PostGIS के लिए वोरोनोई पॉलीगॉन बना सकते हैं । मैं प्रसन्न हूँ।


मुझे यकीन है कि कर रहा हूँ वहाँ मैं क्या सुझाव देने के लिए जा रहा हूँ की तुलना में आसान तरीके हैं, लेकिन आप spatstat पैकेज में tesselations बना सकते हैं, और फिर उस कन्वर्ट tessएक करने के लिए वस्तु spवस्तु इस समारोह का उपयोग कर एड्रियन बडेली द्वारा प्रदान की। spयदि आप चाहें तो किसी ऑब्जेक्ट से आप इसे एक आकार में निर्यात कर सकते हैं।
एंडी डब्ल्यू



4

इस फ़ंक्शन के साथ, आप आसानी से स्थानिक जोड़ सकते हैं, लेकिन केवल अगर सभी क्षेत्रों को बहुभुज द्वारा भरा जाता है।

library(rgeos)
library(sp) 
library(maptools)
library(rgdal)
library(sp)
xy.map <- readShapeSpatial("http://www.udec.cl/~jbustosm/points.shp")
manzana.map <- readShapeSpatial("http://www.udec.cl/~jbustosm/manzanas_from.shp" )

IntersectPtWithPoly <- function(x, y) { 
# Extracts values from a SpatialPolygonDataFrame with SpatialPointsDataFrame, and appends table (similar to 
# ArcGIS intersect)
# Args: 
#   x: SpatialPoints*Frame
#   y: SpatialPolygonsDataFrame
# Returns:
# SpatialPointsDataFrame with appended table of polygon attributes

  # Set up overlay with new column of join IDs in x
  z <- overlay(y, x)

  # Bind captured data to points dataframe
  x2 <- cbind(x, z)

  # Make it back into a SpatialPointsDataFrame 
  # Account for different coordinate variable names 
  if(("coords.x1" %in% colnames(x2)) & ("coords.x2" %in% colnames(x2))) {
    coordinates(x2) <- ~coords.x1 + coords.x2  
  } else if(("x" %in% colnames(x2)) & ("x" %in% colnames(x2))) {
    coordinates(x2) <- ~x + y 
  }

  # Reassign its projection if it has one
  if(is.na(CRSargs(x@proj4string)) == "FALSE") {
    x2@proj4string <- x@proj4string  
  }
  return(x2)
}


test<-IntersectPtWithPoly (xy.map,manzana.map)

3

प्वाइंट पैटर्न विश्लेषण का उदाहरण:

#Load library
library(spatstat) 
#create some coordinates        
x=c(78,120,150,17,20,402) 
#prepare the window range      
y=c(70,103,100,205,200,301)
win=owin(range(x),range(y)) 
#create the point pattern
p <- ppp(x,y,window=win)
#Plot it
plot(p) 

एक बिंदु पैटर्न बनाता है और इसे चित्रित करता है। Spatstat पैकेज भौगोलिक डेटा का विश्लेषण करने के लिए कार्यों की एक संख्या है। यहाँ कुछ स्पैटस्टैट ट्यूटोरियल दिए गए हैं :


1

सुनिश्चित नहीं है कि यह "ट्रिक" के रूप में योग्य है, लेकिन मैं acsपैकेज के संयोजन का एक बहुत बड़ा प्रशंसक हूं (अमेरिकी जनगणना डेटा का चयन करने के लिए) और leafletपैकेज (इंटरैक्टिव जावास्क्रिप्ट मानचित्र बनाने के लिए जिसे ऑनलाइन होस्ट किया जा सकता है)।

यह ट्यूटोरियल इन दोनों पैकेजों को एक साथ उपयोग करने के लाभ को दर्शाता एक उत्कृष्ट काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.