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

Status of GRASS GIS project

00:00

Formal Metadata

Title
Status of GRASS GIS project
Title of Series
Number of Parts
156
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
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
This talk will give a comprehensive overview of the latest developments and progress of the GRASS GIS project for users and developers. The talk will cover topics relevant for integrating GRASS GIS engine into existing workflows. We will dispel some common misconceptions about the project, such as "it's just a command line", "it's just a desktop GIS", “it's a QGIS plugin” and "it's been around for a long time, so it must be well funded". Many potential users perceive GRASS GIS as difficult to use. During the talk, we'll cover different improvements to the graphical interface that are aimed at addressing this problem. The switch to a mature single-window layout, an easier startup, streamlined data management and the upcoming command history pane are all improvements attempting to increase user-friendliness and make it easier for newcomers to adopt GRASS GIS. The talk will also go through a series of improvements relevant for industry and academic users to facilitate the integration of GRASS data processing and analytic tools in their workflows using Python or R, either on the command line or in the cloud. Examples of these improvements are the parallelisation of many modules with OpenMP enabling accelerated processing of large data sets and the stricter compiler configurations ensuring code quality in C, C++ and Python. Finally, the latest community activities and funding opportunities will be presented.
Keywords
127
Streaming mediaState of matterGrass (card game)InformationSource codeComputer-generated imageryProcess (computing)Vector spaceMaxima and minimaState of matterGrass (card game)Goodness of fitGraphical user interfaceOpen sourceBitLaptopDifferent (Kate Ryan album)Front and back endsProjective planeData analysisPosterior probabilitySoftware developerCodePlug-in (computing)Process (computing)MereologyComputer programmingVisualization (computer graphics)Scripting languageGeometrySpacetimeAnalytic setSource codeLecture/ConferenceComputer animation
Convex hullGame theoryIntegrated development environmentSupercomputerGrass (card game)Computing platformEndliche ModelltheorieGamma functionMaxima and minimaIntegrated development environmentComputing platformFunctional (mathematics)Library (computing)AlgorithmEndliche ModelltheoriePoint cloudComputer animation
Physical systemDatabasePoint cloudFront and back endsGrass (card game)Stability theoryElectric currentRevision controlCodeSystem programmingSupport vector machineWave packetPredictionVector spaceOpcodeVirtual machineBoundary value problemDistanceHorizonFunction (mathematics)Point (geometry)Uniqueness quantificationVector graphicsDisintegrationSeries (mathematics)Library (computing)Web browserGraphical user interfaceHierarchyEuclidean vectorParalleler AlgorithmusDistribution (mathematics)Type theoryDataflowPrinciple of maximum entropyExtension (kinesiology)File formatInformation securityStudent's t-testComputer programSystem on a chipSystem callControl flowINTEGRALRevision controlCodeElectronic mailing listModule (mathematics)Grass (card game)LaptopProjective planeFront and back endsPhysical systemSocial classEndliche ModelltheorieSeries (mathematics)Moment (mathematics)Query languagePoint cloudFile formatUniform resource locatorVirtual machineBitVector spaceLine (geometry)Vulnerability (computing)Group actionCompilation albumShape (magazine)Different (Kate Ryan album)HierarchyInternet service providerType theoryStandard deviationInformation securityStudent's t-testConnected spaceSoftwareMathematicsDistribution (mathematics)NeuroinformatikExtension (kinesiology)Wave packetAlgorithmParalleler AlgorithmusNetwork topologyDataflowFile systemLibrary (computing)SpeciesStreaming mediaGoodness of fitObservational studySlide ruleLink (knot theory)Order (biology)Term (mathematics)CASE <Informatik>Computer programmingModulare ProgrammierungHorizonMachine learningFunction (mathematics)Musical ensembleProduct (business)Graphical user interfaceMappingWeb browserData fusionParameter (computer programming)PolygonInteractive televisionOvalVideo gameRaster graphicsSupervised learningSupport vector machinePrinciple of maximum entropyPredictabilityComputer animationLecture/ConferenceXML
Grass (card game)HorizonParallel computingTexture mappingDisintegrationData conversionWeb pageDistribution (mathematics)Plug-in (computing)Grass (card game)ImplementationProjective planeSoftware maintenanceSoftware developerExtension (kinesiology)Online helpSoftware testingOpen setCodeLevel (video gaming)DatabaseTemplate (C++)Plug-in (computing)Data conversionLattice (order)Point (geometry)System callPattern recognitionDigitizingParallel portModule (mathematics)HTTP cookieEmailProcedural programmingDifferent (Kate Ryan album)Group actionDistribution (mathematics)Electronic program guideTranslation (relic)Revision controlBuildingComputer programmingStudent's t-testIntrusion detection systemCASE <Informatik>Web 2.0Software bugStack (abstract data type)Computer animationLecture/Conference
Function (mathematics)Grass (card game)WritingPersonal digital assistantAdventure gameInterface (computing)TrailSample (statistics)Installation artProduct (business)Coding theoryComputer programStudent's t-testCASE <Informatik>Touch typingGrass (card game)Computer animation
Grass (card game)BitCondition numberSoftwareProduct (business)Revision controlWindowCompilation albumRight angleFeedbackIntegrated development environmentComputing platformLecture/Conference
Least squaresComputer-assisted translationComputer animation
Transcript: English(auto-generated)
Good morning everyone, welcome to the State of GRASS.js talk. I'm Veronica Andrea and I'm here on behalf of the whole GRASS community to show you the latest updates within the GRASS.js project.
A little bit about me, I'm temporarily working as a visiting scholar at the Center for Geospatial Analytics at the in the North Carolina State University. My background is in biology and then I studied a bit of remote sensing and GIS
and went into some programming very basic. I work in Argentina as a researcher and a lecturer in the space agency. I'm part of the GRASS development team and now for the last three years I'm serving as a PSC chair and I'm also
a charter member, a posterior charter member. Well a little overview of what the talk will be today. We will cover different aspects of the whole project not only code and new features. So you know that GRASS has been around for
something like 41 years but we still get the question like what is that or are you still alive guys? Well yes here we are and you will see that we
can use GRASS in different ways or the answer to this question can be very different according to how you use GRASS. So you can see that it is a geek open source command line GIS if you want but it can also be an open
source desktop GIS. By the way the graphical user interface has been really improved in the last years let's say five years so if you haven't opened GRASS lately this is how it looks now. It can also be used as a processing
backend in QGIS. So many people said ah you are the QGIS plugin. No guys. You can use GRASS within QGIS but it is still GRASS. You can also use it
within R notebooks or Python notebooks for your workflows for your scripts as a geo visualization and data analytics tool. It's a geoprocessing engine running in HPC environments as well. A geospatial platform for
developing models because there are a lot of functionality so it can also be used as a library for new algorithms and new models and it is also a cloud geoprocessing backend in Actinia, another OSGEO community project. So yes
we are all of that and your answer or the answer will depend on how you use it. So it's as versatile as many people using it. So in the last year
regarding releases we just released the first release candidate for 8.4 during the Prague community meeting a couple of weeks ago and we released 8.3.2 in March and we did a last legacy release for the seven
series just to support some production systems and anyway daily there are builds for the preview version that will be 8.5. So what are the new features in GRASS 8? There is more machine learning in GRASS GIS thanks to
Maris there. So there are new modules for supervised classification with support vector machines training and predicting. More topology in GRASS GIS you know the vector format within GRASS GIS is topological and there are more new
tools for topology for filling holes in this case. A lot of C tools are getting JSON output format in order to streamline the connection with the connection of GRASS and other other software tools within data
science workflows and there will be more coming in the upcoming months with Google Summer of Code student working on it. Some tools, some very unique tools got revamped like they got a lot of attention lately like
R Horizon for example and this was funded by a NSF award granted to a company in the US that they use this module a lot. Then there were
different API and library changes in the two GRASS Python packages so we greatly simplified the creation of new projects in Python without a running session so we removed this chicken and egg problem so you just
start a Jupyter notebook, create a GRASS project and start the session there and there are also improvements within the GRASS Jupyter Python packages, new classes for creating animations of lists of rasters and vector maps and
the integration of IPY life as well and there's another student I will tell you later within Google Summer of Code that will do more improvements in this package. Within the graphical user interface we have a new history
browser panel that shows you all the commands that you have run from the from the graphical user interface and the status so if they were successful or if they fail and so on and double-clicking there you can just run it again or change the the options and so on. You can also have a look at the
computational region that was set at that moment of running the command and so you can set it again like that. This was done by Linda Karlovska with the GRASS GIS student grant. I will tell you a bit more about
that later. And finally, this might seem trivial but for us it took a while, locations became projects so we know we will no longer speak about locations
which was a term that didn't make much sense but to be in line with other software packages we are now calling locations projects so everything facing the user now instead of using this location parameter or option will
show project. There are also like different new extensions contributed by the community so a new parallel algorithm for flow accumulation, new algorithms for data fusion, new modules for training and predicting
species distribution modeling like MaxEnt and many different plotting tools and tools to streamline access to different types of data. I will also show you a bit more in the next slides. We have been investing a lot of efforts
in code quality and security to assure that our code base is in good shape in the different API's let's say so for C and C++ but also for
Python which is formatted with black flake 8 and we have more or less fixed three-quarters of the detected issues. Pylint is also partially enabled and for code security we have integrated banded for Python vulnerabilities
code QL for C and C++ and QWERTY. This was also funded by NSF regarding distribution we are we are also working on that so we are working a lot
on sustainability of grass JS so we wanted to keep it alive for at least 41 years more so we are getting ready to the transition to C make base compilation and we have done advancements toward compliance with the
file system hierarchy standard and there's a grass JS conda package on the way hopefully by the end of this year. Regarding mentoring grass JS runs student grant program to contribute to the software and last year there has
been one student so she implemented this history browser panel as I showed you before and the call is open it's like an open window but if you have an
idea that you want to develop we will start like on the fall this year but the call is open if you have ideas just talk to me after on the coffee break or whenever you see me and we are also running a mentoring program to help people that want to integrate grass within their workflows
and so far there has been 11 people working on different topics there is also like it is the call is open so just talk to me and I can share the link to subscribe. We also this year have originally four students but then
there was one with a visa US visa issue problems so we ended up with three there's a student working on adding EODAC support to grass JS so EODAC is a library to download Earth observation data from different providers
and there's now like a first version of the a new tool in grass called i.eodac to download this type of data from different providers. Another student is
working on improving grass user experience in Jupyter notebooks so to show the computational region in the interactive maps, draw polygons and set a new region from their query and so on and last but not least there's another student adding JSON output to different grass tools in C in
line with what I was telling you before to streamline the connection or the usage of grass together with other software packages in different workflows. Well community, there you are everyone. Community growth, we have two
new contributors with great access, Edward and Linda. Edward immediately became a maintainer so if you are subscribed to grass comments you get
tons of emails from him and last but not least there are three new grass babies that were born in the last six months so that's a way of growing the community too. And we had our community meeting a couple of weeks ago
in Prague so we are really thankful and grateful to our sponsors and individuals and anonymous contributors that made this meeting possible. We worked a lot during that week so we released the first release candidate,
there were more tools getting parallelization with OpenMP, new like extensive improvements and testing for upcoming modules like support for stack within grass and point pattern analysis tools. We did a call with Niall Dawson
from QGIS project and we were doing like bug fixing online during the call so it was really productive, it was really good. We also integrated the grass, digital grass plugging in the R grass package to read directly from
your grass database so it's much much faster. We worked on the conversion of manual pages to markdown, a lot of CI improvements, we also got nix distribution merged, new tutorials so you can have a look, it was really
productive meeting and really fun also of course. We will have elections, PSC elections by mid-October so get your IDs ready to vote. We also worked on formalizing our project mission and roadmap and different other procedures.
As I mentioned earlier we have this since last September, North Carolina State Group got an NSF grant but this grant is only to work on sustainability of the
project so to enhance the infrastructure to revise contribution guidelines, support community building but it does not fund implementation of new features, development or daily maintenance. So for that things of
course we also need your help like everyone's help and we have set different funding options in Open Collective so donations it's like a one-time donation and you can donate whatever you want and there are
supporter levels starting at $10 per month or something. Importantly this just helps us to keep going, our student grant program, the mentoring program and that kind of things and of course meeting in person.
So get involved, all contributions are welcome, code and documentation of course through GitHub we have a new template if you want to transform your workflow into a grass module there's a new cookie cutter template that it makes
it super easy and we also have like a new style guide that you can follow. If you don't feel comfortable with code you can also do translations, we are in web blade, it's super easy and we directly get pull
requests from web blade. You can also contribute your use cases and tutorials if you have a nice use case you want to show off please talk to me after the talk and I can help you. We are very interesting in hearing how
you use grass and of course sponsoring as I mentioned before. Get in touch with us please. So in the end I made it in 15 minutes. Thank you. I do not have the stickers
because Lufthansa lost my luggage but still please ask questions. Thanks Veronica that was amazing and I really see that grass community and the product is very alive
so that question has been answered so for the audience any questions here and I'll ask a first question. I've seen the Jupyter support is improving and also that grass will be available
in conda so this opens a lot of opportunities of further integrating grass and linking it to other software so can you give a bit more what's coming up there.
Yeah so within this NSF grant we are doing all this sustainability activities let's say and the conda package and the CMake compilation are within those activities so Michael Barton is from US is in charge of this conda package
and hopefully it will be there for the by the end of the year and as you said yes it will open like a lot of possibilities because we get this feedback that grass is like super heavy
to install and so on or sometimes in windows it's difficult but a conda package would make it so much easier to install everything from the same site and get like the right Python version and all that so yeah that's our idea somehow to facilitate the
installation and then the usage with other software of course that's really really great and that also QGIS is also available in conda if we run it now in a conda environment grass
is not there yes so with this we would also have access on all the platforms yeah so we are trying to catch up great any more questions from the audience please the stickers will come because Lufthansa found my luggage if not then we'll close for this speaker thank you very much