processing
dsstools.processing
Copyright (C) 2024 dssTools Developers David Seseke david.seseke@uni-hamburg.de Katherine Shay katherine.shay@studium.uni-hamburg.de Professur Digitale Sozialwissenschaften Universität Hamburg.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Layouter
create_layout(graph, seed=None, **kwargs)
Create position dictionary according to set layout engine.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
seed |
|
None
|
|
graph |
DiGraph
|
Graph object |
required |
seed |
int
|
Set a default seed (default None) |
None
|
Returns: Dictionary of node and positions.
read_from_file(filename, **kwargs)
Reads position from JSON file under filepath.
The following structure for the JSON is expected, where each key contains an array of length 2 containing the coordinates. Coordinates should be in the range [-1,1]:
{
"domain1": [-0.1467271130230262, 0.25512246449304427],
"domain2": [-0.3683594304205127, 0.34942480334119136],
}
This structure is generated through dsstools.Layouter().write_to_file()
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filename |
Union[Path]
|
Path to file to be read. |
required |
graph |
DiGraph
|
|
required |
Returns:
Type | Description |
---|---|
dict
|
Dictionary of nodes and positions. |
read_from_graph(graph, pos_name=('x', 'y'))
Read positions from node attributes in the graph.
This is relevant when importing from Pajek or GEXF files where the positions are already set with another tool. Imported values are normalized onto [-1,1] in all directions.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph
|
Graph object including the node attributes. |
required |
pos_name |
tuple
|
Node attribute names to look for. These depend on the imported file format. |
('x', 'y')
|
Returns:
Type | Description |
---|---|
Dictionary of positions per Node. |
read_or_create_layout(filepath, graph, seed, overwrite=False, **kwargs)
Read positions from file. If non-existant create pos and write to file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filename |
Union[str, Path]
|
Filename to read positions from |
required |
graph |
Graph
|
Graph object to update |
required |
overwrite |
bool
|
Overwrite existing file (default False) |
False
|
Returns:
Type | Description |
---|---|
dict
|
Dictionary of positions per Node. Will return an empty dict if creation |
dict
|
failed. |
SpringLayouter
Bases: Layouter
create_layout(graph, seed=None, pos=None, **kwargs)
Create position dictionary according to set layout engine.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
DiGraph
|
Graph object |
required |
seed |
int
|
Set a default seed (default None) |
None
|
pos |
Pre-populated positions |
None
|
Returns:
Type | Description |
---|---|
dict
|
Dictionary of node and positions. |
calculate_betweenness_centrality(graph, **kwargs)
Updates the nodes in the graph with betweenness centrality.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph
|
nx.DiGraph The graph to calculate on. |
required |
**kwargs |
All arguments passed onto nx.betweenness_centrality (see https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.centrality.betweenness_centrality.html#betweenness-centrality) |
{}
|
Returns:
Type | Description |
---|---|
Graph including the closeness centrality. |
calculate_closeness_centrality(graph, **kwargs)
Updates the nodes in the graph with closeness centrality.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
Graph
|
nx.DiGraph The graph to calculate on. |
required |
**kwargs |
All arguments passed onto nx.closeness_centrality (see https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.centrality.closeness_centrality.html#closeness-centrality) |
{}
|
Returns:
Type | Description |
---|---|
Graph including the betweenness centrality. |