HHypermap (Harvard Hypermap) Registry is an application that manages OWS, Esri REST, and other types of map service harvesting, and maintains uptime statistics for services and layers. HHypermap Registry will publish to HHypermap Search (based on Lucene) which provides a fast search and visualization environment for spatio-temporal materials.
JavaScript Python CSS HTML Other
Permalink
Failed to load latest commit information.
_docs Added systemctl command to increase vm maparea (#232) Oct 13, 2016
config registry branch Aug 29, 2016
data CSW-T workflow (#197) Sep 6, 2016
hypermap Fixed the logic of checking layer validity Feb 8, 2017
.gitignore Added a template for env_vars and updating instructions Jul 14, 2016
.travis.yml
Dockerfile pycsw using external plugin (#211) Sep 18, 2016
LICENSE Update LICENSE Jan 29, 2016
MANIFEST.in Added swagger files to python package Sep 7, 2016
Makefile Do not test selenium in Travis Oct 19, 2016
README.md Update README.md Jan 27, 2017
django.env [WIP] CSW tests (#215) Sep 26, 2016
docker-compose.elasticsearch.yml Upgrade to Elasticsearch v6.0.0-alpha1 (#231) Oct 12, 2016
docker-compose.override.yml Do not expose memcached - Travis has problems with it Sep 6, 2016
docker-compose.registry.terranodo.io.yml Set default for bbox int values Sep 7, 2016
docker-compose.solr.yml registry branch Aug 29, 2016
docker-compose.yml Upgrade to Elasticsearch v6.0.0-alpha1 (#231) Oct 12, 2016
manage.py Sprint at Harvard. Jun 10, 2016
pavement.py Correctly set env variables for tests in pavement Nov 11, 2016
requirements.txt Bump djmp 0.2.10 Nov 14, 2016
setup.cfg Fixing pep8 Aug 3, 2016
setup.py Bump djmp 0.2.10 Nov 14, 2016
wait-for-postgres.sh Do not rely on docker-geonode anymore (#193) Sep 2, 2016

README.md

HHypermap Registry

Build Status

Introduction

HHypermap (Harvard Hypermap) Registry is a platform that manages OWS, Esri REST, and other types of map service harvesting, and orchestration and maintains uptime statistics for services and layers. Where possible, layers will be cached by MapProxy. It is anticipated that other types of OGC service such as WFS, WCS, WPS, as well as flavors of Esri REST and other web-GIS protocols will eventually be included. The platform is initially being developed to collect and organize map services for Harvard WorldMap, but there is no dependency on WorldMap. HHypermap Registry publishes to HHypermap Search (based on Lucene) which provides a fast search and visualization environment for spatio-temporal materials. The initial funding for HHypermap Registry came from a grant to the Center for Geographic Analysis from the National Endowment for the Humanities.

A description of the HHypermap API is here: http://hh.worldmap.harvard.edu/registry/api/docs/. The documentation for the API still needs to be fleshed out with examples for how to get a heatmap, what the values mean, how to get a temporal histogram, how to search using special characters like *, etc.

Installation

Running Hypermap on Docker

Easiest way to have an HHypermap instance up and running is to use Docker.

git clone git@github.com:cga-harvard/HHypermap.git
cd HHypermap
make build
make up
make sync
make logs

Wait for the instance to be provisioned (about 3/4 minutes).

Then connect to: http://localhost:8000 and your instance should be up and running.

You can edit the files with your IDE from your host, as the directory /code on the guest is synced with your host.

To run unit tests:

make test

To debug Django, this is what it can be done:

docker-compose stop django
docker-compose run --service-ports django

Then add some breakpoint - import ipdb;ipdb.set_trace() - and happy debugging!

Start using Hypermap

Login to the home page, http://localhost:8000. It will be empty. You need to add some endpoints to Hypermap. So go to the administrative interface:

http://localhost:8000/admin/

Go to Endpoint List and add an endpoint list, for example the one included in /data.

After saving, Hypermap should be start harvesting the endpoint.

Harvesting will be performed by the Django server if SKIP_CELERY_TASK = True, otherwise by Celery. Please note that harvesting operations can be time consuming, so it is better to setup a Celery process if possible.