|
39 | 39 | "import geopandas as gpd\n", |
40 | 40 | "import palettable.colorbrewer.diverging\n", |
41 | 41 | "\n", |
42 | | - "from lonboard import PathLayer\n", |
| 42 | + "from lonboard import PathLayer, viz\n", |
43 | 43 | "from lonboard.colormap import apply_continuous_cmap" |
44 | 44 | ] |
45 | 45 | }, |
|
101 | 101 | "cell_type": "code", |
102 | 102 | "execution_count": 4, |
103 | 103 | "id": "14d60ee4-4006-48b3-8ddb-52e3ae6002da", |
104 | | - "metadata": {}, |
| 104 | + "metadata": { |
| 105 | + "scrolled": true |
| 106 | + }, |
105 | 107 | "outputs": [ |
106 | 108 | { |
107 | 109 | "data": { |
|
277 | 279 | "metadata": {}, |
278 | 280 | "outputs": [], |
279 | 281 | "source": [ |
280 | | - "gdf = gdf[(gdf['country'] == 'United States') & (~gdf['state'].isin(['Hawaii', 'Alaska']))]" |
| 282 | + "gdf = gdf[gdf[\"state\"] == \"California\"]" |
281 | 283 | ] |
282 | 284 | }, |
283 | 285 | { |
|
297 | 299 | { |
298 | 300 | "data": { |
299 | 301 | "application/vnd.jupyter.widget-view+json": { |
300 | | - "model_id": "ab1597e0dde74743a143d1b4f35247a7", |
| 302 | + "model_id": "8b473d8dd0c640d09b2f7b1163785f8d", |
301 | 303 | "version_major": 2, |
302 | 304 | "version_minor": 0 |
303 | 305 | }, |
304 | 306 | "text/plain": [ |
305 | | - "PathLayer(get_color=[0, 0, 0], table=pyarrow.Table\n", |
306 | | - "prefix: string\n", |
307 | | - "number: string\n", |
308 | | - "class: string\n", |
309 | | - "type: string\n", |
310 | | - "di…" |
| 307 | + "PathLayer(table=pyarrow.Table\n", |
| 308 | + "__index_level_0__: int64\n", |
| 309 | + "geometry: list<item: list<item: fixed_size_list<item: d…" |
311 | 310 | ] |
312 | 311 | }, |
313 | 312 | "execution_count": 6, |
|
316 | 315 | } |
317 | 316 | ], |
318 | 317 | "source": [ |
319 | | - "black = [0, 0, 0]\n", |
320 | | - "map_ = PathLayer.from_geopandas(gdf, get_color=black, width_min_pixels=0.8)\n", |
| 318 | + "map_ = viz(gdf.geometry, width_min_pixels=0.8)\n", |
321 | 319 | "map_" |
322 | 320 | ] |
323 | 321 | }, |
| 322 | + { |
| 323 | + "cell_type": "markdown", |
| 324 | + "id": "42b7892e-b0b6-4fa8-87a5-937e363c6e34", |
| 325 | + "metadata": {}, |
| 326 | + "source": [ |
| 327 | + "This map object is a [`PathLayer`](https://developmentseed.org/lonboard/api/layers/path-layer/) type. You could have created the same map by using\n", |
| 328 | + "\n", |
| 329 | + "```py\n", |
| 330 | + "map_ = lonboard.PathLayer.from_geopandas(gdf)\n", |
| 331 | + "```" |
| 332 | + ] |
| 333 | + }, |
| 334 | + { |
| 335 | + "cell_type": "code", |
| 336 | + "execution_count": 7, |
| 337 | + "id": "8ff0879a-ae90-4302-91df-7c381a0a1f09", |
| 338 | + "metadata": {}, |
| 339 | + "outputs": [ |
| 340 | + { |
| 341 | + "data": { |
| 342 | + "text/plain": [ |
| 343 | + "lonboard.layer.PathLayer" |
| 344 | + ] |
| 345 | + }, |
| 346 | + "execution_count": 7, |
| 347 | + "metadata": {}, |
| 348 | + "output_type": "execute_result" |
| 349 | + } |
| 350 | + ], |
| 351 | + "source": [ |
| 352 | + "type(map_)" |
| 353 | + ] |
| 354 | + }, |
| 355 | + { |
| 356 | + "cell_type": "markdown", |
| 357 | + "id": "a6bdfd6d-2689-42f6-a538-8f833c6d539a", |
| 358 | + "metadata": {}, |
| 359 | + "source": [ |
| 360 | + "We can look at the [documentation for `PathLayer`](https://developmentseed.org/lonboard/api/layers/path-layer/) to see what other rendering options it allows. Let's set the path color to something other than black:" |
| 361 | + ] |
| 362 | + }, |
| 363 | + { |
| 364 | + "cell_type": "code", |
| 365 | + "execution_count": 8, |
| 366 | + "id": "75f67a77-062a-4043-9454-5b2b97b52288", |
| 367 | + "metadata": {}, |
| 368 | + "outputs": [], |
| 369 | + "source": [ |
| 370 | + "map_.get_color = [200, 0, 200]" |
| 371 | + ] |
| 372 | + }, |
324 | 373 | { |
325 | 374 | "cell_type": "markdown", |
326 | 375 | "id": "9bac0f0b-7129-476c-8ea0-51c1bede0f4d", |
|
333 | 382 | }, |
334 | 383 | { |
335 | 384 | "cell_type": "code", |
336 | | - "execution_count": 7, |
| 385 | + "execution_count": 9, |
337 | 386 | "id": "5c33098b-0348-4b07-9ae4-5c56d5d50723", |
338 | 387 | "metadata": { |
339 | 388 | "scrolled": true |
|
343 | 392 | "data": { |
344 | 393 | "text/plain": [ |
345 | 394 | "scalerank\n", |
346 | | - "3 255\n", |
347 | | - "4 320\n", |
348 | | - "5 317\n", |
349 | | - "6 700\n", |
350 | | - "7 3332\n", |
351 | | - "8 4339\n", |
352 | | - "9 1228\n", |
353 | | - "10 5902\n", |
354 | | - "11 9859\n", |
355 | | - "12 10179\n", |
| 395 | + "3 19\n", |
| 396 | + "4 93\n", |
| 397 | + "5 35\n", |
| 398 | + "6 94\n", |
| 399 | + "7 178\n", |
| 400 | + "8 122\n", |
| 401 | + "9 1\n", |
| 402 | + "10 237\n", |
| 403 | + "11 541\n", |
| 404 | + "12 1562\n", |
356 | 405 | "Name: count, dtype: int64" |
357 | 406 | ] |
358 | 407 | }, |
359 | | - "execution_count": 7, |
| 408 | + "execution_count": 9, |
360 | 409 | "metadata": {}, |
361 | 410 | "output_type": "execute_result" |
362 | 411 | } |
|
375 | 424 | }, |
376 | 425 | { |
377 | 426 | "cell_type": "code", |
378 | | - "execution_count": 8, |
| 427 | + "execution_count": 10, |
379 | 428 | "id": "c7d26678-418e-48f8-827d-050d9f2df1dd", |
380 | 429 | "metadata": {}, |
381 | 430 | "outputs": [], |
|
393 | 442 | }, |
394 | 443 | { |
395 | 444 | "cell_type": "code", |
396 | | - "execution_count": 9, |
| 445 | + "execution_count": 11, |
397 | 446 | "id": "12be09c8-0857-44d8-ad14-69b4c7277fbc", |
398 | 447 | "metadata": {}, |
399 | 448 | "outputs": [ |
|
403 | 452 | "(0.0, 1.0)" |
404 | 453 | ] |
405 | 454 | }, |
406 | | - "execution_count": 9, |
| 455 | + "execution_count": 11, |
407 | 456 | "metadata": {}, |
408 | 457 | "output_type": "execute_result" |
409 | 458 | } |
|
422 | 471 | }, |
423 | 472 | { |
424 | 473 | "cell_type": "code", |
425 | | - "execution_count": 10, |
| 474 | + "execution_count": 12, |
426 | 475 | "id": "1df9d2c9-6f10-49e6-aa4f-6718f3d2f765", |
427 | 476 | "metadata": {}, |
428 | 477 | "outputs": [], |
|
432 | 481 | }, |
433 | 482 | { |
434 | 483 | "cell_type": "code", |
435 | | - "execution_count": 11, |
| 484 | + "execution_count": 13, |
436 | 485 | "id": "6e0f48ab-0cbe-4ce9-b804-9a1a3330ff9f", |
437 | 486 | "metadata": {}, |
438 | 487 | "outputs": [ |
|
443 | 492 | "<div style=\"vertical-align: middle;\"><strong>PuOr</strong> </div><div class=\"cmap\"><img alt=\"PuOr colormap\" title=\"PuOr\" style=\"border: 1px solid #555;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAYAAABsv8+/AAAAE3RFWHRUaXRsZQBQdU9yIGNvbG9ybWFw1Lg2NQAAABl0RVh0RGVzY3JpcHRpb24AUHVPciBjb2xvcm1hcF8Kpq0AAAAwdEVYdEF1dGhvcgBNYXRwbG90bGliIHYzLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZ7rJ3hAAAAAydEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdjMuNy4zLCBodHRwczovL21hdHBsb3RsaWIub3JnlG9BNwAAAgRJREFUeJzt1kFy2yAAhlFQNr1TD9eTS3QR5IyxsdEknS7+9zYMCIG8SOarf37/aqWUUmsrpZSy1bI01sV98/2v7/v++ZN92zmvS/NtO89/Pf9f5z3OP96M2/28Lu67+ryunrO2b+vj7Qf388ttfTL/9r439/30d5TP+44+tlL7OKy37fn68PwY3p+d8/B+Gd5fvm88pw739fOOz7//o7U+L5P1trheLu7/R+f094/j6GN7Om+T9a/nz9fP/W2y/tPnvP3Ova/vw/59eH7bfz6frQ/fvV98ftyfP65f/t52zve7+df663lr+2R99v7aPY/r1+45x/7fDQBIIgAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAfwF0sXUGDv0RXAAAAABJRU5ErkJggg==\"></div><div style=\"vertical-align: middle; max-width: 514px; display: flex; justify-content: space-between;\"><div style=\"float: left;\"><div title=\"#7f3b08ff\" style=\"display: inline-block; width: 1em; height: 1em; margin: 0; vertical-align: middle; border: 1px solid #555; background-color: #7f3b08ff;\"></div> under</div><div style=\"margin: 0 auto; display: inline-block;\">bad <div title=\"#00000000\" style=\"display: inline-block; width: 1em; height: 1em; margin: 0; vertical-align: middle; border: 1px solid #555; background-color: #00000000;\"></div></div><div style=\"float: right;\">over <div title=\"#2d004bff\" style=\"display: inline-block; width: 1em; height: 1em; margin: 0; vertical-align: middle; border: 1px solid #555; background-color: #2d004bff;\"></div></div>" |
444 | 493 | ], |
445 | 494 | "text/plain": [ |
446 | | - "<matplotlib.colors.LinearSegmentedColormap at 0x125fcbcd0>" |
| 495 | + "<matplotlib.colors.LinearSegmentedColormap at 0x2959c6b50>" |
447 | 496 | ] |
448 | 497 | }, |
449 | | - "execution_count": 11, |
| 498 | + "execution_count": 13, |
450 | 499 | "metadata": {}, |
451 | 500 | "output_type": "execute_result" |
452 | 501 | } |
|
460 | 509 | "id": "74d9d749-4222-4aa8-bf12-ded79187a616", |
461 | 510 | "metadata": {}, |
462 | 511 | "source": [ |
463 | | - "Now we'll use `apply_continuous_cmap` onto this array to generate colors for our data:" |
| 512 | + "Now we'll use `apply_continuous_cmap` onto this array to generate colors for our data. Just set this new array onto the existing map, and you'll see the map update with the new colors!" |
464 | 513 | ] |
465 | 514 | }, |
466 | 515 | { |
467 | 516 | "cell_type": "code", |
468 | | - "execution_count": 12, |
| 517 | + "execution_count": 14, |
469 | 518 | "id": "7288a2d7-3190-4f9e-b29e-bbba32109024", |
470 | 519 | "metadata": {}, |
471 | 520 | "outputs": [], |
472 | 521 | "source": [ |
473 | | - "get_color = apply_continuous_cmap(normalized_scale_rank, palettable.colorbrewer.diverging.PuOr_10, alpha=0.8)" |
474 | | - ] |
475 | | - }, |
476 | | - { |
477 | | - "cell_type": "markdown", |
478 | | - "id": "efbe28aa-c004-41cd-90c9-d12c310b5d95", |
479 | | - "metadata": {}, |
480 | | - "source": [ |
481 | | - "Just set this new array onto the existing map, and you'll see the map update with the new colors!" |
482 | | - ] |
483 | | - }, |
484 | | - { |
485 | | - "cell_type": "code", |
486 | | - "execution_count": 13, |
487 | | - "id": "0173cced-68fa-4966-9bb8-42f44f35e74b", |
488 | | - "metadata": {}, |
489 | | - "outputs": [], |
490 | | - "source": [ |
491 | | - "map_.get_color = get_color" |
| 522 | + "map_.get_color = apply_continuous_cmap(normalized_scale_rank, palettable.colorbrewer.diverging.PuOr_10, alpha=0.8)" |
492 | 523 | ] |
493 | 524 | }, |
494 | 525 | { |
495 | 526 | "cell_type": "code", |
496 | 527 | "execution_count": null, |
497 | | - "id": "82e50385-137d-46e5-91cc-558b252fd757", |
| 528 | + "id": "72807632-f5de-4dcc-9c8e-f4e0c8495e2b", |
498 | 529 | "metadata": {}, |
499 | 530 | "outputs": [], |
500 | 531 | "source": [] |
501 | 532 | } |
502 | 533 | ], |
503 | 534 | "metadata": { |
504 | 535 | "kernelspec": { |
505 | | - "display_name": "lonboard", |
| 536 | + "display_name": "Python 3 (ipykernel)", |
506 | 537 | "language": "python", |
507 | | - "name": "lonboard" |
| 538 | + "name": "python3" |
508 | 539 | }, |
509 | 540 | "language_info": { |
510 | 541 | "codemirror_mode": { |
|
0 commit comments