On 10/09/14 16:31, Will Fields wrote:
I'm using v.net.centrality to do some calculations, and I had a question
about how closeness centrality is calculated by the module:
Is the value for closeness centrality actually "farness" (the sum of the
distance from a site in a network to all other sites in the network)?
v.net.centrality is returning large values for closeness in a data
set rather than a decimal between 0 and 1.  I tried to look through the
C code for the module, but I wasn't able to make sense of it.

I think you are right. In its current form, it seems to be more of a measure of "farness".

By inverting the "closeness" variable with a simple

1 / closeness

I get a result that seems more adequate.

But I also don't really understand the calculations in the code. Notably, if farness of a node is (according to the Wikipedia article referenced in the man page) "the sum of its distances to all other nodes", shouldn't it be the sum of the distances of the node to all other nodes, i.e. you should be able to calculate farness using v.net.allpair and then summing the distances by from_node ?

When I use v.net.centrality on a network combining streets_wake and schools_wake from the NC dataset and I calculate the "closeness" (aka farness), I get this for the nodes with the highest values:

 cat |     dist
-----+--------------
  39 | 39769.319852
 128 | 39316.769189
 159 | 38730.565742
  38 | 34311.673453
  59 | 33649.126805
 112 | 33406.022609
 131 | 33080.405319
 140 | 33062.412818
  33 | 32580.971836
 135 | 32183.519299
  77 | 32059.527469
 158 | 32039.010031
 129 | 31501.214954
 103 | 31327.647516
  42 |  31283.00064

But when I calculate all distances with v.net.allpairs and the sum the distances by from_cat, I get

 from_cat |    dist
----------+-------------
       39 | 6254233.946
      128 | 6175455.627
      159 | 6080808.494
      140 |  5498739.16
       33 | 5403162.189
       38 | 5336049.601
      158 | 5322613.245
      112 | 5241168.562
      131 | 5211368.296
       59 | 5201325.561
      103 |  5182372.74
      156 | 5171904.939
      157 | 5116144.746
      143 | 5065893.211
       77 | 5047493.908

i.e. both the values _and_ the order of nodes are different.

Maybe you should file two bugs against v.net.centrality:

1) make closeness the real closeness, i.e. the inverse of farness

2) improve the documentation of the module by explaining the exact calculations of each variable, instead of just referencing a Wikipedia article

Moritz



_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to