Actualización del índice GeoServer ImageMosaic PostGIS

11

Uso GeoServer donde creé un almacenamiento ImageMosaic siguiendo este manual . Cuando creo un nuevo almacén de datos, todos los *.tifarchivos se indexan en la base de datos (PostgreSQL con PostGIS). ¿Cómo puedo crear una nueva entrada de índice en la base de datos, cuando pongo un nuevo geotiff en mi carpeta de datos, o reindexar todos los archivos geotiff en la base de datos?

Mis archivos de configuración:

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

elevatorregex.properties:

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

archivos en el directorio:

tc_10000_20140807T033115Z.tif
tc_10000_20140807T040046Z.tif
tc_10000_20140807T043115Z.tif
...
Vital
fuente

Respuestas:

5

En mi humilde opinión, la mejor manera de hacerlo es a través de REST con el curlcomando.

Para reindexar todo el ImageMosaic existente, use algo como el siguiente comando (recuerde configurar el nombre de usuario, la contraseña, el nombre del espacio de trabajo, el nombre del almacén de ImageMosaic y la ruta al directorio de gránulos correctos):

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"

Esto eliminará todos los gránulos del índice actual y luego agregará los archivos existentes uno por uno. Es muy lento.

Prefiero agregar un solo gránulo (es decir, 1 archivo ráster):

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"

Ambos ejemplos suponen que los archivos ráster ya están presentes en la ubicación especificada (que se especifica external.imagemosaical final de la URL).

Más ejemplos están en los documentos de GeoServer .

Peter Kovac
fuente