{"id":13297039,"url":"https://github.com/GusEllerm/GIS_IndexGen","last_synced_at":"2025-03-10T09:33:22.955Z","repository":{"id":164231902,"uuid":"457914839","full_name":"GusEllerm/GIS_IndexGen","owner":"GusEllerm","description":"Prototype implementation of LivePaper with GIS indices as the subject. ","archived":false,"fork":false,"pushed_at":"2022-06-29T00:00:32.000Z","size":97454,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-01-29T21:14:49.712Z","etag":null,"topics":["cwl","cwl-workflow","gis","livedata","livepaper","remote-sensing"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GusEllerm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-02-10T19:15:11.000Z","updated_at":"2022-10-10T18:26:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"40b0d8a5-f841-4106-bfcc-4b48c74e318c","html_url":"https://github.com/GusEllerm/GIS_IndexGen","commit_stats":{"total_commits":54,"total_committers":1,"mean_commits":54.0,"dds":0.0,"last_synced_commit":"5f13cbdb4e95d8ed8ca9c9e01902bdfdd48b559f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GusEllerm%2FGIS_IndexGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GusEllerm%2FGIS_IndexGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GusEllerm%2FGIS_IndexGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GusEllerm%2FGIS_IndexGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GusEllerm","download_url":"https://codeload.github.com/GusEllerm/GIS_IndexGen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221164354,"owners_count":16767314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cwl","cwl-workflow","gis","livedata","livepaper","remote-sensing"],"created_at":"2024-07-29T17:21:21.272Z","updated_at":"2024-10-23T06:31:09.514Z","avatar_url":"https://github.com/GusEllerm.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project topology\n\nFor this example CWL works as the computational engine, running the workflow and generating the tiff outputs. \nNodejs is used to publish these results as a webpage. \nCWL_output contains workflow outputs, CWL contains the cwl code to execute workflows and the python scripts that actually do the computation. \n\nTo run the webserver install the npm dependencies (`npm install`) and run npm start from top directory. Current webserver is listening on port 3000.\n\n# Running examples\n\nTo run examples you will need to install the dependencies in requirements.txt in your local env. \ntestCL.txt contains example executions of the index workflows. Use these, or your own data to produce outputs. \n\nUsing pipenv is encouraged as it is easy to install all required dependencies from the Pipfile. \n\nGraphviz will need to be installed. \n\n# TODO\n\nCurrently, the webserver is not ready for deployment however the CWL is reasonably complete. \n\n# Example index matrix calculations\n\nAssuming you are using pipenv, you can enter the venv using `pipenv shell`\nCurrently, only four indexes are implemented:\n- NDVI\n- RECI\n- NDRE\n- GNDVI\n\n## Executing python scripts without CWL wrapper\n### index_def.py script -- generates both the pickle files from the data source (band matrix's) and the index pickle file (index matrix)\n\n`python3 CWL/Workflows/Modules/Scripts/index_def.py -i [name of index e.g. NDVI] -b [list of input bands space seperated]`\n\ne.g. \n\n`python3 CWL/Workflows/Modules/Scripts/index_def.py -i NDVI -b ~/Projects/LivePaper-prototype/CWL/Workflow_inputs/Data/S2A_MSIL2A_20220207T222541_N0400_R029_T59GMK_20220208T001202.SAFE/GRANULE/L2A_T59GMK_A034632_20220207T222543/IMG_DATA/R20m/T59GMK_20220207T222541_B04_20m.jp2 ~/Projects/LivePaper-prototype/CWL/Workflow_inputs/Data/S2A_MSIL2A_20220207T222541_N0400_R029_T59GMK_20220208T001202.SAFE/GRANULE/L2A_T59GMK_A034632_20220207T222543/IMG_DATA/R20m/T59GMK_20220207T222541_B8A_20m.jp2`\n\n### tiff_gen.py script -- generates a tiff image from an index matrix\n\n`python3 CWL/Workflows/Modules/Scripts/tiff_gen.py -i [index matrix] -c [color map]`\n\ne.g.\n\n`python3 CWL/WOrkflows/Modules/Scripts/tiff_gen.py -i ~/Projects/LivePaper-prototype/T59GMK_20220207T222541_NDVI_20m.pickle -c RdYlGn`\n\nA list of available colors can be found [here] (https://matplotlib.org/stable/tutorials/colors/colormaps.html)\n\n## Executing workflows with CWL wrappers\n\nAssuming you have a reference cwl-runner installed (included within dependencies) you should be able to access cwl-runner from your venv. \n\n### Running single Modules\n\nThe CWL is structured such that every workflow is built from two modules:\n- index_def.cwl\n- tiff_gen.cwl\n\nThese modules can be run independently, or as a workflow. \n\nTo run the entire workflow:\n\n`cwl-runner CWL/Workflows/multi_workflow.cwl CWL/Workflow_inputs/multi_workflow.yaml`\n\nThis will produce a tiff image for all four index's, as well as versions for each resolution possible (r10m, r20m)\n\n\n# Notes\n\nAssuming the issue of identity is solved by the researcher knowing what artefacts are generated by their workflow. \nFor this example workflow seven artefacts are assumed to be generated on workflow completion. \n- GNDVI 10m tiff\n- GNDVI 20m tiff\n- NDRE 20m tiff\n- NDVI 10m tiff\n- NDVI 20m tiff\n- RECI 10m tiff\n- RECI 20m tiff\n\nSupplimentary data is provided on piecemeal processing of each tiff. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGusEllerm%2FGIS_IndexGen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGusEllerm%2FGIS_IndexGen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGusEllerm%2FGIS_IndexGen/lists"}