Mehr

Wie erhalte ich den Status eines Layers im Geoserver mit gsconfig?

Wie erhalte ich den Status eines Layers im Geoserver mit gsconfig?


Ich erhalte alle veröffentlichten Layer vom Geoserver mit gsconfig mit folgendem Code:

from geoserver.catalog import Catalog cat=Catalog("http://localhost:8080/geoserver/rest") myResource = cat.get_resources(store='storeName', workspace="workspaceName")layer = cat.get_layers(myResource) .

Jetzt möchte ich alle Layer die nicht veröffentlicht sind gespeichert (noch zu veröffentlichen) oder den Status eines Layers was bedeutet veröffentlicht oder noch nicht veröffentlicht werden. Wie kann ich?


layer = cat.get_layer("yourlayer") if layer.enabled: print "Layer ist veröffentlicht" else: print "Layer ist nicht veröffentlicht"

Ebenen bieten diese Einstellungen:

aktiviert ist ein boolesches Flag, das auf False gesetzt werden kann, um die Bereitstellung eines Layers zu stoppen, ohne ihn zu löschen. Wenn dies auf True gesetzt ist, wird der Layer bereitgestellt.

Siehe diese Webseite.


Clustering von zwei Geoserver-Instanzen

Wir haben derzeit eine Webanwendung, die Geoserver auf AWS verwendet. Im Moment verwenden wir nur eine Instanz des Geoservers und haben eine für den Fall der Fälle im Standby. Wir möchten die 2 Geoserver-Instanzen clustern und auf denselben Load Balancer stellen. Ich habe die Dokumentation gelesen und die Instanzen so eingerichtet, dass sie einen Geoserver-DATA-Ordner mithilfe eines EFS-Mounts freigeben, damit die Ordner auf beiden Instanzen auf dem neuesten Stand gehalten werden. Meine Sorge ist, dass, wenn diese Geoserver zusammenarbeiten und ein Benutzer beispielsweise eine Datei hochlädt, die andere Instanz eine "reload config" durchführen muss, um die Änderungen anzuzeigen, die in der ersten Instanz vorgenommen wurden. Von dem, was ich bisher gelesen habe, kann ein "reload config" über die Konsole oder REST erfolgen. Kann mir jemand einen Rat geben, wie ich das bewerkstelligen kann?

Es gibt verschiedene OpenSource-Clustering-Lösungen für GeoServer:

Das HazelCast-Community-Modul ist etwas einfacher zu konfigurieren, obwohl es derzeit anscheinend nicht mit den restlichen Community-Modulen veröffentlicht wird, sodass Sie es möglicherweise selbst erstellen müssen. Die einfachste Möglichkeit zum Einrichten besteht darin, alle Knoten im Cluster so einzurichten, dass sie auf ein Konfigurationsverzeichnis in EFS verweisen. In AWS müssen Sie es auch für die Verwendung von IPs konfigurieren, da AWS Multicast nicht unterstützt. Ein weiterer Hinweis ist, dass die Veranstaltung Modus funktioniert seit ein paar Jahren nicht mehr, also läuft er nur in neu laden Modus.

JMS-Clustering ist etwas komplizierter, da es auf einem JMS (normalerweise ActiveMQ) beruht, um die Veröffentlichung von Aktualisierungen für die anderen Knoten im Cluster zu handhaben. Für einen einfachen 2-Knoten-Cluster ist es wahrscheinlich in Ordnung, das einbettbare ActiveMQ zu verwenden, das in derselben Tomcat-Instanz wie der Geoserver ausgeführt werden kann. Auch hier macht AWS die Konfiguration etwas schwieriger, da standardmäßig versucht wird, die ActiveMQ-Server per Multicast zu finden. Der JMS-Cluster synchronisiert nur Änderungen mit dem Katalog und erfordert kein erneutes Laden, damit Änderungen auftreten. http://docs.geoserver.org/latest/en/user/community/jms-cluster/index.html

In der Benutzeroberfläche befindet sich die Funktion zum erneuten Laden des Katalogs im Server Status Seite. Ein Neuladen kann auch durch Senden einer PUT- oder POST-Anfrage an http://example.com/geoserver/rest/reload ausgelöst werden (für den Aufruf ist außerdem ein authentifizierter Benutzer mit der Administratorrolle erforderlich), siehe die REST-API-Dokumente für mehr Details.

