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
...

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 .


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.