This Grails application provides the webservices and backend for the storage of all images in the Atlas. It includes:
- Support for large images, generation of thumbnails and tile views
- Extensible key/value pair storage for image metadata
- Support for subimaging and maintaining the relationships between parent and child images
- Exif extraction
- Tile view for large images compatible with GIS Javascript clients such as LeafletJS, OpenLayers and Google Maps
- Web services for image upload
- Generate of derivative images for thumbnail presentation
- Tagging support via webservices
- Administrator console for image management
- Swagger API definition
- Integration with google analytics to monitor image usage by data resource
- Support for image storage in S3, Swift
- Support for batch uploads with AVRO
There are other related repositories to this one:
- images-client-plugin - a grails plugin to provide a Javascript based viewer to be used in other applications requiring a image viewer. This viewer is based on LeafletJS.
- image-tiling-agent - a utility to run tiling jobs for the image-service. This is intended to used on multiple machine as tiling is CPU intensive and best parallelised.
- image-loader - utility for bulk loading images into the image-service.
Please see the Upgrading from 1.0 to 1.1 wiki page before upgrading an image-service 1.0 or earlier installation to the latest version.
- Grails 3 web application ran as standalone executable jar
- Open JDK 8
- Postgres database (9.6 or above)
- Elastic search 7
- Debian package install
There are ansible scripts for this applications (and other ALA tools) in the ala-install project. The ansible playbook for the image-service is here
You can also run this application locally by following the instructions on its wiki page
There is a docker-compose YML file that can be used to run postgres locally for local development purposes. To use run:
docker-compose -f postgres.yml up -d
And to shutdown
docker-compose -f postgres.yml kill
There is a docker-compose YML file that can be used to run elastic search locally for local development purposes. To use run:
docker-compose -f elastic.yml up -d
And to shutdown
docker-compose -f elastic.yml kill