วิธีการใช้ฟังก์ชั่น K ของ bivariate Ripley?


9

ภาพที่แนบมาแสดงให้เห็นช่องว่างของป่าที่มีต้นสนสีแดงแสดงเป็นวงกลมและต้นสนสีขาวที่แสดงเป็นรูปกากบาท ฉันสนใจที่จะพิจารณาว่ามีความสัมพันธ์เชิงบวกหรือเชิงลบระหว่างต้นสนสองสายพันธุ์หรือไม่ (เช่นมีการเติบโตในพื้นที่เดียวกันหรือไม่) ฉันตระหนักถึง Kcross และ Kmulti ในแพ็คเกจ R spatstat อย่างไรก็ตามเนื่องจากฉันมี 50 ช่องว่างในการวิเคราะห์และคุ้นเคยกับการเขียนโปรแกรมใน python มากกว่า R ฉันจึงต้องการหาวิธีการวนซ้ำโดยใช้ ArcGIS และ python ฉันยังเปิดให้โซลูชั่น R

ฉันจะใช้ฟังก์ชั่น K ของริบลีย์ bivariate ได้อย่างไร?

ป้อนคำอธิบายรูปภาพที่นี่


4
สำหรับคำถามที่สองของคุณคุณอาจรวบรวมแรงบันดาลใจจากคำตอบนี้ การสับฉลากควรง่ายใน Python สำหรับสถิติเชิงพื้นที่ในหลามคุณอาจต้องการที่จะดูที่PySAL
MannyG

คำตอบ:


8

หลังจากค้นหามากในมุมด้านหลังของเอกสาร ESRI ฉันได้ข้อสรุปว่าไม่มีวิธีที่สมเหตุสมผลในการเรียกใช้ฟังก์ชัน K ของ Ripley ใน Arcpy / ArcGIS อย่างไรก็ตามฉันพบวิธีแก้ปัญหาโดยใช้ 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 ห้องสมุด spatstat มีการดำเนินการของสองตัวแปรของริบลีย์เคมันไม่เหมาะสมที่จะกำหนดพื้นที่ศึกษาผ่านเปลือกนูนของจุดให้ดูที่riprasทำงานและอ้างวรรณกรรม
Andy W

2
โปรดทราบว่าคุณกำลังกำหนดมาตรฐานความคาดหวังที่เป็นโมฆะรอบศูนย์และทำให้ได้รับสถิติ Besag-L
Jeffrey Evans

6

มีเครื่องมือสคริปต์ในตัวที่เรียกว่าMulti-Distance Spatial Cluster Analysis (Ripleys K Function)ภายใต้Spatial Statistics - การวิเคราะห์ชุดเครื่องมือรูปแบบใน ArcToolbox คุณสามารถอ่านซอร์สโค้ดของเครื่องมือหากคุณเข้าไปในคุณสมบัติและค้นหาสคริปต์ที่ใช้ในแท็บซอร์ส


ความคิดเกี่ยวกับวิธีการใช้ K เป็นฟังก์ชัน bivariate ใน Arc ถ้าเป็นไปได้?
แอรอน

1
ฉันแน่ใจว่าเป็นไปได้ฉันไม่สามารถบอกคุณได้ว่าจะทำอย่างไร คุณได้ดูซอร์สโค้ดสำหรับเครื่องมือในตัวเพื่อดูว่าต้องทำการปรับเปลี่ยนอะไรบ้าง
blah238

ซอร์สโค้ดดูรุนแรงมาก ฉันเลือกสำรวจโซลูชัน R
Aaron

3
ฉันไม่อยากพยายามแก้ไขรหัส ArcGIS Python จริงๆ มันเป็นรหัสสปาเก็ตตี้ที่ดีที่สุดและไม่ได้ทำการทดสอบความสำคัญที่ถูกต้อง สำหรับปัญหาของกระบวนการจุดไบวาเรียมันเป็นสิ่งสำคัญอย่างยิ่งที่จะทำการทดสอบความสำคัญของมอนติคาร์โลซึ่งมีอยู่ใน R ด้วยฟังก์ชั่น "ซอง"
Jeffrey Evans

1
ขอขอบคุณเจฟฟรีย์ผมไม่ทราบว่าสิ่งที่ผมคิดแนะนำให้ดูทุกคนที่อยู่รหัสที่มา ESRI :)
blah238
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.