Hi Sohrab,

I don't think there is a method for weighted centroids specifically.
What if you get the centroid coordinates of each "block" using gCentroid() and calculate a weighted average of the coordinates of every centroid? See an example below assuming your blocks are a SpatialPolygonsDataFrame. It's quite a simple approach; not sure how valid it would be with more complex features though (eg: with holes, etc)...

Cheers,
Loïc

library(rgeos)
library(sp)

# Generate SpatialPolygonsDataFrame object (blocks with population data)
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
sp <- spPolygons(cds1, cds2)
spdf <- SpatialPolygonsDataFrame(sp, data.frame(pop = c(25,32)))

# Get centroid of every polygon
centroids <- gCentroid(spdf, byid = TRUE)

# Get a dataframe with coordinates of centroids and weights
df <- cbind(data.frame(centroids), spdf@data)

# SpatialPoints corresponding to Weighted centroid
SpatialPoints(data.frame(x = weighted.mean(df$x, df$pop), y = weighted.mean(df$y, df$pop)))

On 02/21/2016 09:10 PM, Sohrab Abbasnejad via R-sig-Geo wrote:
Dear all,
I have a set of spatial polygons and several blocks of population (with fixed area but a different 
number of people in each). I have used the "over" method from "sp" package to 
identify the blocks which are located inside these polygons.
Now, utilizing R, I wish to assign to each of these polygons a centroid in 
terms of the population using some kind of distance (Euclidean/shortest path, 
etc.). In fact, I am looking for the exact coordinates of a population-weighted 
centroid for each of my polygons.
Any ideas would be welcome. I truly appreciate your time.
Sincerely,Sohrab
        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo


_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to