Skip to content

a web system to allow users to easily compose and execute full-stack Long Short Term Memory (LSTM) Recurrent Neural Network (RNN) workflows in web browsers by taking advantage of the online spatial data facilities, high-performance computation platforms, and open-source deep learning libraries.

License

Notifications You must be signed in to change notification settings

andrewmagill/Geoweaver

 
 

Repository files navigation

Build Status License Stars Forks Issues Coverage

2018 ESIP Lab Incubator Project

Geoweaver is a browser-based software allowing users to easily compose and execute full-stack deep learning workflows via taking advantage of online spatial data facilities, high-performance computation platforms, and open-source deep learning libraries. It provides all-in-one capacity including SSH client (e.g., Putty), FTP client, and scientific workflow software.

It can be run from local machines.

GeoWeaver is a community effort. Any contribution is welcome and greatly appreciated!

Geoweaver Online API

Table of Contents

Software Goals

  1. turning large-scale distributed deep network into manageable modernized workflows;

  2. boosting higher utilization ratio of the existing cyberinfrastructures by separating scientists from tedious technical details;

  3. enhancing the frequency and accuracy of classified land cover land use maps for agricultural purposes;

  4. enabling the tracking of provenance by recording the execution logs in structured tables to evaluate the quality of the result maps;

  5. proof the effectiveness of operationally using large-scale distributed deep learning models in classifying Landsat image time series.

Installation

Dependencies

Java 1.8+ (OpenJDK 8 or higher)

!(only for install via docker) Docker 18.09.1+

!(only for install via docker) Docker-compose 1.23.1+

Quick Install

(Recommended)

  • Step 1: Download the latest version of geoweaver.jar

  • Step 2: Run the command:

java -jar geoweaver.jar 

Developer Install

This section is dedicated for developer users who have better background on web technologies and familiar with MySQL, H2, tomcat, docker, and maven. If you are familiar with neither of them, we strongly suggest you use the "Quick Install" way to install Geoweaver.

Linux

This way works for most linux releases, e.g., Ubuntu, CentOS, RedHat, OpenBSD, etc.

  • Step 1: clone the github repo
git clone https://github.com/ESIPFed/Geoweaver.git
  • Step 2: enter the folder and start the install
cd Geoweaver
chmod 755 install-linux.sh
./install-linux.sh
  • Once the script stops, Geoweaver should already be up and running. Enter URL http://127.0.0.1:8070/Geoweaver/web/geoweaver in browser to open it.

  • Optional: To stop Geoweaver, type: install/apache-tomcat-9.0.22/bin/shutdown.sh. To start Geoweaver again, type: install/apache-tomcat-9.0.22/bin/startup.sh

Mac

  • Step 1: clone the github repo
git clone https://github.com/ESIPFed/Geoweaver.git
  • Step 2: enter the folder and start the install
cd Geoweaver
chmod 755 install-mac.sh
./install-mac.sh
  • Once the script stops, the Geoweaver should already be up and running. Enter URL http://127.0.0.1:8070/Geoweaver/web/geoweaver in browser to open it.

  • Optional: To stop Geoweaver, type: install/apache-tomcat-9.0.22/bin/shutdown.sh. To start Geoweaver again, type: install/apache-tomcat-9.0.22/bin/startup.sh

Windows

  • Step 1: clone the github repo
git clone https://github.com/ESIPFed/Geoweaver.git
  • Step 2: enter the folder and start the install
cd Geoweaver
./install-windows.bat
  • Once the script stops, the Geoweaver should already be up and running. Enter URL http://127.0.0.1:8070/Geoweaver/web/geoweaver in browser to open it.

  • Optional: To stop Geoweaver, type: install/apache-tomcat-9.0.22/bin/shutdown.bat. To start Geoweaver again, type: install/apache-tomcat-9.0.22/bin/startup.bat

Docker

We use docker-compose to establish the containers for Geoweaver. As the DockerHub is not very friendly for docker-compose yaml at present, we only suggest manual to start from GitHub repo. It only has three steps.

Install

  • Clone this repo to your machine
git clone https://github.com/ESIPFed/Geoweaver.git
  • Enter the repo and create a new folder target. Download a Geoweaver war package from the release page and save it in the created target folder.