Je nach Größe des Katalogs kann das Neuladen einige Probleme verursachen. Während des Neuladevorgangs verwirft der Geoserver die im Arbeitsspeicher befindliche Version des Katalogs und lädt dann jeden Store, Layer und Style von der Festplatte neu. Wenn während dieses Vorgangs eine Anforderung für einen Layer empfangen wird, der nicht zurück in den Speicher geladen wurde, wird der Geoserver wahrscheinlich mit einem 404-Fehler antworten. Die Katalogladeleistung wurde in GeoServer 2.11+ stark verbessert, um die Startzeit und die Katalogneuladezeit zu verkürzen.

Auf jeden Fall würde ich empfehlen, den gesamten Web- und Rest-Traffic (/geoserver/web & /geoserver/rest) an einen einzelnen Knoten zu leiten, der als Master dient versuchen Sie gleichzeitig in den Katalog zu schreiben. Das Einrichten in AWS mit einem ALB ist ziemlich trivial.


Hochladen von ISO19139-XML wird nicht gespeichert/zurückgegeben gmd:Kontaktelemente #2250

Ich lade ein Bild und eine zugehörige ISO19139-XML-Datei hoch. Die Datei enthält ein gmd:contact-Element (unten angehängt). Diese Datei lädt OK. Wenn ich jedoch versuche, "Metadaten herunterzuladen" und die Option "ISO" auswähle, haben fast alle Kontaktinformationen in den Feldern "fehlen" (E-Mail-Adresse ist die einzige Ausnahme). Die Ausgabe ist ebenfalls unten angehängt. Ich habe nicht überprüft, wie viele ISO19139-Daten nicht zurückgegeben (oder gespeichert) werden. Mir ist bewusst, dass Geonode nicht den vollständigen ISO19139-Satz speichert, aber hier scheint es eine Inkonsistenz zu geben. Mir wurde vorgeschlagen, Geonetwork zu verwenden, da es den vollständigen ISO19139-Datensatz originalgetreu hochlädt und zurückgibt. Würde die Verwendung von Geonetwork als Backend-Katalogdienst die Handhabung von ISO19139 in Geonode verbessern?

Ein Auszug aus den Eingabe-Metadaten:

Ein Auszug aus der Option "Metadaten herunterladen" / "ISO":

Der Text wurde erfolgreich aktualisiert, aber diese Fehler sind aufgetreten:

Wir können die Aufgabe derzeit nicht in ein Problem umwandeln. Bitte versuche es erneut.

Das Problem wurde erfolgreich erstellt, aber wir können den Kommentar derzeit nicht aktualisieren.


Integration phänologischer Prognosekarten zur Bewertung der Biodiversität: Ein Unternehmensworkflow

Neuere Open-Data-Richtlinien des Office of Science and Technology Policy (OSTP) und Office of Management and Budget (OMB), die am 1. Oktober 2016 vollständig durchsetzbar waren, verlangen, dass vom Bund finanzierte Informationsprodukte (Publikationen usw.) frei erstellt werden der Öffentlichkeit zugänglich gemacht werden und dass die zugrunde liegenden Daten, auf denen die Schlussfolgerungen beruhen, veröffentlicht werden müssen. Ein wichtiger und relevanter Aspekt von th.

