Mise à jour de l'index GeoServer ImageMosaic PostGIS

11

J'utilise GeoServer où j'ai créé un stockage ImageMosaic en suivant ce manuel . Lorsque je crée une nouvelle banque de données, tous les *.tiffichiers sont indexés dans la base de données (PostgreSQL avec PostGIS). Comment puis-je créer une nouvelle entrée d'index dans la base de données, lorsque je mets un nouveau géotiff dans mon dossier de données, ou réindexer tous les fichiers de géotiff dans la base de données?

Mes fichiers de configuration:

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.\*)

elevationregex.properties:

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

fichiers dans le répertoire:

tc_10000_20140807T033115Z.tif
tc_10000_20140807T040046Z.tif
tc_10000_20140807T043115Z.tif
...
Vitaliy
la source

Réponses:

5

À mon humble avis, la meilleure façon de le faire est via REST avec la curlcommande.

Pour réindexer l'ensemble d'ImageMosaic existant, utilisez quelque chose comme la commande suivante (n'oubliez pas de définir le nom d'utilisateur, le mot de passe, le nom de l'espace de travail, le nom du magasin ImageMosaic et le chemin d'accès au répertoire granules corrects):

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"

Cela supprimera tous les granules de l'index actuel, puis ajoutera les fichiers existants un par un. Il prend beaucoup de temps.

Je préfère ajouter un seul granule (c'est-à-dire 1 fichier raster):

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"

Les deux exemples supposent que les fichiers raster sont déjà présents à l'emplacement spécifié (spécifié par external.imagemosaicà la fin de l'URL).

Plus d'exemples sont dans les documents GeoServer .

Peter Kovac
la source