GLDF 0.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- GLDF/__init__.py +2 -0
- GLDF/bridges/__init__.py +0 -0
- GLDF/bridges/causal_learn.py +185 -0
- GLDF/bridges/tigramite.py +143 -0
- GLDF/bridges/tigramite_plotting_modified.py +4764 -0
- GLDF/cit.py +274 -0
- GLDF/data_management.py +588 -0
- GLDF/data_processing.py +754 -0
- GLDF/frontend.py +537 -0
- GLDF/hccd.py +403 -0
- GLDF/hyperparams.py +205 -0
- GLDF/independence_atoms.py +78 -0
- GLDF/state_space_construction.py +288 -0
- GLDF/tutorials/01_preconfigured_quickstart.ipynb +302 -0
- GLDF/tutorials/02_detailed_configuration.ipynb +394 -0
- GLDF/tutorials/03_custom_patterns.ipynb +447 -0
- gldf-0.9.0.dist-info/METADATA +101 -0
- gldf-0.9.0.dist-info/RECORD +20 -0
- gldf-0.9.0.dist-info/WHEEL +4 -0
- gldf-0.9.0.dist-info/licenses/LICENSE +621 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"id": "ac114a83",
|
|
6
|
+
"metadata": {},
|
|
7
|
+
"source": [
|
|
8
|
+
"# Tutorial 01: Simple Application out of the Box\n",
|
|
9
|
+
"\n",
|
|
10
|
+
"This tutorial presents two simple examples:\n",
|
|
11
|
+
"1. Application to time series data with temporally persistent regimes\n",
|
|
12
|
+
"2. Application to gridded data with spatially localized regimes\n",
|
|
13
|
+
"\n",
|
|
14
|
+
"In each case, for some very simple data-generating model, the application of out-of-the-box preconfigured methods is described, including the plotting of results. For customizations see also the other tutorials."
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"cell_type": "markdown",
|
|
19
|
+
"id": "ba4678ee",
|
|
20
|
+
"metadata": {},
|
|
21
|
+
"source": [
|
|
22
|
+
"## 1. Time series"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"cell_type": "markdown",
|
|
27
|
+
"id": "a4bc81b9",
|
|
28
|
+
"metadata": {},
|
|
29
|
+
"source": [
|
|
30
|
+
"Generate data for a simple model, with one regime in the first half of data, another one in the second half\n",
|
|
31
|
+
"(this is not an interesting numerical experiment, rather a transparent and simple example)."
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"cell_type": "code",
|
|
36
|
+
"execution_count": 1,
|
|
37
|
+
"id": "dd906ef5",
|
|
38
|
+
"metadata": {
|
|
39
|
+
"lines_to_next_cell": 0
|
|
40
|
+
},
|
|
41
|
+
"outputs": [],
|
|
42
|
+
"source": [
|
|
43
|
+
"import numpy as np\n",
|
|
44
|
+
"\n",
|
|
45
|
+
"N = 1000\n",
|
|
46
|
+
"\n",
|
|
47
|
+
"R = np.zeros(N, dtype=bool)\n",
|
|
48
|
+
"R[int(N/2):] = True\n",
|
|
49
|
+
"\n",
|
|
50
|
+
"rng = np.random.default_rng()\n",
|
|
51
|
+
"X_noise = rng.standard_normal(N)\n",
|
|
52
|
+
"Y_noise = rng.standard_normal(N)\n",
|
|
53
|
+
"Z_noise = rng.standard_normal(N)\n",
|
|
54
|
+
"\n",
|
|
55
|
+
"X = np.empty_like(X_noise)\n",
|
|
56
|
+
"Y = np.empty_like(Y_noise)\n",
|
|
57
|
+
"Z = np.empty_like(Z_noise)\n",
|
|
58
|
+
"\n",
|
|
59
|
+
"def lag_one_or_zero(values, t):\n",
|
|
60
|
+
" return values[t-1] if t > 0 else 0.0\n",
|
|
61
|
+
"\n",
|
|
62
|
+
"for t in range(N):\n",
|
|
63
|
+
" X[t] = X_noise[t] + 0.2 * lag_one_or_zero(X, t)\n",
|
|
64
|
+
" Z[t] = Z_noise[t]\n",
|
|
65
|
+
" Y[t] = Y_noise[t] + R[t] * lag_one_or_zero(X, t) + Z[t]\n",
|
|
66
|
+
"\n",
|
|
67
|
+
"data = np.array([X,Y,Z]).T\n",
|
|
68
|
+
"var_names = [\"X\", \"Y\", \"Z\"]"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"cell_type": "markdown",
|
|
73
|
+
"id": "ee5c177d",
|
|
74
|
+
"metadata": {},
|
|
75
|
+
"source": [
|
|
76
|
+
"Import the framework."
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"cell_type": "code",
|
|
81
|
+
"execution_count": 2,
|
|
82
|
+
"id": "91c3d74b",
|
|
83
|
+
"metadata": {},
|
|
84
|
+
"outputs": [],
|
|
85
|
+
"source": [
|
|
86
|
+
"import GLDF"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"cell_type": "markdown",
|
|
91
|
+
"id": "7b4f1629",
|
|
92
|
+
"metadata": {},
|
|
93
|
+
"source": [
|
|
94
|
+
"The framework itself is implemented in a modular way. The \"frontend\" modul provides helpers to assemble these modules to accomplish standard tasks.\n",
|
|
95
|
+
"Indeed, the 'run_mcd_temporal_regimes' helper applies already to this kind of data."
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"cell_type": "code",
|
|
100
|
+
"execution_count": 3,
|
|
101
|
+
"id": "0fd6f3c7",
|
|
102
|
+
"metadata": {},
|
|
103
|
+
"outputs": [],
|
|
104
|
+
"source": [
|
|
105
|
+
"result = GLDF.run_hccd_temporal_regimes(data)\n",
|
|
106
|
+
"result.var_names = var_names"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"cell_type": "markdown",
|
|
111
|
+
"id": "26f6bbff",
|
|
112
|
+
"metadata": {},
|
|
113
|
+
"source": [
|
|
114
|
+
"The frontend also produces a structured result, that is, while the underlying formal result is accessible through the result-object, it additionally exposes helpers for common utility tasks like plotting (by default via tigramite's plotting-libary for graphs and pyplot for curves etc). This also bundles (by default) lazily evaluated indicator resolutions."
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"cell_type": "code",
|
|
119
|
+
"execution_count": 4,
|
|
120
|
+
"id": "b55ec793",
|
|
121
|
+
"metadata": {},
|
|
122
|
+
"outputs": [
|
|
123
|
+
{
|
|
124
|
+
"data": {
|
|
125
|
+
"image/png": "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",
|
|
126
|
+
"text/plain": [
|
|
127
|
+
"<Figure size 400x400 with 1 Axes>"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"metadata": {},
|
|
131
|
+
"output_type": "display_data"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"data": {
|
|
135
|
+
"image/png": "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l5dLWlqaxMfH61WCa2pqIt2kQFIftDlt2jS9OKH6cM8rr7xSrwfk9tFHH8lNN90kJ554oowYMUKuvvpqaWpq6nVOfX29zJw5U4YPH66f54c//KH+iAp8PosXL9YrV3//+98PH+N6DDy1yOc3v/lN/TMfNmyYnHXWWfLSSy+F71fzMEpKSuSkk07S9+fl5clbb73V6znUx7XMnj1bT9kdNWqUzJ07V/bv3x+B78Zu3d3dctddd8lpp52mf9ann3663HPPPb0+n4fr4QM12whHt3r1aic2NtZZtWqVs23bNmfevHnOqFGjnKampkg3LXDy8/Od3/72t85rr73mbNmyxbnsssucU045xdm/f3/4nO9+97tOamqqU1VV5bz00kvO2Wef7UyfPj18/8cff+xMnjzZycvLc15++WVn3bp1TmJiolNcXByh7yoYampqnLS0NGfKlCnOwoULw8e5HgNrz549zqmnnupcf/31zosvvujs2rXLefbZZ52dO3eGz1m8eLGTkJDgPPXUU84rr7ziXH755c5pp53m/Pe//w2fc8kllzjp6enOv/71L+ef//ynM378eOfaa6+N0Hdlr3vvvdc58cQTnbVr1zpvv/228/jjjzsjRoxwfvGLX4TP4Xr0P8JLH2RnZzs33XRTeL+7u9sZO3asU1ZWFtF2DQbNzc3q7Yvz/PPP6/29e/c6Q4cO1X8gQrZv367Pqa6u1vvqxTE6OtppbGwMn7N8+XJn5MiRTmdnZwS+C/vt27fPOeOMM5z169c7M2bMCIcXrsfAu+2225xzzz33iPf39PQ4ycnJzpIlS8LH1HWKi4tz/vjHP+r9119/XV+jzZs3h8/529/+5kRFRTm7d+/2+TsIlpkzZzrf+ta3eh372te+5syePVv/m+vhD4aNPkNXV5f+gEnVzef+/CS1X11dHdG2DQZqJUol9NlW6lqoj5ZwXw/1MRTq869C10Pdqm70pKSk8Dn5+fl6dctt27YN+PcQBGpYSA37uH/uCtdj4KmPS8nKypJvfOMbeghOfYTKypUrw/e//fbb+jPi3NdEreqqhrvd10QNTajnCVHnq79tL7744gB/R3abPn26VFVVyZtvvqn3X3nlFdm0aZNceumlep/r4Q9fPpgxSFpbW/WYpvsPr6L233jjjYi1azBQn0KuaivOOeccmTx5sj6m/gjExsbq/9EPvx7qvtA5XtcrdB+OzerVq6Wurk42b978qfu4HgNv165dsnz5cikqKpLbb79dX5fvfe97+joUFBSEf6ZeP3P3NVHBx23IkCH6TQLX5NgsWrRIB3EV2mNiYvTrxb333qvrVxSuhz8ILzD63f5rr72m38UgMhoaGmThwoWyfv16XawOM0K9eod+33336X3V86L+P1EfbKvCCwbWn/70J/1BxI899ph86Utfki1btug3XWPHjuV6+Ihho8+QmJio0/ThsyfUfnJycsTaFXQLFiyQtWvXynPPPScnn3xy+Lj6mauhvL179x7xeqhbr+sVug99p4aFmpub5ctf/rJ+J6i2559/Xn75y1/qf6t3j1yPgaVmrEyaNKnXsYkTJ+oZXe6f6dH+ZqlbdV3d1OwvNeOFa3Js1Mw51ftyzTXX6OHR6667Tm655RY9c1LheviD8PIZVFdsZmamHtN0v/NR+7m5uRFtWxCpInIVXJ588knZsGGDnn7opq7F0KFDe10PNZVa/eEOXQ91u3Xr1l5/DFTPgZqCePgffRzdhRdeqH+W6t1kaFPv+lWXeOjfXI+BpYZRD18+QNVbnHrqqfrf6v8Z9YLnviZqWEPVTriviQqcKpyGqP/f1N82VYuBvjtw4ICuTXFTb3jVz1LhevjEp0LgwE2VVpXhDz/8sK4Kv+GGG/RUaffsCfSPG2+8UU8p3Lhxo/PBBx+EtwMHDvSamqumT2/YsEFPzc3NzdXb4VNzL774Yj3durKy0hk9ejRTc/uJe7aRwvUY+CnrQ4YM0VN033rrLefRRx91hg8f7jzyyCO9puaqv1FPP/208+qrrzpXXHGF59TcqVOn6unWmzZt0rPJmJp77AoKCpyUlJTwVOknnnhCLwXwox/9KHwO16P/EV766MEHH9R/oNV6L2rqtJqLj/6n8rTXptZ+CVH/w8+fP985/vjj9R/tq666Sgcct3feece59NJLnWHDhuk/JLfeeqtz8ODBCHxHwQ8vXI+B95e//EUHQvWmasKECc6KFSt63a+m5951111OUlKSPufCCy90duzY0euc//znP/rFUa1JoqatFxYW6inxODbt7e36/wf1+hAfH++MGzfOueOOO3otA8D16H9R6j9+9eoAAAD0N2peAACAVQgvAADAKoQXAABgFcILAACwCuEFAABYhfACAACsQngBAABWIbwAAACrEF4AAIBVCC8AAMAqhBcAAGAVwgsAABCb/B9IlGY/yrliNwAAAABJRU5ErkJggg==",
|
|
136
|
+
"text/plain": [
|
|
137
|
+
"<Figure size 640x480 with 1 Axes>"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
"metadata": {},
|
|
141
|
+
"output_type": "display_data"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"source": [
|
|
145
|
+
"import matplotlib.pyplot as plt\n",
|
|
146
|
+
"result.plot_labeled_union_graph()\n",
|
|
147
|
+
"plt.show()\n",
|
|
148
|
+
"for mi in result.model_indicators():\n",
|
|
149
|
+
" mi.plot_resolution()\n",
|
|
150
|
+
" plt.show()"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"cell_type": "markdown",
|
|
155
|
+
"id": "03cc7db6",
|
|
156
|
+
"metadata": {},
|
|
157
|
+
"source": [
|
|
158
|
+
"## 2. Spatial Patterns\n",
|
|
159
|
+
"\n",
|
|
160
|
+
"Generate data for a simple two-dimensional spatial grid, with regimes in north/south and east/west."
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"cell_type": "code",
|
|
165
|
+
"execution_count": 5,
|
|
166
|
+
"id": "d2b7332c",
|
|
167
|
+
"metadata": {},
|
|
168
|
+
"outputs": [
|
|
169
|
+
{
|
|
170
|
+
"name": "stdout",
|
|
171
|
+
"output_type": "stream",
|
|
172
|
+
"text": [
|
|
173
|
+
"(100, 100, 4)\n"
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"source": [
|
|
178
|
+
"import numpy as np\n",
|
|
179
|
+
"\n",
|
|
180
|
+
"def get_data(seed=None):\n",
|
|
181
|
+
" data_size = (100, 100)\n",
|
|
182
|
+
" A = np.full(data_size, False)\n",
|
|
183
|
+
" A[:50,:] = True\n",
|
|
184
|
+
" B = np.full(data_size, False)\n",
|
|
185
|
+
" B[:,:50] = True\n",
|
|
186
|
+
"\n",
|
|
187
|
+
" rng = np.random.default_rng(seed=seed)\n",
|
|
188
|
+
"\n",
|
|
189
|
+
" X = rng.standard_normal(data_size)\n",
|
|
190
|
+
" Y = rng.standard_normal(data_size)\n",
|
|
191
|
+
" L = rng.standard_normal(data_size) # latent\n",
|
|
192
|
+
" Z = rng.standard_normal(data_size) + A * X + L\n",
|
|
193
|
+
" W = rng.standard_normal(data_size) + Y + B * L\n",
|
|
194
|
+
"\n",
|
|
195
|
+
" return np.array([X,Y,Z,W]).transpose([1,2,0])\n",
|
|
196
|
+
"\n",
|
|
197
|
+
"var_names = [\"X\", \"Y\", \"Z\", \"W\"]\n",
|
|
198
|
+
"data = get_data(seed=17062025)\n",
|
|
199
|
+
"print(data.shape)"
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"cell_type": "markdown",
|
|
204
|
+
"id": "58b2aab8",
|
|
205
|
+
"metadata": {},
|
|
206
|
+
"source": [
|
|
207
|
+
"The frontend also supports spatial patterns directly,\n",
|
|
208
|
+
"it again produces a structured result."
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"cell_type": "code",
|
|
213
|
+
"execution_count": 6,
|
|
214
|
+
"id": "21714978",
|
|
215
|
+
"metadata": {},
|
|
216
|
+
"outputs": [],
|
|
217
|
+
"source": [
|
|
218
|
+
"result = GLDF.run_hccd_spatial_regimes(data)\n",
|
|
219
|
+
"result.var_names = var_names"
|
|
220
|
+
]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"cell_type": "markdown",
|
|
224
|
+
"id": "8dc078d8",
|
|
225
|
+
"metadata": {},
|
|
226
|
+
"source": [
|
|
227
|
+
"Note, that the frontend attaches suitable plotting and indicator resolution code different from that used for time-series, so user code for evaluation can be uniform in both cases:"
|
|
228
|
+
]
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"cell_type": "code",
|
|
232
|
+
"execution_count": 7,
|
|
233
|
+
"id": "9528f2cb",
|
|
234
|
+
"metadata": {},
|
|
235
|
+
"outputs": [
|
|
236
|
+
{
|
|
237
|
+
"data": {
|
|
238
|
+
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAUoAAAFICAYAAAA24bcOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHTVJREFUeJzt3QmQlOWdx/H/MDOcMsBwDMihgIFgohFFCGgUNYkxRTTEI7W5jMhGTUXCRg1LNiXlako3RqLGxOxiNMbajWKymMjKuglRiUeIMYCgghAEGY7hPuQe6K3f22nkGObpt/t5j57+fqq6ijT9dj8Zp3/8n/e5KjKZTMYAAMfV6vh/BQAQghIAHAhKAHAgKAHAgaAEAAeCEgAcCEoAcCAoAcCBoAQAB4ISABwISgBwICgBwIGgBAAHghIAHAhKAHAgKAHAgaAEAAeCEgAcCEoAcCAoAcCBoAQAB4ISAByqXC8AoqKTkvfv32979uyx3bt32759+4LnpKKiwlq3bm3t2rWztm3bWnV1dfAckASCErFTOG7evNm2bNlijY2NeV1TVVVlXbp0sdra2iA0gThVZHL/hAMRU+XY0NBgO3bsKOp9OnbsaHV1dUGlCcSBoETk9Cu2cePGICR9Ulh269aNLjkiR1AiUrrv+O677wbVZBR0D7Nv377B/UwgKgQlIrN3715755138r4PWSjdv+zfv7+1adMm0s9B+WJ6ECKrJJcvXx55SIo+Q4GszwSiQFDCu4MHD9qKFSvswIEDsX2mwlKfqc8GfCMo4Z0GbZKo7vSZvgeMACEo4dXOnTtt06ZNiX2+PlttAHwiKOGNxgVXr16ddDOCNjBGCZ8ISnijSi4NAypqA1UlfCIo4Y2WJaZFmtqC0kdQwtv67e3btxd0rbrJ48ePt+uuu+6Yv3v88cdt1KhRtm7dulDvqbaoTYAPBCW82LVrV8HXagniHXfcYQsXLrTp06cfer6+vt6mTp1qkydPtp49e8baJuBwBCW80DZpxVAQTpo0ye65554gIFVlTpkyJagmP/OZzyTSJiCHbdbghY/q7bLLLrPZs2fbrbfeahdddJEtW7bMZsyYUfD7EZTwhbXe8OKtt97yshJH8yDHjh1r27ZtC7rdCsxCVVZW2pAhQ4puE0DXG174WjrYtWtXu+KKK2zAgAFFhaTPNgEEJVJHuwGpGgTSgqCEF2ncPDeNbUJpIijhrQpMmzS2CaWJoIS3ncbTJo1tQmli1Bte6EycsKtnoqa5mTpTBygWFSVabPWWxjahNBGU8KJ9+/apuieotqhNgA8EJbzQCLPmQKaF2sKoN3whKOFNly5dLC3S1BaUPoISXru7aagq1YY03QZA6SMo4VVdXZ1VV1cn9vn6bLUB8ImghFetWrWyPn36JPb5+my1AfCJ3yh416FDB+vRo0fsn6vP1GcDvnEjB5Ho3r17sO1avkfX6uiGe++9155//vngCAd1oUePHm0TJ060mpqavO5L6jOBKLAyB5HRr9b69ettw4YNzb7u/vvvt0ceecQaGxuDHc379u1rq1atspdffjkYlBk3bpzdeOONx71eAalqkulAiAoVJSKj4NLAilbI6Kztpjb2VUg+9NBDNmbMGPvBD35ggwYNOvR3b7/9tt188802bdq0IHQnTJhwxLXaiq137955VZxAMagoEQtVi2vXrg12Lj+8u33++efbJZdcEhz50NQelApX7Xg+a9Yse+GFFw6FYqdOnaxXr15MA0IsGMxBLBRo6lIPHDjQOnfuHFSbuiepAFUlebyNevX83XffHbzuvvvuC67Ve+i9CEnEhYoSiVClqKk8OvLhpZdecr5e9y5XrlwZdOGBuFFRIhGqFNX1VmWYD71uz549kbcLaApBicSo+63R7XzodW3bto28TUBTCEokRt1uTQHS6HZzlixZYq+88opdeumlsbUNOBxBicSce+65QRdcU4COdya4nr/llluCgZs777wz9jYCQlAiMepKKwhnzpwZTAE6urJUJann9fdnnnlmMOINJIH5FUicJl4888wz9vTTT9vIkSMPrcxRd1sVp/7+nHPOSbqZKGMEJVIh1/VWOM6dO9cOHjx4xPNAkuh6I3VyIQmkBUEJAA4EJQA4EJQA4EBQAoADQQkADgQlADgQlADgQFACgANBCQAOBCUAOBCUAOBAUAKAA0EJAA4EJQA4EJQA4EBQAoADQQkADgQlADgQlADgQFACgANBCQAOBCUAOBCUAOBAUAKAA0EJAA4EJQA4EJQA4EBQAoADQQkADgQlADgQlADgQFACgANBCQAOBCUAOBCUAOBAUAKAA0EJAA4EJQA4EJQA4EBQAoADQQkADgQlADgQlADgQFACgANBCQAOBCUAOBCUAOBAUAKAA0EJAA4EJQA4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",
|
|
239
|
+
"text/plain": [
|
|
240
|
+
"<Figure size 400x400 with 1 Axes>"
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
"metadata": {},
|
|
244
|
+
"output_type": "display_data"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"data": {
|
|
248
|
+
"image/png": "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gAoCBABQESqOSk4W6dtXnBEfL86prhbnzJqlfQQ9Q0aGOOfOO8U5FRXinGAHH7afPi1OaWnp3H4ODiUAIBAQIACACgIEAFBBgAAAKggQAEAFAQIAqCBAAAAVBAgAoIIAAQBUECAAgAoCBABQQYAAACoIEABABQECAKggQAAAFQQIAKCCAAEAVBAgAIAKAgQAUEGAAAAqCBAAQAUBAgCoIEAAABUECACgggABAFQQIACACgIEAFBBgAAAKggQAEAFAQIAqCBAAAAVBAgAoIIAAQBUECAAgAoCBADoeQFavny5BAUFSX5+vm/bxYsXJS8vT+Li4iQqKkpmz54ttbW13XGsAIBeJPRm/+Ann3wif/zjH+Wee+7x275o0SJ59913ZevWrRIbGyvz58+XWbNmyUcffdSlr19eLhIZKc6YNUucc/asOOf998U506aJc5qbxTku/tvddZc4p6lJnNOvnzglJOQ2ngGdP39ecnJyZN26ddK/f3/f9vr6ennjjTfklVdekQceeEDGjRsn69evl48//lj27dt3za/V1NQkDQ0NfgsAoPe7qQCZS2zTp0+XrKwsv+3l5eXS0tLitz0tLU2Sk5OltLT0ml+rqKjInil1LElJSTdzSACA3h6gzZs3y6effmrDcaWamhoJDw+XflecD8bHx9vbrqWwsNCeOXUs1dXVXT0kAEBvfw7IxGHhwoWye/duieymJ2giIiLsAgAILF06AzKX2E6fPi3333+/hIaG2qWkpERWrlxpPzdnOs3NzVJXV+f358wsuISEhO4+dgBAoJwBTZ06VT7//HO/bXPnzrXP8zz99NP2+ZuwsDApLi6206+NyspKOXHihGRmZnbvkQMAAidA0dHRMnr0aL9tffv2ta/56dj+2GOPSUFBgQwYMEBiYmLkySeftPGZOHFi9x45ACAwXwd0Pa+++qoEBwfbMyAzxTo7O1tee+217v42AIBAD9CHH37ot24mJ6xevdouAABcD+8FBwBQQYAAACoIEABABQECAKggQAAAFQQIAKCCAAEAVBAgAIAKAgQAUEGAAAAqCBAAQAUBAgCoIEAAABUECACgggABAFQQIACACgIEAFBBgAAAKggQAEAFAQIAqCBAAAAVBAgAoIIAAQBUECAAgAoCBABQQYAAACoIEABARag4avJkkagocUZ7uzhn5kxxzvnz4pwBA8Q5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",
|
|
249
|
+
"text/plain": [
|
|
250
|
+
"<Figure size 640x480 with 1 Axes>"
|
|
251
|
+
]
|
|
252
|
+
},
|
|
253
|
+
"metadata": {},
|
|
254
|
+
"output_type": "display_data"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"data": {
|
|
258
|
+
"image/png": "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oIIAAQBUECAAgAoCBABQQYAAACoIEABARbT46qP7RPpEiTdiEsU70Unina93ineumyjeaTok3km+Wbxz+ivxTtMR8U7HafFKi7ms3TgDAgCoIEAAABUECACgggABAFQQIACACgIEAFBBgAAAKggQAEAFAQIAqCBAAAAVBAgAoIIAAQBUECAAgAoCBABQQYAAACoIEABABQECAKggQAAAFQQIAKCCAAEAVBAgAIAKAgQAUEGAAAAqCBAAQAUBAgCoIEAAABUECACgggABAFQQIACACgIEAFBBgAAAKggQAEAFAQIAqCBAAAAVBAgA0DMC9OWXX8q9994rqampkpCQICNGjJA9e/YEbzfGyOLFi2XQoEHu9vz8fDl06FB3HzcAoIeL7srO3377rUycOFF+9KMfyd/+9je57rrrXFz69+8f3OeFF16Q5cuXyxtvvCE5OTmyaNEiKSgokAMHDkh8fPzlf7LWEyJRHp2gRYh/Tv6veCd1jHgnwqPvo4DWb8Q7CRninW/3iXcGjBTv1FeJV2I6RaSpewP0/PPPS1ZWlqxZsya4zUbm3LOfZcuWydNPPy1Tp0512958801JT0+XTZs2ycyZM8/7mK2trW4JaGxs7MohAQB6qC49NHzvvfdk9OjRcs8990haWprcdtttsnr16uDtR44ckdraWnfZLSAlJUXGjRsnFRUVF/yYZWVlbp/AYgMHAOj9uhSgw4cPy8qVK2Xo0KHywQcfyCOPPCJz5851l9ssGx/LnvGcy64Hbvuu0tJSaWhoCC41NTVX/r8BAPQYXboE19nZ6c6AnnvuObduz4Cqqqpk1apVUlRUdEUHEBcX5xYAQHjp0hmQndl20003hWwbNmyYHD161L2fkXH2Scy6urqQfex64DYAALocIDsDrrq6OmTbwYMHZfDgwcEJCTY05eXlIZMKdu/eLXl5eYw4AODKLsHNnz9fJkyY4C7B/fznP5fKykp59dVX3WJFRERISUmJPPvss+55osA07MzMTJk2bVpXPhUAoJfrUoDGjBkjGzdudBMHfve737nA2GnXhYWFwX0WLlwozc3NMnv2bKmvr5dJkybJli1buvYaIABArxdh7It3PGIv2dnp2A1vDZLkPh69gDD+OvHOqdDn2ryQEvocoReiPHzwc+LCL0tQlX2PeOfYFvFOSq54p96vF6I2tnRKyr1fuZnN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",
|
|
259
|
+
"text/plain": [
|
|
260
|
+
"<Figure size 640x480 with 1 Axes>"
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"metadata": {},
|
|
264
|
+
"output_type": "display_data"
|
|
265
|
+
}
|
|
266
|
+
],
|
|
267
|
+
"source": [
|
|
268
|
+
"import matplotlib.pyplot as plt\n",
|
|
269
|
+
"result.plot_labeled_union_graph()\n",
|
|
270
|
+
"plt.show()\n",
|
|
271
|
+
"for mi in result.model_indicators():\n",
|
|
272
|
+
" mi.plot_resolution()\n",
|
|
273
|
+
" plt.show()"
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"metadata": {
|
|
278
|
+
"jupytext": {
|
|
279
|
+
"cell_metadata_filter": "-all",
|
|
280
|
+
"formats": "py:percent,ipynb"
|
|
281
|
+
},
|
|
282
|
+
"kernelspec": {
|
|
283
|
+
"display_name": ".venv",
|
|
284
|
+
"language": "python",
|
|
285
|
+
"name": "python3"
|
|
286
|
+
},
|
|
287
|
+
"language_info": {
|
|
288
|
+
"codemirror_mode": {
|
|
289
|
+
"name": "ipython",
|
|
290
|
+
"version": 3
|
|
291
|
+
},
|
|
292
|
+
"file_extension": ".py",
|
|
293
|
+
"mimetype": "text/x-python",
|
|
294
|
+
"name": "python",
|
|
295
|
+
"nbconvert_exporter": "python",
|
|
296
|
+
"pygments_lexer": "ipython3",
|
|
297
|
+
"version": "3.13.5"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"nbformat": 4,
|
|
301
|
+
"nbformat_minor": 5
|
|
302
|
+
}
|