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;








1















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.










share|improve this question




























    1















    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.










    share|improve this question
























      1












      1








      1








      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.










      share|improve this question














      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 23 at 8:25









      Andrew KarpachevskiyAndrew Karpachevskiy

      62




      62






















          1 Answer
          1






          active

          oldest

          votes


















          0














          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)





          share|improve this answer























            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
            );



            );













            draft saved

            draft discarded


















            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









            0














            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)





            share|improve this answer



























              0














              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)





              share|improve this answer

























                0












                0








                0







                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)





                share|improve this answer













                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)






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 24 at 10:22









                Andrew KarpachevskiyAndrew Karpachevskiy

                62




                62





























                    draft saved

                    draft discarded
















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                    용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

                    155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해