Skip to content

Module hetmatpy.xarray

None

None

View Source
import numpy

import xarray

from hetmatpy.matrix import metaedge_to_adjacency_matrix

def graph_to_xarray(graph):

    """

    Convert a hetnetpy.hetnet.Graph to an xarray.Dataset

    """

    data_vars = dict()

    for metaedge in graph.metagraph.get_edges(exclude_inverts=True):

        data_array = metaedge_to_data_array(graph, metaedge)

        name = metaedge.get_abbrev()

        data_vars[name] = data_array

    dataset = xarray.Dataset(data_vars)

    return dataset

def metaedge_to_data_array(graph, metaedge, dtype=numpy.bool_):

    """

    Return an xarray.DataArray that's an adjacency matrix where source nodes

    are columns and target nodes are rows.

    """

    source_node_ids, target_node_ids, adjacency_matrix = metaedge_to_adjacency_matrix(

        graph, metaedge, dtype=dtype

    )

    dims = metaedge.source.identifier, metaedge.target.identifier

    coords = source_node_ids, target_node_ids

    data_array = xarray.DataArray(

        adjacency_matrix, coords=coords, dims=dims, name=metaedge.get_unicode_str()

    )

    return data_array

Functions

graph_to_xarray

def graph_to_xarray(
    graph
)

Convert a hetnetpy.hetnet.Graph to an xarray.Dataset

View Source
def graph_to_xarray(graph):

    """

    Convert a hetnetpy.hetnet.Graph to an xarray.Dataset

    """

    data_vars = dict()

    for metaedge in graph.metagraph.get_edges(exclude_inverts=True):

        data_array = metaedge_to_data_array(graph, metaedge)

        name = metaedge.get_abbrev()

        data_vars[name] = data_array

    dataset = xarray.Dataset(data_vars)

    return dataset

metaedge_to_data_array

def metaedge_to_data_array(
    graph,
    metaedge,
    dtype=<class 'numpy.bool_'>
)

Return an xarray.DataArray that's an adjacency matrix where source nodes

are columns and target nodes are rows.

View Source
def metaedge_to_data_array(graph, metaedge, dtype=numpy.bool_):

    """

    Return an xarray.DataArray that's an adjacency matrix where source nodes

    are columns and target nodes are rows.

    """

    source_node_ids, target_node_ids, adjacency_matrix = metaedge_to_adjacency_matrix(

        graph, metaedge, dtype=dtype

    )

    dims = metaedge.source.identifier, metaedge.target.identifier

    coords = source_node_ids, target_node_ids

    data_array = xarray.DataArray(

        adjacency_matrix, coords=coords, dims=dims, name=metaedge.get_unicode_str()

    )

    return data_array