Neuere Open-Data-Richtlinien des Office of Science and Technology Policy (OSTP) und Office of Management and Budget (OMB), die am 1. Oktober 2016 vollständig durchsetzbar waren, verlangen, dass vom Bund finanzierte Informationsprodukte (Publikationen usw.) frei erstellt werden der Öffentlichkeit zugänglich gemacht werden und dass die zugrunde liegenden Daten, auf denen die Schlussfolgerungen beruhen, veröffentlicht werden müssen. Ein wichtiger und relevanter Aspekt dieser Richtlinien ist, dass die von USGS-Programmen gesammelten Daten mit der Öffentlichkeit geteilt werden müssen und dass diese Daten den Überprüfungsanforderungen von Fundamental Science Practices (FSP) unterliegen. Diese neuen Richtlinien belasten USGS-Wissenschaftler und -Wissenschaftszentren jedoch erheblich. Der Vorteil der Bemühungen um die Einhaltung von Top-Down-Richtlinien ist jedoch eine verbesserte Erkennung, Zugänglichkeit (einschließlich Maschinenlesbarkeit), Integration und Verwendung von Daten für neuartige Anwendungen zur Unterstützung der breitere USGS-Mission. Der Zweck dieser Forschung bestand darin, diese neuen Richtlinien anzuwenden, da sie sich auf die Erstellung von Echtzeit- und Kurzfristprognosen von gerasterten Biodiversitätsdaten als Modell für eine ähnliche Produktion und Bereitstellung von Datenprodukten aus anderen USGS-Projekten und -Programmen beziehen.


Abstrakt

Globale Umweltveränderungen werden meist durch menschliche Aktivitäten verursacht (z. B. Nahrungsmittel- und Energieproduktion, Urbanisierung, Bergbauaktivitäten). Um diese weltweit stattfindenden Veränderungen zu beurteilen und zu verstehen, ist eine regelmäßige und kontinuierliche Überwachung eine wesentliche Voraussetzung. Dies führt jedoch aufgrund der potenziell großen Flächenverteilung über zahlreiche Standorte, die verfolgt werden müssen, in der Regel zu einer geringen Häufigkeit der Überwachung von Umweltveränderungen bestenfalls an wenigen ausgewählten Standorten.

Mit der zunehmenden Anzahl frei und offen zugänglicher großer Remote-Sensed Earth Observations (EO)-Datenspeicher und den zunehmenden Fähigkeiten offener und interoperabler Softwarelösungen ist es jetzt möglich, verschiedene EO-Datenverarbeitungsaufgaben zu automatisieren, um Umweltveränderungen in großem Maßstab zu überwachen.

In diesem Artikel wird das Live Monitoring of Earth Surface (LiMES)-Framework vorgestellt, das bei der Automatisierung von Bildverarbeitungsaufgaben bei der Umwandlung von Rohdaten in Informationen und Wissen durch Workflows mit interoperablen Verarbeitungsdienstketten zur Überwachung von Umweltveränderungen hilft. Sowohl Vorteile als auch Einschränkungen werden anhand der Implementierung eines Prototyps demonstriert und diskutiert, um die Aktualisierung des Status einiger der 278 UNEP-Umwelt-Hotspots zu erleichtern. Wir glauben, dass ein solches Rahmenwerk dazu beitragen kann, die Kluft zwischen riesigen Mengen an EO-Daten und den Nutzern wie Internationalen Organisationen (IO) zu verringern, um ihnen zu helfen, ihre Umweltüberwachungsaufträge besser zu erfüllen, indem Rohdaten auf ein Niveau gebracht werden, das verwendet werden kann von Nicht-Fernerkundungsexperten für grundlegende Folgenabschätzungen.


Interroger GeoServer und Python grâce à gsconfig#

Komme vous l'avez surement remarqué, je ne suis pas un grand fan de Java. Le fait est que je trouve ce langage trop verbeux et vraiment compliqué à prendre en main. C'est pourquoi quand je suis tombé sur, gsconfig, eine Python-Bibliothek permetant über das REST-Protokoll mit GeoServer, oder eine Suite mit Emballé.

Au cours de ce billet, nous aborderons deux sujets principaux. Tout d'abord la création d'un environnement virtuel afin de ne pas "polluer" nos dépôts Quellen. Ensuite l'installation und l'utilisation de gsconfig

1 - Jouer en toute sécurité grâce à Virtualenv#

Installation von Virtualenv#

L'une des (nombreuses) raisons pour laquelle j'aime python, est la liberté offerte par ce langage. Ne vous est-il jamais kommt von der vouloir utiliser in einer même Anwendung mehr sous der verschiedenen Versionen, d'Installer einer Bibliothek Python Encore und Entwicklung für faire Tests ohne korrumpierte votre système ? Avec une architecture classique cela ist unmöglich. Pour remédier à cela, Python bietet eine Alternative des Plus intéressantes, les environnements virtuels.

