All Projects → ExCiteS → geokey

ExCiteS / geokey

Licence: other
Platform for participatory mapping

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to geokey

conrex
An Elixir implementation of the CONREC algorithm for topographic or isochrone maps.
Stars: ✭ 52 (-1.89%)
Mutual labels:  gis
aruco-geobits
geobits: ArUco Ground Control Point Targets and Detection for Aerial Imagery (UAV/MAV).
Stars: ✭ 32 (-39.62%)
Mutual labels:  gis
geojson-to-wfs-t-2
A lightweight javascript module to format WFS-T-2 statements from GeoJSON features
Stars: ✭ 21 (-60.38%)
Mutual labels:  gis
Geotrek-admin
Paths management for National Parks and Tourism organizations
Stars: ✭ 103 (+94.34%)
Mutual labels:  gis
font-gis
Icon font and SVG for use with GIS and spatial analysis tools
Stars: ✭ 121 (+128.3%)
Mutual labels:  gis
PetroFDS
ThePetronics Food Delivery System(PetroFDS)
Stars: ✭ 48 (-9.43%)
Mutual labels:  platform
30DayMapChallenge
The official website for #30DayMapChallenge, It is a daily mapping/cartography/data visualization challenge aimed at the spatial community. Code for map submissions.
Stars: ✭ 33 (-37.74%)
Mutual labels:  gis
twkb
A small GO parser for the TWKB format
Stars: ✭ 17 (-67.92%)
Mutual labels:  gis
mergin-db-sync
A tool for two-way synchronization between Mergin and a PostGIS database
Stars: ✭ 29 (-45.28%)
Mutual labels:  gis
CityEngine-Twitter
Visualise Twitter activity using a procedurally-generated 3D city model
Stars: ✭ 68 (+28.3%)
Mutual labels:  gis
sentinel-util
A CLI for downloading, processing, and making a mosaic from Sentinel-1, -2 and -3 data
Stars: ✭ 22 (-58.49%)
Mutual labels:  gis
batyr
Microservice for on-demand synchronization of geographical vector datasources to a PostgreSQL/PostGIS database. The service provides an HTTP API for easy integration into other applications.
Stars: ✭ 25 (-52.83%)
Mutual labels:  gis
hermes-protocol
Definition of the Hermes protocol used by the Snips platform
Stars: ✭ 38 (-28.3%)
Mutual labels:  platform
mapalgebra
Efficient, polymorphic Map Algebra in Haskell.
Stars: ✭ 34 (-35.85%)
Mutual labels:  gis
platform
Mapseed is a simple, beautiful way to collect information and tell geographic stories.
Stars: ✭ 81 (+52.83%)
Mutual labels:  gis
importer-exporter
3D City Database client for high-performance import and export of 3D city model data
Stars: ✭ 104 (+96.23%)
Mutual labels:  gis
actlist
📦 Actlist is a utility platform to execute your own action list easily and simply.
Stars: ✭ 85 (+60.38%)
Mutual labels:  platform
hex
An ecosystem delivering practices, philosophy and portability. Powered By Deno and JavaScript.
Stars: ✭ 48 (-9.43%)
Mutual labels:  platform
searchmap
Find places and Draw on Map using Google Maps API
Stars: ✭ 53 (+0%)
Mutual labels:  gis
datacube-explorer
Web-based exploration of Open Data Cube collections
Stars: ✭ 39 (-26.42%)
Mutual labels:  gis
PyPI Package Travis CI Build Status Coveralls Test Coverage Requirements Status

GeoKey

GeoKey is a platform for participatory mapping, that is developed by Extreme Citizen Science research group at University College London.

Install with Docker

Download and install Docker CE for your platform. This will include the docker-compose command used below. (Note that when using Ubuntu, most of these commands need to be run as root or prefixed with sudo).

  1. Pull and extract relevant images, build the GeoKey application container:
docker-compose up --build
  1. In another terminal window migrate the database:
docker-compose exec geokey python manage.py migrate
  1. Run the collectstatic management command:
docker-compose exec geokey python manage.py collectstatic --noinput
  1. Finally run the server:
docker-compose exec geokey python manage.py runserver 0.0.0.0:8000

If everything went well, there should be a GeoKey instance available on your system at http://localhost:9000.

