Atualização do índice GeISS ImageMosaic PostGIS

11

Eu uso o GeoServer onde criei um armazenamento ImageMosaic seguindo este manual . Quando crio um novo armazenamento de dados, todos os *.tifarquivos são indexados no DB (PostgreSQL with PostGIS). Como posso criar uma nova entrada de índice no banco de dados quando coloco um novo geotiff na minha pasta de dados ou reindexar todos os arquivos de geotiff no DB?

Meus arquivos de configuração:

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})(?=_)

arquivos no diretório:

tc_10000_20140807T033115Z.tif
tc_10000_20140807T040046Z.tif
tc_10000_20140807T043115Z.tif
...
Vitaliy
fonte

Respostas:

5

IMHO a melhor maneira de fazê-lo é via REST com o curlcomando

Para reindexar todo o ImageMosaic existente, use algo como o seguinte comando (lembre-se de definir o nome de usuário, senha, nome da área de trabalho, nome da loja ImageMosaic e o caminho para o diretório granules):

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"

Isso excluirá todos os grânulos do índice atual e adicionará os arquivos existentes um a um. É muito demorado.

Eu prefiro adicionar um único grânulo (ou seja, 1 arquivo 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"

Os dois exemplos assumem que os arquivos rasterizados já estão presentes no local especificado (especificado por external.imagemosaicno final da URL).

Mais exemplos estão nos documentos do GeoServer .

Peter Kovac
fonte