Ces derniers permettent tout simplement de disposer d'une sorte de boite virtual au Sein de laquelle vous pouvez installer localement les libraries que vous ne souhaitez pas avoir dans votre système global. L'énorme avantage est que vous n'avez pas besoin d'installer un system complet. En effet les librairies installées dans votre system global restent utilisables localement. J'arrêterai là les explications, mais si vous souhaitez en savoir davantage, je vous renvoie vers les billets de clemesha et de l'incontournable sgillies

Passons Wartung à la Pratique. Il est bien évidemment nécessaire, dans un first temps, d'installer virtualenv. Ubuntu faisant les chooses bien, il est disponible dans les dépôts. Von Synaptic oder von einem apt-get-Start für das Installationsprogramm python-virtualenv. Puisque nous y sommes, installez également git-core. Cela nous servira à télécharger gsconfig qui use le system de version Git.

Création d'un environnement virtuel#

Cela réalisé, il ne nous reste plus qu'à créer concrètement notre environnement virtuel. Cela se fait via un terminal, mais rassurez-vous, vous n'aurez en tout et pour tout que deux lignes à tape ! Commencez par vous placer à l'endroit où vous souhaitez créer votre nouvel environnement. Vous pouvez le faire où vous souhaitez, mais je vous conseille de créer un répertoire spécifique. En terme d'organisation cela sera tout de même plus simple. Ensuite, il vous suffit simplement de taper la ligne de commande virtualenv suivi du nom que vous souhaitez :

/App/geo$ virtualenv gsconfig-virtual
Neue ausführbare Python-Datei in gsconfig-virtual/bin/python
Setuptools installieren. fertig.

Voilà votre nouvel environnement est créé mais pas encore actif. Pour cela il est nécessaire, après s'être rendu dans votre nouvel environnement, de spécifier la source de la manière suivante :

/App/geo$ cd gsconfig-virtual/
[email protected]:

/App/geo/gsconfig-virtual$ source bin/activate
(gsconfig-virtual)[email protected]:

Comme vous l'avez sureement remarqué, la dernière ligne de mon terminal a change. Elle est précédée de (gsconfig-virtual) signe que je suis bien maintenant dans unvironnement virtuall. Nous sommes prêt maintenant à installer gsconfig.

2 -Interroger GeoServer und Python grâce à gsconfig#

Installation von gsconfig#

Au sein de votre nouvel environnement virtuel, vous disponz de trois répertoires : bin, include et lib. Rendez-vous dans le répertoire bin und lancez la commande ci-dessous qui va télécharger gsconfig.

/App/geo/gsconfig-virtual/gsconfig-virtual/gsconfig-virtual/bin$ git clone http://github.com/dwins/gsconfig.py.git

Une fois le téléchargement terminé, il ne vous reste plus qu'à installer gsconfig :

/App/geo/gsconfig-virtual/bin$ cd gsconfig.py
(gsconfig-virtual)[email protected]:

/App/geo/gsconfig-virtual/bin/gsconfig.py$ python setup.py install

Eine vorläufige Premiere der Installation, die von einem échec en raison de l'absence de la librairie httplib2 verkauft wurde. Rien de très grave rassurez-vous. Si c'est également votre cas, téléchargeons-la immédiatement et relançons l'installation.

/App/geo/gsconfig-virtual$ easy_install httplib2
(gsconfig-virtual)[email protected]:

/App/geo/gsconfig-virtual$ cd bin/gsconfig.py
(gsconfig-virtual)[email protected]:

/App/geo/gsconfig-virtual/bin/gsconfig.py$ python setup.py install
.
Mit /home/user/App/geo/gsconfig-virtual/lib/python2.6/site-packages/httplib2-0.6.0-py2.6.egg
Abgeschlossene Verarbeitungsabhängigkeiten für gsconfig.py==1.0

Et voilà le tour est joué, l'installation est terminée.

Verwendung von gsconfig#

Wartung que toute notre Infrastructure est en place, utilisons immédiatement gsconfig. Mais avant toute wählte, il est nécessaire de démarrer GeoServer. En effet, gsconfig va dialogr avec notre server cartographique via le protocole Rest. Une fois Cela réalisé, il suffit dans votre vironnement virtual de lancer un interpreteur python. Nous allons ensuite importer la librairie et effectuer quelques tests:

