One Geonode, many Geonodes
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
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 | 10.5446/43413 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
FOSS4G Bucharest 2019171 / 295
15
20
28
32
37
38
39
40
41
42
43
44
46
48
52
54
57
69
72
75
83
85
87
88
101
103
105
106
108
111
114
119
122
123
126
129
130
131
132
137
139
140
141
142
143
144
147
148
149
155
157
159
163
166
170
171
179
189
191
192
193
194
195
196
197
202
207
212
213
214
215
216
231
235
251
252
263
287
00:00
DisintegrationClient (computing)Computer networkCAN busData fusionMobile WebMiniDiscStandard deviationWordComputer virusXML
00:36
Client (computing)Standard deviationCAN busSanitary sewerMobile WebExecutive information systemData fusionComputer networkInformation securityWeb servicePartial derivativeOffice suiteMereologyProcess (computing)Staff (military)Service (economics)Software developerOpen sourceData fusionProjective planeGeometryServer (computing)Multiplication signPhysical lawComputer animation
01:39
Open sourceSoftwareData managementComputing platformCodeSystem administratorSoftware developerWebsiteFunction (mathematics)DisintegrationInstance (computer science)Server (computing)Installation artData managementVector spaceLevel (video gaming)Library (computing)Set (mathematics)Presentation of a groupProcess (computing)Product (business)AdditionUser interfaceWeb portalSoftware frameworkServer (computing)Endliche ModelltheorieComputer architectureOpen sourceMappingPattern languageExtension (kinesiology)CASE <Informatik>Group actionPhysical systemArithmetic progressionBasis <Mathematik>Web 2.0Information securityFile formatOperator (mathematics)Web serviceLibrary catalogSystem administratorOrder (biology)SoftwareAttribute grammarWorkstation <Musikinstrument>AuthenticationPrincipal idealVisualization (computer graphics)Web browserData managementAuthorizationPhysical lawData storage deviceDatabaseFront and back endsOpen setCartesian coordinate systemFunction (mathematics)Different (Kate Ryan album)Scripting languageMetadataGastropod shellInterface (computing)Complex (psychology)Representational state transferCapability Maturity ModelMixed realityPolygon meshComputing platformRaster graphicsLimit (category theory)Proxy serverComputer animation
07:07
Personal digital assistantAddress spaceVideo projectorTemplate (C++)Core dumpProjective planeMaterialization (paranormal)Goodness of fitCASE <Informatik>Source codeMultiplication signAddress spaceCode
08:01
Asynchronous Transfer ModeAddress spacePersonal digital assistantTemplate (C++)Core dumpProjective planeCartesian coordinate systemRevision controlTouch typingSource codeOpen sourceSound effectCore dump
08:57
Core dumpEndliche ModelltheorieUser interfaceIntegrated development environmentPhysical systemData managementDatabaseMathematicsReading (process)Computer networkDisintegrationPreprocessorInformationForm (programming)Data warehouseLibrary catalogComputer architectureSet (mathematics)Instance (computer science)Connected spaceStapeldateiEndliche ModelltheorieInterface (computing)User interfaceProduct (business)Connectivity (graph theory)Scripting languageProjective planeInternetworkingSingle-precision floating-point formatMultiplication signDiagramLatent heatCentralizer and normalizerCore dumpAddress spaceExtension (kinesiology)ThumbnailDistanceWater vaporImplementationSource codeComputer animation
11:57
Local ringMoment of inertiaGamma functionSet (mathematics)Computer animation
12:17
Modul <Datentyp>Mathematical analysisImplementationData managementInformationMultiplicationHazard (2005 film)Extension (kinesiology)Type theoryDuality (mathematics)Visualization (computer graphics)Mathematical analysisOrder (biology)Projective planeInterface (computing)Term (mathematics)Data managementCASE <Informatik>Event horizonSource codeXML
13:07
Visualization (computer graphics)Decision theoryMenu (computing)Category of beingComputer fileMetadataDimensional analysisDecision theoryNumberEndliche ModelltheorieTable (information)Data managementSystem administratorResultantQuicksortLevel (video gaming)Interface (computing)Group actionComputer animation
14:26
Decision theoryMathematical analysisProgrammer (hardware)Physical systemComputer networkWater vaporInformationLocal GroupGroup actionText editorTemporal logicClient (computing)DisintegrationSeries (mathematics)Structural loadSystem programmingPhase transitionData managementExtension (kinesiology)Vector spaceVector potentialModule (mathematics)Web pageSingle-precision floating-point formatEndliche ModelltheorieInformation securityEndliche ModelltheoriePhysical systemRight angleDifferent (Kate Ryan album)Process (computing)Single-precision floating-point formatCASE <Informatik>Series (mathematics)Web pageData managementState of matterOrder (biology)Interface (computing)NumberImplementationGroup actionHazard (2005 film)InterprozesskommunikationCartesian coordinate systemLevel (video gaming)Set (mathematics)Monster groupProjective planeSlide ruleTemporal logicComplete metric spaceTorusWorkloadCausalityEmailInsertion lossRow (database)Computer animation
17:51
Endliche ModelltheorieField (computer science)Cartesian coordinate systemOrder (biology)Operator (mathematics)Computer animationLecture/Conference
18:26
Web servicePoint cloudData managementContinuous functionArchitectureModul <Datentyp>Server (computing)MetreHypermediaProduct (business)Distribution (mathematics)WebsiteComputer architectureOrder (biology)Level (video gaming)Information securityUser interfaceComputer configurationProcess (computing)Cartesian coordinate systemMultiplication signInstance (computer science)DebuggerMiddlewareMedical imagingAbstractionSource codeComputer animation
20:15
VotingEndliche ModelltheorieSoftwareUMLComputer animationMeeting/Interview
20:36
Core dumpDampingMobile appSoftware developerTemplate (C++)Endliche ModelltheorieServer (computing)Projective planeLine (geometry)Point (geometry)State of matterWeb serviceLie groupFunctional (mathematics)BuildingMeeting/Interview
Transcript: English(auto-generated)
00:23
Hello. Hi. So hello again. So few words about my company and me. I'm a co-founder of GeoSolutions. It was born in late 2006.
00:42
At the beginning, it was mainly involved on just partial services and data fusion services. Then we suddenly moved into open source projects. The first one was GeoServer, where I am actually an active developer.
01:02
I'm also a member of the PSC of GeoServer, and I started in 2006 basically. I personally created the WCS service the first time, and I'm actually involved mostly on the security staff of GeoServer and the WPS process.
01:24
Now, I mostly work on Geonode open source projects. I am part of the PSC. I am the chair of the PSC and also a project officer on OSC Geo for the Geonode project.
01:40
So one Geonode. Few words, probably most of you knows already what Geonode is. Just real quick, try to explain what it is for and what can be used for. So Geonode is a framework, a web framework basically, based on Django, as we have seen before.
02:05
And it can be used for sharing. So you can use Geonode to share your data with other people. It can use for collect data, as we have seen just before with the previous use case, but we have a lot of use case.
02:22
And also you can use it for use your data. Since it is based on Django, which is a Python framework, it is really extensible. You can easily access the model. You can easily access the data sets through the rest API and
02:42
the Python libraries it has, and produce, create more additional products or processing out of your collected data. And we will see a few examples later on on this presentation also. It is open source, of course.
03:02
So Geonode, it's a platform from the management and publication of just special data. It brings together mature open source software. Currently, it integrates very much your open source software, like GeoServer, Map Store, Pi, CSW, GeoNetwork, and so on.
03:21
It aims to have an easy to use user interface. And one of the goals, the principle goals of Geonode, is to allow non-GIS expert, non-developers, to publish their data set, geospatial data sets,
03:41
and share their data sets and maps with others. It is made for users, of course. It is made for administrators, as we have seen before. You can manage really granularly the authorization and the authentication over your resources.
04:01
It is made for developers, which can easily create new plugins, new extension on Geonode, and create more application on top of the web portal. It allows you to create metadata sets on top of your resources, mesh up together, mix together everything, and
04:23
create nice data visualization and maps. Among the, let's say, principal features of Geonode, there is a web interface that allows you to upload directly your geospatial data sets, of course, behind certain limits.
04:43
You cannot upload gigabyte of rasters through the web interface. It has integrating styling, so you can style your data sets directly through the web interface, through the web portal. You can allow users of Geonode to create styles directly
05:02
through the portal without struggling with complex UI interfaces or shell script or something. You can even allow users to edit the data directly on Geonode. They can create features, they can edit features, geometries,
05:23
they can edit attributes, values, they can filter data sets, and so on. As I said before, there is a very granular permission system that allows you to decide who has access to what. It allows you to download your data sets
05:42
in different output formats automatically. It allows you to manage and divide your users into departments, groups, and security groups. So as an administrator, it has very nice and useful features. It allows you to add additional metadata on top of your resources
06:05
in order to expose your layers through the catalog service. The overall architecture, as I said before, is basically a Django application composed by other sub-applications.
06:24
The web clients are based on JavaScript. They use, again, open source projects for the GIS navigation like open layers, leaflet, and even cesium, if you want.
06:42
You can choose to use technologies, well-known technologies for the frontend like GIS, the old one, or React for the new one. Under the hood, you can use your server or QGIS server and databases like PostgreSQL with GIS extensions.
07:08
Many geonodes, okay, geonode itself cannot address all use cases, of course. So what if I want to customize my portal somehow?
07:22
Avoid to reinvent the wheel. Avoid to fork and diverge for the original source code because you will lose the updates and you, every time you will have to struggle by merging your source code with the new code.
07:42
So, what is a good solution? A solution is to start with a geonode project, which is a Django template ready to use that allows you to create a materialized Django project which uses geonode as a dependency.
08:01
That means that you won't touch directly the geonode core. Geonode will be downloaded and installed as a dependency of the project. So, the next version, you have to just update your requirements. You just have to update your dependency
08:20
and you will benefit of all the new features coming with the new version. Most probably, you will have to touch just a few settings. It extends a vanilla geonode and it provides a custom Django application.
08:40
As usual, if you do something that can be of general interest for a community, for the community, please consider to provide back your source code and also documentation to the project. OK, what geonode project can do for you? It allows you to easily customize the geonode look and feel.
09:04
You can override every single template available in your node. So, you can completely rewrite the portal, if you want, without touching the original core. You can easily extend the model.
09:20
If you need more metadata, if you need more resources, if you need to create specific things, other kind of resources that addresses specific needs, you can easily extend the model without modifying the original one. Define a brand new user interface, as I said.
09:43
You won't sacrifice versatility. You won't sacrifice specific needs. Let's see a few examples of what we have done by customizing geonodes.
10:03
This was a project that we have done for the Caribbean Community Climate and Change Center, C-RED. Basically, they had this problem. They have a lot of single departments
10:22
physically distributed along the highland and most of the time without a reliable internet connection. Moreover, they had to collect data sets every day, especially meteorological data sets. Post-processed the inputs,
10:42
update the data sets into geonodes and then, whenever was possible, to update a central catalog to allow other departments to benefit of the products created by the other nodes, basically. So, at that time, we
11:06
extended the main interface by using, on top of it, a seek and implementation. And basically, we used geonode as a pure middleware. So, basically, we completely remove the user interfaces of geonodes
11:22
and we just use the APIs of geonodes. So, each department created some scripts that's automatically in batch mode. We're able to ingest data on their own local instances and then, every day, there were cron scripts
11:42
able to automatically update a central instance of geonodes and a central instance of seek and. This is more or less an architecture diagram of the components. And this is how, basically, they could be able to update mosaics.
12:07
So, basically, they had forecasts updated every day on the meteorological data sets. Project 2, risk analysis tools.
12:22
This was sponsored by the World Bank on Afghanistan. And, basically, they wanted to customize geonodes in order to expose on a human-usable and readable interface some forecasts about the disasters' impacts
12:45
and also an analysis tool allowing manager to estimate the costs, both in terms of economics and victims involved
13:01
in case of another of those events. So, basically, they provided us something like this, which was a huge Excel table with a lot of numbers as a result of models run by a German company.
13:21
And we customized geonodes by plugging in something like this. So, basically, we were able to... We modified the admin dashboard, allowing a manager to upload the Excel file. And the Excel file contained also a metadata XML file along with it.
13:45
So we were able, basically, to fetch the category the title, the abstracts, the temporal dimensions of the forecasts and the numbers associated with the administration levels.
14:02
So we were able to create this sort of navigation interface which was much more usable and understandable for everyone. And, again, also we were able to create charts out of the original datasets.
14:23
About the cost-benefit and decision tool, again, we had this monster here, basically, with numbers and impacts accordingly to the solutions the data manager and impact assessor could do
14:44
in order to reduce the costs. And we came out with something like that, basically. Again, different use cases related to the specific hazard of those events, basically, along with the forecast,
15:02
the data and the map with the associated layers. And notice that that was an application plugged in directly into geonodes. So we were using the geonode model and the geonode resources to populate those datasets.
15:24
And, again, this is another use case. UNESCO project, they wanted to, and actually they financed the advanced workflow in order to avoid people behind able to directly publish non-validated datasets.
15:43
So their need was basically to allow the state members to managing the datasets before they became publicly available to everyone. So, basically, we created an advanced workflow
16:06
allowing us to, yeah, this is also the temporal series. Yeah, I don't remember where is the slide, but anyway, that allowed us basically to make the manager
16:20
of a single group approve a dataset before becoming public. Also, among this work, we had the first implementation of the temporal vectorial series. And we had improved the internal messaging system of geonodes and the notification system.
16:45
The catastrophize, this was, again, a complete new customization of geonodes. Again, we here used only the middleware. We created a single application, single page interface using React.
17:01
And we used the geonode model and user and security model to create all the process to assess a disaster. Starting from the early warning, there was a system collecting warnings from emails,
17:22
RSS, whatever, and creating alerts. Eventually, the impact assessor could promote the alert to a real warning. So, early warning.
17:43
Next, we were able to move to another set of users with different rights. So, they were able to access a completely different aspect of the application. And they were able to create an operative picture
18:01
and create annotations over the picture in order to instruct the resources on the field how to intervene and how to prevent more victims and costs.
18:25
I will skip because I guess I have just one minute. Okay, so, the future, which is almost reality now.
18:45
We created also Docker instances in order to allow and easily and easy the process of deploying new customization of geonodes. So now, once you have your custom instance of geonode or custom instances of geonode project,
19:01
you can easily create Docker images and distribute them so that your customer basically could easily install and set up a production server in minutes. What's next? In the future, geonode versions,
19:21
we plan to, again, remove as much as possible and detach the user interface from the middleware. So, we would like to have an architecture where you can easily identify the middleware and the front end.
19:40
And you can plug in basically everything, front end, security subsystem, geospatial server, by using an abstraction level. So eventually, in the future, you could be able to use just the API in order to create your customization
20:07
of the portal and the application. That's it, almost in time. Thank you a lot to Alessio. And now, five minutes for questions.
20:27
Hi, so thanks a lot for your work there. The modelization looks super interesting for people like us who are software developer. What is still unclear for me is the benefit of we get by using geonode versus, for example,
20:41
building a Django app on top of PostGIS and Leaflet, which is something we've been doing a lot. So what will be the key benefit for you of getting the integrated geonode experience versus taking the piece that we know? Thank you. Well, first of all,
21:01
you don't have to build everything from scratch. And then you already have a model and you already have a community behind it. So basically, whenever you have issues, whenever you encounter problems, you know that the same developers of the geospatial servers
21:21
are actually involved in the development of geonode. So they know how to better improve the core to communicate with the geospatial server. That said, of course, if you don't need all those functionalities,
21:41
you can build something by your own, of course. But consider that in the end, the geonode dependency and the geonode model is not that big. So it's easily manageable and already provides you basically a relational model
22:03
that you can use for your software. So you, sorry. The starting point would be to understand how the geonode project Django template actually works
22:24
and follow the geonode developers workshop, which is a line that teaches you the best ways to use geonode project to extend the model and the templates.