State of GRASS GIS 2022
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 | 351 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Unported: 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/69146 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2022 |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
FOSS4G Firenze 202298 / 351
1
7
13
22
25
31
33
36
39
41
43
44
46
52
53
55
58
59
60
76
80
93
98
104
108
127
128
133
135
141
142
143
150
151
168
173
176
178
190
196
200
201
202
204
211
219
225
226
236
242
251
258
263
270
284
285
292
00:00
State of matterGrass (card game)Projective planeAuthorizationOpen sourceGrass (card game)MereologyWordComa BerenicesGoodness of fitComputer animation
01:22
Grass (card game)Focus (optics)Grass (card game)SoftwareMultiplication signSlide ruleState of matterCode
01:54
Grass (card game)BenutzerhandbuchOpen sourceContinuous functionMathematical analysisUnterstützungssystem <Informatik>Visualization (computer graphics)Data managementSuite (music)PlanningComputer-generated imageryProcess modelingModul <Datentyp>Vector spaceSeries (mathematics)Computer networkSoftwareStability theoryParallel portDisintegrationCodeGoogolLibrary (computing)Interactive televisionRaster graphicsElectronic visual displayClique-widthMeta elementFunction (mathematics)Bit rateMusical ensembleTemporal logicComputer fileElectronic signatureDemosceneFingerprintDigital filterEigenvalues and eigenvectorsHausdorff dimensionNeuroinformatikPoint cloudInstance (computer science)BitPoint (geometry)Presentation of a groupLink (knot theory)Grass (card game)Multiplication signMultilaterationTexture mappingScripting languageOpen setTime seriesMusical ensembleAuthorizationIdeal (ethics)Line (geometry)Visualization (computer graphics)Mathematical analysisView (database)Physical systemRevision controlSemantics (computer science)Control flowNumberLaptopVector spaceCASE <Informatik>CodeMedical imagingProjective planeGraphical user interfaceINTEGRALMereologySoftware developerStreaming mediaFunctional (mathematics)Endliche ModelltheorieExtreme programmingObject (grammar)Condition numberParity (mathematics)Web browserLaser scanningImage processingParallel portTable (information)Structural analysisMagnetic tapeElectronic visual displaySoftwareSlide rulePower (physics)InternetworkingOrder (biology)TwitterStability theoryHypermediaRaster graphicsInheritance (object-oriented programming)MathematicsSoftware bugComputer animation
09:28
Digital filterEigenvalues and eigenvectorsHausdorff dimensionGrass (card game)Core dumpModulare ProgrammierungBargaining problemScripting languageConnectivity (graph theory)Task (computing)Graphical user interfacePermanentDirectory serviceDatabaseCoordinate systemAxonometric projectionPhysical systemSet (mathematics)LaceArchaeological field surveyDefault (computer science)System callAreaLatent heatComputer reservations systemDisintegrationGoogolCodeGUI widgetWindowSingle-precision floating-point formatGroup actionWeb pageParsingMessage passingSource codeModul <Datentyp>Raster graphicsMathematicsContext awarenessInformationoutputParallelverarbeitungMenu (computing)TheoryOperator (mathematics)LogicQuery languagePlane (geometry)State of matterAngleState observerObject (grammar)View (database)RadiusLibrary catalogSatelliteThread (computing)File formatTemporal logicMathematical analysisElectronic mailing listUniform resource locatorServer (computing)Weight functionCore dumpPhysical systemProgrammer (hardware)SoftwareQueue (abstract data type)Projective planePoint (geometry)TouchscreenMenu (computing)Set (mathematics)Entire functionProcess (computing)Selectivity (electronic)AuthorizationMultiplication signArchaeological field surveyFilter <Stochastik>Library (computing)Statistical hypothesis testingParallel portPlotterView (database)BefehlsprozessorUser interfaceRow (database)MappingNeuroinformatikMultiplicationModulare ProgrammierungTime seriesPixelCodeGrass (card game)Task (computing)Point cloudMehrplatzsystemMaxima and minimaGraphical user interfaceStatisticsNeighbourhood (graph theory)WritingVector graphicsCellular automatonData warehouseOrder (biology)Open setReading (process)Module (mathematics)CubeCumulantDifferent (Kate Ryan album)WeightSpacetimeMathematicsRepository (publishing)Line (geometry)PredictabilitySlide rulePresentation of a groupLink (knot theory)CASE <Informatik>Sheaf (mathematics)Data managementTexture mappingNumberAxiom of choiceFunctional (mathematics)Video game consoleThread (computing)Computer configurationRule of inferenceBinary fileRaster graphicsComputer animationXML
17:03
Mathematical analysisWeight functionSource codeCore dumpGrass (card game)Computer fileCodeWikiBlogWritingWebsiteSocial softwareWeb pageIntegrated development environmentStatistical hypothesis testingComputer configurationEvent horizonVirtuelle GemeinschaftSoftware developerProcess (computing)Student's t-testCoding theoryContent (media)AdditionProjective planeMultiplication signComputer programmingPresentation of a groupWikiGoodness of fitSheaf (mathematics)EmailMereologyResultantRoundness (object)WritingStudent's t-testElectronic mailing listPoint (geometry)Internet forumSelf-organizationOpen sourceCodeLink (knot theory)GeometryTouchscreenComputer animation
Transcript: English(auto-generated)
00:00
Good morning, everyone. First session of the day, despite a BoF which we already had at 8 a.m. I'm presenting on behalf of the GRASS.js community. This is a joint talk with Veronica Andrea, they are also here. Of course, some more people are here being
00:26
the author of some parts of what I will present shortly. Interestingly, the mouse doesn't do anything. All right. Thank you. So, just a few words about myself. I'm Marcus Nittler,
00:51
I'm involved in the GRASS project since 1997, being a user even longer, but anyway, so I'm from Germany, I'm now, after 15 years of Italy, located in Bonn for a while, and
01:09
I'm running with my other colleagues, the company Mundialis, we're doing a lot of open source stuff, and I was also involved in the founding of OSGeo. So, what do I want
01:25
to present here? For those not being familiar with GRASS.js, this naturally exists, even if the software is there for a long time, I have one slide concerning that, and especially I want to showcase what has happened in the last 12 months. So, this is the state
01:44
of software talk style, and I will present the new things with special focus on code quality and automatic releases, some community contributions and more. So, I know some people here in the room, we talked about it yesterday, do not know GRASS.js yet, so we have one
02:06
slide, GRASS.js is a system which basically does all kinds of geospatial analysis with raster data vector or time series support and so on, there's a graphical user interface, you can do image processing, powerful spatial modelling, like watershed modelling, landscape
02:28
analysis, structure analysis and so on. Originally it's a project coming from the US Army, it was started in 1982 with the development with the first release in 1984, now you must remember that in 1984 there was no ubiquitous internet available to everybody, but it was
02:47
tedious and you had to send around magnetic tapes in order to distribute the software. So GRASS itself is the founding member of OSGEO and we now have accumulated like
03:01
39 years of development. You can ideally follow this on Twitter, there are also other social media channels, but I guess the Twitter one is the most active. Okay, how does it feel like nowadays? These are some screenshots here, what we say GRASS is a very mature system,
03:24
so with decades of development you can imagine that also special cases have been considered like in watershed modelling under extreme conditions where numerical stability is an issue, this has been I would say solved here, we have lots of let's say parts in the software
03:43
like vector network analysis, hydrological tools, quite a bunch for watershed modelling, stream modelling and so on, we have lots of image processing tools, object based things, the full time series support which is not only limited to raster data but also
04:00
offers vector based time series support and more, and you see here briefly some functionality. So the roadmap, what has happened in the last 12 months, we still feed occasionally the GRASS 7, GRASS 7.8 is the latest table here, but it is phasing out, we have
04:23
been publishing GRASS 8.0, this was the big announcement some time ago, and now we are with GRASS 8.2 and again there are lots of new features which I will present shortly. Semantic versioning, so what does these versions mean? We now adopt a more strict
04:44
system and we will abandon what we have done in the past, I don't remember how many years that we have even and odd numbers which indicate development version and stable version, we just go on with the numbers now to make it easier. So the first number
05:03
says, the major number, the 8 in this case, is features and new stuff is coming and it may even break things towards say GRASS 7, but from time to time you have to do that and innovation has to be incorporated and so on. The second one are minor versions
05:25
which bring new features but don't break anything and the micro stuff is usually bug fixes or minor changes. Okay, but you are here to know what is new. So what has been nicely done, and we had a workshop the other day on this, GRASS GIS and Jupyter
05:45
Notebooks, this is work of Google Summer of Code, so we are enrolling mostly every year in the Google Summer of Code activities, we have one to many projects running then in parallel and here a lot has been incorporated and one of these activities,
06:05
the main author is sitting over there, Caitlin, she has been implementing a way to interact through Jupyter Notebooks with GRASS and as you can see you can display vector data, you can analyse raster data, it's quite convenient. If you are not
06:24
familiar with Jupyter at all, you can see here your code, you write your code in a web browser and then you send it to the GRASS behind, it can be a local installation, it can also be remote, depends on what you do. So one more, what
06:42
we like with Jupyter Notebook, it's ideal for teaching, it's also ideal for prototyping, so if you want to invent a new method to address your problems you have, then you can nicely program, it's not too complicated, you can combine text, so documentation and code and then execute it line by line, go back,
07:03
edit and so forth and eventually write it out as a Python script, it's super convenient. Here's an example with an interactive map, on the left side, hand side, you see here the background map is OpenStreetMap and it just drops the raster data or vector data from GRASS directly onto this view. There's also
07:26
time series support, so you have a time slider here, you can see it is moving, this is some visual analysis from pedestrians point of view and you can animate stuff there. By the way, this presentation, the link will
07:45
follow at the very end again, is online so you can try this link and launch exactly this computation in a cloud instance. Okay, what else is new? Semantic labels, what does that mean? Imagine you have multispectral data
08:02
with blue, green, red channel, infrared and so on, then you have to remember in the blue channel with Sentinel is 2 and with Landsat it's maybe also 2, maybe not, in a different system it would be channel 1, it's a bit annoying, so what you do not want to remember it every time but you want to just say
08:21
okay I want the blue channel of Landsat and with the semantic labels it is mapped automatically to whatever it is and you can even register your own, so if you compute NDVI for example, then you can also label this thing as NDVI and later use it as whatever map name dot NDVI and this quite simplifies
08:44
things, you can basically write what you want, so labeling of raster data is a convenient thing here and we are now working on integration of making use of it in the commands, so that way you can just say do the image classification
09:00
with this, this and this band and you don't have to indicate the band numbers but you can use then the band labels, we have new support for PDAL there was PDAL support for a long time but it was kind of trick using also PDAL tools, this is now a new approach written in I think C++ if I'm not
09:23
wrong, well and the idea is that you can import laser scan point clouds into GRASS and if you want to rasterize them during import that means you allocate a number of points falling into one raster cell, you can then count
09:42
the number, you can say okay generator map with only the maximum value which falls into this particular cell, minimum and another how many, seven, 16 binning methods, so there are 19 all together in order to produce a data, so you have to the left your point cloud and to the right what comes out if you look at it
10:03
in 3d view and like this it is pretty easy to deal with huge point clouds PDAL is very or poodle pronounced in US as far as I know, it is then pretty easy to turn this into raster data to then further work on that, a lot of
10:20
work has been done on parallelization, we have open MP parallelization now in some modules you can see here the commands so that is raster time series univariate statistic, neighborhood filters, patching, resampling and slope aspect and additionally there's a benchmarking library if you want to
10:41
do your own and want to figure out for example is it better to have many CPUs or maybe you are then saturating the IO of the system, let's say the writing and reading of data, so you can do some tests and you can generate plots and this is rather straightforward if you want to go into the depth of things but as a user you can just say okay please use multiple
11:04
course and then those commands will be parallelized, open MP is let's say a pretty straightforward way of parallelization you can imagine it's just a simple oversimplified example if you look over pixels because you have
11:22
to compute something you could possibly take one row send it to one CPU take the next row at the same time send to the next and then blockwise compute things in parallel, so something like this, we have more parallel tools some of them are also add-ons so we have like I don't know almost 20
11:42
different tools which have to be parallelized also on in the Python world so GRASS consists of C, C++ and Python depends you can write your modules as you prefer and for Python programmers we have the possibility to
12:02
to use either multiprocessing or parallel module queue by task I don't want to go into details here but there are different approaches and at some point that will also be a scientific paper explaining things but of course stuff is also documented what else the graphical user interface those who have
12:23
been using GRASS in the past they possibly well remember that there's this welcome screen you have to select stuff and many people just struggle from the very beginning this thing is gone so in GRASS 8 it is no longer there and is in so many other GIS systems the main author sitting there by
12:46
the way Linda you have the first time user experience as in other systems you just get presented with the entire menu system you are welcomed here with some welcome text or show you around and then you can start right away so this
13:05
was quite a tough job to change things but it has happened and now GRASS is starting like that for those who want to experiment starting with GRASS 8.2 you can go to the settings and then say I want a single window so
13:23
this is all in one window now you have here the text again here are the legend of maps here the map itself and here is the choice of functionality you can use there also the tabs here for console and also for python if you
13:42
want to take in with python right away you can do that from the graphical user interface so we have the option of single user interface now what else we've been working on code quality and it's always a good idea to test code from the very beginning for example someone is submitting a
14:01
change or a new functionality we want to automatically check if this fulfills some rules and for example for python in case of python it is important which yeah which indentation is used and so on python is quite picky about it and why not check it right away so someone submits a change if it is in
14:24
python then it will undergo some tests and it will complain in case you have some indentation wrong or whatever it will precisely tell you look this line that looks ugly because of this and that reason please fix it and it cannot be merged into the core system nor into the add-ons before this has
14:41
been fixed similar stuff has been done with C and since we have this in place now we also had to fix the entire code base and you can imagine that this is quite an effort but this has happened also new being the release
15:00
manager for too many years it was always really quite time-consuming job to write the release notes and he was spending quite a deal of time to automate this we now get these release release notes entirely automatically even with all this sections so like what has happened in
15:23
the graphical user interface was what was in raster vector image processing whatsoever libraries documentation and so on we use the git lock for that so if you'll commit a change into the repository then you are kindly invited to write a meaningful line what are you submitting there and from this we
15:44
generate this stuff here and also the software itself is then packaged and put them ok not much time left I will quickly show a few user contributions with a projection picker this also exist in other GIS software it's also here so you know where you are and you want to know which are
16:04
eligible official projections you can take a look there we have new lens light detection software called our survey there's also a scientific publication by the way if you go to the presentation this is a link and it always brings you to the manual page of this add-on fair data we have
16:25
been discussing in the birth of feather an hour ago grass can also import this with this add-on and read from different data warehouses using threats or net CDF also space-time cubes and so on you can take a look if it interests
16:41
you another one is visual exposure so these are just random examples just to show you how many different options are there visual exposure computed here with cumulative you sheds also an interesting topic if you have to deal with visibility for example for wind power windmills and whatever you can
17:02
imagine ok we want to get you involved code contributions we have been moving a while ago to get up this was a very good idea I mean to move to get was especially a good idea get up is just where it sits but it we picked a lot of new contributors because things are much more easy nowadays and that was a
17:24
good idea we have of course discussion forum mailing list and so on and we instructions if you want to start and have no clue how to do it you can go there other contributions if you do not want to program you're also welcome to translate for example or to suggest improvements to the documentation or
17:45
document documentation for something which is rather undocumented with a wiki wiki where social channels and so on please talk to us if you have anything so the last point is sponsorship as any open source project
18:01
we also occasionally some money for example to organize code screens and so on we've been moving to open collective this is under the hood of was geo there so we are receiving donations and try to use them in a meaningful way one important part is here student grants program we have set
18:24
up recently and here we also already got some nice results so you can apply for that the next round will be soonish I believe we are setting up a new round of student grants as a student you can then apply and ideally develop something new in the wiki we have the details well and that's
18:46
basically it just to tell you there's some bonus material behind I will not go through as there's no time but you can if you like please check here is the link please check the presentation yourself and I've put some more user
19:03
contributions into the bonus section and thank you for your attention