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

News from actinia - let's STAC!

00:00

Formal Metadata

Title
News from actinia - let's STAC!
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
Publisher
Release Date
Language
Production Year2022

Content Metadata

Subject Area
Genre
Abstract
„Hello again, my name is actinia. Still new to OSGeo and a Community Project since 2019, you might have heard about me already. In short I am a REST API on top of GRASS GIS to allow location, mapset and geodata management and visualization as well as execution of the many GRASS GIS modules and addons. Processing with other tools like GDAL and snappy is supported as well. I can be installed in a cloud environment, helping to prepare, analyse and provide a large amount of geoinformation. Besides these facts about me there is also a lot to tell about what happened last year! Besides vector upload, citable DOI, QGIS and python client implementations and more, I can be a Spatio Temporal Asset Catalog myself with the actinia-stac-plugin, am able to use data registered in a STAC for processing and after processing register the resulting data. With the ongoing development of the openeo-grassgis-driver, you can use this new functionality either in my native language or via openEO API. To learn about the details, come on over!“
Keywords
Vector spacePlug-in (computing)Core dumpAsynchronous Transfer ModePresentation of a groupRevision controlOpen setPhysical systemFluid staticsComputer fileBitPlug-in (computing)INTEGRALArithmetic meanGrass (card game)Planning2 (number)Device driverComputer animation
MereologyINTEGRALAuthorizationProjective planeGeometryComputer animation
Asynchronous Transfer ModeMechatronicsDevice driverParallel portPlug-in (computing)Vector spaceCore dumpPreprocessorGrass (card game)Point cloudGrass (card game)Representational state transferCodeUniverse (mathematics)Scripting languageMereologyComputer animation
Grass (card game)Projective planeSet (mathematics)MereologyModule (mathematics)Physical systemUniform resource locatorLevel (video gaming)Directory serviceModule (mathematics)Grass (card game)Image processingFeldrechnerProcess (computing)
Representational state transferData managementGrass (card game)Electronic mailing listVector spaceModul <Datentyp>Group actionLimit (category theory)Raster graphicsTemporal logicThermodynamischer ProzessCalculationSet (mathematics)PermanentComputer-aided designData storage deviceType theoryResultantLink (knot theory)Line (geometry)Integrated development environmentCASE <Informatik>Set (mathematics)VolumenvisualisierungPhysical systemRight angleAddress spaceNeuroinformatikChainProcess (computing)Task (computing)Latent heatGame controllerMultiplication signEntire functionDifferent (Kate Ryan album)Functional (mathematics)Point cloudOrder (biology)NumberGrass (card game)Electronic mailing listoutputThermodynamischer ProzessScripting languageModule (mathematics)Server (computing)Representational state transferData centerTime seriesRaster graphicsCore dumpOpen setContent (media)Instance (computer science)Table (information)Software testingBitLevel (video gaming)String (computer science)LaptopComputer configurationClient (computing)Speech synthesisHierarchyProjective planeDirectory serviceMappingView (database)Uniform resource locatorData conversionVector spaceReal numberDrop (liquid)Query languageOpen sourceSoftware developerComputer animation
Router (computing)Plug-in (computing)Pole (complex analysis)Vector spaceTube (container)Core dumpFile formatShape (magazine)MultiplicationContent (media)Data typeDefault (computer science)Server (computing)Computer configurationLocal ringSynchronizationSet (mathematics)Dependent and independent variablesReal numberSystem of linear equationsAreaVoltmeterEvent horizonoutputProcess (computing)Virtual realitySpacetimeInstance (computer science)Raster graphicsCubeJava appletScripting languageClient (computing)Point cloudFunction (mathematics)Open setData managementElectronic mailing listThermodynamischer ProzessStapeldateiComplete metric spaceTheory of everythingImplementationGrass (card game)Device driverText editorUser-defined functionData modelCodeRun time (program lifecycle phase)Computer fileLattice (order)PiComputer-generated imageryOrdinary differential equationTrigonometric functionsService (economics)FreewareOctahedronDecision tree learningRepository (publishing)Module (mathematics)TesselationParallel portView (database)AuthenticationModul <Datentyp>Type theoryThermodynamischer ProzessPlug-in (computing)Instance (computer science)Open setText editorClient (computing)Core dumpShape (magazine)Computer fileFile formatPresentation of a groupProcess (computing)Remote administrationFront and back endsKey (cryptography)MathematicsWeb 2.0ChainWindowFunctional (mathematics)Different (Kate Ryan album)Revision controlMereologyInformationEnterprise architectureMultiplication signLine (geometry)Slide ruleInstallation artLibrary (computing)outputParallel portQueue (abstract data type)Physical systemProjective planeSet (mathematics)Grass (card game)Device driverPoint cloudPoint (geometry)BitTesselationAuthenticationComplex (psychology)Code refactoringAreaMappingINTEGRALVector spaceValidity (statistics)Module (mathematics)Software developerMusical ensembleRight angleFlow separationArithmetic progressionGoodness of fitSpacetimeScripting languageStandard deviationGeometryStack (abstract data type)ResultantTelecommunicationComputer configurationDatabasePixelLink (knot theory)Representational state transferAsynchronous Transfer ModeRaster graphicsResampling (statistics)Configuration spaceComputer animationProgram flowchart
Transcript: English(auto-generated)
Yeah, thank you very much. Thanks for coming As you can see, I'm not Carmen Tavalica who was supposed to give the talk. Unfortunately, she fell ill This night and she is not here. I mean she's in Florence Greetings to you, but she's unable to deliver the talk. So it's a
Micro surprise for me that I'm giving the talk now, but let's say new to everybody. So that's fine second thing was that the So maybe some of you have been in Bucharest at the conference. She used this newspaper style so where you move around in the newspaper and this was exactly the plan, but
The HTML was eaten by the system. And so I had to convert it to static PNG files never mind. So imagine it would smoothly fly around Yeah, whatever. So the topic is we are presenting news in actinia What has happened in the past 12 months and there's been happening quite a bit
Overall let's say you can see what's here So we want to give short notes about actinia itself in this presentation Additionally the latest features of course, which have been implemented. We are now meanwhile is at actinia version 4 so
this is Comparable faster than the major revisions of grass GIS, for example Where it took us almost 40 years to reach version 8 Anyway, so then I will talk about actinias tech plug-in open EO API Open EO grass GIS driver. So let's say lots of integration. We are looking at
We are part of Mundialis Actinia is importantly an OS geo community project. It's not a Mundialis project I mean we are maybe the main authors original author was during gabbard back then
But we are taking care and of course, it's on github and everybody's invited to contribute In the corner you see Jorge he was being developing the actinias tech integration you are doing this as a student from University of Munster for being in
in Bonn for a while remotely at least and He contributed this part. So next chapter is introduction to actinia who hasn't seen anything yet just to give you an idea and actinia is a REST API around grass GIS, but not only we also have support for
is a snap for example or GDAL is naturally part of everything so you can also bring your own code like Python scripts or executables Whatever you want. So whatever can be automated can be put into the workflows There are two important concepts Some of them have seen this but I'm very fast on this just to understand what we are talking about
Grass has this notion of locations and map sets You can imagine this like project directory with subdirectory just to better organize the data and importantly one location or project must have one projection only And then the other part is that grass is a modular system with plenty of modules
Doing particular things they are organized in a natural way like I dot something is the imagery image processing V dot something vector processing and so on and the second part of the Name suggests what the module does. So like this we have up to
500 of them so quite a few and This is of course something which which you might want to orchestrate in a cloud environment So why having this wealth of different functionality and why not? putting some clouds cloudish stuff around like a REST API in order to
develop workflows and to major number crunching using this technology So we put a REST API on top. You can naturally list all the data content and so on You can also control on a user specific base which
Commands a user may use and may not you have the natural the common user access control and everything also limits for pixels so that if you have Let's say cloud instance Which you have to pay for which is normal that your user doesn't burn your cloud budget in no time by just processing
Entire continents or something like that so you can limit things here limit the duration of the computation and so forth Yeah, this is possibly enough So how to deploy everything? We have different options here Those familiar with Docker and Kubernetes. They may already know what I would say. So you you can imagine that
You have small actinia workers which are floating around in the cloud and those are then orchestrated by the the core system and Well, you basically launch these workers if you have a job and then it depends on your data size if you want to split your data and send them
To different nodes or not. This really depends on the problem. For example for time series you could If you have a stack of data must not be time series can even be something else You can send them to different nodes and at the very end you reassemble all the results
We have different technologies here where we can deploy stuff on this depends some customers We are using this also in in our activities They have their own cloud and say you need to to launch things on on our infrastructure Which is possibly protected and so on and since it is
Open source, there is no problem with that Docker swarm kubernetes so we can even use mini pot I don't know if anyone use knows that you can run it on your laptop and basically launch your Micro cloud instance with everything on your laptop if you want to play around and pretend to be a big data center
For example in order to test workflows on tiny data sets and then you eventually deploy it in the in the real data center Okay now a bit of rest API, how does it look like if you want to Query the system what data are on the server or in the infrastructure?
Let's say you can send a rest put get request slash locations will give you the list of what is there So here we have it's a bit small. I apologize, but this is also related to this conversion. I Try to tell you what is that? so on the left side get locations and then you get the names of those which are projects let's say and
On the right side you can look into the sub directories and see what data sets are sitting inside Yeah, this would give you in not really visible a list of maps And additionally if you want to get a quick view what map is there and how does it look like you can just use
The render in endpoint. So one of those things is called endpoint in rest Speech rest API and You can see it's a kind of hierarchical system which you Where you send the request to the to the server and something comes back and in the lower line case there
You say I want to see this data set this particular name slash Render and then it will send back the picture so you can take a look this of course comes in JSON encoded so you need some client for this, but there are different clients available
To do things like that. Well, so then we have different types of processing user-defined processing the so-called if you mirror and the persistent Ways of doing things persistent as the name suggests the data rest on the server You would have to pay for the storage if you are in a paid cloud environment, of course
So you need to think about it twice and the if a mirror stuff is you want to compute something or the? You don't care what happens to them in future. So there will be automatically trashed and The result you are offered a download link for example, or it is sent to a cloud-based storage or whatever you prefer
And there you can then go and see sorry consume the results So now how to do Different process chains So we call it process chains what used to be called maybe a script or a job or something like this So it's essentially a list of tasks to be done
They are encoded you see it on the right side in JSON So you say step one step two step three and by the way the input to step one is this data set It can be even sit on a remote System you'll give HTTPS some address and it will fetch it from there
and Then you do the processing you say what you want to compute and eventually you will get the result and Already mentioned we have support for all the grass modules We get meanwhile also the explanations what the module does You can retrieve automatically from the system. You can also ask it. What are the input data? What are the input types? Is it?
Vector map a raster map a string a table whatsoever and this can be queried automatically Yeah, the rest I have already mentioned okay back to the newspaper and to the next topic so Now I will see the classified so small news what has happened in the past and zooming to them
What we added in the last month Let's say so vector upload is now there by an endpoint. You can upload data in different formats Geopackage here Jason and good old shapefile as well
Seems not to disappear for the time being And here's an example. This is maybe not really useful now, by the way This the slides are on github so you can watch them in full quality and even click on the links then Just as a hint so what else have we done enable a separate Redis queue so Redis is a database
Which is managing the different jobs imagine you have the cloud instance the users are happily sending stuff to the cloud And then it needs to be distributed to the different worker nodes and results connected This maybe didn't come to an end this one has ended and please notify the user and whatever communication you can imagine
So the actinio instance receives jobs and writes it to this Redis that's a database type queue and then somebody is looking at it of course the system and Doing one after the other and possibly you can even use priorities or whatsoever
So sometimes it may be useful to have different queues available and this support we have been adding Well and some other specific technical stuff which I will skip for now and Starting the worker is nothing more than these few unreadable lines where we say Start custom worker queue name and the configuration and then the thing runs
Okay, then very nice very interesting a new actinio Python client This is maybe quite interesting for some of you So you can now write a few lines of Python to remote control the actinio instance you say import from
Actinio, and I think it's not in the slides. Maybe it comes. I don't remember You can say even pip install actinio core, and so you get through pipey you can now install actinio itself easily okay, so here we have the access to
Use actinio through Python, and we will also bring other clients. I show later Likely to use this Python library because it's quite convenient you see the functionality Get version especially you can authenticate get information about all the data You can delete stuff if you have something which belongs to your user space which you want to remove
And you can do also process chain validation imagine you write this Jason's Jason scripts with the different process steps to be done Then you need to validate it if it's syntactically Syntactically correct or not and there's an endpoint for this which tells you oops. There's something wrong here, please fix
Is by the way how to write these process chains you can use grass itself Whatever command minus minus Jason will show you it show the thing in Python In Jason of course and then you can put it to your
Process chain and then put one together we have also clients To do it differently, but I will come to this Okay What else we have a tiling plug-in and actinio parallel plug-in so from plug-in name you can already Imagine that we try to so we did some refactoring we try to modularize actinio
them as much possible as As much as possible so the tiling thing is separate the Parallel thing is also separate now if you need it you can install it otherwise no need the idea of tiling is to to chop the area and especially raster maps of course into pieces and then send the
individual tiles to different nodes for easier parallel processing you can define how the tiles should be Configured it is written there so width and height and so on and the rest is done by this plug-in The parallel mode plug-in is still work in progress
Here the ideas to take one process chain and split it into pieces so perhaps The second one part doesn't have to have the previous one But you can send it in parallel do several steps in parallel and then re aggregate it of course you have to have Kind of stop marks in the process chain itself to tell the system what can be split in what cannot
Imagine you want to do segmentation and you do segmentation then on different input bands Why not do this in parallel and then reunite everything for the subsequent classification for example all right?
Yeah More features I will not read them now Especially the refactoring is interesting and yeah lots of small things with pipelines with Resampling options if you have had once you have heterogeneous data-sets you need to
To fix the vector raster geometry the pixel geometry and align them somehow in a clever way and all this kind of stuff Is there? Okay next topic would be a tinya stack plug-in that is fairly new developed mainly by hawker I already mentioned that and
yes, and Here we have differ. I don't want to go into stack in detail because this has been already presented, and there's no time anyway Remember stack plug-in is there. I need to speed up so we have different create read delete and so on things Collections and instances what is offered in stack usually then we have a second porter
naturally a stack exporter so you can get data in and out and This would be the sec part Let's talk later if you have more questions Then where all was connected years ago is the open EO API So we continue to develop a tinya to be compliant with open EO and here open EO is an API for
standardization of Let's say cloud backend so that you can use Open EO API and in the back end that could be this one or that one or actinia and This is what has been a European project, which is also still under
development different endpoints as usual We married of course open EO and stack as well, and this was the open EO part How does it work We use a driver for this open EO grass GIS driver
this has been developed a time ago, and we continue to develop this one to stay compliant also with Future changes in open EO and to bring things together for users There's just to tell you and a nice web editor existing in open EO which gives you the possibility to
Graphically put together a workflow and then Use it later on stack again also here and Here you see a process chain the different small windows No, sorry these small items which are connected and you can graphically arrange them and then send the job to
To the back end, okay, I come almost to the conclusion the outlook We are working on kick log integration so that is user authentication And this will take some more time because it's complex stuff
We want to restructure the modules thematically because with 500 or what Different function functions, it's a bit of an effort to Understand what's to be used, but this since the modules are able to auto declare themselves this should be a durable thing we work continuously on the Python client and
We'll continue as I mentioned with the parallel plug-in so everything is sitting on github a bunch of plugins with actinia core and actinia API To study the API itself all the plugins and different clients. We also develop QGIS
plugin and This will be published at some point when it is usable, let's say and You are importers exporters and hem charts if you want to deploy it yourself And this would be my presentation, and I thank you for your attention