Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GeoInt 2022 - Introduction to GeoNode

GeoInt 2022 - Introduction to GeoNode

The presentation provides an introduction to one of the most complete and most widely used open source products for the geospatial world, GeoNode. For those wishing to build a spatial data infrastructure using open source products or those simply willing to explore what exists outside the ESRI silo we will provide an overview of the GeoNode capabilities in terms of data management, publishing and dissemination.

Simone Giannecchini

May 01, 2022

More Decks by Simone Giannecchini

Other Decks in Programming


  1. Introduction to GeoNode Simone Giannnecchini 2 Founder/Director GeoSolutions Italy President

    GeoSolutions USA Ryan Burley Director of Biz Dev & Sales North America GeoSolutions USA
  2. GeoSolutions Group • World leader in Open Source enterprise software

    for geospatial information management since 2006 • More than 240 customer worldwide, offices in Italy & US • Core Open Source Products – MapStore – GeoServer – GeoNode – GeoNetwork • Offer – Enterprise Support – Professional Training – Custom Tailor Solution – Subscriptions 3
  3. Outline • Introduction to GeoNode • Dataset management with GeoNode

    • Mapping with GeoNode • Dashboards with GeoNode • Storytelling with GeoNode • Who is using GeoNode • Documentation & resources on GeoNode 4
  4. • Geospatial data content management system • Free and Open

    Source • Data upload (web and API) + management • Data dissemination via OGC API (CSW, WMS, WFS, WCS, WMTS) • Integrated security with granular permissions • Integrated metadata management • Integrated advanced visualizations – Mapping + storytelling + dashboards • Advanced data filtering, exporting and editing GeoNode Capabilities 6 ALL IN A SINGLE PLATFORM!
  5. GeoNode Architecture • Leverages most widely used open source components

    • PostGIS as DBMS • GeoServer as OGC Server • pyCSW as Catalogue Service • MapStore as the webgis • Django for the portal & infrastructure • Celery and RabbitMQ for the asynchronous processing 7
  6. GeoNode Resources Allowed resources types and creation options • Datasets:

    Upload, Import, Create, Proxy (remote) • Shapefile, GeoTiff, CSV, GeoPackage • Documents: Upload • PDF, XLS, MP4, JPEG, PNG, etc… • Maps: Create • Geostory: Create • Dashboard: Create 8
  7. GeoNode User Interface • GeoNode Homepage • Full Text Search

    • Featured Resources • Infinite Scrolling • Quick Preview 10
  8. Datasets Upload • Choose with file browser or Drag&Drop your

    files • REST API Upload • QGIS Upload → NEW! • Automated ingestion workflow for Vector and Raster datasets • Start with geospatial file • End up with a managed dataset with OGC Endpoints 17
  9. Datasets Creation • Easy vector dataset creation via UI •

    Add vector features later via webgis (MapStore) or via WFS-T API (ex. QGIS) 19
  10. Remote Datasets • Easily connect to 3rd party OGC servers

    & ArcGIS Services • Import desired resources 20
  11. Documents as datasets • Support for many types of documents

    upload • Bonus: Link your non geographical documents with available resources 21
  12. Metadata Management • Create and manage metadata via a wizard

    UI • Import Metadata from standard formats (Dublin Core, XML-ISO, etc.) 22
  13. Manage and Edit data with QGIS Plugin Edit and sync

    styles between GeoNode and QGIS 27
  14. Maps • Search and add GeoNode catalog layers • Order

    and group layers in map layers tree • Create new styles • Create widgets • Compare tools (swipe and spy glass) • Measure tools • Annotations • Customizable Backgrounds • Print tool 31
  15. Maps: Create widgets 34 Tip: Widgets can be linked to

    map bounds and/or applied a data filter
  16. Maps: Annotations 37 • Annotations with different geometry types •

    Style annotation features • Export annotations as GeoJSON
  17. Advanced Styling • Ability to style both raster and vector

    layer • Predefined template styles • Style creation via UI • Style creation via code (SLD, GeoCSS) 40
  18. Style Concepts • Layer (the styles applies to) • Rules

    – Filters/selectors (what should be painted, e.g. feature with a specific value of a property) – Scale dependencies (zoomed in, zoomed out?) – Symbolizers (how should it be painted) • Point • Line • Polygon • Text 46
  19. 47 <!–- Boilerplate beginning ommitted --> … <sld:Rule> <ogc:Filter> <ogc:PropertyIsEqualTo>

    <ogc:PropertyName>type</ogc:PropertyName> <ogc:Literal>alpine_hut</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <sld:MaxScaleDenominator>100000.0</sld:MaxScaleDenominator> <sld:PointSymbolizer> <sld:Graphic> <sld:ExternalGraphic> <sld:OnlineResource xlink:type="simple" xlink:href="symbols/alpinehut.p.16.png"/> <sld:Format>image/png</sld:Format> </sld:ExternalGraphic> </sld:Graphic> </sld:PointSymbolizer> </sld:Rule> <!–- Boilerplate end ommitted --> Filter Scale dep. Symbolizer SLD 1.0
  20. GeoCSS • Compact syntax, familiar for web developers • CQL

    based filtering, rule nesting and cascading keeps complex styling compact (you just express the overrides to the base) • Autocomplete in the style editor • Does not get any more compact than this: 48 [type = 'alpine_hut'][@sd < 100k] { mark: url('symbols/alpinehut.p.16.png'); }
  21. Transformation Functions Another way of setting a different value depending

    on the current scale/zoom level. Useful if the scaling is not linear 51 • Less than 400k 🡪 2px • [400k, 800k] 🡪 1.9px • [800k, 1.5M] 🡪 1.4px • [1.5M, 3M] 🡪 1 • [3M, 6M] 🡪 0.8 • Above 6M -> 0.5 [class = 'highway’ and type in ('motorway’, 'motorway_link’)] [@sd < 25M] { stroke: #e66e89; stroke-width: categorize(@sd, 2, 400k, 1.9, 800k, 1.4, 1.5M, 1, 3M, 0.8, 6M, 0.5);
  22. 52 52 [@sd < 200k] { label: [FULLNAME]; label-anchor: 0.5

    1.0; label-offset: 0.0 -14.0; font-fill: #000033; font-family: Arial; font-size: 12; halo-color: white; halo-radius: 1.5; label-priority: 200000; label-auto-wrap: 100; mark: url('./img/landmarks/${IMAGE}’); mark-label-obstacle: true; } «FULLNAME» attribute Auto wrapping label with halo. Data driven symbol URL Labels won’t overlap the symbol CSS Labels
  23. 53 53 [@sd < 200k] { label: [LABEL_NAME]; font-fill: #000000;

    font-family: Arial; font-size: 13; font-style: normal; font-weight: bold; halo-color: #FFFFFF; halo-radius: 1; label-follow-line: true; label-repeat: 400; label-group: true; label-max-displacement: 200; } Draw «LABEL_NAME», black, with white halo Draw them along lines, fuse segments with same label, repeat CSS Line Labels
  24. Raster Styling 54 [@sd > 75000] { raster-channels: auto; raster-color-map:

    color-map-entry(#00BFBF, -100.0, 0) color-map-entry(#00FF00, 920.0, 0) color-map-entry(#00FF00, 920.0, 1.0) color-map-entry(#FFFF00, 1940.0, 1.0) color-map-entry(#FFFF00, 1940.0, 1.0) color-map-entry(#FF7F00, 2960.0, 1.0) color-map-entry(#FF7F00, 2960.0, 1.0) color-map-entry(#BF7F3F, 3980.0, 1.0) color-map-entry(#BF7F3F, 3980.0, 1.0) color-map-entry(#141514, 5000.0, 1.0); } CSS
  25. GeoNode Security Backend GeoNode takes advantage of its Django backend

    to provide a robust and granular security backend • Users • Permissions: Binary (yes/no) flags designating whether a user may perform a certain task. • Groups: A generic way of applying labels and permissions to more than one user. • A configurable password hashing system • Forms and view tools for logging in users, or restricting content • A pluggable backend system 56
  26. Supported Authentication Backends • Basic Authentication • OAuth2 / OpenID

    • Social Media (Twitter, LinkedIn, …) • Keycloak • LDAP • … 57
  27. Public or Private by default • In its default configuration,

    GeoNode makes published data visible to anyone • It can be configured to make new data private by default, letting data owners and / or the administrators to relax the access rules • GeoNode can also be configured with a global lock. Only authenticated users can list and view authorized contents 58
  28. Approval and Publishing system • The so called “Advanced Workflow”

    configuration can be activated to take control over: • The approval of resources • The publishing of a resource • Only specific user roles can approve and / or publish resources. Once the resource is approved only administrators and privileged users can make changes to it 59
  29. Granular Permission System Permissions are delegated to the GeoServer backend

    which uses an advanced authorization system called GeoFence. • The Authorizations rules have a fine granularity. The security rules are handled by GeoFence similarly to the iptables rules and allows for defining security constraints even on sub-regions and layer attributes. • GeoFence exposes a REST interface to its internal rule database, allowing external managers to update the security constraints programmatically • GeoFence implements an internal caching mechanism which improves considerably the performances under load. 60
  30. GeoStories • A GeoStory is a special type of content

    in GeoNode allowing you to create a storytelling-type frame composed by a mix of geospatial data and static media-type contents. • Ability to compose the frames by placing text, images, video, audio, maps and other static contents into a dynamic page which will result in a narrative story. • An alternative way to a simple plain map of presenting contents and link them to events and places in the world. 65
  31. GeoStory Sections • Title - Customizable Text and background (Image,

    Video or Map) • Banner - Only background customizable (Image, Video or Map) • Paragraph - Text, Image or Media content can be added • Immersive - Background is customizable as well Text, Image or Media content can be added • GeoCarousel - Map can be added as background, a text content customized and carousel cards with geographic content can be added • Media - Customizable Image, Video or Maps content • Web Page - Link an external website as content 66
  32. GeoStory: Complete demo • Review full featured GeoStory examples 70

    https://stable.demo.geonode.org/apps/3491/embed https://stable.demo.geonode.org/apps/425/embed https://master.demo.geonode.org/catalogue/#/geostory/79
  33. Dashboards • Provide an overview to better visualize a specific

    data context • Interact spatially and analytically with the data by creating connections between widgets • Perform analysis on involved data/layers 72
  34. Dashboards: Map widget • On this widget you must choose

    a pre-existing map resource, but you can remove and/or add more layers to the existing map context. 74
  35. Dashboards: Table widget • On table widget you can choose

    field to show and/or predefined a filter. You can also connect this widget to a map widget to filter by map bounds 75
  36. Dashboards: Graph widget • You can use bar, pie or

    line chart for a given layer attribute. You can also connect this widget to a map widget to filter by map bounds 76
  37. Dashboards: Counter widget • Allows you to perform a count

    operation over a specific layer attribute 77
  38. Who is using GeoNode: Adadata • Data portal to support

    defense and intelligence communities • Masego Inc. 81
  39. Who is using GeoNode: UNESCO IHP WINS • Water Information

    Network System portal • UNESCO HQ (Paris) • Partners around the world 82
  40. Who is using GeoNode: The World Bank 84 • Global

    Facility for Disaster Reduction and Recovery @ WB • Curated Hazard Open Data
  41. Who is using GeoNode: UN WFP 85 • UN World

    Food Program • Curated WFP Open Data
  42. Who is using GeoNode: UNMISS 87 • UN Mission in

    South Sudan • Curated GeoStories for UNMISS projects
  43. GeoNode Roadmap & Wishlist 89 • Vector Tiles • GeoPackage

    Upload • On the fly analysis • Data Preprocessing • Data Collection support
  44. GeoNode Resources • Open Access Demos (you can register and

    play with it for free) – for 4.x – for 3.3.x • Documentation – for 4.x – for 3.3.x • Training Material – for 4.x – for 3.3.x • Our youtube channel • Our slidedeck • Recordings for our online classes (Bonus) 90