GeoServer ImageMosaic PostGIS-Indexaktualisierung

11

Ich verwende GeoServer, wo ich einen ImageMosaic-Speicher gemäß diesem Handbuch erstellt habe . Wenn ich einen neuen Datenspeicher erstelle, werden alle *.tifDateien in der Datenbank indiziert (PostgreSQL mit PostGIS). Wie kann ich einen neuen Indexeintrag in der Datenbank erstellen, wenn ich einen neuen Geotiff in meinen Datenordner lege, oder alle Geotiff-Dateien in der Datenbank neu indizieren?

Meine Konfigurationsdateien:

datastore.properties:

SPI=org.geotools.data.postgis.PostgisNGDataStoreFactory
host=localhost
port=5432
database=GeoServerRaster
schema=public
user=geoserver
passwd=*******
Loose\ bbox=true
Estimated\ extends=false
validate\ connections=true
Connection\ timeout=10
preparedStatements=true

indexer.properties:

Caching=false
TimeAttribute=ingestion
ElevationAttribute=elevation
Schema=*the_geom:Polygon,location:String,ingestion:java.util.Date,elevation:Integer
PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](ingestion),DoubleFileNameExtractorSPI[elevationregex](elevation)

timeregex.properties:

regex=[0-9]{8}T[0-9]{6}Z(\?!.\*[0-9]{8}T[0-9]{6}Z.\*)

heightregex.properties:

regex=(?<=_)(\\d{1,5})(?=_)

Dateien im Verzeichnis:

tc_10000_20140807T033115Z.tif
tc_10000_20140807T040046Z.tif
tc_10000_20140807T043115Z.tif
...
Vitaliy
quelle

Antworten:

5

IMHO ist der beste Weg, dies zu tun, über REST mit dem curlBefehl.

Verwenden Sie den folgenden Befehl, um das gesamte vorhandene ImageMosaic neu zu indizieren (denken Sie daran, den richtigen Benutzernamen, das richtige Kennwort, den richtigen Arbeitsbereichsnamen, den richtigen ImageMosaic-Speichernamen und den Pfad zum Granulatverzeichnis festzulegen):

curl -v -u username:password -XPOST -H "Content-type: text/plain" \
 -d "file:///path/to/your/image/mosaic/directory/" \
 "http://localhost:8080/geoserver/rest/workspaces/YOUR_WORKSPACE/coveragestores/YOUR_IMAGEMOSAIC_STORE/external.imagemosaic"

Dadurch werden alle Granulate aus dem aktuellen Index gelöscht und vorhandene Dateien nacheinander hinzugefügt. Es ist sehr zeitaufwändig.

Ich bevorzuge das Hinzufügen eines einzelnen Granulats (dh 1 Rasterdatei):

curl -v -u username:password -XPOST -H "Content-type: text/plain" \
 -d "file:///path/to/your/image/mosaic/directory/and/your/granule.tiff" \
 "http://localhost:8080/geoserver/rest/workspaces/YOUR_WORKSPACE/coveragestores/YOUR_IMAGEMOSAIC_STORE/external.imagemosaic"

In beiden Beispielen wird davon ausgegangen, dass die Rasterdateien bereits am angegebenen Speicherort vorhanden sind (der external.imagemosaicam Ende der URL angegeben ist).

Weitere Beispiele finden Sie in den GeoServer-Dokumenten .

Peter Kovac
quelle