Network

class compas.datastructures.Network(name=None, default_node_attributes=None, default_edge_attributes=None)[source]

Bases: compas.datastructures.graph.graph.Graph

Geometric implementation of an edge graph.

Parameters
  • name (str, optional) – The name of the graph. Defaults to “Graph”.

  • default_node_attributes (dict, optional) – Default values for node attributes.

  • default_edge_attributes (dict, optional) – Default values for edge attributes.

Methods

add_edge(u, v[, attr_dict])

Add an edge and specify its attributes.

add_node([key, attr_dict])

Add a node and specify its attributes (optional).

adjacency_matrix([rtype])

Creates a node adjacency matrix from a Network datastructure.

clear()

Clear all the network data.

complement([cls])

Generate the complement network of a network.

connected_edges(key)

Return the edges connected to a node.

connectivity_matrix([rtype])

Creates a connectivity matrix from a Network datastructure.

copy([cls])

Make an independent copy of the data object.

count_crossings()

Count the number of crossings (pairs of crossing edges) in the network.

degree(key)

Return the number of neighbors of a node.

degree_in(key)

Return the numer of incoming neighbors of a node.

degree_matrix([rtype])

Creates a node degree matrix from a Network datastructure.

degree_out(key)

Return the number of outgoing neighbors of a node.

delete_edge(u, v)

Delete an edge from the network.

delete_node(key)

Delete a node from the graph.

edge_attribute(key, name[, value])

Get or set an attribute of an edge.

edge_attributes(key[, names, values])

Get or set multiple attributes of an edge.

edge_coordinates(u, v[, axes])

Return the coordinates of the start and end point of an edge.

edge_direction(u, v)

Return the direction vector of an edge.

edge_length(u, v)

Return the length of an edge.

edge_midpoint(u, v)

Return the location of the midpoint of an edge.

edge_point(u, v[, t])

Return the location of a point along an edge.

edge_sample([size])

Get the identifiers of a set of random edges.

edge_vector(u, v)

Return the vector of an edge.

edges([data])

Iterate over the edges of the network.

edges_attribute(name[, value, keys])

Get or set an attribute of multiple edges.

edges_attributes([names, values, keys])

Get or set multiple attributes of multiple edges.

edges_where(conditions[, data])

Get edges for which a certain condition or set of conditions is true.

edges_where_predicate(predicate[, data])

Get edges for which a certain condition or set of conditions is true using a lambda function.

embed_in_plane([fixed, straightline])

Embed the network in the plane.

find_crossings()

Identify all pairs of crossing edges in a network.

find_cycles([breakpoints])

Find the faces of a network.

from_data(data)

Construct an object of this type from the provided data.

from_edges(edges)

from_json(filepath)

Construct an object from serialized data contained in a JSON file.

from_jsonstring(string)

Construct an object from serialized data contained in a JSON string.

from_lines(lines[, precision])

Construct a network from a set of lines represented by their start and end point coordinates.

from_networkx(graph)

Create a new graph instance from a NetworkX DiGraph instance.

from_nodes_and_edges(nodes, edges)

Construct a network from nodes and edges.

from_obj(filepath[, precision])

Construct a network from the data contained in an OBJ file.

get_any_edge()

Get the identifier of a random edge.

get_any_edges(n)

Get the identifiers of a set of random edges.

get_any_node()

Get the identifier of a random node.

get_any_nodes(n[, exclude_leaves])

Get a list of identifiers of a random set of n nodes.