cd Geoweaver && mkdir target && cd target
wget https://github.com/ESIPFed/Geoweaver/releases/download/v0.7.1/Geoweaver.war -O Geoweaver.war
  • Run docker to start rolling. After the command is finished, Geoweaver should be up and running.
cd .. && docker-compose up -d

The address is:

http://your-ip:your-port/Geoweaver/web/geoweaver

Replace the your-ip, your-port with the real domain of your tomcat. For example, localhost:8070.

Notice: Make sure the local services like mysql and tomcat are shut down before starting docker-compose. Otherwise there might be port conflict error on 3306 and 8070. Or you can change the port to some other free ports in the docker-compose.yml.

If you don't have docker or docker-compose installed, these documents will help. docker docker-compose

Shutdown

To stop Geoweaver, type:

docker stop $(docker ps -aq)

Tomcat War

Install

  • Download the latest release war and copy it to the webapps directory of Tomcat (e.g. /usr/local/tomcat). Start Tomcat.
wget https://github.com/ESIPFed/Geoweaver/releases/download/v0.7.1/Geoweaver.war -O Geoweaver.war
cp Geoweaver.war /usr/local/tomcat/webapps/
/usr/local/tomcat/bin/startup.sh
  • After the tomcat is fully started, configure the database connection. The configuration files are WEB-INF/classes/config.properties
nano /usr/local/tomcat/webapps/Geoweaver/WEB-INF/classes/config.properties
nano /usr/local/tomcat/webapps/Geoweaver/WEB-INF/classes/cc_secret.properties

Fill the fields with correct values. (database url, default: jdbc:mysql://localhost:3306/cyberconnector) and WEB-INF/classes/cc_secret.properties (database username and password: database_user=root database_password=xxxxxxxx).

(**Note: the MySQL database must be initiated by the SQL file under the folder Geoweaver/docker/db first. If you are using H2 database, please copy the two files: geoweaver.mv.db and geoweaver.trace.db to your user home directory before you start tomcat. **)

mysql -u root -p < docker/db/gw.sql
  • Enter the following URL into browser address bar to open Geoweaver:
http://your-ip:your-port/Geoweaver/web/geoweaver

Shutdown

To stop Geoweaver, use:

/usr/local/tomcat/bin/shutdown.sh

Cloud VM Template

Install

We provide a ready-to-use cloud template for you to install on mainstream cloud platforms like AWS, Google Cloud, Azure, OpenStack and CloudStack. Please go here to download the template (3.1 Gigabytes). The username and password of the instance would be csiss and password respectively.

To start Geoweaver, go to directory /home/csiss/Geoweaver and execute docker-compose up -d. With no accident, Geoweaver will be up and running.

cd /home/csiss/Geoweaver && docker-compose up -d

Shutdown

To stop Geoweaver, use:

docker stop $(docker ps -aq)

Build from source

Use maven to build. In the command line go to the root folder and execute mvn install. After a success build, the Geoweaver jar package will be under the directory: Geoweaver/target/Geoweaver-<version>.jar.

Demo

A live demo site is available in George Mason University.

Tutorial

Geoweaver Tutorial - A beginner tutorial about what Geoweaver can do and how it works

Citation

If you found Geoweaver helpful in your research, please cite us:

Sun, Ziheng, Liping Di, Annie Burgess, Jason A. Tullis, and Andrew B. Magill. "Geoweaver: Advanced cyberinfrastructure for managing hybrid geoscientific AI workflows." ISPRS International Journal of Geo-Information 9, no. 2 (2020): 119.

Dependencies

This project is impossible without the support of several fantastic open source libraries.

d3.js - BSD 3-Clause

graph-creator - MIT License

bootstrap - MIT License

CodeMirror - MIT License

JQuery Terminal - MIT License

License

MIT

About

a web system to allow users to easily compose and execute full-stack Long Short Term Memory (LSTM) Recurrent Neural Network (RNN) workflows in web browsers by taking advantage of the online spatial data facilities, high-performance computation platforms, and open-source deep learning libraries.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 85.3%
  • Java 11.9%
  • CSS 1.4%
  • HTML 1.2%
  • Shell 0.1%
  • Batchfile 0.1%