Ejemplo n.º 1
0
# E:\code\connmod\branches\ch\data\net2010c\network_trunc_lc.txt "2010\truncated\edges - trunc lc"

import sys, string, os, arcgisscripting, csv, networkx as NX, cm

# Create the Geoprocessor object
GP = cm.gp_init()
log = '%s/log.txt' % os.path.dirname(sys.argv[0])
cm.log_init(log, 'debug')

# Script arguments...
network_txt = sys.argv[1]
edges_lyr = sys.argv[2]

# read in network
cm.log('Reading input network')
G = cm.read_network(network_txt)
edges_shp = G.config[('shapefile', 'edges')]
lc_txt = G.config[('leastcostpaths', 'txt')]

## debug
##edges_lyr = 'edges_lyr'; GP.MakeFeatureLayer(edges_shp, edges_lyr)
##GP.SelectLayerByAttribute_management(edges_lyr, "NEW_SELECTION", "\"EdgeID\" IN (6693)")

# get selected edges
cur = GP.SearchCursor(edges_lyr)
row = cur.Next()
e_selected = []
while row:
    e_selected.append(row.GetValue('EdgeID'))
    row = cur.Next()
cm.log('Selected %d edges: %s' %
Ejemplo n.º 2
0
GP = cm.gp_init()

# G: = \\nicknet.env.duke.edu\network\research\lel\GraphGroup
# G:\chapel_hill\network\full_lc\network_lc.txt
# easy_install -U networkx # got networkx-0.35.1
# E:\code\connmod\branches\ch\data\net2010\network_euc_na.txt

# get arguments
in_network_txt = sys.argv[1]

# initialize logging
log = '%s/log_centrality.txt' % os.path.dirname(in_network_txt)
cm.log_init(log)

cm.log('Reading network configuration')
F = cm.read_network(in_network_txt)  # read in full network
nodes_shp = F.config[('shapefile', 'nodes')]
lcpaths_txt = F.config[('leastcostpaths', 'txt')]
G = NX.Graph()  # create fresh graph

cm.log('Reading least-cost paths into fresh graph with only centroids')
rdr = csv.reader(open(lcpaths_txt, 'r'))
headers = rdr.next()
for row in rdr:
    c1, c2, w = row[0:3]
    G.add_edge(int(c1), int(c2), weight=int(w))

cm.log(
    'Calculating centrality metrics (only works with NetworkX 0.35.1 and higher)'
)
btwn = NX.centrality.betweenness_centrality(G,
Ejemplo n.º 3
0
in_network_txt = sys.argv[1]
out_network_fld = sys.argv[2]
out_network_txt = sys.argv[3]

# setup vars for out_network config
out_network = os.path.splitext(out_network_txt)[0]
out_edgelist = out_network + '_edgelist.txt'
out_nodeattr = out_network + '_nodeattr.csv'
out_edgeattr = out_network + '_edgeattr.csv'

# logging
log = '%s/log.txt' % os.path.dirname(out_network)
cm.log_init(log, 'debug')

cm.log('Reading input network')
G = cm.read_network(in_network_txt)

# PROBLEM: patches sharing same node, ie edge
#Identity_analysis full\nodes patches D:\code\connmod\branches\ch\data\network\full_2\nodes_identity.shp ALL "" KEEP_RELATIONSHIPS

cm.log('Removing existing internal nodes (%d) and edges (%d)' %
       (len(G.nbytype['internal']), len(G.ebytype['internal'])))
H = G.copy()
H.delete_edges_from(G.ebytype['internal'])
H.delete_nodes_from(G.nbytype['internal'])
cm.copy_g_attr(G, H)

cm.log('Adding edges from centroids (%d) to perimeter nodes (%d)' %
       (len(G.nbytype['centroid']), len(G.nbytype['perimeter'])))
centroids = G.nbytype['centroid']
patch_centroids = {}