gkey_key([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding nodes.

gkey_node([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding nodes.

has_edge(u, v[, directed])

Verify if the network contains a specific edge.

has_node(key)

Verify if a specific node is present in the network.

index_key()

Returns a dictionary that maps the indices of a node list to keys in a node dictionary.

index_uv()

Returns a dictionary that maps edges in a list to the corresponding vertex key pairs.

is_connected()

Verify that the network is connected.

is_crossed()

Verify if a network has crossing edges.

is_leaf(key)

Verify if a node is a leaf.

is_node_connected(key)

Verify if a specific node is connected.

is_planar()

Check if the network is planar.

is_planar_embedding()

Verify that a network is embedded in the plane without crossing edges.

is_xy()

Verify that a network lies in the XY plane.

key_gkey([precision])

Returns a dictionary that maps node dictionary keys to the corresponding geometric key up to a certain precision.

key_index()

Returns a dictionary that maps node dictionary keys to the corresponding index in a node list or array.

laplacian_matrix([normalize, rtype])

Construct a Laplacian matrix from a Network datastructure.

leaves()

Return all leaves of the network.

neighborhood(key[, ring])

Return the nodes in the neighborhood of a node.

neighbors(key)

Return the neighbors of a node.

neighbors_in(key)

Return the incoming neighbors of a node.

neighbors_out(key)

Return the outgoing neighbors of a node.

network_adjacency_matrix([rtype])

Creates a node adjacency matrix from a Network datastructure.

network_connectivity_matrix([rtype])

Creates a connectivity matrix from a Network datastructure.

network_degree_matrix([rtype])

Creates a node degree matrix from a Network datastructure.

network_embed_in_plane([fixed, straightline])

Embed the network in the plane.

network_is_planar()

Check if the network is planar.

network_is_planar_embedding()

Verify that a network is embedded in the plane without crossing edges.

network_laplacian_matrix([normalize, rtype])

Construct a Laplacian matrix from a Network datastructure.

node_attribute(key, name[, value])

Get or set an attribute of a node.

node_attributes(key[, names, values])

Get or set multiple attributes of a node.

node_coordinates(key[, axes])

Return the coordinates of a node.

node_gkey([precision])

Returns a dictionary that maps node dictionary keys to the corresponding geometric key up to a certain precision.

node_laplacian(key)

Return the vector from the node to the centroid of its 1-ring neighborhood.

node_neighborhood_centroid(key)

Compute the centroid of the neighboring nodes.

node_sample([size])

Get a list of identifiers of a random set of n nodes.

nodes([data])

Iterate over the nodes of the network.

nodes_attribute(name[, value, keys])

Get or set an attribute of multiple nodes.

nodes_attributes([names, values, keys])

Get or set multiple attributes of multiple nodes.

nodes_where(conditions[, data])

Get nodes for which a certain condition or set of conditions is true.

nodes_where_predicate(predicate[, data])

Get nodes for which a certain condition or set of conditions is true using a lambda function.

number_of_edges()

Compute the number of edges of the network.

number_of_nodes()

Compute the number of nodes of the network.

shortest_path(start, end)

Find the shortest path between two nodes of the network.

smooth([fixed, kmax, damping, callback, ...])

Smooth a network by moving every free node to the centroid of its neighbors.

split_edge(u, v[, t])

Split and edge by inserting a node along its length.

summary()

Print a summary of the graph.

to_data()

Convert an object to its native data representation.

to_json(filepath[, pretty])

Serialize the data representation of an object to a JSON file.

to_jsonstring([pretty])

Serialize the data representation of an object to a JSON string.

to_lines()

Return the lines of the network as pairs of start and end point coordinates.

to_networkx()

Create a new NetworkX graph instance from a graph.

to_nodes_and_edges()

Return the nodes and edges of a network.

to_obj()

Write the network to an OBJ file.

to_points()

Return the coordinates of the network.

transform(transformation)

Transform a network.

transformed(transformation)

Transform a copy of network.

unset_edge_attribute(key, name)

Unset the attribute of an edge.

unset_node_attribute(key, name)

Unset the attribute of a node.

update_dea([attr_dict])

Update the default edge attributes.

update_default_edge_attributes([attr_dict])

Update the default edge attributes.

update_default_node_attributes([attr_dict])

Update the default node attributes.

update_dna([attr_dict])

Update the default node attributes.

uv_index()

Returns a dictionary that maps edge keys (i.e.

validate_data()

Validate the object's data against its data schema (self.DATASCHEMA).

validate_json()

Validate the object's data against its json schema (self.JSONSCHEMA).