-
Notifications
You must be signed in to change notification settings - Fork 1
openEOcubes
Michael Brüggemann edited this page Dec 17, 2023
·
6 revisions
- ist ein Repository mit einem R-Package, welches Funktionen zur Interaktionen mit dem OpenEOcubes-Backend ermöglicht
- die Prozesse sind in
processes.R
definiert
- derzeit ist nur das verarbeiten "synchroner" Prozesse implementiert, d.h. nur der Endpunkt
.executeSynchronous
hat weitere Funktionalität. Endpunkte zum anlegen von Jobs existieren zwar, haben aber keine weitere Funktionalität. - ruft man im Client (hier: R)
compute_result()
auf, dann wird als erstes der Endpunkt ".executeSynchronous" angesteuert. - man kann in den API Funktionen mit
message()
einfach Ausgaben erzugen (praktisch fürs Debugging).
- wir können einfach in den neuen Prozessen auch "nicht-Datacubes" übergeben, das Backend verhindert dies nicht
- wir müssen einfach nur herausfinden, wie man das Ergebnis dann korrekt weiter ausgibt (zwischen den Prozessen und als Endergebnis von
Job$run()
- wir müssen einfach nur herausfinden, wie man das Ergebnis dann korrekt weiter ausgibt (zwischen den Prozessen und als Endergebnis von
- bisher wird als letztes das gesamte Repo als lokales R Package compiliert. Dies dauert im Container sehr lange.
- Alternativ könnte man überlegen, dass ganze lokal zu machen und im Dockerfile nur bestimmen, dass die .tar des Packages in den Container kopiert und dort genutzt wird
- Frage: Wie packe ich es an die richtige Stelle, damit alle Funktion des Packages im Container bekannt sind.
- eine Library, um mithilfe einer STAC APi Datacubes zu einem bestimmten Untersuchungsgebiet zu erstellen
- hierfür benötigt man die BBox des Gebiets, eine Immage Kollektion mit Bildern aus diesem Gebiet und eine "Datacube-View" zu diesem Gebiet. mit
raster_cube()
werden diese informationen dann zu einem "Datacube" verknüpft. - in
gdalcubes
definiert man Datacubes ebenfalls wie in openEOcubes nur als Proxy Struktur. Der tatsächliche Datacube wird erst berechnet, wenn man die Daten benötigt (z.B. plotten, speichern). - mit
extract_geom()
können alle Features zu einer bestimmten Geometrie aus dem Datacube ausgelesen werden. Diese erhält man dann alsstars
Objekt, mit dem weitere Berechnungen durchgeführt werden können.
- um einen neuen Prozess in das Backend zu integrieren muss dieser einmal in
processes.R
definiert werden und inapi.R
in der MethodeaddEndpoint()
als neuer Prozess (Session$assignProcess()
) ergänzt werden - ein neuer Prozess muss für jedes Attribut der Prozess-Klasse einen Wert haben, ansonsten kann der Server diesen nicht verarbeiten.
- die
operation
des neuen Prozesses muss immer den Parameterjob
entgegennehmen, damit das Backend funktioniert (warum ist mir nicht klar) - der Datacube aus
data
kann nicht übermessage()
geprintet werden, da sonst der Server einen Fehler wirft (warum ist mir nicht klar)