Làm thế nào để thực hiện chức năng K của Ripley?


9

Hình ảnh đính kèm cho thấy một khoảng trống rừng với cây thông đỏ được biểu thị dưới dạng hình tròn và cây thông trắng được biểu thị là hình chữ thập. Tôi quan tâm đến việc xác định xem có mối liên hệ tích cực hay tiêu cực giữa hai loài cây thông (tức là chúng có mọc ở cùng một khu vực hay không). Tôi biết về Kcross và Kmulti trong gói R spatstat. Tuy nhiên, vì tôi có 50 khoảng trống để phân tích và quen thuộc với lập trình trong python hơn R, tôi muốn tìm một cách tiếp cận lặp lại bằng ArcGIS và python. Tôi cũng mở cho các giải pháp R.

Làm cách nào tôi có thể triển khai chức năng K của Ripley?

nhập mô tả hình ảnh ở đây


4
Đối với yêu cầu thứ hai của bạn, bạn có thể thu được một số cảm hứng từ câu trả lời này . Việc xáo trộn các nhãn phải dễ dàng trong Python. Đối với các số liệu thống kê không gian trong Python, bạn có thể muốn xem PySAL .
MannyG

Câu trả lời:


8

Sau nhiều tìm kiếm ở các góc sau của tài liệu ESRI, tôi đã kết luận rằng không có cách nào hợp lý để chạy hàm K của Ripley trong Arcpy / ArcGIS. Tuy nhiên, tôi đã tìm thấy một giải pháp sử dụng 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
Ngoài ra FYI, thư viện spatstat có triển khai bivariate K., không phù hợp để xác định khu vực nghiên cứu thông qua vỏ lồi của các điểm, xem chức năng ripras và tài liệu được trích dẫn.
Andy W

2
Lưu ý rằng bạn đang chuẩn hóa kỳ vọng null xung quanh 0 và do đó có được thống kê Besag-L.
Jeffrey Evans

6

Có một công cụ tập lệnh tích hợp có tên là Phân tích cụm không gian đa khoảng cách (Hàm Riplys K) trong bộ công cụ Thống kê không gian - Phân tích mẫu trong ArcToolbox. Bạn có thể đọc mã nguồn của công cụ nếu bạn đi vào thuộc tính của nó và tìm tập lệnh được sử dụng trong tab Nguồn.


Bất cứ ý tưởng nào về cách chạy K như là một hàm bivariate trong Arc, nếu có thể?
Aaron

1
Tôi chắc chắn là có thể, tôi không thể nói cho bạn biết làm thế nào để làm điều đó. Bạn đã xem mã nguồn của công cụ tích hợp để xem những sửa đổi nào cần được thực hiện chưa?
blah238

Mã nguồn trông khá dữ dội. Tôi đã chọn khám phá các giải pháp R.
Aaron

3
Tôi thực sự không bận tâm đến việc cố gắng sửa đổi mã ArcGIS Python. Đó là mã spaghetti tốt nhất và không thực hiện kiểm tra ý nghĩa chính xác. Đối với các vấn đề về quy trình điểm bivariate, điều đặc biệt quan trọng là thực hiện kiểm tra ý nghĩa Monte Carlo, có sẵn trong R với chức năng "bao bọc".
Jeffrey Evans

1
Cảm ơn Jeffrey, tôi không biết tôi đang nghĩ gì khi khuyên mọi người nên xem mã nguồn ESRI :)
blah238
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.