{"id":192241,"name":"Infrastructure Risk Visualisation Tool","description":"Aims to support climate adaptation decision-making by identifying spatial vulnerabilities and risks under current and future climate scenarios.","url":"https://github.com/nismod/infra-risk-vis","last_synced_at":"2026-04-13T17:30:21.619Z","repository":{"id":39860937,"uuid":"299658957","full_name":"nismod/infra-risk-vis","owner":"nismod","description":"Risk analysis visualisation tool","archived":false,"fork":false,"pushed_at":"2026-02-13T10:35:47.000Z","size":67488,"stargazers_count":13,"open_issues_count":25,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-24T01:36:02.427Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://global.infrastructureresilience.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nismod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-09-29T15:28:13.000Z","updated_at":"2026-03-15T13:15:26.000Z","dependencies_parsed_at":"2024-01-17T05:24:59.219Z","dependency_job_id":"fc36c8e0-18b0-4ba2-8a41-6ab06fa969dc","html_url":"https://github.com/nismod/infra-risk-vis","commit_stats":{"total_commits":1273,"total_committers":15,"mean_commits":84.86666666666666,"dds":0.6747839748625295,"last_synced_commit":"4f4785b3e3e780b19b3298ba9a931efb74cf38b2"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/nismod/infra-risk-vis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nismod","download_url":"https://codeload.github.com/nismod/infra-risk-vis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30917671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-25T07:55:14.202Z","status":"ssl_error","status_checked_at":"2026-03-25T07:55:10.924Z","response_time":80,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"}},"owner":{"login":"nismod","name":"National Infrastructure Systems Model","uuid":"21081508","kind":"organization","description":"","email":null,"website":"www.itrc.org.uk","location":"United Kingdom","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/21081508?v=4","repositories_count":30,"last_synced_at":"2023-02-28T18:04:50.433Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/nismod","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-11T19:45:27.922Z","updated_at":"2023-02-28T18:04:50.441Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nismod","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nismod/repositories"},"packages":[{"id":11733287,"name":"github.com/nismod/infra-risk-vis","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/nismod/infra-risk-vis","keywords_array":[],"namespace":null,"versions_count":7,"first_release_published_at":"2021-04-20T14:22:02.000Z","latest_release_published_at":"2025-03-11T12:17:18.000Z","latest_release_number":"v0.4.4","last_synced_at":"2026-03-31T11:01:19.388Z","created_at":"2025-06-05T11:15:12.532Z","updated_at":"2026-03-31T11:01:19.388Z","registry_url":"https://pkg.go.dev/github.com/nismod/infra-risk-vis","install_command":"go get github.com/nismod/infra-risk-vis","documentation_url":"https://pkg.go.dev/github.com/nismod/infra-risk-vis#section-documentation","metadata":{},"repo_metadata":{"id":39860937,"uuid":"299658957","full_name":"nismod/infra-risk-vis","owner":"nismod","description":"Risk analysis visualisation tool","archived":false,"fork":false,"pushed_at":"2025-10-24T14:53:38.000Z","size":67438,"stargazers_count":12,"open_issues_count":25,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-29T08:12:40.690Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://global.infrastructureresilience.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nismod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-29T15:28:13.000Z","updated_at":"2025-10-24T14:53:10.000Z","dependencies_parsed_at":"2024-01-17T05:24:59.219Z","dependency_job_id":"fc36c8e0-18b0-4ba2-8a41-6ab06fa969dc","html_url":"https://github.com/nismod/infra-risk-vis","commit_stats":{"total_commits":1273,"total_committers":15,"mean_commits":84.86666666666666,"dds":0.6747839748625295,"last_synced_commit":"4f4785b3e3e780b19b3298ba9a931efb74cf38b2"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/nismod/infra-risk-vis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nismod","download_url":"https://codeload.github.com/nismod/infra-risk-vis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281625205,"owners_count":26533340,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"},"owner_record":{"login":"nismod","name":"National Infrastructure Systems Model","uuid":"21081508","kind":"organization","description":"","email":null,"website":"www.itrc.org.uk","location":"United Kingdom","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/21081508?v=4","repositories_count":30,"last_synced_at":"2023-02-28T18:04:50.433Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/nismod","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-11T19:45:27.922Z","updated_at":"2023-02-28T18:04:50.441Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nismod","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nismod/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-10-29T13:03:23.386Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/nismod/infra-risk-vis","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/nismod/infra-risk-vis","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/nismod/infra-risk-vis","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/nismod/infra-risk-vis/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-26T12:47:05.640Z","issues_count":79,"pull_requests_count":111,"avg_time_to_close_issue":16610565.892857144,"avg_time_to_close_pull_request":412887.85046728974,"issues_closed_count":56,"pull_requests_closed_count":107,"pull_request_authors_count":6,"issue_authors_count":4,"avg_comments_per_issue":0.6582278481012658,"avg_comments_per_pull_request":0.18018018018018017,"merged_pull_requests_count":103,"bot_issues_count":0,"bot_pull_requests_count":2,"past_year_issues_count":9,"past_year_pull_requests_count":14,"past_year_avg_time_to_close_issue":5403070.0,"past_year_avg_time_to_close_pull_request":1746500.1,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":10,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.2857142857142857,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":10,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/issues","maintainers":[{"login":"tomalrussell","count":71,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tomalrussell"}],"active_maintainers":[{"login":"tomalrussell","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tomalrussell"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fnismod%2Finfra-risk-vis/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fnismod%2Finfra-risk-vis/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fnismod%2Finfra-risk-vis/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fnismod%2Finfra-risk-vis/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fnismod%2Finfra-risk-vis/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2084805,"maintainers_count":0,"namespaces_count":778337,"keywords_count":0,"github":"golang","metadata":{"funded_packages_count":53388},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-01T06:07:14.682Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":1548553,"full_name":"nismod/infra-risk-vis","default_branch":"master","total_commits":1352,"total_committers":12,"total_bot_commits":1,"total_bot_committers":1,"mean_commits":112.66666666666667,"dds":0.5539940828402368,"past_year_total_commits":15,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":7.5,"past_year_dds":0.06666666666666665,"last_synced_at":"2026-03-31T11:03:28.911Z","last_synced_commit":"367f10e6e1beb1060a1deba88834688b32e6aab7","created_at":"2024-05-05T00:17:59.269Z","updated_at":"2026-03-31T11:03:11.980Z","committers":[{"name":"Tom Russell","email":"tomalrussell@gmail.com","login":"tomalrussell","count":603},{"name":"Maciej Ziarkowski","email":"maciej.ziarkowski@gmail.com","login":"mz8i","count":382},{"name":"Your Name","email":"you@example.com","login":"invalid-email-address","count":181},{"name":"Fred Thomas","email":"fred.thomas@ouce.ox.ac.uk","login":"thomas-fred","count":95},{"name":"RoaldL","email":"roald.lemmen@gmail.com","login":"RoaldL","count":40},{"name":"nicholac","email":"kris_nich@hotmail.co.uk","login":"nicholac","count":28},{"name":"Raghav Pant","email":"raghavp@gmail.com","login":"itrcrisks","count":9},{"name":"Fred Thomas","email":"frederick.thomas@ouce.ox.ac.uk","login":null,"count":8},{"name":"Jihyeon Jeong","email":"76680663+jjh6838","login":"jjh6838","count":2},{"name":"Alexander Shiarella","email":"shiarella@aya.yale.edu","login":"shiarella","count":2},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1},{"name":"Gordon Glasgow","email":"gordon.glasgow@ouce.ox.ac.uk","login":"GG-OUCE","count":1}],"past_year_committers":[{"name":"Tom Russell","email":"tom.russell@ouce.ox.ac.uk","login":"tomalrussell","count":14},{"name":"Maciej Ziarkowski","email":"maciej.ziarkowski@gmail.com","login":"mz8i","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-31T00:00:13.296Z","repositories_count":6205593,"commits_count":927560029,"contributors_count":35800282,"owners_count":1143043,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"nismod/infra-risk-vis","html_url":"https://github.com/nismod/infra-risk-vis","last_synced_at":"2026-03-04T22:01:10.609Z","status":"active","issues_count":80,"pull_requests_count":112,"avg_time_to_close_issue":18771606.315789472,"avg_time_to_close_pull_request":430852.8240740741,"issues_closed_count":57,"pull_requests_closed_count":108,"pull_request_authors_count":6,"issue_authors_count":4,"avg_comments_per_issue":0.675,"avg_comments_per_pull_request":0.1875,"merged_pull_requests_count":104,"bot_issues_count":0,"bot_pull_requests_count":2,"past_year_issues_count":4,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":934013.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.3333333333333333,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2024-05-05T00:18:12.294Z","updated_at":"2026-03-04T22:01:10.609Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nismod%2Finfra-risk-vis/issues","issue_labels_count":{"feature":7,"fix":5,"enhancement":3,"big":2,"question":1},"pull_request_labels_count":{"dependencies":2},"issue_author_associations_count":{"MEMBER":47,"CONTRIBUTOR":33},"pull_request_author_associations_count":{"CONTRIBUTOR":85,"MEMBER":26,"NONE":1},"issue_authors":{"tomalrussell":47,"nicholac":15,"mz8i":11,"thomas-fred":7},"pull_request_authors":{"mz8i":53,"tomalrussell":26,"nicholac":18,"thomas-fred":11,"shiarella":2,"dependabot[bot]":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-21T00:00:06.750Z","repositories_count":13837930,"issues_count":34767421,"pull_requests_count":113513031,"authors_count":11207947,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"MEMBER":2,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"MEMBER":1},"past_year_issue_authors":{"tomalrussell":2,"mz8i":1},"past_year_pull_request_authors":{"tomalrussell":1},"maintainers":[{"login":"tomalrussell","count":73,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tomalrussell"}],"active_maintainers":[{"login":"tomalrussell","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tomalrussell"}]},"events":{"total":{"ReleaseEvent":3,"DeleteEvent":8,"PullRequestEvent":10,"ForkEvent":2,"IssuesEvent":10,"IssueCommentEvent":5,"PushEvent":40,"PullRequestReviewEvent":8,"PullRequestReviewCommentEvent":8,"CreateEvent":12},"last_year":{"DeleteEvent":2,"ForkEvent":2,"IssuesEvent":2,"PushEvent":7,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"docker","filepath":"containers/backend/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-02-06T06:00:45.453Z","updated_at":"2023-02-06T06:00:45.453Z","repository_link":"https://github.com/nismod/infra-risk-vis/blob/main/containers/backend/Dockerfile","dependencies":[{"id":7385962728,"package_name":"python","ecosystem":"docker","requirements":"3.10","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"containers/raster-tile-ingester/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-02-06T06:00:45.460Z","updated_at":"2023-02-06T06:00:45.460Z","repository_link":"https://github.com/nismod/infra-risk-vis/blob/main/containers/raster-tile-ingester/Dockerfile","dependencies":[{"id":7385962731,"package_name":"python","ecosystem":"docker","requirements":"3.10-slim","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"etl/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-02-06T06:00:45.751Z","updated_at":"2023-02-06T06:00:45.751Z","repository_link":"https://github.com/nismod/infra-risk-vis/blob/main/etl/Dockerfile","dependencies":[{"id":7385962931,"package_name":"condaforge/mambaforge","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"containers/backend/pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-23T03:59:41.297Z","updated_at":"2023-09-23T03:59:41.297Z","repository_link":"https://github.com/nismod/infra-risk-vis/blob/main/containers/backend/pyproject.toml","dependencies":[{"id":13889640750,"package_name":"fastapi","ecosystem":"pypi","requirements":"==0.83.0","direct":true,"kind":"runtime","optional":false},{"id":13889640751,"package_name":"geoalchemy2","ecosystem":"pypi","requirements":"==0.12.5","direct":true,"kind":"runtime","optional":false},{"id":13889640752,"package_name":"uvicorn","ecosystem":"pypi","requirements":"==0.18.3","direct":true,"kind":"runtime","optional":false},{"id":13889640753,"package_name":"psycopg2-binary","ecosystem":"pypi","requirements":"==2.9.3","direct":true,"kind":"runtime","optional":false},{"id":13889640754,"package_name":"fastapi-pagination","ecosystem":"pypi","requirements":"==0.10.0","direct":true,"kind":"runtime","optional":false},{"id":13889640755,"package_name":"terracotta","ecosystem":"pypi","requirements":"==0.7.5","direct":true,"kind":"runtime","optional":false},{"id":13889640756,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"==1.4.41","direct":true,"kind":"runtime","optional":false},{"id":13889640757,"package_name":"pymysql","ecosystem":"pypi","requirements":"==1.0.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"etl/environment.yml","sha":null,"kind":"manifest","created_at":"2024-01-17T05:24:56.518Z","updated_at":"2024-01-17T05:24:56.518Z","repository_link":"https://github.com/nismod/infra-risk-vis/blob/main/etl/environment.yml","dependencies":[{"id":15658356139,"package_name":"terracotta","ecosystem":"pypi","requirements":"==0.7.5","direct":true,"kind":"runtime","optional":false}]}],"score":null,"created_at":"2024-05-05T00:17:58.486Z","updated_at":"2026-04-13T17:30:21.622Z","avatar_url":"https://github.com/nismod.png","language":"Python","category":"Climate Change","sub_category":"Natural Hazard and Storms","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Infrastructure Risk Visualisation Tool\n\nThis project provides interactive data visualisations of risk analysis results.\n\n![About](images/screenshot-about.png)\n\nThe tool presents the infrastructure systems and hazards considered in the\nanalysis, then presents results as modelled for the whole system at a fine\nscale.\n\nOther functionality:\n\n- Summarise risk analysis at an administrative regional scale.\n- Zoom in to see networks in detail.\n- See an overview of hazard data.\n- Inspect details of hazard layers.\n- Query attributes of elements of the system.\n- Range of potential economic impacts of failure, consisting of direct damages\n  to infrastructure assets and indirect economic losses resulting from\n  infrastructure service disruption (loss of power, loss of access).\n- Explore a cost-benefit analysis (under uncertainty, with options to explore\n  some parameters) of adaptation measures.\n\nThis README covers requirements and steps through how to prepare data for\nvisualisation and how to run the tool.\n\n# Architecture\n\nThe tool runs as a set of containerised services:\n\n- Traefik reverse proxy to direct requests to the other services\n- Web server (nginx) `ghcr.io/nismod/gri-web-server`\n- Vector tileserver (tileserver-gl) `ghcr.io/nismod/gri-vector-tileserver`\n- Backend / API (bespoke Python app for vector data and raster tiles (+meta)) `ghcr.io/nismod/gri-backend`\n- API Database (Postgres with PostGIS serves backend) (Dev only)\n- Tiles Database (Postgres server with multiples terracotta metadata databases) (Dev only)\n\nThe services are orchestrated using `docker compose`.\n\nN.B. The app was built with docker engine version 20.10.16 and compose version\n2.5.0. It may not work with other versions.\n\n# Usage\n\n## Data preparation\n\nThe visualisation tool runs using prepared versions of analysis data and\nresults:\n\n- Rasters stored as Cloud-Optimised GeoTIFFs, with metadata ingested into\n  a terracotta database, hosted within the backend API.\n- Vector data stored in a PostgreSQL database, and preprocessed into Mapbox\n  Vector Tiles\n\nSee [ETL](etl/README.md) directory for details.\n\nData to be served from the vector and raster tileservers should be placed on\nthe host within `tileserver/\u003cdata_type\u003e`. These folders are made available to the\nrunning tileservers as docker bind mounts.\n\nFor example, in `tileserver/raster/data/aqueduct` there might live TIF files like these:\n\n```\ncoastal_mangrove__rp_100__rcp_baseline__epoch_2010__conf_None.tif\ncoastal_mangrove__rp_25__rcp_baseline__epoch_2010__conf_None.tif\ncoastal_mangrove__rp_500__rcp_baseline__epoch_2010__conf_None.tif\ncoastal_nomangrove_minus_mangrove__rp_100__rcp_baseline__epoch_2010__conf_None.tif\n```\n\nAnd in `tileserver/vector/`, mbtiles files like these:\n\n```\nairport_runways.mbtiles\nairport_terminals.mbtiles\nbuildings_commercial.mbtiles\nbuildings_industrial.mbtiles\n```\n\n## Environment\n\nEnvironment variables for the various services (and the ETL workflow) are\nstored in env files. Example files are given in `envs/dev-example`. These can\nbe placed in `envs/dev` to get started.\n\nProduction env files should be placed in `envs/prod`.\n\n## Deploy\n\nTo deploy the stack we use the `docker compose` tool.\n\n### Development\n\nThe set of long-running services can include:\n\n- traefik: Reverse proxy for other services, handles TLS\n- web-server: Nginx server for the frontend code and static files\n- db: PostgreSQL database holding vector data and raster metadata\n- backend: API for available datasets and raster tileserver (terracotta)\n- vector-tileserver: TileServer-GL for serving .mbtiles files\n- redis: In-memory database for autopackage job queueing\n- irv-autopkg-worker: Autopackage data processing (clipping, serialisation, etc.)\n- irv-autopkg-api: Autopackage service coordination\n\nIf you're running your own [frontend](https://github.com/nismod/irv-frontend/)\ndevelopment server, or connecting to a remotely hosted database, or not using\nthe [autopackage API](https://github.com/nismod/irv-autopkg), you may not need\nall these services.\n\nTo this end, we use [profiles](https://docs.docker.com/compose/profiles/) to\ndefine 'core' services which always run, and optional services. A bare `docker\ncompose -f docker-compose-dev.yaml up` will run only the core services (those\nwithout a `profiles` attribute).\n\nFor example, when running your own FE development server to add a new raster\nlayer the following should suffice: `docker compose -f docker-compose-dev.yaml\nup`. This will bring up `db`, `tiles-db`, `backend` and `vector-tileserver`.\n\nTo run the core services with a standard frontend: `docker compose -f\ndocker-compose-dev.yaml --profile web-server up`.\n\nTo run the core services alongside the autopackage services: `docker compose -f\ndocker-compose-dev.yaml --profile autopkg up`.\n\nTo run all of these behind traefik (every long-running service): `docker\ncompose -f docker-compose-dev.yaml --profile traefik --profile web-server\n--profile autopkg up`.\n\nThere are also a few short-lived 'utility containers', which can be run to\nperform particular tasks:\n\n- recreate-metadata-schema: Drop the contents of the `db` database, recreate with empty tables\n- raster-tile-delete-entries: Delete raster entries of specified dataset in `tiles-db`\n- raster-tile-drop-database: Drop whole database for specified dataset from `tiles-db`\n\nWhen starting from a clean slate, the `recreate-metadata-schema` service must\nbe run to create the tables in `db` that `backend` relies upon. If you find\nthat the `backend` service is complaining that the `raster_tile_sources`\ndatabase table is not available, you may need to create the appropriate tables\nin the `db` service first. To do that, bring the `db` service up as described\nabove, and then run: `docker-compose -f docker-compose-dev.yaml up\nrecreate-metadata-schema` to (re)create the tables. Note that this will drop\nany data currently in database.\n\n### Production\n\nTo run local builds of production containers we use the\n`docker-compose-prod-build.yaml` file. See [below](#Updating a service) for\nmore details.\n\nTo deploy containers into a production environment:\n`docker compose -f docker-compose-prod-deploy.yaml up -d`\n\n## Updating a service\n\nTo update a service:\n\n- We make the necessary changes to the container\n- Build a new container\n- Push it to the container repository\n- Pull it on the production machine\n- Deploy it\n\nAs an example, below we update the backend on a development machine:\n\n```bash\n# Edit docker-compose-prod-build.yaml image version:\n#     image: ghcr.io/nismod/gri-backend:1.8.1\n\n# Build\ndocker compose -f docker-compose-prod-build.yaml build backend\n\n# Log in to the container registry\n# see: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry\n\n# Push\ndocker push ghcr.io/nismod/gri-backend:1.8.1\n```\n\nOn the production remote, pull the image and restart the service:\n\n```bash\n# Pull image\ndocker pull ghcr.io/nismod/gri-backend:1.8.1\n\n# Edit docker-compose-prod-deploy.yaml image version (or sync up):\n#     image: ghcr.io/nismod/gri-backend:1.8.1\n\n# Restart service\ndocker compose -f docker-compose-prod-deploy.yaml up -d backend\n```\n\n## Adding new data layers\n\nTo add a raster data layer (for example, the `iris` set of tropical cyclone\nreturn period maps) see the [ETL](etl/README.md) directory.\n\n## IRV AutoPackage Service\n\nProvides API for extraction of data (and hosting of results) from various\nlayers using pre-defined boundaries.\n\nSee [`irv-autopkg`](http://github.com/nismod/irv-autopkg) for more information.\n\n# Acknowledgements\n\nThis tool has been developed through several projects.\n\n- [v0.1](https://github.com/oi-analytics/oi-risk-vis/releases/tag/v0.1-argentina)\n  was developed by Oxford Infrastructure Analytics for the Government of\n  Argentina with funding support from the World Bank Group and Global Facility\n  for Disaster Reduction and Recovery (GFDRR).\n- [v0.2](https://github.com/oi-analytics/oi-risk-vis/releases/tag/v0.2.0-seasia)\n  was developed by Oxford Infrastructure Analytics for the Disaster Risk\n  Financing and Insurance Program (DRFIP) of the World Bank with support from\n  the Japan\u0026mdash;World Bank Program for Mainstreaming DRM in Developing\n  Countries, which is financed by the Government of Japan and managed by the\n  Global Facility for Disaster Reduction and Recovery (GFDRR) through the Tokyo\n  Disaster Risk Management Hub.\n- [v0.3](https://github.com/nismod/infra-risk-vis/releases/tag/v0.3.0)\n  was developed by the Oxford Programme for Sustainable Infrastructure Systems\n  (OPSIS) in the Environmental Change Institute, University of Oxford, for the\n  Government of Jamaica (GoJ) as part of a project funded by UK Aid (FCDO). The\n  initiative forms part of the Coalition for Climate Resilient Investment’s\n  (CCRI) collaboration with the GoJ, which also includes analysis of\n  nature-based approaches to build resilience in Jamaica to be procured and\n  funded by the Green Climate Fund (GCF).\n- [release/caribbean](https://github.com/nismod/infra-risk-vis/tree/release/caribbean)\n  was developed as part of the Jamaica project.\n- [release/east-africa](https://github.com/nismod/infra-risk-vis/tree/release/east-africa)\n  was developed by researchers in the University of Southampton's Transportation\n  Research Group and the Oxford Programme for Sustainable Infrastructure\n  Systems, University of Oxford, supported by engagement with infrastructure and\n  climate specialists and related government bodies, and funded by UKAID through\n  the UK Foreign, Commonwealth \u0026 Development Office under the High Volume\n  Transport Applied Research Programme, managed by DT Global.\n- current work on global-scale data and analysis continues to be led by\n  researchers in OPSIS. In part this is in collaboration with the Global\n  Resilience Index Initiative, including the Oxford Spatial Finance Initiative\n  and Global Earthquake Model Foundation. This work has been funded by: the World\n  Bank Group; Willis Towers Watson Insurance for Development Forum; the UK\n  Natural Environment Research Council (NERC) through the UK Centre for Greening\n  Finance and Investment; the UK Foreign, Commonwealth and Development Office\n  (FCDO) through the Climate Compatible Growth (CCG) programme; Howden Foundation;\n  and Global Center on Adaptation.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["measur","transforms","optimize","archiving","translation","conversion","certificate","observation","animals","simulator"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/192241","html_url":"https://ost.ecosyste.ms/projects/192241"}