Created
December 5, 2023 00:54
-
-
Save Jaya472/db0945e9c2016fbd2c206d7ab7254c69 to your computer and use it in GitHub Desktop.
Create a weighted network using networkx library
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import networkx as nx | |
#for a 14 node network with connections as below. Each tuple represents a connected edge | |
edge_list = [(1, 2),(1,3),(1,8),(2,3),(2,4),(3,6),(4,5),(4,11),(5,6),(5,7),(6,10),(6,14),(7,8),(8,9),(9,10),(9,12),(9,13),(11,12),(11,13),(12,14),(14,13)] | |
G = nx.Graph() #to create the graph structure with unidirectional edges | |
#Use the below DiGraph() for bi-directional edges | |
# G = nx.DiGraph() | |
G.add_edges_from([(1, 2, {"weight": 2038}),(1,3, {"weight": 4008}),(1,8, {"weight": 7044}),(2,3, {"weight": 687}),\ | |
(2,4, {"weight": 1153}),(3,6, {"weight":707 }),(4,5, {"weight":9080 }),(4,11, {"weight":1479 }),\ | |
(5,6, {"weight":6001 }),(5,7, {"weight":5049 }),(6,10, {"weight":14016 }),(6,14, {"weight":8309 }),\ | |
(7,8, {"weight": 5045}),(8,9, {"weight":163 }),(9,10, {"weight":1987 }),(9,12, {"weight":8305 }),\ | |
(9,13, {"weight":1221 }),(11,12, {"weight":1081 }),(11,13, {"weight":1676 }),(12,14, {"weight":3031 }),\ | |
(14,13, {"weight":6088 })]) | |
#If using a DiGraph(), accordingly define the edges. E.g. if 1,2 has a distance of 2038 km and 2,1 also has 2308 km distance | |
#You can get the edge weights as below for use in any other function | |
edge_weights= list((nx.get_edge_attributes(G, "weight")).values() ) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment