Calculate weight accumulation for each edge in directed graph (river network)Merging two network maps in networkx by unique labelsNetworkX multi-directed graph possible?Can’t get NetworkX to read my weighted network (+haven’t found a way to import node attibutes from a file)Add Nodes with attributes from a .txt file with multiple delimiters networkx/pandasWrite shapefile in NetworkX using write_shpHow to visualize (dendrogram) a dictionary of hierarchical items?Calculating centrality measures using NetworkX for a bipartite graph and Gephito show the weights of edges in a projected networkUse NetworkX to find cycles in MultiDiGraph imported from shapefileAutomatically calculate distance between nodes in a Graph by using Networkx or other Python Framework
Rusty Chain and back cassette – Replace or Repair?
Is it safe to keep the GPU on 100% utilization for a very long time?
Was Mohammed the most popular first name for boys born in Berlin in 2018?
Which spells are in some way related to shadows or the Shadowfell?
How can I test a shell script in a "safe environment" to avoid harm to my computer?
What happens when the drag force exceeds the weight of an object falling into earth?
Locked my sa user out
What can cause an unfrozen indoor copper drain pipe to crack?
Why Faces eat each other?
My perfect evil overlord plan... or is it?
How can I make parentheses stick to formula?
How did Captain Marvel know where to find these characters?
Has there been evidence of any other gods?
And now you see it II (the B side)
Double underlining a result in a system of equations with calculation steps on the right side
Can you turn a recording upside-down?
Can I bring back Planetary Romance as a genre?
What replaces x86 intrinsics for C when Apple ditches Intel CPUs for their own chips?
How is Arya still alive?
What Firewall Port is required for snap package management?
Why is it wrong to *implement* myself a known, published, widely believed to be secure crypto algorithm?
Do Rabbis admit emotional involvement in their rulings?
How to explain intravenous drug abuse to a 6-year-old?
What's the "magic similar to the Knock spell" referenced in the Dungeon of the Mad Mage adventure?
Calculate weight accumulation for each edge in directed graph (river network)
Merging two network maps in networkx by unique labelsNetworkX multi-directed graph possible?Can’t get NetworkX to read my weighted network (+haven’t found a way to import node attibutes from a file)Add Nodes with attributes from a .txt file with multiple delimiters networkx/pandasWrite shapefile in NetworkX using write_shpHow to visualize (dendrogram) a dictionary of hierarchical items?Calculating centrality measures using NetworkX for a bipartite graph and Gephito show the weights of edges in a projected networkUse NetworkX to find cycles in MultiDiGraph imported from shapefileAutomatically calculate distance between nodes in a Graph by using Networkx or other Python Framework
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I have a shapefile of river network with attributes of stream order and weight (sum of trash associated with this stream). How to calculate an accumulation of weights downstream using python and networkx module?
I have looking for appropriate instrument in networkx, but hadn't found or maybe I have something misunderstood in references.
python networkx
add a comment |
I have a shapefile of river network with attributes of stream order and weight (sum of trash associated with this stream). How to calculate an accumulation of weights downstream using python and networkx module?
I have looking for appropriate instrument in networkx, but hadn't found or maybe I have something misunderstood in references.
python networkx
add a comment |
I have a shapefile of river network with attributes of stream order and weight (sum of trash associated with this stream). How to calculate an accumulation of weights downstream using python and networkx module?
I have looking for appropriate instrument in networkx, but hadn't found or maybe I have something misunderstood in references.
python networkx
I have a shapefile of river network with attributes of stream order and weight (sum of trash associated with this stream). How to calculate an accumulation of weights downstream using python and networkx module?
I have looking for appropriate instrument in networkx, but hadn't found or maybe I have something misunderstood in references.
python networkx
python networkx
asked Mar 23 at 8:25
Andrew KarpachevskiyAndrew Karpachevskiy
62
62
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I have resolved this problem using algorithm Ancestors. It seems to work with nodes and return the set of nodes, which we can summarize. It is not very convinient, because we need to obtain weights from streams to nodes and then associate them back from nodes to streams. But it's really working.
import networkx as nx
import os
dir = r'd:YandexDiskProjectsBali'
os.chdir(dir)
G = nx.read_shp(r'Rivers_network.shp')
nodes = nx.nodes(G)
edges = nx.edges(G)
total_dict = nx.get_edge_attributes(G, 'Total')
for node in nodes:
ancestors = list(nx.ancestors(G, node))
sum_weight = 0
for coords in ancestors:
for edge in edges:
if tuple([edge[0][0], edge[0][1]]) == tuple([coords[0], coords[1]]):
sum_weight += int(total_dict[edge])
print(sum_weight)
for edge in edges:
if edge[0] == node:
accum_edge = edge: sum_weight
nx.set_edge_attributes(G, accum_edge, 'Accum')
nx.write_shp(G, dir)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55311963%2fcalculate-weight-accumulation-for-each-edge-in-directed-graph-river-network%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I have resolved this problem using algorithm Ancestors. It seems to work with nodes and return the set of nodes, which we can summarize. It is not very convinient, because we need to obtain weights from streams to nodes and then associate them back from nodes to streams. But it's really working.
import networkx as nx
import os
dir = r'd:YandexDiskProjectsBali'
os.chdir(dir)
G = nx.read_shp(r'Rivers_network.shp')
nodes = nx.nodes(G)
edges = nx.edges(G)
total_dict = nx.get_edge_attributes(G, 'Total')
for node in nodes:
ancestors = list(nx.ancestors(G, node))
sum_weight = 0
for coords in ancestors:
for edge in edges:
if tuple([edge[0][0], edge[0][1]]) == tuple([coords[0], coords[1]]):
sum_weight += int(total_dict[edge])
print(sum_weight)
for edge in edges:
if edge[0] == node:
accum_edge = edge: sum_weight
nx.set_edge_attributes(G, accum_edge, 'Accum')
nx.write_shp(G, dir)
add a comment |
I have resolved this problem using algorithm Ancestors. It seems to work with nodes and return the set of nodes, which we can summarize. It is not very convinient, because we need to obtain weights from streams to nodes and then associate them back from nodes to streams. But it's really working.
import networkx as nx
import os
dir = r'd:YandexDiskProjectsBali'
os.chdir(dir)
G = nx.read_shp(r'Rivers_network.shp')
nodes = nx.nodes(G)
edges = nx.edges(G)
total_dict = nx.get_edge_attributes(G, 'Total')
for node in nodes:
ancestors = list(nx.ancestors(G, node))
sum_weight = 0
for coords in ancestors:
for edge in edges:
if tuple([edge[0][0], edge[0][1]]) == tuple([coords[0], coords[1]]):
sum_weight += int(total_dict[edge])
print(sum_weight)
for edge in edges:
if edge[0] == node:
accum_edge = edge: sum_weight
nx.set_edge_attributes(G, accum_edge, 'Accum')
nx.write_shp(G, dir)
add a comment |
I have resolved this problem using algorithm Ancestors. It seems to work with nodes and return the set of nodes, which we can summarize. It is not very convinient, because we need to obtain weights from streams to nodes and then associate them back from nodes to streams. But it's really working.
import networkx as nx
import os
dir = r'd:YandexDiskProjectsBali'
os.chdir(dir)
G = nx.read_shp(r'Rivers_network.shp')
nodes = nx.nodes(G)
edges = nx.edges(G)
total_dict = nx.get_edge_attributes(G, 'Total')
for node in nodes:
ancestors = list(nx.ancestors(G, node))
sum_weight = 0
for coords in ancestors:
for edge in edges:
if tuple([edge[0][0], edge[0][1]]) == tuple([coords[0], coords[1]]):
sum_weight += int(total_dict[edge])
print(sum_weight)
for edge in edges:
if edge[0] == node:
accum_edge = edge: sum_weight
nx.set_edge_attributes(G, accum_edge, 'Accum')
nx.write_shp(G, dir)
I have resolved this problem using algorithm Ancestors. It seems to work with nodes and return the set of nodes, which we can summarize. It is not very convinient, because we need to obtain weights from streams to nodes and then associate them back from nodes to streams. But it's really working.
import networkx as nx
import os
dir = r'd:YandexDiskProjectsBali'
os.chdir(dir)
G = nx.read_shp(r'Rivers_network.shp')
nodes = nx.nodes(G)
edges = nx.edges(G)
total_dict = nx.get_edge_attributes(G, 'Total')
for node in nodes:
ancestors = list(nx.ancestors(G, node))
sum_weight = 0
for coords in ancestors:
for edge in edges:
if tuple([edge[0][0], edge[0][1]]) == tuple([coords[0], coords[1]]):
sum_weight += int(total_dict[edge])
print(sum_weight)
for edge in edges:
if edge[0] == node:
accum_edge = edge: sum_weight
nx.set_edge_attributes(G, accum_edge, 'Accum')
nx.write_shp(G, dir)
answered Mar 24 at 10:22
Andrew KarpachevskiyAndrew Karpachevskiy
62
62
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55311963%2fcalculate-weight-accumulation-for-each-edge-in-directed-graph-river-network%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown