Skip to content

Add networkx conversion from momepy street network? #80

@songololo

Description

@songololo

@martinfleis

I'm wondering about adding a conversion function for a momepy street network GeoDataFrame to cityseer compatible networkx MultiGraph .

Here is an initial sketch of what this might look like: momepy_to_cityseer

This would mainly be intended for people who want to:

  • run street network centralities on larger street networks
  • calculate network centralities using cityseer's methods which adapt the shortest-path algorithms to work for some situations which aren't necessarily covered by e.g. networkX (e.g. shortest path sidestepping issue)
  • calculate landuse accessibilities over the street network (weighted and unweighted)
  • calculate mixed-uses over the street network (weighted and unweighted)
  • aggregate statistics (e.g. building form metrics from momepy) using the street network as a backbone

I'm curious what your thoughts are on things to take into account so that this is useful, e.g.

  • would there be use cases where people might want to do a round-trip - e.g. momepy GeoDataFrame to cityseer then back to momepy? If so, the edge ids would need to be chained through. The drawback to a round-trip is that network cleaning or decomposition can't be done without losing the association.
  • the current conversion function doesn't take primal or dual into account, it just builds a network from the edges. This is probably a non-issue unless doing a round-trip as people can simply manipulate the graphs either end depending on what they want to do.
  • would there be more interest in going straight from a GeoDataFrame or would there be cases where it is better to go from a momepy formatted networkx Graph?

There are probably other things but that's all that comes to mind for now...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions