Bivariate Ripley's K फ़ंक्शन को कैसे लागू करें?


9

संलग्न छवि लाल पाइन के साथ एक वन गैप दिखाती है जिसे सर्कल के रूप में दर्शाया गया है और सफेद पाइन को क्रॉस के रूप में दर्शाया गया है। मुझे यह निर्धारित करने में दिलचस्पी है कि देवदार के पेड़ों की दो प्रजातियों के बीच एक सकारात्मक या नकारात्मक जुड़ाव है (यानी वे एक ही क्षेत्रों में बढ़ रहे हैं या नहीं)। मैं आर स्पेसटैट पैकेज में Kcross और Kmulti से अवगत हूं। हालांकि, चूंकि मेरे पास विश्लेषण करने के लिए 50 अंतराल हैं और मैं आर की तुलना में अजगर में प्रोग्रामिंग से अधिक परिचित हूं, इसलिए मैं आर्कगिस और अजगर का उपयोग करके एक पुनरावृत्त दृष्टिकोण ढूंढना चाहूंगा। मैं आर समाधानों के लिए भी खुला हूं।

मैं एक Bivariate Ripley के K फ़ंक्शन को कैसे लागू कर सकता हूं?

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


4
अपनी दूसरी जांच के लिए, आप इस उत्तर से कुछ प्रेरणा प्राप्त कर सकते हैं । पायथन में लेबल का फेरबदल आसान होना चाहिए। पायथन में स्थानिक आँकड़ों के लिए आप PySAL को देखना चाहते हैं ।
मन्नीग डेस

जवाबों:


8

ईएसआरआई प्रलेखन के पीछे के कोनों में बहुत खोज करने के बाद, मैंने निष्कर्ष निकाला है कि आर्कपी / आरकेजीआईएस में एक बीवरिएट रिप्ले के के फ़ंक्शन को चलाने का कोई उचित तरीका नहीं है। हालाँकि, मुझे R का उपयोग करके एक समाधान मिला है:

# Calculates an estimate of the cross-type L-function for a multitype point pattern.
library(maptools)
library(spatstat)
library(sp)

# Subset certain areas within a points shapefile.  In this case, features are grouped by gap number
gap = 1

# Read the shapefile
sdata = readShapePoints("C:/temp/GapPoints.shp")  #Read the shapefile
data = sdata[sdata$SITE_ID == gap,]  # segregate only those points in the given cluster

# Get the convex hull of the study area measurements
gapdata = readShapePoints("C:/temp/GapAreaPoints_merged.shp")  #Read the shapefile that is used to estimate the study area boundary
data2 = gapdata[gapdata$FinalGap == gap,]  # segregate only those points in the given cluster
whole = coordinates(data2) # get just the coords, excluding other data
win = convexhull.xy(whole) # Convex hull is used to get the study area boundary
plot(win)

# Converting to PPP
points = coordinates(data) # get just the coords, excluding other data
ppp = as.ppp(points, win) # Convert the points into the spatstat format
ppp = setmarks(ppp, data$SPECIES) # Set the marks to species type YB or EH
summary(ppp) # General info about the created ppp object
plot(ppp) # Visually check the points and bounding area

# Plot the cross type L function
# Note that the red and green lines show the effects of different edge corrections
plot(Lcross(ppp,"EH","YB"))

# Use the Lcross function to test the spatial relationship between YB and EH
L <- envelope(ppp, Lcross, nsim = 999, i = "EH", j = "YB")
plot(L)

3
इसके अलावा FYI के स्थानिक पुस्तकालय में Bivariate Ripley's K का कार्यान्वयन है। बिंदुओं के उत्तल पतवार के माध्यम से अध्ययन क्षेत्र को परिभाषित करना अनुचित है, रिपर्स फ़ंक्शन और उद्धृत साहित्य देखें।
एंडी डब्ल्यू

2
ध्यान दें कि आप शून्य के आसपास शून्य अपेक्षा को मानकीकृत कर रहे हैं और इस प्रकार बेसाग-एल आँकड़ा प्राप्त कर रहे हैं।
जेफरी इवांस

6

आर्कटिक बॉक्स में स्पैटियल स्टैटिस्टिक्स - एनालिसिसिंग पैटर्न टूलसेट के तहत मल्टी-डिस्टेंस स्पेसियल कलस्टर एनालिसिस (Ripleys K Function) नामक एक अंतर्निहित स्क्रिप्ट टूल है । यदि आप इसके गुणों में जाते हैं और स्रोत टैब में उपयोग की गई स्क्रिप्ट का पता लगाते हैं, तो आप उपकरण के स्रोत कोड को पढ़ सकते हैं।


कैसे आर्क में एक bivariate फ़ंक्शन के रूप में K चलाने के लिए कोई विचार, यदि संभव हो तो?
हारून

1
मुझे यकीन है कि यह संभव है, मैं आपको यह नहीं बता सकता कि यह कैसे करना है। क्या आपने बिल्ट-इन टूल के सोर्स कोड को देखा है कि क्या संशोधन करने की आवश्यकता है?
ब्लाह 238

स्रोत कोड बहुत तीव्र दिखता है। मैंने R समाधानों का पता लगाने का विकल्प चुना है।
हारून

3
मैं वास्तव में ArcGIS पायथन कोड को संशोधित करने की कोशिश कर परेशान नहीं करेगा। यह स्पेगेटी कोड सबसे अच्छा है और सही महत्व परीक्षण नहीं करता है। बिवरिएट बिंदु प्रक्रिया की समस्याओं के लिए, मोंटे कार्लो महत्व परीक्षण करना विशेष रूप से महत्वपूर्ण है, जो "लिफाफा" फ़ंक्शन के साथ आर में उपलब्ध है।
जेफरी इवांस

1
धन्यवाद जेफरी, मुझे नहीं पता कि मैं क्या सोच रहा था कि कोई भी ईएसआरआई स्रोत कोड को देखने की सिफारिश कर रहा है :)
blah238
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.