/DanesfieldApp

DanesfieldApp is web based application, for Danesfield Applications running at the back-end. Using for 3D Reconstruction from satellite imagery.

Primary LanguagePythonApache License 2.0Apache-2.0

Danesfield App

The Danesfield App is a web application for running the Danesfield algorithms and visualizing results. Danesfield addresses the algorithmic challenges of the IARPA CORE3D program by reconstructing semantically meaningful 3D models of buildings and other man-made structures from satellite imagery.

Video demo

Server

Requirements

Setup

  1. Update base of the miniconda environment
conda upgrade --all
  1. Create, activate new danesfield virtual environment
chmod +x conda/install.sh && conda/install.sh
  1. Pulling Danesfield docker image from Docker Hub. This image is being maintained by @shiroinekotfs
docker pull shiroinekotfs/danesfield:linux-amd64
  1. Install girder and its dependencies
pip install -e server
  1. (Optional) You can edit the logon and password of admin in server/init_girder.py
11 ADMIN_USER = os.getenv("GIRDER_ADMIN_USER", "admin") # Logon is admin
12 ADMIN_PASS = os.getenv("GIRDER_ADMIN_PASS", "1234") # Password is 1234

Running dependent services/applicatons

Girder requires that MongoDB and RabbitMQ are running. If you've installed docker-compose, this can be done easily:

docker-compose up -d

You can stop by using this command

docker-compose stop

Running the application/services

Run the following commands separately on the machine you wish to host the application on (within the conda environment):

girder serve --host 0.0.0.0 \
python -m girder_worker -l info --concurrency 4

Configuration

Models used:

  1. UNet Semantic Segmentation
  2. Building Segmentation
  3. Material Classification
  4. Roof Geon Extraction
  5. Run Metrics

Upload all models to the models folder within the core3d collection, creating it if it doesn't exist.

Client Setup

Steps

  1. Install @vue/cli on global
npm install -g @vue/cli
  1. Create girder assetstore

  2. Enable danesfield-server plugin

  3. Copy content from .env file and create .env.local and update the content properly

  4. Update and run the server

npm install
npm run serve

Production deployment with Girder

npm run build
cp client/dist ./girder/clients/web/static/core3d