A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

SimCCS Map Tool

Online maptool that provides novel decision-support capabilities for evaluating carbon capture, utilization and storage technologies.
https://github.com/SciGaP/simccs-maptool

Keywords

carbon-capture carbon-emissions carbon-storage ccus mapping-tools

Last synced: over 1 year ago
JSON representation

Acceptance Criteria

Repository metadata

Online maptool that provides novel decision-support capabilities for evaluating carbon capture, utilization and storage technologies (CCUS).

README.md

SimCCS Map Tool

Getting Started

  1. Follow the instructions for installing the
    Airavata Django Portal

  2. With the Django Portal virtual environment activated, clone this repo and
    install it into the portal's virtual environment. Note, the pip install
    command will also run the JS frontend build and will require Node.js and Yarn
    installed (see the Airavata Django Portal installation instructions for more
    details).

    git clone https://github.com/SciGaP/simccs-maptool.git
    cd simccs-maptool
    pip install -e .
    
  3. Start (or restart) the Django Portal server.

  4. Open http://localhost:8000/maptool in your browser.

Django portal configuration

The following settings are relevant for the SimCCS Map Tool. These can be
specified in Django Portal's settings_local.py file.

  • JAVA_HOME - the Java home directory. Defaults to the JAVA_HOME env variable
    if not set.
  • MAPTOOL_SETTINGS - this is a dictionary of Map Tool specific settings:
    • CPLEX_APPLICATION_ID - The Airavata application module id of the Cplex
      application to launch.
    • CPLEX_HOSTNAME - The hostname of the compute resource on which to launch
      Cplex.
    • DATASETS_DIR - Directory of datasets and their basedata (cost network).
    • JAVA_OPTIONS - JVM command line options. Defaults to -Xmx4g. May be a
      list or tuple to pass multiple options.
    • MAX_CONCURRENT_JAVA_CALLS - maximum concurrent calls into Java code
      allowed across all HTTP requests. Default to 1.

Example of custom settings in a settings_local.py file:

JAVA_HOME = "/usr/java/default"
MAPTOOL_SETTINGS = {
    "CPLEX_APPLICATION_ID": "Cplex_a7eaf483-ab92-4441-baeb-2f302ccb2919",
    "DATASETS_DIR": "/data/simccs-datasets"
}

Creating DB migrations

django-admin makemigrations --pythonpath . --settings simccs_maptool.tests.settings simccs_maptool

Building the Vue.js frontend code

cd frontend
yarn install
yarn run build

You can also instead run yarn run serve to start a Webpack dev server with hot
reloading. See
https://apache-airavata-django-portal.readthedocs.io/en/latest/dev/developing_frontend/
for more details.

Pyjnius - simccs.jar notes

Installing dependencies

In your virtual environment install the following:

pip install cython
pip install pyjnius

Building the SimCCS jar

Building simccs GitHub repo code

Note: No longer need to build. Just grab the SimCCS.jar from
https://github.com/simccs/SimCCS/tree/master/store

Clone https://github.com/simccs/SimCCS

Then copy store/SimCCS.jar to simccs_maptool/simccs/lib/SimCCS.jar.

MacOS notes

I ran into issues and followed the suggestions here:
https://github.com/joeferner/node-java/issues/90#issuecomment-45613235

Edited /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Info.plist
and added JNI to JVMCapabilities:

...
<key>JVMCapabilities</key>
<array>
        <string>CommandLine</string>
        <string>JNI</string>
</array>
...

Testing Pyjnius

You should be able to run the following with your virtual environment activated:

import jnius_config
import os

jnius_config.set_classpath(
    os.path.join(os.getcwd(), "simccs_maptool", "simccs", "lib", "simccs-app-1.0-jar-with-dependencies.jar"),
)
from jnius import autoclass

basepath = os.path.join(os.getcwd(), "simccs_maptool", "simccs", "Datasets")
dataset = "SoutheastUS"
scenario = "scenario1"
DataStorer = autoclass("simccs.dataStore.DataStorer")
data = DataStorer(basepath, dataset, scenario)
Solver = autoclass("simccs.solver.Solver")
solver = Solver(data)
data.setSolver(solver)
candidate_graph = data.generateCandidateGraph()

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: over 1 year ago

Total Commits: 737
Total Committers: 7
Avg Commits per committer: 105.286
Development Distribution Score (DDS): 0.408

Commits in past year: 6
Committers in past year: 2
Avg Commits per committer in past year: 3.0
Development Distribution Score (DDS) in past year: 0.167

Name Email Commits
webgisdeveloper w****8@i****u 436
Marcus Christie m****t@i****u 154
Marcus Christie m****e@a****g 120
webgisdeveloper w****r 18
gowthamkannan g****p@i****u 7
dependabot[bot] 4****] 1
Marcus Christie m****e@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: over 1 year ago

Total issues: 70
Total pull requests: 32
Average time to close issues: 6 months
Average time to close pull requests: 2 months
Total issue authors: 4
Total pull request authors: 3
Average comments per issue: 0.86
Average comments per pull request: 0.22
Merged pull request: 7
Bot issues: 0
Bot pull requests: 26

Past year issues: 2
Past year pull requests: 4
Past year average time to close issues: N/A
Past year average time to close pull requests: 1 minute
Past year issue authors: 2
Past year pull request authors: 2
Past year average comments per issue: 1.5
Past year average comments per pull request: 0.0
Past year merged pull request: 3
Past year bot issues: 0
Past year bot pull requests: 1

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/SciGaP/simccs-maptool

Top Issue Authors

  • webgisdeveloper (35)
  • machristie (31)
  • akbranam (3)
  • rmkammer (1)

Top Pull Request Authors

  • dependabot[bot] (26)
  • machristie (4)
  • webgisdeveloper (2)

Top Issue Labels

  • enhancement (32)
  • bug (16)
  • Fixed (11)
  • feature (6)
  • wontfix (3)
  • question (2)
  • documentation (1)
  • help wanted (1)

Top Pull Request Labels

  • dependencies (52)

Dependencies

frontend/package.json npm
  • @vue/cli-plugin-babel ~4.5.0 development
  • @vue/cli-plugin-eslint ~4.5.0 development
  • @vue/cli-plugin-router ~4.5.0 development
  • @vue/cli-service ~4.5.0 development
  • babel-eslint ^10.1.0 development
  • eslint ^6.7.2 development
  • eslint-plugin-vue ^6.2.2 development
  • node-sass ^6 development
  • prettier ^2.2.1 development
  • sass-loader ^10 development
  • vue-template-compiler ^2.6.11 development
  • webpack-bundle-tracker ^0.4.2-beta development
  • bootstrap ^4.3.1
  • bootstrap-vue ^2.19.0
  • core-js ^3.6.5
  • leaflet ^1.7.1
  • leaflet-svg-shape-markers ^1.3.0
  • vue ^2.6.11
  • vue-router ^3.2.0
  • vuelidate ^0.7.6
frontend/yarn.lock npm
  • 1212 dependencies
setup.py pypi
  • Pandas *
  • airavata-django-portal-sdk *
  • cython *
  • django >=1.11.16
  • djangorestframework *
  • geopandas *
  • pandas <1.2
  • pyjnius *
  • pyshp *

Score: 5.953243334287785