Aktualizacja indeksu GeoServer ImageMosaic PostGIS

11

Korzystam z GeoServer, gdzie utworzyłem pamięć ImageMosaic zgodnie z tą instrukcją . Kiedy tworzę nowy magazyn danych, wszystkie *.tifpliki są indeksowane do DB (PostgreSQL z PostGIS). Jak mogę utworzyć nowy wpis indeksu w DB, kiedy umieszczam nową geotiff w moim folderze danych lub ponownie indeksuję wszystkie pliki geotiff w DB?

Moje pliki konfiguracyjne:

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

pliki w katalogu:

tc_10000_20140807T033115Z.tif
tc_10000_20140807T040046Z.tif
tc_10000_20140807T043115Z.tif
...
Witalij
źródło

Odpowiedzi:

5

IMHO najlepszym sposobem na to jest REST z curlpoleceniem.

Aby ponownie zindeksować cały istniejący ImageMosaic, użyj czegoś takiego jak następujące polecenie (pamiętaj, aby ustawić poprawną nazwę użytkownika, hasło, nazwę obszaru roboczego, nazwę sklepu ImageMosaic i ścieżkę do katalogu granulatów):

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"

Spowoduje to usunięcie wszystkich granulek z bieżącego indeksu, a następnie dodanie istniejących plików jeden po drugim. To jest bardzo czasochłonne.

Wolę dodać pojedynczą granulkę (tj. 1 plik rastrowy):

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"

Oba przykłady zakładają, że pliki rastrowe są już obecne w określonej lokalizacji (która jest określona przez external.imagemosaicna końcu adresu URL).

Więcej przykładów znajduje się w dokumentach GeoServer .

Peter Kovac
źródło