# Network

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

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 all the network data. complement([cls]) Generate the complement network of a network. 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 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 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. 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 the identifier of a random edge. Get the identifiers of a set of random edges. 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. Returns a dictionary that maps the indices of a node list to keys in a node dictionary. Returns a dictionary that maps edges in a list to the corresponding vertex key pairs. Verify that the network is connected. Verify if a network has crossing edges. is_leaf(key) Verify if a node is a leaf. Verify if a specific node is connected. Check if the network is planar. Verify that a network is embedded in the plane without crossing edges. 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. 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. 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. Return the incoming neighbors of a node. Return the outgoing neighbors of a node. network_adjacency_matrix([rtype]) Creates a node adjacency matrix from a Network datastructure. 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. Check if the network is planar. 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. Return the vector from the node to the centroid of its 1-ring neighborhood. 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. Compute the number of edges of the network. 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. Print a summary of the graph. 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. Return the lines of the network as pairs of start and end point coordinates. Create a new NetworkX graph instance from a graph. Return the nodes and edges of a network. Write the network to an OBJ file. 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. Returns a dictionary that maps edge keys (i.e. Validate the object's data against its data schema (self.DATASCHEMA). Validate the object's data against its json schema (self.JSONSCHEMA).