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

SAGA - System for Automated Geoscientific Analysis

00:00

Formal Metadata

Title
SAGA - System for Automated Geoscientific Analysis
Subtitle
Version 7.3.0 LTR
Alternative Title
SAGA GIS 7.3 - new LTR
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
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
SAGA (System for Automated Geoscientific Analyses) is an open source geographic information system (GIS) used for editing and analysing spatial data. It includes a large number of modules for the analysis of vector (point, line and polygon), table, grid and image data. Among others the package includes modules for geostatistics, image classification, projections, simulation of dynamic processes (hydrology, landscape development) and terrain analysis. The functionality can be accessed through a GUI, the command line or by using the C++ API. SAGA has been in development since 2001, and the centre of SAGA development is located in the Institute of Geography at the University of Hamburg, with contributions from the growing world wide community. This talk will focus on the new features that have been added since the previous LTR version (2.3.2) which is the version used in QGis processing.
Keywords
State of matterGoodness of fitPresentation of a groupRow (database)System callCore dumpSoftware developerPhysical systemProcess (computing)Total S.A.Right angleUniverse (mathematics)MappingLecture/Conference
Formal languageComputer programmingPhysical systemSoftwareFunction (mathematics)Independence (probability theory)Presentation of a groupNumberMedical imagingRaster graphicsMappingDifferent (Kate Ryan album)Slide ruleDigitizingProcess (computing)Projective planeVector spaceDivisorComputer clusterComa BerenicesComputer animation
Process (computing)Module (mathematics)Computer programmingGrass (card game)Mathematical analysisDescriptive statisticsComputer fileCore dumpoutputProjective planeSlide ruleLibrary (computing)System callDifferent (Kate Ryan album)Normal (geometry)Function (mathematics)Hill differential equationCodeBitSoftware developerData miningWeb serviceCalculationDefault (computer science)Point (geometry)Raster graphicsFunctional (mathematics)View (database)GeometryMetreEndliche ModelltheorieScripting languageGraphical user interfaceElectric generatorInterface (computing)CASE <Informatik>Gastropod shellShape (magazine)Lecture/Conference
CalculationoutputLetterpress printingComputer programmingBitGraph coloringPolygonFunction (mathematics)Error messageDifferent (Kate Ryan album)Computer fileComputing platformMereologyCombinational logicProjective planeAxiom of choiceGraphical user interfaceModule (mathematics)Mathematical analysisNP-hardInterpolationNormal (geometry)ChainLevel (video gaming)Physical systemMultiplication signPerspective (visual)WindowEndliche ModelltheorieTouch typingInterpreter (computing)Hill differential equationOrder (biology)Shape (magazine)Video gameFile formatNumberMathematicsLecture/Conference
BitEndliche ModelltheorieSoftware developerTranslation (relic)MereologyUnicodePoint (geometry)Group actionCASE <Informatik>Food energyModule (mathematics)Lecture/ConferenceSource codeComputer animation
Sampling (statistics)Mathematical analysisCASE <Informatik>Medical imagingPattern recognitionPoint cloudModule (mathematics)WritingBitTheory of relativityInformationComputer fileLink (knot theory)NP-hardPoint (geometry)Visualization (computer graphics)EmailProjective planeDatabaseSheaf (mathematics)File formatGraphical user interfaceProcess (computing)GeometryVideo gameLie groupObject (grammar)Order (biology)Limit (category theory)LogicLecture/Conference
Computer animation
Revision controlTesselationUniverse (mathematics)Type theoryGeometryPoint (geometry)Transformation (genetics)Slide ruleInterpolationProcess (computing)Expert systemMathematicsChainFile formatDifferent (Kate Ryan album)outputAttribute grammarEndliche ModelltheorieRaster graphicsFunction (mathematics)Presentation of a groupEmailSelf-organizationElectronic mailing listDefault (computer science)CASE <Informatik>DistanceForm (programming)Film editingLecture/Conference
Computer animation
Transcript: English(auto-generated)
All right, good afternoon, everybody. I hope you had a good lunch and you recharged your batteries for the second half of the first day. This is quite an exciting session. That's why I volunteered to share it. Three very interesting presentations.
The speaker of the second presentation is not here in the room yet, but he is in the conference. So hopefully, we will see the second presentation. So we'll start with Johan van der Waal, that will introduce us to Saga or refresh our understanding of Saga. To the speakers, we have only one microphone.
So in the Q&A, please walk to the person that is raising their hand and let the person ask the question to the microphone so that gets recorded. All right? That's easy. Go ahead, Johan. OK, hello, everybody. My name is Johan. And first of all, I want to tell that I'm
giving this presentation. I'm not a core developer of Saga. I'm like maybe the fourth or third or fourth contributor. The two main authors, it's Olaf Konrad, who is in the University of Hamburg. I think he's doing most of the work. And apart from that, there's Volker Wichmann also, who is in Austria and who is also, well,
maintaining and developing Saga. But OK, I thought it had to be presented on this conference, so I did it. So who knows Saga? OK, so maybe that's a good thing. Anyway, I will still give an introduction.
So actually, I like to call Saga GIS a toolbox rather than a full-fledged GIS system. If you want to make very beautiful maps and don't do any processing or any analysis, you probably shouldn't use Saga GIS, but use QGIS or something else.
But the main thing that Saga is, it's a toolbox. It's a toolbox for doing lots of different things. We have toolbox to work with vector data, with raster data, with image data, a lot to work with digital terrains. That's actually why I'm still using Saga a lot.
This is because I do projects that are related to soil erosion. And digital terrain analysis, like hydrology, sedimentation, those kind of things. And then apart from that, we have the more, let's say, common GIS tools which are there, which you can use.
Now, yeah, I told some people, not allowed, but I thought the presentation was tomorrow, so I took some older slides. That's why I changed the title to What's Old and New. So if you looked at the number of tools, we have a big increase. But if you would look nowadays, we are at 750 tools.
Actually, the increase is not that fast anymore. There are some reasons for that. And that's actually that it became easier to combine different tools. So before, we would make a specific tool for something. Now we just say, OK, just do that and that and that, and then you have a solution.
So I thought about terrain analysis, maybe some things which are interesting as well is everything related to point clouds. Actually, the person or the team which is in Austria, they have a commercial company, and they even have a commercial version, let's say, of Saga. So it's actually Saga like the whole thing we have,
but with some extra modules which have some extra functionality. But all the core of their processing is already in Saga, so it's very good for doing that. So how do you think about it? If I call it a toolbox, well, a toolbox,
it means that you have books with a lot of different tools in libraries. And this is an example of a tool. And usually, it has a description or a reference that has been improved a lot. I mean, before, we often didn't have a long description. And then if you look below here, do you have the parameters?
But these are actually things that you would enter. So for example, in this case, here you would enter elevation, and you get an output, which is hillshade, very easy module. And there are some optional options below with default options. This is actually how a Saga module looks.
You have a few inputs, then maybe some outputs, and that's it. The same module can also be run from command line. This is interesting for automating purposes. So instead of going to the interface and clicking, you could run the same thing.
And then here, you see the full thing, like dash elevation is, and now you can run it. That's actually the way that a lot of other programs use Saga. One example is QGIS processing tools. So they actually use that API. We, ourself, generate some ArcGIS toolboxes.
I didn't find a screenshot, so I just put a general one, but they have the same principle. Also, Zoo, WPS, Zoo is also a project. I think it's in incubation for OSGEO, which provide web services so that you can use
WPS to use these same tools. Finally, we have some ways to generate script files. This one is generating the Python API. I, myself, I don't really use it. This is mostly interesting if you want to, well,
if you're at rest for your analysis in Python. What I usually do is use the normal command line API and call that from Python. I find it a bit more easy. Here, you have to set up more things. But, no, it exists.
Okay, yeah, I'll come back to that. Yeah, this is a bit of a summary of what I said. There's also R. R has also a package which is linking to Saga, so you can also call these modules from R if you want.
What's interesting maybe from a developer point of view is that what I really like about Saga and how I became involved and why I still use it. I mean, there are some other projects like Grass.js. What I really like is that it's like a quite small API,
so it's quite easy to grasp it. Also, the interface, if you get used to it, it's very easy to do your analysis. It's actually very easy to develop new modules. I just put a slide here showing the same module where I was talking about before.
You have the input elevation and the output hill shading. If you look to the C++ code implementing this, this is actually everything. You have two places where you say I want these parameters, and then you have a calculation which you could probably figure out if you look for a while what it does.
It is not too complicated. What I mean with this is this is enough to make a module, and then you have, well, actually added a tool to Saga, and it doesn't get, I mean, it's not very hard. You don't have to know a lot of C++. I have some colleagues of mine who are doing a lot of things in Python, and they have rewritten some of the things
to be Saga modules because it runs a lot faster, and they were actually surprised by how easy it was. Yeah, we do have a graphical user interface, and it's quite nice, especially if you work with raster data.
It can do a lot of things which I think, which I find hard in, for example, QGIS. If you want to really look at data to think and understand how they work. So, for example, if you zoom that the colors will automatically stretch that you can see the values that you can do those kind of things.
And apart from that, we do support a few things. We even have a print layout. But if you really want to make a beautiful map, you probably have to make it another program. I'll skip this part. Okay, yeah, I didn't tell this, but we are, this is an important thing.
We work, or Saga works on different platforms. Windows, Linux, Mac. We don't have a Mac maintainer, so we somehow build it and people use it. But if somebody of you is really good at that, please get in touch. We'd be happy.
Now, one of the things which not many people know, because I was talking about this Python API, about scripting API, is that, yeah, it's a bit of pity that because it's a PDF, you don't see it in different steps, but if you run an analysis, for example,
you run three different modules in your toolbox, and you then go, and you click on the layer which you just used, then you actually get the history, and that history that shows you which tools were used with which options. This is even true if you save the file and then reopen it, and you can still see the history.
It's a very useful feature, because then you remember how it was done. And if you right-click on the history, you can save as toolchain. What that will do is create an XML file, which then in itself can be used as a new module. We call it a toolchain. So this is, actually, I just did it this morning.
I did save as toolchain, and I added it, and at that time, I have my inputs and my outputs. The input is the input I used in the first step, and then I think I did three different steps. So the first one was make a hillshade, then do a calculation on that, and then make shapes from it.
So if you would look very closely, here you see, well, here you don't see it, but here you can see, I have an elevation, and I have polygons as output. This is actually my tool, which I made without programming. It just does a few of these steps.
Okay, so that brings me a bit to what's new. I mean, everything I said before, this has been in Saga for a while. Maybe it's not been used a lot, but it's still very good to know. I see that many people who use Saga don't know about the possibilities. Maybe I should give a workshop next FOS4G.
Some of the new things. The first thing is we have a new grid format, or you can choose it. It's actually a zipped combination of all our files. Normally you have a few different files, then you get only one, which is also generally smaller, which is quite easy to work with.
It's also supported in GDAL, so you can, I mean, if you have a recent system, you can save it with Saga in that format and use it in all the others. I think even Esri now can open it. Then something which, like, we haven't supported for a very long time, and people have always found it strange, and I still think it was quite okay,
but anyway, we can now do live reprojection of layers in the graphical user interface. So if you add two layers with a different projection system, you can show them together on a map. It is useful in a lot of situations. You just have to be, well, you should know that if, for example, if you want to use a toolbox,
you first have to reproject it yourself, and then only you can use it. Most of the time, if we are, for example, doing analysis on a grid system, or on a grid, we require you that you first put both of the files in the same grid system, and then do your analysis. So that are two steps.
You can, if you want to do that frequently, make a tool chain, combine those two steps, there's nothing wrong with that. But the reason why, or one of the reasons why I think it is a good choice to do it, is that you know how you resample your data. If you don't know how it does, you might make errors.
Big errors. Something else which was added are grid collections. So, for example, if you have hyperspectral data, or if you have climate data, you have a lot of different grids. So first of all, we have added support for that
just as a file format, but also in the API. And based on that, we can do new things like 3D interpolation of those layers. Yeah, this is the part where I didn't find a nice picture.
So the new pictures, the new modules. I forgot a big group, or climate-related modules, because people have been working a lot with Saga.js for climate modeling. But apart from that, there are a lot of classification things, geomorphological things.
Maybe this is interesting to know, one of the key developers is actually a geomorphologist turned into a bit an IT person, but he still prefers doing those kind of things. It's a bit the same for me, actually. Another thing is that we have much better support for Unicode.
There is a Russian translation now, which works also very well. And then the last point is my interest, I think, for example, the people who are integrating using QGIS, is that we can, this is something we could actually already read, so we can read, I mean, if the GDAL module is present
and if GDAL is found, but that's generally the case. We can already read directly other file types, but now we can immediately write to, for example, Geopackage, which is interesting if you want to have this longer than 10 character headers instead of a shapefile, it's limited.
So this is a small thing, it's actually something I made. Yeah, this is not really new, this was there before, but in the graphical user interface, we can also integrate with a databases directly. And then while I was talking about the 3D interpolation,
there is actually quite some 3D support in Saga. It is mostly in module, so it's not really integrated yet in the rest, but yeah, you see, we are really working on that as well, especially in the tools. So the tools, the API supports 3D, the visualization is still a bit hard problem to tackle.
Yeah, that was my last slide. This may be, just this is one example, but there are a few more examples of places where we use Saga, not for GIS related things. So one project were like 10 sections of soils
and of geological samples. So they make a thin slice, they let light shine through it and we used object-based image recognition to find out which minerals were inside and which like ratio. This is something which is easily possible.
I mean, it's just images you can use. This is an example of a point cloud of a skull and I don't exactly know which kind of analysis they did, but they also used Saga for processing the data. Yeah, that's it.
Yeah, one more. I have put some links to places where you can find info on Saga. Unfortunately, I didn't update it, but I think it's still quite okay. You can definitely talk to me during the conference and I'd be happy to take questions. I'd like to know what you do with Saga
and what you don't do with Saga. So I have a question. Like, I'm sure that I'm not the only one like using Saga from the, like a tool in your workflow is like in general, something that is combined with also other processes
from other data. And I find it quite painful that the experts of Saga are always in the SDOT format, which is the Saga grid, that in the next chain you have to, then if you want to use it in another tool, transform it through GDAL in a format like GOT for something that the other is using.
And I find that this transformation can just be problematic also because when you transform it, it gets different null data than the other one that were in the input raster and stuff like that. So my question is, did you ever think to implement the output in another format than just the Saga grid? I thought about it two days ago.
No, we will do that. But exactly the same way that we did it for Geo, Chase and Geo package. I've been thinking like, why don't we support like one type of TIF, which is with reasonable defaults,
like use tiles. I think it makes a lot of sense. It's also not hard to implement the same way that we did it with Geo package and Geo JSON. I think we should, I mean, I'll discuss it on the mailing list, but I see also use cases. And when you say,
can read and write a Geo package or Geo JSON and will you preserve the like longer attribute column or will you internally, or will they get lost in, if you want them to saga model and. I haven't actually tried it, but I know that we support longer inside the API.
So I think it will get supported. I think it will work.
What can we expect from saga next? Well, I thought about the 3D and like things we, that have been added like recently is more things read the 3D interpolation. Apart from that, we are,
I mean, it's a small team. I just said it. There's one person working on it a lot, but it's not his day to day job. He also has a teacher in university. So if you really want something, I'd say come up and help out. It's really easy. It's a very good, I mean, it's actually quite easy to get started.
Yeah. If you have any suggestions, please let me know. If it's not too much work, we might do it. Yeah, maybe one question which I expected
is because I told this is the LTR and you see we are at version seven and the last LTR was two. So has that much changed? No, we actually have changed the version numbering like to make it really clear if there has been any change in the API, we bumped the version
and actually I thought I had a slide on it. I didn't see it. But for example, at one point we dropped support for geo-trans for transformations. We only use Proj now. So that was a reason to get up one higher version because it would mean that all things
not necessarily are still working. But 99% or no, that's too much, let's say 95% will still work. Okay, so we can close it there.
We'll have now the usual recess so that people can hop around the rooms and we'll resume the session at three with the next presentation.