Mehr

Sind andere Dimensionen/Attribute als Zeit und Höhe möglich?

Sind andere Dimensionen/Attribute als Zeit und Höhe möglich?


Ich habe Zeitdimension, die mit einer Bildmosaikebene arbeitet. Ist es möglich, andere Dimensionen als Zeit/Höhe hinzuzufügen? Zum Beispiel werden die Dateien in meinem Mosaik wie folgt benannt, wobei rtma oder pris ein "Klima"-Attribut darstellt:

pristmax_20150115.tif pristmax_20150115.tif rtmatmax_20150116.tif rtmatmax_20150116.tif

In meinem Mosaikverzeichnis habe ich jetzt zwei Regex-Eigenschaftsdateien (eine für die Zeitdimension und eine für die Klimaquellendimension):

timeregex.properties mit Regex=[0-9]{8} Klimaregex.properties mit Regex=^.{4}

Ich habe meine indexer.properties-Eigenschaftsdatei wie folgt geändert:

TimeAttribute=ingestion ClimateAttribute=climatesource Schema=*the_geom:Polygon,location:String,ingestion:java.util.Date,climatesource:String PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](ingestion),StringFileNameExtractorSPI[climateregex](climatesource)

Ich habe auch versucht, postgis_rasters.properties zu ändern, um ein ClimateAttribute zu haben:

#-Automagically created from GeoTools- #Wed Nov 25 13:16:00 MST 2015 Levels=0.026578191679850746,0.026578191679850746 Heterogeneous=false TimeAttribute=ingestion ClimateAttribute=climatesource AbsolutePath=false Name=postgis_rasters TypeName=postgis_rasters Expand LocationAttribute=false SuggestedSPI=it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReaderSpi CheckAuxiliaryMetadata=false LevelsNum=1

Geoserver hat wie erwartet eine Tabelle in Postgis erstellt:

1 | 0103… | rtmatmax_20150115.tif | 2015-01-14 17:00:00.000000 | rtma 2 | 0103… | pristmax_20150115.tif | 2015-01-14 17:00:00.000000 | pris

Aber die Verwendung von &climate=rtma oder &climate=pris in meiner URL hat keinen Einfluss darauf, welches Raster abgerufen wird, während &time=2015-01-14 oder &time=2015-01-15 das Raster von diesem Tag auswählt. Wie kann ich das Klimaattribut zum Funktionieren bringen?

--- AKTUALISIEREN ---

Nachdem Sie der Antwort von @rovo gefolgt sind, wird die neue Dimension im Geoserver angezeigt. Hier ist eine Bildschirmkappe.

Und hier ist ein Beispiel für die Postres-Seite (beachten Sie, dass meine Regex falsch war, also habe ich derzeit nicht das, was ich unter Klimaquelle haben wollte, aber dies ist nur ein Test):

Der Teil, den ich noch nicht zum Laufen bekomme, ist, dass der Geoserver den CLIMATESOURCE-Parameter in meiner URL zu ignorieren scheint.

In den getcapabilities sehe ich

  2016-01-01T00:00:00.000Z,2016-01-02T00:00:00.000Z… agdd_20160101_base_fifty,agdd_20160101_base_thirtytwo…

Bei Verwendung von &time=2017-07-06&CLIMATESOURCE=agdd_20170206_base_thirtytwo erhalte ich eine gültige Karte zurück, da 2017-07-07 zufällig der Vorgabe für CLIMATESOURCE entspricht. Wenn ich die Zeit auf etwas anderes ändere, wird keine Karte zurückgegeben, da immer noch die Standardeinstellung "agdd_20170706_base_thirtytwo" verwendet wird, auch wenn ich versuche, CLIMATESOURCE mit einem übereinstimmenden Datum zu überschreiben.

--- UPDATE2 GELÖST ---

Die Antwort von RoVo verdeutlicht nun die Verwendung von DIM_CLIMATESOURCE in der WMS-Anfrage.


Klimaattributist ein unbekanntes Schlüsselwort und wird ignoriert, wenn dieindexer.eigenschaftenist gelesen. Das richtige Schlüsselwort, um einem Imagemosaic zusätzliche Dimensionen hinzuzufügen, ist Zusätzliche Domänenattribute.

Folgendes sollte funktionieren, wenn Sie eine neue Dimension auf der Registerkarte "Dimensionen" hinzufügen:

indexer.eigenschaften

TimeAttribute=time AdditionalDomainAttributes=climatesource(climatesource) PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time),StringFileNameExtractorSPI[climateregex](climatesource) Schema=*the_geom:Polygon,location:String,time:java.util.Date,climatesource:String

klimaregex.eigenschaften

regex=^.{4}

Hinweis: String- und Date-Dimensionen funktionieren ordnungsgemäß, aber aufgrund eines Fehlers werden Integer- oder Double-Werte nur als String gelesen. Dadurch ist es noch nicht möglich, Intervalle abzufragen. Siehe diesen Fehlerbericht.

Aktualisieren: Der Fehler wurde in 2.11.2 behoben.

WMS-Anfrage:

&DIM_CLIMATESOURCE=…

Ciao, ein paar Fragen plus ein paar Hinweise.

  1. Haben Sie die zusätzliche Dimension auf der Registerkarte Dimension für den GeoServer-Layer konfiguriert?
  2. Haben Sie überprüft, ob die GetCapabilities-Antwort die von Ihnen erstellte Dimension korrekt auflistet?
  3. Verwenden Sie bei einer Anfrage den entsprechenden Namen für die Dimension? Wenn Sie beispielsweise gemäß WMS 1.1.1 eine Dimension im GeoServer namens XXXX erstellen, sollten Sie Anfragen durch Anhängen von &DIM_XXXX=XYZ . stellen

Einige Hinweise:

Lassen Sie uns wissen, wie es geht.

Simone.


Wenn Sie das zusätzliche Attribut nur zum Filtern verwenden möchten, müssen Sie es nicht als Dimension verfügbar machen.

Fügen Sie dies einfach in Ihre indexer.properties-Datei ein:

TimeAttribute=time PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time),StringFileNameExtractorSPI[climateregex](climatesource) Schema=*the_geom:Polygon,location:String,time:java.util.Date,climatesource:String

und verwenden Sie den üblichen Abfrageparameter CQL_FILTER. Ihr Attribut steht zum Filtern mit dem Namen in der Schema-Definition in indexter.properties zur Verfügung, der auch dem Spaltennamen in der Datenbank entspricht.

Zum Beispiel würden Sie alle "pris" -Granulate herausfiltern, indem Sie:&CQL_FILTER=Klimaquelle wie 'pris'(natürlich müssen Sie es urlencode). Ein Vorteil der Verwendung von CQL_FILTER besteht darin, dass Sie komplexere Filter verwenden können.

Auch wenn Sie Dimensionen verwenden, müssen Sie sie nicht aktivieren, um den Abfrageparameter DIM_XYZ zu verwenden. Wenn Sie es aktivieren, wird immer ein Standardfilter angewendet. Wenn Sie es nicht aktivieren, können Sie auf das gesamte Mosaik zugreifen, aber nach Belieben filtern.

(Ein paar Jahre zu spät, und der Fall ist bereits gelöst, aber ich bin über diese Frage gestolpert, als ich versuchte, etwas Ähnliches zu tun)