Обновление индекса GeoServer ImageMosaic PostGIS

11

Я использую GeoServer, где я создал хранилище ImageMosaic, следуя этому руководству . Когда я создаю новое хранилище данных, все *.tifфайлы индексируются в БД (PostgreSQL с PostGIS). Как я могу создать новую запись индекса в БД, когда я помещаю новый геотиф в папку с данными, или переиндексировать все файлы геотифов в БД?

Мои конфигурационные файлы:

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

файлы в каталоге:

tc_10000_20140807T033115Z.tif
tc_10000_20140807T040046Z.tif
tc_10000_20140807T043115Z.tif
...
Виталий
источник

Ответы:

5

ИМХО, лучший способ сделать это через REST с curlкомандой.

Чтобы переиндексировать весь существующий ImageMosaic, используйте что-то вроде следующей команды (не забудьте указать правильное имя пользователя, пароль, имя рабочей области, имя хранилища ImageMosaic и путь к каталогу гранул):

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"

Это удалит все гранулы из текущего индекса, а затем добавит существующие файлы один за другим. Это очень много времени.

Я предпочитаю добавлять одну гранулу (т.е. 1 растровый файл):

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"

В обоих примерах предполагается, что растровые файлы уже присутствуют в указанном месте (это указано external.imagemosaicв конце URL-адреса).

Больше примеров в документах GeoServer .

Петр Ковач
источник
Ваша ссылка перенесена на docs.geoserver.org/stable/en/user/rest/… или, может быть, docs.geoserver.org/api/#/1.0.0/coveragestores.yaml
Дейв X