We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

GeoNode at work: how do I do this, how do I do that?

00:00

Formal Metadata

Title
GeoNode at work: how do I do this, how do I do that?
Title of Series
Number of Parts
266
Author
License
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
GeoSolutions has been involved in a number of projects, ranging from local administrations to global institutions, involving GeoNode deployments, customizations and enhancements. A gallery of projects and use cases will showcase the versatility and effectiveness of GeoNode, both as a standalone application and as a service component, for building secured geodata catalogs and web mapping services, dashboards and geostories. In particular the recent advancements in data ingestion and harvesting workflows will be presented, along with the many ways to expose its secured services to third party clients. Examples of GeoNode’s builtin capabilities for extending and customizing its frontend application will be showcased.
Source codeSoftwareArithmetic meanCore dumpCartesian coordinate systemService (economics)Library catalogMehrplatzsystemFront and back endsRepresentational state transferRemote procedure callVisualization (computer graphics)Level (video gaming)BuildingMetadataFile viewerComputer fileSoftware frameworkPhysical systemSoftwareServer (computing)View (database)MappingFlow separationGroup actionGeometryFundamental theorem of algebraStandard deviationUser interfaceComputing platformRevision controlProduct (business)Functional (mathematics)Raster graphicsVector spaceSingle-precision floating-point formatMathematicsDublin CoreExtension (kinesiology)XMLComputer animation
Source codeSoftwareClient (computing)Software frameworkMappingProjective planeModule (mathematics)Configuration spaceProduct (business)Data storage deviceCore dumpVideo projectorLevel (video gaming)Open sourceCASE <Informatik>Endliche ModelltheoriePlug-in (computing)Web 2.0Cartesian coordinate systemDefault (computer science)Service (economics)Repository (publishing)ExpressionElectronic mailing listGeometrySubsetWebsiteMathematicsInternet service providerXMLUML
Source codeSoftwareTime zonePhysical systemView (database)Web pageCartesian coordinate systemDifferent (Kate Ryan album)Variable (mathematics)Graph coloringPhysical systemElectronic mailing listInfinityHome pageNumbering schemeStandard deviationLevel (video gaming)SpacetimeTouchscreenCASE <Informatik>GeometryXMLComputer animation
Maß <Mathematik>SoftwareSource codeHome pageElectronic mailing listComputer animation
SoftwareSource codeMappingContent (media)Computer iconLink (knot theory)Computer animation
Time zoneSource codeSoftwareCore dumpFunctional (mathematics)XMLComputer animation
Source codeSoftwareLogic gateClique-widthDataflowMedical imagingSoftware developerWeb pageContent (media)Content management systemNormal (geometry)Web 2.0Total S.A.Self-organizationArithmetic progressionSpacetimeQuicksortConnectivity (graph theory)GeometryWebsiteCASE <Informatik>Standard deviationFunctional (mathematics)Film editingComputer animation
SoftwareSource codeProjective planeExecution unitLink (knot theory)MathematicsClient (computing)Front and back endsComputer fileConfiguration spaceComputer configurationVariable (mathematics)Domain nameDebuggerXML
Computer iconSource codeSoftwareFunctional (mathematics)Computer fileConfiguration spaceSimilarity (geometry)Plug-in (computing)Physical systemXML
Asynchronous Transfer ModeComputer fileComputer animation
Modul <Datentyp>SoftwareSource codePlug-in (computing)Service (economics)Special unitary groupLatent heatFront and back endsCASE <Informatik>XMLComputer animation
SoftwareSource codeBoom (sailing)Client (computing)CASE <Informatik>Nichtlineares GleichungssystemLatent heatRaster graphicsProjective planeCalculationSet (mathematics)Module (mathematics)InformationPoint (geometry)MathematicsTouch typingCore dumpComputer animation
Smith chartProgrammable read-only memorySource codeSoftwareTouch typingWordSet (mathematics)Operator (mathematics)DataflowElectronic data processingProcess (computing)Mathematical optimizationRepresentational state transferModule (mathematics)Task (computing)INTEGRALSystem callXML
Source codeSoftwareProcess modelingPlug-in (computing)Module (mathematics)Data managementINTEGRALXMLComputer animation
Source codeSoftwareCASE <Informatik>Right angleService (economics)Single sign-onAuthenticationINTEGRALGeometryInternet service providerSoftwareVariable (mathematics)Table (information)Bridging (networking)Data managementConfiguration spaceCasting (performing arts)Server (computing)Computer clusterGene clusterPhysical systemRemote procedure callSource codeSet (mathematics)Library catalogCentralizer and normalizerClient (computing)Closed setMetadataArithmetic meanKey (cryptography)Single-precision floating-point formatSource codeXML
Computer animation
Transcript: English(auto-generated)
Manage your nodes, meaning that one of the core features of Geonodes is, by design, it's both a platform that can be used for publishing your data, so your
assets, geospatial assets like raster files, geospatial vector data, DBs and so on, imageries, and also build visualizations on top of that. It's easy with a user interface. You can make thematic mapping, styling, build maps,
build dashboards, build geostories, and serve all these resources through standard OGC services, and also as with viewers that are already provided by Geonode itself, both for the platform users to build or manage the data
inside the catalog, or to share this data with ready-to-use viewers to be embedded or integrated in other applications. So you can collect data both as files or remote resources through harvesting services
where you collect, you organize the data, you prepare metadata, standard metadata, or even just a few metadata where it's optional. The metadata stuff in Geonode is optional, but if you want, you can, of course, fill
all the standard ISO or Dublin Core metadata, and so they will be served through standard services, too. So through the CSW standard services as a metadata, so it can be a metadata catalog to be integrated in the metadata
networks, or you can simply use it as a data view, just special server, so you can just simply put your data in Geonode and just use the OGC services, WMS, WFS, WCS services. And all these services, access to the
downloads or the viewers, whatever, is completely protected by granular permission systems that you can assign at granular levels per single user, groups of users, or several ways to organize the
permissions. Permissions is one of the core features of fundamental features in Geonode, because, of course, you don't want to use it only for open catalogs. And it has a very extended REST API, so you can do most
everything. You can manage Geonode completely through its REST API. You can add data, manage the data, change the data, users, permissions, everything through the REST API. So in the recent versions of Geonode, we spent a lot of resources to make it not only a product that is ready to be used, but
also a framework to build special data infrastructure. So now Geonode is almost ready to be used as a back-end service with your custom front-end applications or external applications that just use its services. Or you can
even create your applications to control and manage Geonode. It happens, and this is what we are going to show today. The capabilities of Geonode to be adapted, changed completely, even completely, in a way that it cannot be
recognized to be Geonode. So Geonode itself has a core, which is the project, the Django application, the core modules. And so the way you customize it is by extending what we call the Geonode project. So the
Geonode application has also a site repository, a site application, which is the Geonode project, which is just a container for Geonode that pulls Geonode inside all the services, set up all the services, but it's a
created to let you customize Geonode without touching Geonode. So this is the right way to use Geonode for your own setups. And this is what we suggest to use, not Geonode as itself. You can take Geonode and just
deploy it. But when you do that, you are stuck with what Geonode provides. Or you change Geonode inside the core, which is very difficult to maintain and it's not a proper way to do that, because there are many ways to
override or overload or change the way it works with this Geonode project, where you change configurations and they take precedence for a priority over the core Geonode, or you put models that replace core modules. So this is the way we approach Geonode. This
is the Geonode project. Of course, this way you can, for example, simply use the Geonode project to change the branding, to change logos, change the styling, the layout, so only the UI of Geonode, but it can also be used to extend the core modules or also the
Map Store Client plugin. The Map Store Client is also an open source project from us, which is a web.js framework that is used to build the Geonode client also. And it can be extended with plugins. So the Geonode project is also a
container where you can place or customize the client, the default client for Geonode. So we did it. So the next is just a list of cases, various subsets of cases, because we
have a lot of cases where we normally deploy Geonode with some customizations. Usually, a customer wants some customization, even only a logo or a different color scheme. I
should have given how the standard UI is, because I'm assuming that you are interested in what you can do
beyond it. So if you see this, you say what is different from Geonode, completely different, because the standard way Geonode works is when you access it, you have the standard banner, standard colors with just the straight Geonode. And the homepage is the list, the infinite scroll
list of resources that you have in Geonode. So you don't have any space for branding or your custom buttons and so on. So this is the first level of customization that you can get into Geonode. Bring in your HTMLs, your graphics, your thematic layout, your theming. Also, I
will show you that we have a system to define a theming system for you for Geonode with CSS variables that give you all the principal colors. So you have a
well-defined color scheme in Geonode that is consistent all over the application. So in this case, for example, this customer wanted a banner and some buttons that link to internal views of Geonode or to external applications or to custom pages integrated in Geonode.
So this is an example. Recently, we had UNMIS, which is the United Nations Mission in South Sudan that is Geonode, that wanted the homepage with showing only geostories that were built in Geonode. So this is
just a listing with a preview of the geostory embedded in the homepage. This is an Italian portal of the main river in Italy, where they wanted to have icons about thematic maps, so the contents organized in thematic ways, so showing quick links
to the thematic contents. These are all Geonodes, but they look completely different. So they are still Geonodes. The core is there, the functionality is the same, but the layout is
completely adapted to your needs. So how it works, I mean, I don't want to dig into the details. If you have technical questions, I can explain. Oh, this is a recent development we're working on. It's a work in progress. Now you are
able to customize even more Geonodes. So you can take that. This is the grid of resources. So the typical, the normal grid, which is full page in normal Geonode, you can take it and put it inside the total custom layout. So all the functionality,
which is filtering, searching, listing the resources, previewing the resource, which are features of Geonodes that are normally placed in standard, full width pages, which is the standard way you can just produce it and place it in a web
flow where you have a custom page with titles or whatever you want. And inside the page, you have a space where you can place the component of Geonode easily. So a normal HTML developers without JavaScript skills, whatever, can do that easily now. So in this case, this was asked by
this organization that they had, they wanted to include the text contents, images and their own stuff in Geonode. So instead of embedding Geonode in their website, they decided to put their contents inside Geonode. And it's doable easily.
So it's becoming some sort of content management system in this way. Okay. Well, I don't want to go into the details, but yeah, basically there are some HTML files that simply expose in a standard way, all the
variables that you want to set for the primary color, for the primary links and so on. And you just, in your Geonode project, you just have to create these HTML file, place it in your Geonode project is the just, you don't change anything in Geonode and it will take
priority, it will override the domain in Geonode and you're done. Yeah, you can also configure everything in Geonode that needs more advanced configurations in JavaScript, also for the client. We are exposing more and more things. It can be
overwhelming because you have a lot of options, but we are documenting all the options more and more with examples. So you can find examples in the documentation for changing what you need. So finding easily what you need to change and it's a matter of changing a couple of
files and no more. So this is for the front end configuration. You can go even lower and change the functionality of the plugin, also going into JavaScript and so on, but it's still, again, changing one HTML file. If you know WordPress or similar systems, they have
something similar. You have a config PHP file where you can override almost everything. The same concept applies here. And we also have a simple VIM generator online where you can play, just define the primary colors and in the end, you take the HTML file, it's ready, put it in your project and you're done. Also for working in
dark mode, many want to use dark mode and so on. So this was for the damning, but you can also start going further and you want custom plugins for the JavaScript, for the client, or for the backend. For example, recently we created a
plugin for weather data forecasting and they wanted to, this is an API that interacts in a very specific way with Metro Blue services, you know, maybe it's one of the sun, okay? Thank you. This is HIDI, another case where we
completely developed another client application, emergency. So just screenshots to give you an example of how much you can customize it. We developed modules for specific empirical
equation calculators or raster calculators in the client with WebAssembly and so on. And the point is that all these customizations, including what you want to show in the information panels for the layer, for the data set and so on, is
completely, I repeat it, customizable because this is the main request that we receive and so this is doable with simple changes to a genome project. So in few words, don't touch the core. Okay. We have a lot of integrations, go faster,
with, for example, where a lot of users use rflow for doing pipelines processing and we also use them and we use the REST API in, we have, we are going to release a Python module for Geonote that implements the API in Geonote, there's
a Python module. We already have operators in rflow that implements the Geonote API. So you can just place your operators in rflow and you do all your processing and then call Geonote from rflow tasks to do for uploading the data set or making updates to the data set after specific
processing, the optimizations, pipelines that you do outside of Geonote. We have the QGIS plugin that helps you to prepare processing models for Python modules, PyQGIS modules that can use the general API from QGIS and directly
interact with Geonote. So pulling and pushing data from QGIS to Geonote without having to do it manually, okay, outside of QGIS. Yes, this is the plugin, you can find it in the QGIS plugin manager. Deployments, we have integrations with all the major OpenID to authentication
providers. So we have experience with Azure, with key cloak, with WSO2. So you can integrate the Geonote as an authentication client for authentication providers for single sign-on, but you can also use Geonote as a provider. So for
example, you can use QGIS authentication system to authenticate users in QGIS through Geonote users, and you can even bridge the two. So you authenticate with QGIS, you ask Geonote to authenticate, and you ask Azure AD to authenticate the user. So now you can make all the bridges. One minute, right. Deployments,
do you need to use all the stack of services provided by Geonote? No, I mean, it's the easier way. You have a Docker Compose, build it, run it, and you have everything, GeoServer, Postgres, RabbitMQ, Celery, and all the services that are needed to run Geonote. But it's not the
only way. It's the straightforward way. But you can, of course, use external Postgres cluster, external GeoServer clusters. We do it. Of course, when you do, you have, of course, to take care of configuring things correctly. In the
Docker way, you just have to put some environmental variables and all the rest is done for you because the network is auto-configured and so on. Of course, in the case of DB tables, you can also use data from your DB tables. You just register your data tables into just every Geonote and publish the data. So without having to upload
the data to Geonote, but just publishing the data that you already have. There are some shortcomings because the management is up to you, not the Geonote. So backup and restore is not taking into account your data and so on, but we use it a lot. What else? Closing. Yeah,
same for GeoServer. We have examples of clustering with Azure Cast, the gmb-config, so big clusters of GeoServer. We do that. But, of course, this is a configuration that goes outside Geonote. It's up to you to set up the configuration, or if you want, we can give
you support for that. You can serve external services, resistant services from remote services. One minute more, sorry. Or harvesting from remote resources, meaning that there are also use cases where you don't even put anything in Geonote. You just collect data
sets and documents from existing services, existing sources, and you just use Geonote as a centralized catalog with metadata for all your data. Okay, closing Docker Compose, I see that.