unige-geohealth / accessmod

accessmod 5 : anisotropic accessibility analysis.
GNU Lesser General Public License v3.0
40 stars 14 forks source link

AccessMod 5

Summary

This is the main repository of AccessMod 5.

AccessMod 5 is a tool to analyze geographical accessibility to or from given locations, using anisotropic movements and multimodal transport processes (e.g. walk, bicycles, motorized vehicles). This package may help to analyze catchments of peoples who can reach a central point in a given time and transport model or determine where new public services should be scaled up in priority.

This product is developed by the GeoHealth group at the University of Geneva, in collaboration with the World Health Organization and MORU/Health GeoLab Group (Manila, Philippines).

AccessMod 5 : Interactive Map
AccessMod user interface, interactive map. Visualization of generated travel time layer and a set of facilities.

User manual

Download the latest version of the user manual in the Download section of the Accessmod website : accessmod.org.

Or Access the online version of the user manual : accessmod online user manual

Development

# Launch AccessMod stack 
# with app files bind mounted -> /app in docker-compose.yml 
$ docker compose up

# Check if the app server is working:  http://localhost:3080/status
# Check if the agent server is working:  http://localhost:5080/status

# --------- app dev session 
$ docker compose exec am5_dev R
> source('run.r')

# --------- app dev non-interactive session  
$ docker compose exec am5_dev Rscript --vanilla run.r
# Debbuging http.r in a secondary session :
# 1) Comment the source(http.r) line in run.r 
# 2) docker compose exec am5_dev R 
# 3) source('http.r')

# ---------- Replay analysis (dev)

# Launch a development session for the app
$ docker compose exec am5_dev R
> source('global.R')
> amAnalysisReplayExec("<path to config>.json")
# exemple in a dev session
> amAnalysisReplayExec("/data/dbgrass/demo/demo/accessmodConfigs/lAnalysisParameters__425.json")

# ---------- BUILD IMAGES
# Build base images
cd docker
./build.sh

# ---------- Github actions testing (not fully implemented)
act --secret-file .secrets --remote-name github --container-architecture linux/amd64

# ---------- BASIC END-TO-END TESTS 
# Default script 
$ npm run test
# - or - direct command with docker compose 
$ docker compose exec am5_dev Rscript tests/start.R 
# - or - from an interactive session 
$ docker compose exec am5_dev R
> source('tests/start.R') 

Branches

Versioning

To create a version, use npm run version from the staging or release branches. This command helps in selecting the version and commits it.

Expected Workflow

  1. Integrate a feature in a dedicated branch.
  2. Test the feature.
  3. Merge into the staging branch.
  4. Merge into the release branch (optional).
  5. Create a version: Select the correct semver value; it will push to the selected remote.
    • If on the release branch: All assets will be built.
    • If on the staging branch: Only the Docker image will be built.

Hot Fixes

In case of a hot fix, pushing to the staging or release branches manually will trigger the corresponding actions and overwrite the built version.

Electron

cd electron
yarn start 
# yarn start:debug for an interactive session, with external debugger.

Issues

The bugs and new functionality request should be reported here : AccessMod 5 issues