Giter Site home page Giter Site logo

esipfed / geoweaver Goto Github PK

View Code? Open in Web Editor NEW
76.0 9.0 41.0 156.06 MB

boost data pipeline's tangibility, enhance research productivity, reduce work anxiety

Home Page: https://geoweaver.dev

License: MIT License

HTML 0.51% CSS 0.92% JavaScript 95.53% Java 2.96% Dockerfile 0.01% Shell 0.05% Batchfile 0.01% Python 0.01% NSIS 0.01%
esip-lab ai earth-science workflow workflow-engine workflow-management workflow-tool pipeline pipeline-framework scientific-computing

geoweaver's Introduction

example workflow License Stars Forks Issues Coverage PyPi Minimum Java Version Geoweaver Docs

logo

Pygeoweaver (Python Bindings): https://github.com/ESIPFed/pygeoweaver

Geoweaver is an in-browser software allowing users to easily compose and execute full-stack data processing 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 covering server management, code repository, workflow orchestration software, and history recorder.

It can be run from both local and remote (distributed) machines.

Why choose Geoweaver?

  1. Safely Store all your progress along the way.
  2. Stay organised and productive through out your years-long research
  3. Seamlessly connect to external servers with SSH.
  4. In-Built Web UI with full support for Python.

For further insights into Geoweaver, please explore the website at https://geoweaver.dev. GeoWeaver is a community effort. Any contribution is welcome and greatly appreciated!

Features

  1. Host Management:
  • Register machines via SSH as hosts for running processes.
  • Add Jupyter Servers as host resources for interaction and workflow editing.
  1. Process Variety:
  • Add various types of processes, such as bash scripts for data downloading.
  1. Jupyter Notebook Integration:
  • Upload or import Jupyter notebooks.
  • Intercept websocket traffic to save notebook versions, enabling easy revision history access.
  1. Process History and Logging:
  • Detailed history of every process run, including logs and outputs, is stored.
  1. Workflow Management:
  • Link processes to create workflows for parallel or sequential execution across different resources.
  • All aspects of workflow management are centralized within GeoWeaver.
  1. Boosts Data Pipeline's Tangibility:
  • Geoweaver provides an intuitive, interactive interface for visualizing data workflows, making it easier for users to understand and manage complex data pipelines.
  • This clear visualization helps users to see the connections and dependencies between different components of their workflows.
  1. Enhances Research Productivity and Reduces Work Anxiety:
  • Geoweaver has automated scheduling and execution of tasks, researchers can set up their workflows to run at specified times or conditions without manual intervention.
  • This automation reduces the burden of monitoring and manual execution, allowing researchers to focus on analysis and innovation.

Geoweaver is a powerful tool for geospatial data processing, offering a range of features and capabilities. This guide will walk you through the steps to install Geoweaver on your system.

Prerequisites

Before you begin, ensure that you have the following dependencies installed:

  • Java 1.8 or higher (OpenJDK 8 or higher)
  • Docker (required only for the Docker installation method)

Demo

A live demo site is available.

Documentation

Learn more about Geoweaver in its official documentation at https://esipfed.github.io/Geoweaver/docs/install.html

Creating a New Release

For detailed steps on how to create a new release in Geoweaver, please refer to the release instructions.

PyGeoWeaver is a Python package that provides a convenient and user-friendly interface to interact with GeoWeaver, a powerful geospatial data processing application written in Java. With PyGeoWeaver, Jupyter notebook and JupyterLab users can seamlessly integrate and utilize the capabilities of GeoWeaver within their Python workflows.

Please do visit the PyGeoWeaver GitHub repository.

Contributors

Thanks to our many contributors!

Contributors

Geoweaver History

v0.6.7 - v1.0.0 (2018 - 2023)

Key features included:

  • Made GitHub zip importable and added .wci.yml.
  • Introduced a process stop button, organized the SSH folder, and enabled shell commands to call Python processes.
  • Added buffer size control and exit code usage for process status.
  • Fixed numerous issues on remote hosts.
  • Included new features such as hovering tips and code comparison.
  • Added process history and status.
  • Added code search function.
  • Enabled run button in side panel.
  • Allows reset password from terminal.

v1.0.1 - v1.2.8 (2023 - 2024)

After incorporating feedback from the user community, the Geoweaver team released new versions. This major update focused on performance improvements and added several highly requested features:

  • Log output is real time and web socket channels are untangled.
  • Made the local logging real time.
  • Created a macOS App for Geoweaver.
  • Ability to Restore workflow.
  • Run maven tests on github actions.

These versions solidified Geoweaver's position as a powerful open-source GIS solution and attracted interest from various industries and research institutions.

