@@ -13,14 +13,18 @@ def _():
13
13
return (mo ,)
14
14
15
15
16
+ @app .cell
17
+ def _ (mo ):
18
+ mo .md (f"# Tiled and woven maps of multivariate data" )
19
+ return
20
+
21
+
16
22
@app .cell (hide_code = True )
17
23
def _ ():
18
24
import matplotlib as mpl
19
25
import geopandas as gpd
20
- from weavingspace import TileUnit
21
- from weavingspace import WeaveUnit
22
- from weavingspace import Tiling
23
- return TileUnit , Tiling , WeaveUnit , gpd , mpl
26
+ import weavingspace as wsp
27
+ return gpd , mpl , wsp
24
28
25
29
26
30
@app .cell (hide_code = True )
@@ -29,12 +33,6 @@ def _(gpd):
29
33
return (gdf ,)
30
34
31
35
32
- @app .cell
33
- def _ ():
34
- # tiled_map = Tiling(final_tile, gdf).get_tiled_map()
35
- return
36
-
37
-
38
36
@app .cell (hide_code = True )
39
37
def _ (gdf , mo , tile ):
40
38
_tile_ids = sorted (list (set (tile .tiles .tile_id )))
@@ -73,12 +71,12 @@ def _(mpl, pals):
73
71
@app .cell (hide_code = True )
74
72
def _ (mo ):
75
73
tile_map_button = mo .ui .run_button (label = "Tile map!" )
76
- tile_map_button
74
+ tile_map_button . center ()
77
75
return (tile_map_button ,)
78
76
79
77
80
78
@app .cell (hide_code = True )
81
- def _ (Tiling , final_tile , gdf , mo , pals , tile , tile_map_button , vars ):
79
+ def _ (final_tile , gdf , mo , pals , tile , tile_map_button , vars , wsp ):
82
80
_centred = {"display" : "flex" , "height" : "500px" ,
83
81
"justify-content" : "center" , "align-items" : "center" ,
84
82
"text-align" : "center" }
@@ -98,7 +96,7 @@ def _(Tiling, final_tile, gdf, mo, pals, tile, tile_map_button, vars):
98
96
])
99
97
mo .stop (not tile_map_button .value , mo .md (_msg ).style (_centred ))
100
98
_tile_ids = sorted (list (set ((tile .tiles .tile_id ))))
101
- tiled_map = Tiling (final_tile , gdf ).get_tiled_map ()
99
+ tiled_map = wsp . Tiling (final_tile , gdf ).get_tiled_map ()
102
100
tiled_map .variables = {k : v for k , v in zip (_tile_ids , vars .value )}
103
101
tiled_map .colourmaps = {k : v for k , v in zip (vars .value , pals .value )}
104
102
tiled_map .render (legend = False )
@@ -122,8 +120,9 @@ def _(mo, tile):
122
120
@app .cell
123
121
def _ (mo , p_inset , tile , tile_or_weave ):
124
122
_max_t_inset = p_inset .value // 3 if tile_or_weave .value == "tiles" else tile .spacing // 10
123
+ _value_t_inset = _max_t_inset if tile_or_weave .value == "tiles" else 0
125
124
t_inset = mo .ui .slider (start = 0 , stop = _max_t_inset , step = 1 ,
126
- value = 0 , show_value = True , debounce = True )
125
+ value = _value_t_inset , show_value = True , debounce = True )
127
126
return (t_inset ,)
128
127
129
128
@@ -142,17 +141,17 @@ def _(mo, p_inset, t_inset, tile_or_weave, tile_rotate):
142
141
return
143
142
144
143
145
- @app .cell ( hide_code = True )
144
+ @app .cell
146
145
def _ (mo ):
147
- tile_or_weave = mo .ui .dropdown (options = ["tiles" , "weave" ], value = "tiles" )
146
+ tile_or_weave = mo .ui .dropdown (options = ["tiles" , "weave" ], value = "tiles" , label = "#### Pick tile or weave" )
148
147
mo .md ("\n " .join ([
149
148
f"### General specification" ,
150
- f"#### Pick tile or weave { tile_or_weave } "
149
+ f"{ tile_or_weave } " ,
151
150
]))
152
151
return (tile_or_weave ,)
153
152
154
153
155
- @app .cell ( hide_code = True )
154
+ @app .cell
156
155
def _ (mo , tile_or_weave ):
157
156
if tile_or_weave .value == "tiles" :
158
157
family = mo .ui .dropdown (
@@ -164,6 +163,7 @@ def _(mo, tile_or_weave):
164
163
options = ["plain" , "twill" , "basket" ], #, "cube"],
165
164
value = "plain" , label = "#### Weave type" )
166
165
166
+ mo .md (f"{ family } " )
167
167
return (family ,)
168
168
169
169
@@ -175,56 +175,40 @@ def _(mo, tile_or_weave):
175
175
else :
176
176
spacing = mo .ui .slider (start = 100 , stop = 1000 , step = 10 , value = 250 ,
177
177
show_value = True , debounce = True )
178
- return (spacing ,)
179
-
180
-
181
- @app .cell
182
- def _ (family , mo , spacing ):
183
- tile_general = mo .ui .dictionary ({
184
- "family" : family ,
185
- "spacing" : spacing
186
- })
187
- return (tile_general ,)
188
178
189
-
190
- @app .cell (hide_code = True )
191
- def _ (mo , tile_general ):
192
- mo .md ("\n " .join ([
193
- f"#### Family { tile_general ['family' ]} " ,
194
- f"#### Spacing { tile_general ['spacing' ]} "
195
- ]))
196
- return
179
+ mo .md (f"#### Spacing { spacing } " )
180
+ return (spacing ,)
197
181
198
182
199
183
@app .cell (hide_code = True )
200
- def _ (mo , tile_general , tile_or_weave ):
201
- if "slice" in tile_general [ ' family' ] .value :
184
+ def _ (family , mo , tile_or_weave ):
185
+ if "slice" in family .value :
202
186
_n_parts = mo .ui .slider (
203
187
steps = [x for x in range (2 , 13 )], value = 6 ,
204
188
label = f"#### Number of slices" ,
205
189
show_value = True , debounce = True )
206
- elif tile_general [ ' family' ] .value == "hex-dissection" :
190
+ elif family .value == "hex-dissection" :
207
191
_n_parts = mo .ui .slider (
208
192
steps = [4 , 7 , 9 ], value = 7 ,
209
193
label = f"#### Number of pieces" ,
210
194
show_value = True , debounce = True )
211
- elif tile_general [ ' family' ] .value == "cross" :
195
+ elif family .value == "cross" :
212
196
_n_parts = mo .ui .slider (
213
197
steps = [x for x in range (2 , 8 )], value = 5 ,
214
198
label = f"#### Number of crosses" ,
215
199
show_value = True , debounce = True )
216
- elif "colour" in tile_general [ ' family' ] .value :
200
+ elif "colour" in family .value :
217
201
_n_parts = mo .ui .slider (
218
202
steps = [x for x in range (2 , 10 )], value = 7 ,
219
203
label = f"#### Number of colours" ,
220
204
show_value = True , debounce = True )
221
205
222
- if "slice" in tile_general [ ' family' ] .value :
206
+ if "slice" in family .value :
223
207
_offset = mo .ui .slider (
224
208
steps = [x / 100 for x in range (101 )], value = 0 ,
225
209
label = "#### Offset" ,
226
210
show_value = True , debounce = True )
227
- elif tile_general [ ' family' ] .value == "hex-dissection" :
211
+ elif family .value == "hex-dissection" :
228
212
_offset = mo .ui .number (
229
213
start = 0 , stop = 1 ,
230
214
label = "#### Offset" , debounce = True )
@@ -236,9 +220,9 @@ def _(mo, tile_general, tile_or_weave):
236
220
label = "Code"
237
221
)
238
222
239
- if tile_general [ ' family' ] .value == "twill" or tile_general [ ' family' ] .value == "basket" :
223
+ if family .value == "twill" or family .value == "basket" :
240
224
_strands = mo .ui .text (value = "ab|cd" , label = "#### Strands spec" )
241
- elif tile_general [ ' family' ] .value == "plain" :
225
+ elif family .value == "plain" :
242
226
_strands = mo .ui .text (value = "a|b" , label = "#### Strands spec" )
243
227
else :
244
228
_strands = mo .ui .text (value = "abc|def|ghi" , label = "#### Strands spec" )
@@ -247,11 +231,11 @@ def _(mo, tile_general, tile_or_weave):
247
231
show_value = True , debounce = True )
248
232
249
233
if tile_or_weave .value == "tiles" :
250
- if tile_general [ ' family' ] .value in ["laves" , "archimedean" ]:
234
+ if family .value in ["laves" , "archimedean" ]:
251
235
tile_spec = mo .ui .dictionary ({
252
236
"code" : _code ,
253
237
})
254
- elif "slice" in tile_general [ ' family' ] .value or tile_general [ ' family' ] .value == "hex-dissection" :
238
+ elif "slice" in family .value or family .value == "hex-dissection" :
255
239
tile_spec = mo .ui .dictionary ({
256
240
"n" : _n_parts ,
257
241
"offset" : _offset ,
@@ -275,20 +259,20 @@ def _(mo, tile_spec):
275
259
276
260
277
261
@app .cell (hide_code = True )
278
- def _ (TileUnit , WeaveUnit , gdf , tile_general , tile_or_weave , tile_spec ):
262
+ def _ (family , gdf , spacing , tile_or_weave , tile_spec , wsp ):
279
263
if tile_or_weave .value == "tiles" :
280
- tile = TileUnit (tiling_type = tile_general [ ' family' ] .value ,
281
- spacing = tile_general [ " spacing" ] .value ,
282
- n = tile_spec ["n" ].value if "n" in tile_spec else None ,
283
- code = tile_spec ["code" ].value if "code" in tile_spec else None ,
284
- offset = tile_spec ["offset" ].value if "offset" in tile_spec else None ,
285
- crs = gdf .crs )
264
+ tile = wsp . TileUnit (tiling_type = family .value ,
265
+ spacing = spacing .value ,
266
+ n = tile_spec ["n" ].value if "n" in tile_spec else None ,
267
+ code = tile_spec ["code" ].value if "code" in tile_spec else None ,
268
+ offset = tile_spec ["offset" ].value if "offset" in tile_spec else None ,
269
+ crs = 3857 if gdf is None else gdf .crs )
286
270
else :
287
- tile = WeaveUnit (weave_type = tile_general [ ' family' ] .value ,
288
- spacing = tile_general [ " spacing" ] .value ,
289
- strands = tile_spec ["strands" ].value ,
290
- aspect = tile_spec ["aspect" ].value ,
291
- crs = gdf .crs )
271
+ tile = wsp . WeaveUnit (weave_type = family .value ,
272
+ spacing = spacing .value ,
273
+ strands = tile_spec ["strands" ].value ,
274
+ aspect = tile_spec ["aspect" ].value ,
275
+ crs = 3857 if gdf is None else gdf .crs )
292
276
return (tile ,)
293
277
294
278
0 commit comments