Logo
0.5.0
  • Quickstart
  • Background
  • Installation Instructions
  • Examples
  • Maskmaking
  • Shoreline creation
  • Link and Node Dictionaries
    • The Links Dictionary
      • Links Key Values
      • Accessing Link Values
    • The Nodes Dictionary
      • Nodes Key Values
      • Accessing Node Values
  • Known issues
  • Feature Development
  • Contributing
  • RivGraph in the wild
  • API Reference
RivGraph
  • Link and Node Dictionaries
  • View page source

Link and Node Dictionaries

After defining a network in RivGraph with rivgraph.classes.rivnetwork.compute_network(), two dictionaries will be created: links and nodes. This page of the documentation will describe the keys present in these dictionaries.

Note

Not all dictionary key:value pairs are the same length as the number of links or nodes. Some dictionary key:value pairs contain meta-information about the network, or information that only applies to a subset of links/nodes. When the number of key:value pairs matches the number of links or nodes, then they are aligned such that the i’th index of any key:value pair refers to the same link or node.

  • The Links Dictionary

  • The Nodes Dictionary

The Links Dictionary

Links Key Values

N represents the number of links.

Generic Link Keys

key

type

length

description

id

orderedSet

N

unique link id assigned to each link not in a particular order and not guaranteed to skip some id’s

conn

list of 2-element lists

N

node ids at link endpoints. After running directionality these are in order i.e. [us_nodeid ds_nodeid]

idx

list of lists of ints

N

list of the pixel coordinates in index format (via np.ravel_index using the shape of the input binary image)

n_networks

int

1

number of networks identified

parallels

list of lists

varies

each sublist contains all link ids of links forming a parallel set; i.e. links that start and end at the same node.

wid_pix

list of np.arrays

N

width at each pixel of each link (pixels defined by idx)

len

list

N

length of each link

wid

list

N

average width of each link

len_adj

list

N

length of each link adjusted for accuracy

wid_adj

list

N

width of each link adjusted for accuracy

Directionality-specific Keys

key

type

length

description

certain

np.array

N

1 if the link’s direction has been set else 0

certain_order

np.array

N

describes the order in which links were set. Lower certain_order corresponds to earlier-set links.

certain_alg

np.array

N

algorithm id of the algorithm ultimately used to set the link direction

guess

list of lists

N

guesses of the upstream node id for each link; corresponds to guess_alg

guess_alg

list of lists

N

algorithm id used to compute guess; corresponds to guess

Braided River Exclusive Keys

key

type

length

description

maxang

np.array

N

???

cldists

np.array

N

number of mesh-generated transects each link intersects

clangs

np.array

N

angle of the link with respect to the valley centerline in radians

wid_pctdiff

np.array

N

percent difference between the widest and narrowest pixels in a link

Delta Exclusive Keys

key

type

length

description

slope

list

N

slope computed from synthetic DEM; note that this has no physical basis and should not be interpreted as actual link slope

Accessing Link Values

For example, if you know the link_id of the link you are interested in, you can get its index with links['id'].index(link_id).

The Nodes Dictionary

Nodes Key Values

M represents the number of nodes.

Generic Node Keys

key

type

length

description

id

orderedSet

M

unique node id assigned to each node not in a particular order and not guaranteed to skip some id’s

conn

list of lists

M

link ids of all links connected to this node

idx

list of lists of ints

M

list of the pixel coordinates in index format (via np.ravel_index using the shape of the input binary image)

inlets

list of ints

varies

node ids of all nodes identified as inlets

outlets

list of ints

varies

node ids of all nodes identified as outlets

int_angle

np.array

M

most interior angle of links connected to each node in degrees; computed via rivgraph.ln_utils.junction_angles()

jtype

np.array

M

junction type; either ‘c’ (confluence) or ‘b’ (bifurcation); computed via rivgraph.ln_utils.junction_angles()

width_ratio

np.array

M

ratio of wider link/narrower link for the two links used to compute int_angle; computed via rivgraph.ln_utils.junction_angles()

Accessing Node Values

For example, if you wish to find the links connected to node_id == 66, you can use nodes['conn'][nodes['id'].index(66)].

Previous Next

© Copyright 2020, J. Schwenk & J. Hariharan.

Built with Sphinx using a theme provided by Read the Docs.