v1.3.0 - v1.6.1 (2024)

This version focuses on updating features and bug fixing:

  • Fixed the chart visibility issue and table actions in side panel.
  • Opens dock at bottom by default.
  • Updated README.md by including latest features and modern style.
  • Navigation fix for process tab and workflow tab in Guide page.
  • Added filtering skipped process functionality.
  • Responsive Design for lower resultion devices such as ipad / tablets.
  • Support for MySQL and PostgreSQL - Production grade DB.
  • Autosaves code on Run.
  • Added support for Docker. The Geoweaver Docker image can be found here(https://hub.docker.com/repository/docker/geoweaver/geoweaver/general).

For more details, you can check the Geoweaver Releases Page.

Citation

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

Sun, Z. et al., "Geoweaver: Advanced cyberinfrastructure for managing hybrid geoscientific AI workflows." ISPRS International Journal of Geo-Information 9, no. 2 (2020): 119.

Existing Projects

Sun, Ziheng, Nicoleta C. Cristea, Kehan Yang, Ahmed Alnuaim, Lakshmi Chetana Gomaram Bikshapathireddy, Aji John, Justin Pflug et al. "Making machine learning-based snow water equivalent forecasting research productive and reusable by Geoweaver." In AGU fall meeting abstracts, vol. 2022, pp. IN23A-04. 2022.

Sun, Ziheng, and Nicoleta Cristea. "Geoweaver for Automating ML-based High Resolution Snow Mapping Workflow." In AGU Fall Meeting Abstracts, vol. 2021, pp. IN11C-07. 2021.

Sun, Ziheng, Liping Di, Jason Tullis, Annie Bryant Burgess, and Andrew Magill. "Geoweaver: Connecting Dots for Artificial Intelligence in Geoscience." In AGU Fall Meeting Abstracts, vol. 2020, pp. IN011-02. 2020.

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.

Sun, Ziheng, Liping Di, Jason Tullis, Annie Bryant Burgess, and Andrew Magill. "Geoweaver: Connecting Dots for Artificial Intelligence in Geoscience." In AGU Fall Meeting Abstracts, vol. 2020, pp. IN011-02. 2020.

License

The MIT License (MIT)

Copyright (c) 2015 Chris Kibble

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

geoweaver's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoweaver's Issues

Cannot download files without suffix

In the file browser function of SSH server, people cannot download files without suffix.

How to reproduce it?

  1. Choose one host under "SSH Server" list.
  2. Click "Browse File Hierarchy"
  3. Enter password in the popup dialog
  4. In the file hierarchy, find a file without suffix, such as XYZ
  5. Click the file name. The downloading won't start.

Screenshot

image

Enable the SSH console

SSH console is important for having real-time instant control over the distributed resources.

Increase z level for modal windows

I think the desired behavior would be for all modals to overlay on top of non-modal UI elements, please increase z level to bring all modals to the front.

workflow "ends too quickly"

When running a workflow, Geoweaver provides the following messages in quick succession:

00:00:01 connected
00:00:01 It ends too quickly. Go to history to check the logs out.
00:00:01 disconnected

However, the workflow executes correctly on the remote server.

Create a TOC

TOC is very important when the document is too long.

XSRF cookie does not match POST argument

When trying to login in a jupyter at the first time, the login page will return this message.

Simple solution is clearing all the browser cache and trying to login again.

Better solution is required.

cannot upload jupyter notebook

When creating a new process, UI elements allowing uploading or importing of Jupyter Notebooks are not present.

(This was fixed with Ziheng's PR #58, just adding the issue for the record. Please close.)

Fail to install on Lubuntu linux

The following error pops up:

org.h2.jdbc.JdbcSQLNonTransientException: IO Exception: "java.net.UnknownHostException: ggs681-VBox: ggs681-VBox: Name or service not known" [90028-199] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) ~[h2-1.4.199.jar!/:na] at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) ~[h2-1.4.199.jar!/:na]

issue in windows installation script for windows quick install

the windows installation script employs the use of Expand-Archive which contains extraction path and Destination Path both of which could be encapsulated within Quotation marks if either of the string contains space in between folder name, gives out parameter binding exception error which could be solved by above said method.

C:/Users/test cap/ would give out error which can be solved by
"C:/Users/test cap/" binding it in between quotation marks

H2 database empty

H2 database seems to be empty after Linux quick install.

Database files are moved to ~/ by install script. Can connect only using the default H2 credentials:

username: sa
password: [blank]

(username: geoweaver, password: geoweaver does not work)

After connecting, no tables exist.

I am new to Java, H2, etc., so this may be user error.

Thank you.

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.