The Integrated Risk Modelling Toolkit: a QGIS plugin driving the OpenQuake Engine
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 37 | |
Autor | ||
Lizenz | CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben. | |
Identifikatoren | 10.5446/40799 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | |
Genre |
QGIS ACoruña Konferenz 201937 / 37
3
5
8
13
17
19
26
00:00
Desintegration <Mathematik>InformationsmodellierungSoftwareentwicklerPlug inMultiplikationsoperatorDatenverwaltungBitProgramm/QuellcodeComputeranimation
00:26
Desintegration <Mathematik>InformationsmodellierungPlug inSoftwareFreewareInterface <Schaltung>VorgehensmodellServerBrowserBenutzeroberflächeMailing-ListeREST <Informatik>Klasse <Mathematik>SoftwareEndliche ModelltheorieSolitonZentrische StreckungKomplex <Algebra>ServerParametersystemBenutzeroberflächeBitBenutzerbeteiligungBildschirmfensterSoftware Development KitInstantiierungBrowserRechenbuchOffene MengeWeb-ApplikationExpertensystemNotebook-ComputerAbgeschlossene MengeOpen SourcePlug inIntegralComputeranimation
02:44
Plug inDesintegration <Mathematik>VorgehensmodellBenutzeroberflächeRechenbuchProzess <Informatik>DigitalfilterEin-AusgabeBrowserServerSkriptspracheInformationsmodellierungGraphische BenutzeroberflächeTeilmengeViewerPlotterRechenbuchLoginEin-AusgabeElektronische PublikationInstantiierungKartesische KoordinatenSkriptspracheEinfach zusammenhängender RaumCASE <Informatik>PlotterNeuroinformatikFunktion <Mathematik>MultiplikationsoperatorDatenflussSchnittmengePlug inBildschirmfensterBenutzeroberflächeTeilmengeBrowserPuls <Technik>Mapping <Computergraphik>Prozess <Informatik>ViewerBenutzerbeteiligungVisualisierungComputeranimation
04:53
RechenbuchMenütechnikDatenmodellZehnNeunzehnDemo <Programm>RechenbuchHasard <Digitaltechnik>InstantiierungMAPVisualisierungFunktion <Mathematik>AdditionEinfach zusammenhängender RaumBenutzeroberflächeMailing-ListeServerVirtuelle MaschineCASE <Informatik>FlächeninhaltLoginSchätzfunktionLeistung <Physik>p-BlockPhysikalisches SystemSpieltheorieLastComputeranimation
06:09
ViewerHasard <Digitaltechnik>Plug inRechenwerkDatenmodellHasard <Digitaltechnik>Arithmetisches MittelRechter WinkelObjekt <Kategorie>ZoomKurvenanpassungLastProgram SlicingPlug inPunktGraphfärbungMAPBildschirmfensterCASE <Informatik>FlächeninhaltComputeranimation
07:23
KurvenanpassungHasard <Digitaltechnik>ViewerPlug inDesintegration <Mathematik>ParametersystemDigitalfilterLastDemo <Programm>RechenbuchTypentheorieFunktion <Mathematik>VersionsverwaltungFehlermeldungSoftwaretestChi-Quadrat-VerteilungMenütechnikBenutzerhandbuchLateinisches QuadratFokalpunktEin-AusgabeCoxeter-GruppeBridge <Kommunikationstechnik>VorgehensmodellCASE <Informatik>LoopInstallation <Informatik>ImplementierungMultiplikationsoperatorProgrammierungObjekt <Kategorie>Mapping <Computergraphik>ParametersystemZahlenbereichOffene MengeSoftwaretestAdditionTLSLebesgue-IntegralMultifunktionFunktion <Mathematik>MAPRechenbuchPunktArithmetische FolgeCoxeter-GruppeSchnittmengeMetropolitan area networkEin-AusgabeFehlermeldungPlotterRechter WinkelSequenzdiagrammWidgetKurvenanpassungPlug inWellenpaketFunktionalKontextbezogenes SystemSystemaufrufDemo <Programm>DifferenteTypentheorieVektorpotenzialKomplex <Algebra>SymboltabelleBridge <Kommunikationstechnik>LastViewerHasard <Digitaltechnik>RechenwerkComputeranimation
13:02
Plug inKovarianzfunktionAutomatische HandlungsplanungPunktWeb-ApplikationWeb-SeiteInformationsspeicherungVerschlingungEntscheidungstheorieVollständiger VerbandMultiplikationsoperatorProzess <Informatik>EreignishorizontFunktionalMereologieSoundverarbeitungTelekommunikationResultanteRechenbuchBridge <Kommunikationstechnik>RandwertCoxeter-GruppeCASE <Informatik>Nichtlinearer OperatorWort <Informatik>Quick-SortGrößenordnungHasard <Digitaltechnik>Data MiningMapping <Computergraphik>BenutzerbeteiligungDokumentenserverVerkehrsinformationLokales MinimumWiederherstellung <Informatik>QuellcodeVorhersagbarkeitComputeranimation
18:41
Maß <Mathematik>EDV-BeratungComputeranimationJSONXMLUML
Transkript: Englisch(automatisch erzeugt)
00:06
Okay, welcome to the next session. It's Paolo. I'm a bit improvising because I was just asked to host the sessions for emergency management. So Paolo, feel free to start.
00:21
Okay, thank you. My name is Paolo Tormene. I work with GEM Foundation in Pavia, Italy. Pavia is a city close to Milan. And my talk is about a QGIS plugin called the Integrated Risk Modeling Toolkit, which is a plugin that we use to drive the OpenQuake engine.
00:44
And before I talk about the plugin, I want to give you a bit of background to better explain what is the OpenQuake engine and what motivated recreation of this plugin. So, the OpenQuake engine is a free and open source software for the assessment of earthquake
01:02
risk. It is cross-platform. It can run on Linux, Windows and Mac OS. And if you run simple calculations, you can install it just in a simple laptop. But if you want
01:21
to run something complex on a global scale, you can install it in a big cluster and it's optimized to use the resources of a cluster. Natively, the OpenQuake engine has its own command line interface, which is very
01:41
powerful. And if you are a guru and you know exactly what are all the parameters of OpenQuake, you can use that. But many of our users are not that expert and they needed something more user-friendly for working with the engine.
02:02
So, as a preliminary step, we added the OpenQuake engine server that exposes an HTTP REST API so that you can drive the engine, for instance, from a web application.
02:20
And we created a web user interface to drive the engine through a web browser. So, the web user interface is what you see here. You can visualize the list of calculations that you have run on that server. You can run a new calculation giving the
02:44
input file for the calculation. You can visualize the console log for the calculation until the calculation is done and then you visualize the outputs. In this case, you can just download the outputs. You cannot do anything with them.
03:02
So, the workflow is that you have to use external tools to prepare your input files for your calculations. And then you open a second tool, a web browser, to leverage the API to run the calculations and to download the outputs. And then you have to
03:25
start with some other tool that could be QGIS or a script or something to filter your outputs, post-process them, visualize maps, visualize charts and so forth.
03:41
So, the problem is that you have those separate applications. They are not efficiently cooperating. And then when you use, for instance, QGIS, there are some manual steps that you do all the time, like loading the data as a layer or applying the style to the layer, doing some geospatial computation. And also, if you want to make some plots,
04:05
you need additional scripts and so forth. So, we decided to create this plugin. So, there are many features in this plugin. I will show you just a few of them. For instance, there is a dialogue that is similar to the web interface that it was
04:25
showing before that allows you to drive the engine. There are some dialogues that allow you to select some subsets of the data. And then we added a dock window that we call our data viewer that we use for interactive filtering and for plotting.
04:44
So, let me show you what happens if we want to run a calculation driving the OpenQuake Engine. So, first we go to the plugin settings. We set up a connection to an engine server that in this case is the local machine. Once we check
05:02
that the connection is working, we can open those dialogues to run the calculation and visualize the list of outputs. In this case, I'm showing the console log of the calculation for a very basic demo that is a risk estimation in a
05:26
geographic area of Nepal. And when the calculation is completed, the other dialogue shows the list of outputs for that calculation. And what is interesting with respect to the previous approach using the web interface
05:49
is that here, in addition to the possibility to download the outputs, you have also buttons to directly load the outputs in QGIS and visualize them.
06:06
So, let's see what happens if I want to load a hazard map for instance. So, a hazard map basically describes in a grid of points the intensity of the ground shaking. And if I load that, we see that the plugin automatically
06:29
loads the data as a layer, zooms to the right geographic area, styles the layer, and in the legend you can see the meaning of the colors
06:45
showing the intensity of the ground shaking. In this case, this is just one slice of a multidimensional object. So, what happens if we want to display something more complex like some hazard curves that are not
07:09
displayable in the map, but you have to open an external window to visualize actually the curve corresponding to one single point in the map. So, you open the dialog where you can load as layer the hazard curve,
07:27
you set up some parameters, and then it loads the layer showing an X symbol corresponding to each point in the map. And if you use the QGIS selector to select one or multiple points in the map,
07:44
the data viewer shows the corresponding curve or curves. You can filter those curves with the widget on the right. And then, considering that this widget that you see on the right
08:03
is a Matplotlib based widget, you can use all the potential of Matplotlib, you can tweak your plot, and you can also print your plots as a PNG. And also, we have an additional button to export the data as a CSV, so you have just the data
08:25
for the points that you have selected in the map. So, very quickly, a basic example of what happens when you want to show a hazard map. This is a sequence diagram.
08:43
So, you see that when the user wants to load a hazard map, the plugin makes a call to the OpenQuake Engine extract API. So, you extract hazard maps for the calculation number 26, in this case.
09:00
What comes back from the engine is a NumPy compressed object, an NPZ object. Then, the plugin offers to the user the possibility to select some of the data from the object. And once you have selected your data, the plugin creates and styles the layer.
09:25
So, one of the problems that we have developing two tools at the same time is that both the plugin and the OpenQuake Engine evolve quite quickly with time. So, in addition to the usual
09:43
unit tests, we had to implement some integration tests. They run on Travis each and every time we make a pull request on the OpenQuake Engine or a pull request on the plugin side.
10:01
So, the objective is that we want to make sure that the compatibility is kept across time. So, we run about 25 calculations that are demos from the OpenQuake Engine. Each of those calculations has several outputs.
10:24
And so far, the plugin is able to load 18 different output types. So, the checks that we do is that for each output type that the plugin is able to load, it is at least appearing
10:46
in one of the demos from the engine. And that we are able to load that without errors. Okay, the manual is usually done with Sphinx.
11:01
We spent quite a lot of time writing a detailed manual. It shows a lot of features that I'm not describing today. So, if you are curious to know more about the plugin, you can just load the manual and you will see many other functionalities.
11:25
What's the main impact that we had with our users? Well, in addition to the simplifications that I discussed earlier, we used successfully that in our training programs around the world.
11:43
We are trying to have workshops teaching people how to use OpenQuake. And in the past, without the plugin, there was a lot of time wasted in implementation issues, installations of different tools and so on.
12:02
Whereas now, it became much easier to focus on science and avoid talking about those details. So, what's next? Still, we haven't done the full loop inside QGIS
12:28
because there are external input preparation tools that are still not well integrated in this workflow. We have already filled the gap from the creation of the outputs of the engine
12:42
to the presentation of those outputs inside QGIS. But we would like to use also the input preparation tools without re-implementing them because they are quite complex. So, the idea would be to create some kind of bridge to let QGIS
13:06
and those web applications interact bidirectionally so that you can drive your web applications from QGIS and you can also, from the web applications, run some functionalities inside QGIS.
13:21
So, this bridge that we created, we called it Hybridge and it's the topic of the next presentation from Matteo Nastasi, that is a colleague of mine. And so, this is the end of my talk. Thank you for your attention.
13:41
Those links are the link to the plug-in page in the official QGIS repository and the link to the GitHub page hosting the plug-in. Thank you very much.
14:02
Any questions? I thought you wanted to do that. No, no. I was asking for a question. Yes. Are there any questions? Yes. Just a moment, please.
14:21
I can be loud. Yes. So, your initial motivation to do this was for science as geophysics or did you also did some emergency support yourself?
14:46
Well, it's mainly for science because we have this calculation for earthquake assessment. We don't work a lot about post-earthquake emergency recovery
15:08
and these kind of things. It is more related to geophysics and the assessment of earthquake hazard and earthquake risk.
15:23
So, basically hazard considering the probability of ground shaking and risk is considering the effects that such events can produce on people and things like buildings, assets in general.
15:46
Thank you. Was there one more? No, that is okay. In the past, I have worked with emergency support and I made a lot of maps basically with the earthquakes
16:02
and this was mostly for the policing makers and their decision about financial support is made. They want a visual story along with all the reports and that's what I did. And then the go-to source that we used to use was the US geology services,
16:21
the surveys, so USGS monitoring, I think, and then it was some sort of awkward way of CSV exports and then you get the raw data of the epicenters and the intensity of the magnitudes and so on.
16:41
Do you think this could be reshaped in a way that the sophisticated science part would be cut down to the minimum with a kind of go-to method and then it would be much easier to get the predictions or the up-to-date values of each earthquake reporting? In general, this kind of tools has exactly the impact
17:07
that you can do data exploration and quick assessment that you can easily present to those who have to make decisions.
17:24
So, we want to simplify the process from the more theoretical science to the communication of the actual scientific results
17:46
to people who are not scientists and who need to have a simple explanation and something more practical to decide on.
18:04
So, this is part of our job, yes. Thank you. More questions? I think we already spent 20 minutes,
18:22
so I think if there are any questions, then they can contact you. Yes, of course, you can contact me. I will be here the next days also, so feel free to come to me. All right, thank you. Thanks.