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.

Inherited Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

JSONSCHEMANAME

data

Return a data dict of this data structure for serialization.

dtype

The type of the object in the form of a '2-level' import and a class name.

guid

The globally unique identifier of the object.

jsondefinitions

Reusable schema definitions.

jsonstring

The representation of the object data in JSON format.

jsonvalidator

JSON schema validator for draft 7.

name

The name of the data structure.

Methods

adjacency_matrix

Creates a node adjacency matrix from a Network datastructure.

complement

Generate the complement network of a network.

connectivity_matrix

Creates a connectivity matrix from a Network datastructure.

count_crossings

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

degree_matrix

Creates a node degree matrix from a Network datastructure.

edge_coordinates

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

edge_direction

Return the direction vector of an edge.

edge_length

Return the length of an edge.

edge_midpoint

Return the location of the midpoint of an edge.

edge_point

Return the location of a point along an edge.

edge_vector

Return the vector of an edge.

embed_in_plane

Embed the network in the plane.

find_crossings

Identify all pairs of crossing edges in a network.

find_cycles

Find the faces of a network.

from_lines

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

from_nodes_and_edges

Construct a network from nodes and edges.

from_obj

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

gkey_key

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

gkey_node

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

is_connected

Verify that the network is connected.

is_crossed

Verify if a network has crossing edges.

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

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

laplacian_matrix

Construct a Laplacian matrix from a Network datastructure.

network_adjacency_matrix

Creates a node adjacency matrix from a Network datastructure.

network_connectivity_matrix

Creates a connectivity matrix from a Network datastructure.

network_degree_matrix

Creates a node degree matrix from a Network datastructure.

network_embed_in_plane

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

Construct a Laplacian matrix from a Network datastructure.

node_coordinates

Return the coordinates of a node.

node_gkey

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

node_laplacian

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

node_neighborhood_centroid

Compute the centroid of the neighboring nodes.

shortest_path

Find the shortest path between two nodes of the network.

smooth

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

split_edge

Split and edge by inserting a node along its length.

to_lines

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

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

Transform a network.

transformed

Transform a copy of network.

Inherited Methods

add_edge

Add an edge and specify its attributes.

add_node

Add a node and specify its attributes (optional).

clear

Clear all the network data.

connected_edges

Return the edges connected to a node.

copy

Make an independent copy of the data object.

degree

Return the number of neighbors of a node.

degree_in

Return the numer of incoming neighbors of a node.

degree_out

Return the number of outgoing neighbors of a node.

delete_edge

Delete an edge from the network.

delete_node

Delete a node from the graph.

edge_attribute

Get or set an attribute of an edge.

edge_attributes

Get or set multiple attributes of an edge.

edge_sample

Get the identifiers of a set of random edges.

edges

Iterate over the edges of the network.

edges_attribute

Get or set an attribute of multiple edges.

edges_attributes

Get or set multiple attributes of multiple edges.

edges_where

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

edges_where_predicate

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

from_data

Construct an object of this type from the provided data.

from_edges

from_json

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

from_jsonstring

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

from_networkx

Create a new graph instance from a NetworkX DiGraph instance.

get_any_edge

Get the identifier of a random edge.

get_any_edges

Get the identifiers of a set of random edges.

get_any_node

Get the identifier of a random node.

get_any_nodes

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

has_edge

Verify if the network contains a specific edge.

has_node

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_leaf

Verify if a node is a leaf.

is_node_connected

Verify if a specific node is connected.

key_index

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

leaves

Return all leaves of the network.

neighborhood

Return the nodes in the neighborhood of a node.

neighbors

Return the neighbors of a node.

neighbors_in

Return the incoming neighbors of a node.

neighbors_out

Return the outgoing neighbors of a node.

node_attribute

Get or set an attribute of a node.

node_attributes

Get or set multiple attributes of a node.

node_sample

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

nodes

Iterate over the nodes of the network.

nodes_attribute

Get or set an attribute of multiple nodes.

nodes_attributes

Get or set multiple attributes of multiple nodes.

nodes_where

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

nodes_where_predicate

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.

summary

Print a summary of the graph.

to_data

Convert an object to its native data representation.

to_json

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

to_jsonstring

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

to_networkx

Create a new NetworkX graph instance from a graph.

unset_edge_attribute

Unset the attribute of an edge.

unset_node_attribute

Unset the attribute of a node.

update_dea

Update the default edge attributes.

update_default_edge_attributes

Update the default edge attributes.

update_default_node_attributes

Update the default node attributes.

update_dna

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