Skip to content

Commit

Permalink
add CML action to run the GCBM simulation (#132)
Browse files Browse the repository at this point in the history
* reproduce FLINT.Cloud apis

* changed form data paths

* example sim report using cml

* Update cml-report.yml

* Update cml-report.yml

* Update cml-report.yml

* Update cml-report.yml

* Update cml-report.yml

* Update cml-report.yml

* Update cml-report.yml

* test if cml is setup right

* add cml script

* Update cml-report.yml

* changed file paths to not show local directories

* update cml report

* setup gha script to show summary

* Update cml-report.yml

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* setup GCBM summary

* update cml_report script

* update cml script

* update cml script

* update cml script

* update cml script

* update cml script

* update cml script

* update python script

* Update cml-report.yml

* Update cml-report.yml

* run model summary

* add sim start and end dates

* add action to create new sim

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* run api and get list of saved simulations

* create new sim and check if it works

* add script to get log files in CML action

* add script to get log files in CML action

* fix some paths and get log files in CML action

* test if ci has docker

* test curl on gcbm api

* test curl on gcbm api

* update curl command

* add cli to api

* cli instead of curl to interact with gcbm api

* cli instead of curl to interact with gcbm api

* Managed to retrieve logs from sim run localy

* check if cURL works with api

* check if cURL works with api in actions

* check if cURL works with public ip

* check if it works with webrequest

* check if it works with webrequest

* check if it works with webrequest

* check right ports

* test in port 5000

* test ports

* test ports

* check if simulation runs

* check if simulation runs

* check if simulation runs

* check if simulation runs

* check if sim runs

* check if sim runs

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim run right

* check if sim runs using python script

* check if sim runs using python script

* check if sim runs using python script

* check if sim runs using python script

* check if sim run smoothly

* check if sim runs smoothly

* check if sim runs smoothly

* check if sim runs using a python script

* check if sim runs using moja.cli

* check if sim runs using moja.cli

* check if sim runs using moja.cli no tty

* sim runs but zip file not found

* copy output instead using docker cp instead of /download

* sim runs smoothly using partially gcbm-api and moja.cli and using cml to send a verification comment

* sim runs smoothly using partially gcbm-api and moja.cli and using cml to send a verification comment

* check if sim runs with threading

* check if sim runs with threading

* added CompileResults repo to rest_api_gcbm

* check sim with GCBM.CompileResults repo

* fix typo in cml_report.yml line 104

* add cml comment

* check if annual_summaries.py runs properly

* check if annual_summaries.py runs properly

* compile results runs but cml comment cant display plot

* check if total biomass plot is displayed

* display sim log

* display sim log

* change cml-report to run on push/master and pr/master

* update cml comment

* update cml comment

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update cml comment

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update cml comment

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update cml comment

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update comment

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* added job to upload logs as artifact

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* fix typo in line 103 cml-report.yml

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check if download works

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check correct paths

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check why curl 26 in upload

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* chech verbose cURL

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* upload via python

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* upload via python

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* upload via python

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* upload via python

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* upload via python

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* upload via python

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update cml-report

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* add requests module

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* new upload params check if it runs

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* new upload params check if it runs

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* having issues in dynamic endpoint

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* remove run job on push

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* apply requested changes

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* unzip zDemo_Run and templates before running api

Signed-off-by: radistoubalidis <rtoumpalidis@gmail.com>

* unzip form files before building api

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* add Dockerfile.cml

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update paths in compileresults call

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* test run to see file structure of output

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* test run to see file structure of output

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check to see if compileresults fails

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update paths for compiled output db in annual_summaries.py

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* update cml action to run only when run-simulation label is added

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* see if the label condition if contains(...) works

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* see if the label condition if contains(...) works

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* run action based on pr labeling

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* rename templates.zip to input_tepmlates.zip

* rename templates to template

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* add templates to gitignore

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* check for templates in rest_api_gcbm folder

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Revert "add templates to gitignore"

This reverts commit 4ed4a3e.

* refactor sim name form run4 test-run

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* changes docker build to docker pull in cml-report.yml line 24

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* test changes

* push to old version

* reduce number of threads

* try fixing

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* Test CML Action with linux-demo.zip as configuration

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>

* test dataset tracking action

* remove useless files

* remove more useless files

* after all a new workflow

* label pr workflow

Signed-off-by: radis toubalidis <rtoumpalidis@gmail.com>
Signed-off-by: radistoubalidis <rtoumpalidis@gmail.com>
Co-authored-by: HarshCasper <erbeusgriffincasper@gmail.com>
  • Loading branch information
radistoubalidis and HarshCasper committed Aug 13, 2022
1 parent 38d890f commit c363558
Show file tree
Hide file tree
Showing 5 changed files with 125 additions and 38 deletions.
64 changes: 64 additions & 0 deletions .github/workflows/cml-report.yml
@@ -0,0 +1,64 @@
name: Generate CML Report
on:
pull_request:
types: [ labeled ]
branches:
- master

jobs:
generate_cml_report:
if: ${{ github.event.label.name == ['run-simulation'] }}
runs-on: ubuntu-latest
defaults:
run:
shell: bash
container:
image: ghcr.io/moja-global/rest_api_gcbm:master
ports:
- "8080:8080"
steps:

- name: Checkout repository
uses: actions/checkout@v3

- uses: actions/setup-node@v3
with:
node-version: 16

- name: Run the Simulation
run: |
apt-get update && apt-get install unzip -y
pushd local/rest_api_gcbm/tests/
unzip linux-demo.zip
cd config/
/opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json
popd
cd local/rest_api_gcbm && mkdir GCBM.CompileResults
- name: Checkout the Repository
uses: actions/checkout@v3
with:
repository: moja-global/GCBM.CompileResults
path: local/rest_api_gcbm/GCBM.CompileResults

- name: Compile the Results
run: |
cd local/rest_api_gcbm
python3 GCBM.CompileResults/compileresults.py sqlite:///tests/output/gcbm_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db
- name: Install dependencies
run: pip3 install pandas matplotlib

- name: Setup CML
uses: iterative/setup-cml@v1

- name: Send the report
env:
repo_token: ${{ secrets.GITHUB_TOKEN }}
run: |
cd local/rest_api_gcbm
python3 annual_summaries.py
echo "# GCBM Model" > report.md
echo "## Total Biomass Curve" >> report.md
cml-publish tests/output/total_biomass_mt.png --md >> report.md
cml-send-comment report.md
4 changes: 4 additions & 0 deletions local/rest_api_gcbm/Dockerfile
Expand Up @@ -10,6 +10,10 @@ RUN pip install --no-cache-dir -r requirements.txt
# Adding npm for CML Actions
RUN apt-get update
RUN apt-get install nodejs npm -y
RUN apt-get install -y python3-dev \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python
RUN python --version
RUN node --version
RUN npm --version

Expand Down
19 changes: 19 additions & 0 deletions local/rest_api_gcbm/annual_summaries.py
@@ -0,0 +1,19 @@
import sqlite3
import pandas as pd

conn = sqlite3.connect("tests/output/compiled_simulation_output.db")

query = f"""
SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt
FROM (SELECT DISTINCT year FROM v_age_indicators ORDER BY year) AS years
LEFT JOIN v_pool_indicators i
ON years.year = i.year
WHERE i.indicator = 'Total Biomass'
AND (years.year BETWEEN 2010 AND 2020)
GROUP BY years.year
ORDER BY years.year
"""

df = pd.read_sql_query(query, conn)
ax = df.plot.line("year")
ax.figure.savefig("tests/output/total_biomass_mt.png", dpi=300)
70 changes: 35 additions & 35 deletions local/rest_api_gcbm/local_run.postman_collection
Expand Up @@ -49,177 +49,177 @@
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/variables.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/variables.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/spinup.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/spinup.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/provider_config.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/provider_config.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/pools_cbm.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/pools_cbm.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/modules_output.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/modules_output.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/modules_cbm.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/modules_cbm.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/localdomain.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/localdomain.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/internal_variables.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/internal_variables.json"
},
{
"key": "config_files",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/gcbm_config.cfg"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/gcbm_config.cfg"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/bounding_box.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/bounding_box.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier1_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier1_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier1_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier1_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier2_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier2_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier2_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier2_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2011_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2011_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2011_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2011_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2012_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2012_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2012_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2012_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2013_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2013_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2013_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2013_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2014_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2014_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2014_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2014_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2015_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2015_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2015_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2015_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2016_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2016_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2016_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2016_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2018_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2018_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2018_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2018_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/initial_age_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/initial_age_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/initial_age_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/initial_age_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/mean_annual_temperature_moja.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/mean_annual_temperature_moja.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/mean_annual_temperature_moja.tiff"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/mean_annual_temperature_moja.tiff"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/study_area.json"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/study_area.json"
},
{
"key": "input",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/input_database/gcbm_input.db"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/input_database/gcbm_input.db"
},
{
"key": "db",
"type": "file",
"src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/input_database/gcbm_input.db"
"src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/input_database/gcbm_input.db"
},
{
"key": "",
Expand Down
6 changes: 3 additions & 3 deletions local/rest_api_gcbm/requirements.txt
Expand Up @@ -10,6 +10,6 @@ flask-cors==3.0.10
simplejson==3.17.6
sqlalchemy==1.4.32
psutil==5.9.0
pandas==1.4.2
matplotlib==3.5.2
rasterio
pandas
matplotlib
rasterio

0 comments on commit c363558

Please sign in to comment.