aus geoserver.catalog Import Katalog
cat = Katalog("http://localhost:8082/geoserver/rest")
cat.get_layers()
[Layer[giant_polygon], Layer[poi], Layer[poly_landmarks], Layer[tiger_roads], Layer[Pk50095], Layer[Img_Sample], Layer[mosaic], Layer[Arc_Sample], Layer[tasmania_cities], Layer[tasmania_roads] , Layer[tasmania_water_bodies], Layer[tasmania_state_boundaries], Layer[states], Layer[sfdem], Layer[bugsites], Layer[restricted], Layer[archsites], Layer[roads], Layer[streams]]

Imaginons que nous souhaitons en connaitre davantage à propos de la couche besagt:

Zustände = cat.get_layer('Staaten')
staaten.href
'http://localhost:8082/geoserver/rest/layers/states.xml'
staaten.name
'Zustände'
Staaten.Stile
[Stil[Polygon], Stil[Pophatch]]

De la même manière si nous souhaitons connaitre les workspaces disponibles :

L'Installation ainsi que la Prize en main de gsconfig sont reellement très rapides. Quel plaisir de pouvoir s'amuser avec geoserver tout en utilisant python ! Mais bon, c'est décidé cette année je me mets au java.


2 Antworten 2

tldr -- Unter Gnome können Sie Kernel-Boot-Parameter so einstellen, dass die Auflösung Ihres Monitors manuell überschrieben wird. Wenn Sie die Weston-Implementierung verwenden (die Gnome anscheinend nicht ist), können Sie in verschiedene Auflösungen konfigurieren

Ich habe lange damit gekämpft und einen Kompromiss gefunden, der im Moment gut funktioniert. Ich hoffe jedoch, dass es einen besseren Weg gibt, also lassen Sie es mich bitte wissen.

Mit Weston (ungetestet)

Zuerst dachte ich, dass Gnome Weston für seine Wayland-Ebene verwendet, aber anscheinend funktioniert das nicht so. Wenn Sie jedoch Weston verwenden, können Sie die Auflösung externer Displays angeblich in . konfigurieren

Der Ausgabename sollte der Name Ihres Displays sein. Auf Arch können Sie diesen Befehl ausführen, um herauszufinden, welche Displays verbunden sind:

Um den richtigen Wert für die Modelline zu erhalten, können Sie cvt 1920 1080 oder eine beliebige Auflösung ausführen. Weitere Informationen hier: https://wiki.archlinux.org/index.php/Wayland#Configuration

Mit Gnom

Es scheint, dass Gnome (zumindest noch) keine Möglichkeit hat, die Bildschirmauflösungen zu konfigurieren. Also habe ich einen Fehlerbericht gefunden, der sich auf diesen Kernel-Boot-Parameter bezieht, mit dem Sie die Auflösung für Anzeigen überschreiben können. Lesen Sie die verlinkte Dokumentation für alle Details, aber auf meinem System musste ich die Anzeige "DP-1" auf 1920x1080 bei 60Hz konfigurieren, also habe ich diese Zeile zu meinen Boot-Parametern hinzugefügt:

Ich verwende systemd-boot, also habe ich das meiner Optionszeile in /boot/loader/entries/arch.conf hinzugefügt. Wenn Sie GRUB oder etwas anderes verwenden, sind Ihre Schritte zum Hinzufügen dieses Boot-Parameters anders.

Ich bin mir eigentlich nicht sicher, was jetzt passiert, wenn ich mit dieser Option starte und dann ein Display anschließe, das eine andere Auflösung benötigt. Wird dieser Boot-Parameter das überschreiben oder ist dies ein Fallback für den Fall, dass die automatische Erkennung fehlschlägt? Ich weiß nicht. Da ich mir nicht sicher bin, habe ich einen zweiten Boot-Eintrag hinzugefügt, der diesen Parameter weglässt. Manchmal muss ich daher möglicherweise neu starten, um die richtige Auflösung auf einem externen Display zu erhalten. Aber ansonsten funktioniert es gut.


Schau das Video: Advanced Geoserver: Tile Caching Basics.