Skip to content

io

load_json(filename, key=None) Link

Load a point cloud or skeleton file from a json file.

Parameters:

Name Type Description Default
filename str or Path

Path to the point cloud or skeleton file to parse.

required
key str

The key of the JSON dictionary containing the point cloud or skeleton coordinates to load.

None

Returns:

Type Description
ndarray

The XYZ coordinates of the point cloud or skeleton.

Source code in skeleton_refinement/io.py
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
def load_json(filename, key=None):
    """Load a point cloud or skeleton file from a json file.
    Parameters
    ----------
    filename : str or pathlib.Path
        Path to the point cloud or skeleton file to parse.
    key : str, optional
        The key of the JSON dictionary containing the point cloud or skeleton coordinates to load.

    Returns
    -------
    numpy.ndarray
        The XYZ coordinates of the point cloud or skeleton.
    """
    import json
    with open(filename, mode='rb') as f:
        X = json.load(f)

    if key is not None:
        X = X[key]
    return np.array(X)

load_nx(filename, key='position') Link

Load a tree graph from a pickled networkx file.

Parameters:

Name Type Description Default
filename str or Path

Path to the tree graph file to parse.

required

Returns:

Type Description
ndarray

The XYZ coordinates of the point cloud or skeleton.

Source code in skeleton_refinement/io.py
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
def load_nx(filename, key='position'):
    """Load a tree graph from a pickled networkx file.
    Parameters
    ----------
    filename : str or pathlib.Path
        Path to the tree graph file to parse.

    Returns
    -------
    numpy.ndarray
        The XYZ coordinates of the point cloud or skeleton.
    """
    import pickle
    with open(filename, mode='rb') as f:
        G = pickle.load(f)

    X = []
    for node in G.nodes:
        X.append(G.nodes[node][key])

    return np.array(X)

load_ply(filename) Link

Load a point cloud coordinates.

Parameters:

Name Type Description Default
filename str or Path

Path to the point cloud ofile to parse.

required

Returns:

Type Description
ndarray

The XYZ coordinates of the point cloud or skeleton.

Source code in skeleton_refinement/io.py
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
def load_ply(filename):
    """Load a point cloud coordinates.

    Parameters
    ----------
    filename : str or pathlib.Path
        Path to the point cloud ofile to parse.

    Returns
    -------
    numpy.ndarray
        The XYZ coordinates of the point cloud or skeleton.
    """
    from plyfile import PlyData
    plydata = PlyData.read(filename)
    X = np.array([plydata['vertex']['x'], plydata['vertex']['y'], plydata['vertex']['z']]).T
    return X

load_xyz(filename) Link

Load a point cloud or skeleton file saved as a series of space-separated XYZ coordinates.

Parameters:

Name Type Description Default
filename str or Path

Path to the point cloud or skeleton file to parse.

required

Returns:

Type Description
ndarray

The XYZ coordinates of the point cloud or skeleton.

Source code in skeleton_refinement/io.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def load_xyz(filename):
    """Load a point cloud or skeleton file saved as a series of space-separated XYZ coordinates.

    Parameters
    ----------
    filename : str or pathlib.Path
        Path to the point cloud or skeleton file to parse.

    Returns
    -------
    numpy.ndarray
        The XYZ coordinates of the point cloud or skeleton.
    """
    f = open(filename, "r")
    lines = f.readlines()
    org_x = []
    org_y = []
    org_z = []
    for l in lines:
        org_x.append(float(l.split(' ')[0]))
        org_y.append(float(l.split(' ')[1]))
        org_z.append(float(l.split(' ')[2]))
    f.close()
    X = np.column_stack((org_x, org_y, org_z))
    return X

save_json(filename, G, **kwargs) Link

Save a tree graph to a JSON file.

Parameters:

Name Type Description Default
filename str or Path

Path to the JSON file to write.

required
G Graph

Graph to write.

required
Source code in skeleton_refinement/io.py
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
def save_json(filename, G, **kwargs):
    """Save a tree graph to a JSON file.

    Parameters
    ----------
    filename : str or pathlib.Path
        Path to the JSON file to write.
    G : networkx.Graph
        Graph to write.
    """
    import json
    data = {
        "points": [G.nodes[node]['position'] for node in G.nodes],
        "lines": list(G.edges),
    }
    if 'indent' not in kwargs:
        kwargs.update({'indent': 2})
    with open(filename, 'w') as f:
        f.writelines(json.dumps(data, **kwargs))
    return

save_nx(filename, G, **kwargs) Link

Save a tree graph to a pickle file.

Parameters:

Name Type Description Default
filename str or Path

Path to the pickle file to write.

required
G Graph

Graph to write.

required
Source code in skeleton_refinement/io.py
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
def save_nx(filename, G, **kwargs):
    """Save a tree graph to a pickle file.

    Parameters
    ----------
    filename : str or pathlib.Path
        Path to the pickle file to write.
    G : networkx.Graph
        Graph to write.
    """
    import pickle
    if 'protocol' not in kwargs:
        kwargs['protocol'] = pickle.HIGHEST_PROTOCOL
    if isinstance(filename, str):
        filename = Path(filename)
    with filename.open(mode='wb') as f:
        pickle.dump(G, f, **kwargs)
    return