For development purposes, the source code is also mounted as a volume in the geokey container, which means that changes made to the source code on the host machine are reflected in the container.

In order for Grunt to compile the Handlebars templates within the container, in a new terminal window run:

docker-compose exec geokey npm run grunt

Install for development

Updated documentation: The following link will direct you to the updated guide that aims to install GeoKey on a cloud server running on a Ubuntu machine, specifically version 18.04 that will be supported until 2028. This documentation aims to simplify the processes as much as possible to make it suitable for everyone including non-technical people not familiar with Python / Linux environment but keen on running GeoKey on their own cloud servers. https://github.com/ExCiteS/geokey/blob/master/GeoKey_updated_documentation.pdf

For advanced users, please follow below.

GeoKey can be run on Python 2.7 or Python 3 (Geokey 1.8 onwards).

  1. Update your system:
sudo apt-get update && sudo apt-get upgrade
  1. Install PostgreSQL and PostGIS (we follow the official guides):
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt wheezy-pgdg main" >> /etc/apt/sources.list'
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.4-postgis-2.1 postgresql-contrib postgresql-server-dev-9.4

Note that for Ubuntu 16.04, you don't need to add the repo and can install 9.5:

sudo apt-get install postgresql-9.5-postgis-2.2 postgresql-contrib postgresql-server-dev-9.5
  1. Setup all other dependencies:
sudo apt-get install python-pip python-virtualenv python-dev libjpeg-dev libmagickcore-dev libmagickwand-dev imagemagick binutils libproj-dev libav-tools gdal-bin python-gdal
  1. Change ImageMagick permissions for it to be able to write:

    sed -i 's/(<policy domain="coder" rights=)"none" (pattern="PDF" />)/1"read|write"2/g' /etc/ImageMagick-6/policy.xml

For Ubuntu you might also need to install libavcodec-extra-52 or libavcodec-extra-53.

For Ubuntu 18.04 you may have to use the following advice if installing libav-tools doesn't work and you can't find avconv.

Setup database

  1. For simplicity, switch to user postgres:
sudo su - postgres
  1. Install PostGIS in template1 (required for running tests):
psql -d template1 -c 'create extension hstore;'
  1. Log in to the database:
psql
  1. Create the user (replace django with your user):
postgres=# CREATE USER django WITH PASSWORD 'django123';
  1. Make created user a superuser on your database (this is required for tests only and shouldn't be done in production):
postgres=# ALTER ROLE django WITH superuser;
  1. Create the database (replace django with your user and geokey with a desired name for the database):
postgres=# CREATE DATABASE geokey OWNER django;
  1. Log out and connect to the database:
postgres=# \q
psql -d geokey
  1. Install the required extensions:
geokey=# CREATE EXTENSION postgis;
geokey=# CREATE EXTENSION hstore;
  1. Log out of the database and a user:
geokey=# \q
logout

Setup GeoKey

  1. Clone the repository:
git clone https://github.com/ExCiteS/geokey.git
  1. Install the package and development requirements:
cd geokey
pip install -e .
pip install -r requirements.txt
pip install -r requirements-dev.txt

You may need to add sudo before the pip commands, unless you are logged in as root or working within a virtual environment.

  1. Copy the directory local_settings.example to local_settings
cp -r local_settings.example local_settings
  1. Inside the local_settings open settings.py in a text editor and...

Add your database settings:

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'geokey',
        'USER': 'django',
        'PASSWORD': 'xxxxxxxxx',
        'HOST': 'host',  # usually 'localhost'
        'PORT': ''
    }
}

Set the secret key:

SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

Set the STATIC_ROOT directory:

STATIC_ROOT = '/some/path/'
  1. Migrate the database:
python manage.py migrate
  1. Add yourself as a superuser (you can use the same email and password to log into the system later):
python manage.py createsuperuser
  1. Run the collectstatic management command:
python manage.py collectstatic

Run the test server

python manage.py runserver 0.0.0.0:8000

Run tests

python manage.py test

Running tests will remove all uploaded images of contributions from the assets directory. If you require to keep them, please use custom test settings with a --settings flag.

We use open-source technologies

GeoKey was built using some amazing open-source technology. We would like to thank all contributors to these projects:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].