Giter Site home page Giter Site logo

landscapes's Introduction

Landscape Modelling Tool

The prototype version can be accessed at https://landscapes.wearepal.ai/

Deployment

Requirements

You will need a server with:

  • Docker, running in swarm mode
  • At least 2GB of RAM
  • A domain name that resolves to the server's IPv4 and/or IPv6 address
  • TCP ports 80 and 443 open

Instructions

  • Clone this git repository onto the server, and cd into it
  • Run bin/deploy
    • The first time you deploy the app, you will be prompted for configuration details
  • After a minute or two, the app should come online
  • Visit the web app at its configured address, and create a user account from the menu in the top-right of the page
  • To shut down the app, run docker stack rm landscapes

Customisation points

  • The app uses the Caddy web server: a Caddyfile is automatically generated by the deploy script and stored in a docker config named landscapes_caddyfile
    • To reconfigure your domain, shut down the app, run docker config rm landscapes_caddyfile, and then run the deploy script again
    • Alternatively, you can provide your own Caddyfile using docker config create landscapes_caddyfile /path/to/your/Caddyfile (see Caddyfile for a template)

landscapes's People

Contributors

dependabot[bot] avatar olliethomas avatar paulthatjazz avatar robinjam avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

olliethomas

landscapes's Issues

[HOLD] Add a layer type for land-use data taken from OpenStreetMap

Or maybe a different data source for land use classification

Simplest possible implementation:

Add a new button to the top of the overlays menu in the admin tools to create an overlay taken from OSM data

The user is presented with a list of checkboxes for all the different labels OSM provides, and they select which labels they're interested in

The tool produces an overlay containing all of the polygons from OSM tagged with any of the labels the user selected, scoped to the region's extent

Move from Docker Swarm to Docker Compose

Currently we use docker in swarm mode but with a single node in the swarm. The reason for this is to use secrets. This feature is now available in vanilla docker compose. This task is to switch to docker compose so that the app is a little bit simpler.

Investigate using BSON instead of JSON for saved datasets

Did not make the release of: Saving datasets
DONE ๐ŸŽ‰
Datasets are currently saved as a JSON format, (around 80MB per), during tests BSON format achieved around 10MB. I would like to eventually implement this but it would require finding a suitable library that can deal with float32array (seems to be a complicated data format to serialise without losing accuracy) and support backwards compability (or update all currently saved models on deploy).

Story Map (style)

It would be good to be able to add annotations to the map. The initial version would be to be able to add points on the map and associate a str with the point.
Another possible direction would be to add this kind of annotation to an existing layer.
In the future, the annotation type may include imagery, web pages, pdfs etc.

Investigate adding OS Roads data to the app

OS Data Hub

  • Is it likely to be useful to us?
  • What is the format of the data?
  • What area and resolution does it cover?
  • Can we easily get access?
  • Is it encumbered by any legalities?
  • What type of data layer would it be in the map view? (categorical/boolean/numeric/polygonal)
  • Would we need to make changes to the map view to support this data? i.e. adding new layer settings or visualisation options etc.

[ON HOLD] Integrate tile conversion tool into web app

QGIS already has this functionality

  • Users can upload zip files with georeferenced images in them: a new "MapTileSource" model is created to hold the metadata for these images
  • Determine the bounds of the region from its sources, and enqueue map tile creation jobs appropriately
  • Map tile creation jobs pull the appropriate source image(s) for the current tile and render the tile, replacing the existing tile if it exists
  • Add a progress view

Rework the invitation system

  • If I invite a user who does not have an account, they receive an invitation to sign up
  • If I invite a user who does have an account, they must accept the invitation before they are added to the team

Implement "evaluate expression" node type in old modelling tool

We want a new node type that allows the user to choose from a predefined list of expressions (e.g. a^2 + 3 * b - c) from a dropdown menu.

First we should find a suitable Javascript library that can parse & evaluate expressions.

The node should automatically have 1 numeric input for each variable (a, b, c in the example above), and 1 numeric output.

When the model is run, the node should compute the value of the expression for each tile.

Investigate how to implement annotation tool into new model view

This is no longer about implementing this, but working out how on earth one would go about implementing this. The deliverable is some GH issues that if completed would deliver this.

The old annotation tool (Paintbrush) https://github.com/wearepal/landscapes/blob/main/app/javascript/controllers/labelling_controller.js

This needs to be available in the new system. Currently written in Stimulus, it will require rewriting into React.

Will update this later with potential options.

There should probably be a difference between adding new layers (annotations) and modifying existing layers (what-if)

Need to have the the projects page as the landing page temporarily for all members of the Wakehurst team

This is a suggested temporary but fast fix for dealing with the fact that the site at the moment is a mess of pages from the old and new versions etc. We definitely should not be wasting any time right now sorting that out - a suggested temporary fix is that we direct to the following landing page: https://landscapes.wearepal.ai/teams/4/projects

This can perhaps just be done manually by telling everyone to use that as the landing page for now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.