Po co nam takie wskaźniki?

Rodzaje stosowanych indeksów:

K-funkcja Ripley’a dla różnych rodzajów koncentracji firm

Przykłady rozkładu firm

Przykłady rozkładu firm

Wartości K-funkcji Ripley’a

Wartości K-funkcji Ripley’a

Indeks SPAG

Reprezentacja firm dla indeksu SPAG

Reprezentacja firm dla indeksu SPAG

Coverage

Distance

Overlap

Wyliczenie indeksu SPAG

Wczytanie danych - mapa jest przetrzymywana w postaci pliku shapefile, zaś informacje nt. firm jako plik csv.

library(rgdal)
shp <- readOGR("C:\\Users\\Max\\Desktop\\SPAG\\SPAG\\materials\\koncentracja\\mapa6wybr.shp","mapa6wybr")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\Max\Desktop\SPAG\SPAG\materials\koncentracja\mapa6wybr.shp", layer: "mapa6wybr"
## with 6 features
## It has 29 fields
df <- read.csv("C:\\Users\\Max\\Desktop\\INDEKS SPAG SEMINARIUM\\zmysloneFirmy.csv", sep=";",header=TRUE,row.names=NULL)

plot(shp)
points(df[,1],df[,2], pch=".")

Narysowanie obszaru razem z firmami:

library("rgeos")
findRadius <- function(vectorOfEmployment, area){
  return (sqrt(area/(sum(vectorOfEmployment)*pi)))
}

area <- gArea(shp)
rBase <- findRadius(df[,3],area)
vectorOfRadius <- sqrt(df[,3])*rBase

print(df[,3])
##  [1]   5   8   2  13 123   6   3  75   4   2   6   8  16
print(vectorOfRadius)
##  [1] 0.07481575 0.09463527 0.04731764 0.12063678 0.37107406 0.08195655
##  [7] 0.05795203 0.28976016 0.06691724 0.04731764 0.08195655 0.09463527
## [13] 0.13383449
xy <- cbind(as.numeric(df[,1]), as.numeric(df[,2])) 
xySP<- SpatialPoints(xy) # wymagane do gBuffer
circles <-gBuffer(xySP, quadsegs=150, byid=TRUE, width=vectorOfRadius)

projekcja<-"+proj=longlat +datum=WGS84"
region<-spTransform(shp, CRS(projekcja))

# Narysowanie kółek
ramka<-as.matrix(region@bbox)
#plot(region)
plot(circles, xlim=c(ramka[1,1]-0.6, ramka[1,2]), ylim=c(ramka[2,1], ramka[2,2]))
plot(region, add=TRUE)
points(as.numeric(as.character(df[,1])),as.numeric(as.character(df[,2])), pch=".")

theoreticalCompanies <- spsample(region, nrow(df), type="regular")

plot(region)
plot(theoreticalCompanies, add=TRUE)

theoreticalDF <- as.data.frame(theoreticalCompanies)
odle.teoret.sel<-dist(as.matrix(theoreticalCompanies@coords))

mean(dist(as.matrix(df[1:2])))/mean(odle.teoret.sel)
## [1] 0.1539606

Wyliczenie współrzędnych indeksu Overlap:

library("maptools")
unionArea <- unionSpatialPolygons(circles,rep(1,13))
gArea(unionArea)/gArea(circles)
## [1] 0.4538745