{"id":13407835,"url":"https://github.com/equinor/ert","last_synced_at":"2026-04-02T13:19:07.637Z","repository":{"id":37405910,"uuid":"89232721","full_name":"equinor/ert","owner":"equinor","description":"ERT - Ensemble based Reservoir Tool - is designed for running ensembles of dynamical models such as reservoir models, in order to do sensitivity analysis and data assimilation. ERT supports data assimilation using the Ensemble Smoother (ES) and Ensemble Smoother with Multiple Data Assimilation (ES-MDA).","archived":false,"fork":false,"pushed_at":"2025-12-29T16:16:03.000Z","size":126866,"stargazers_count":138,"open_issues_count":299,"forks_count":121,"subscribers_count":15,"default_branch":"main","last_synced_at":"2026-01-01T11:03:07.167Z","etag":null,"topics":["python","scientific","simulation"],"latest_commit_sha":null,"homepage":"https://ert.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equinor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-04-24T11:32:08.000Z","updated_at":"2025-12-30T09:01:03.000Z","dependencies_parsed_at":"2025-12-29T16:07:24.298Z","dependency_job_id":null,"html_url":"https://github.com/equinor/ert","commit_stats":{"total_commits":16610,"total_committers":90,"mean_commits":"184.55555555555554","dds":0.5909090909090908,"last_synced_commit":"6ee7294da6f1ba3734e99480505b19cabf1423cd"},"previous_names":[],"tags_count":695,"template":false,"template_full_name":null,"purl":"pkg:github/equinor/ert","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equinor","download_url":"https://codeload.github.com/equinor/ert/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fert/sbom","scorecard":{"id":112805,"data":{"date":"2025-08-11","repo":{"name":"github.com/equinor/ert","commit":"f2808d5ceb5a47015a8fb8c61f7b48ad3727b3c3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.8,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/actionlint.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/backport.yml:8","Warn: no topLevel permission defined: .github/workflows/build-wheels.yml:1","Warn: no topLevel permission defined: .github/workflows/build_and_test.yml:1","Warn: no topLevel permission defined: .github/workflows/codspeed.yml:1","Warn: no topLevel permission defined: .github/workflows/run_ert_test_data_setups.yml:1","Warn: no topLevel permission defined: .github/workflows/style.yml:1","Warn: no topLevel permission defined: .github/workflows/test_ert.yml:1","Warn: no topLevel permission defined: .github/workflows/test_ert_with_flow.yml:1","Warn: no topLevel permission defined: .github/workflows/test_ert_with_slurm.yml:1","Warn: no topLevel permission defined: .github/workflows/test_everest.yml:1","Warn: no topLevel permission defined: .github/workflows/test_everest_models.yml:1","Warn: no topLevel permission defined: .github/workflows/test_semeio.yml:1","Warn: no topLevel permission defined: .github/workflows/typing.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/update_lockfile.yml:8","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: COPYING:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/actionlint.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/actionlint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/backport.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/backport.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/backport.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/backport.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/backport.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/backport.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-wheels.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build-wheels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-wheels.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build-wheels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-wheels.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build-wheels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build_and_test.yml:133: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build_and_test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build_and_test.yml:146: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build_and_test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build_and_test.yml:152: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build_and_test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build_and_test.yml:177: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build_and_test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build_and_test.yml:187: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/build_and_test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codspeed.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/codspeed.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codspeed.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/codspeed.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codspeed.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/codspeed.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codspeed.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/codspeed.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/run_ert_test_data_setups.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/run_ert_test_data_setups.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/run_ert_test_data_setups.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/run_ert_test_data_setups.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/run_ert_test_data_setups.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/run_ert_test_data_setups.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/style.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/style.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/style.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/style.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/style.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/style.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert.yml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert.yml:110: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert.yml:118: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert_with_flow.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert_with_flow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert_with_flow.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert_with_flow.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert_with_flow.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert_with_flow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert_with_slurm.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert_with_slurm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_ert_with_slurm.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert_with_slurm.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_ert_with_slurm.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_ert_with_slurm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_everest.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_everest.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_everest.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_everest.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_everest.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_everest.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_everest_models.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest_models.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_everest_models.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest_models.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_everest_models.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_everest_models.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_semeio.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_semeio.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_semeio.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_semeio.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_semeio.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/test_semeio.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/typing.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/typing.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/typing.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/typing.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/typing.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/typing.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update_lockfile.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/update_lockfile.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update_lockfile.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/update_lockfile.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update_lockfile.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/update_lockfile.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/update_lockfile.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/update_lockfile.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/update_lockfile.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/equinor/ert/update_lockfile.yml/main?enable=pin","Warn: pipCommand not pinned by hash: ci/testkomodo.sh:16","Warn: downloadThenRun not pinned by hash: .github/workflows/actionlint.yml:24","Info:   0 out of  33 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  23 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during GetBranch(version-14.4): error during branchesHandler.query: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build_and_test.yml:165"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T14:32:32.617Z","repository_id":37405910,"created_at":"2025-08-15T14:32:32.617Z","updated_at":"2025-08-15T14:32:32.617Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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"}},"keywords":["python","scientific","simulation"],"created_at":"2024-07-30T20:00:48.922Z","updated_at":"2026-04-02T13:19:07.631Z","avatar_url":"https://github.com/equinor.png","language":"Python","funding_links":[],"categories":["Software"],"sub_categories":["History Matching and Uncertainty Analysis"],"readme":"\u003ch1 align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/equinor/ert/main/src/ert/gui/resources/gui/img/ert_icon.svg\" width=\"200\"\u003e\n\u003c/h1\u003e\n\n[![Build Status](https://github.com/equinor/ert/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/equinor/ert/actions/workflows/build_and_test.yml)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ert)](https://img.shields.io/pypi/pyversions/ert)\n[![Code Style](https://github.com/equinor/ert/actions/workflows/style.yml/badge.svg)](https://github.com/equinor/ert/actions/workflows/style.yml)\n[![Type checking](https://github.com/equinor/ert/actions/workflows/typing.yml/badge.svg)](https://github.com/equinor/ert/actions/workflows/typing.yml)\n[![codecov](https://codecov.io/gh/equinor/ert/graph/badge.svg?token=keVAcWavZ1)](https://codecov.io/gh/equinor/ert)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\nert - Ensemble based Reservoir Tool - is designed for running\nensembles of dynamical models such as reservoir models,\nin order to do sensitivity analysis and data assimilation.\nert supports data assimilation using the Ensemble Smoother (ES) and\nEnsemble Smoother with Multiple Data Assimilation (ES-MDA).\n\n## Installation\n\n```sh\npip install ert\nert --help\n```\n\nor, for the latest development version:\n\n```sh\npip install git+https://github.com/equinor/ert.git@main\nert --help\n```\n\nFor examples and help with configuration, see the [ert Documentation](https://ert.readthedocs.io/en/latest/getting_started/configuration/poly_new/guide.html#configuration-guide).\n\n# EVEREST™\n\n\u003ch1 align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/equinor/ert/main/src/everest/assets/everest_logo.svg\" width=\"300\"\u003e\n\u003c/h1\u003e\n\nThe primary goal of the EVEREST tool is to find *optimal* well\nplanning and production strategies by utilizing an ensemble of\nreservoir models (e.g., an ensemble of geologically-consistent models).\nThis will enable robust decisions about drilling schedule and well\nplacement, in order to achieve results of significant practical value.\n\n```sh\npip install ert[everest]\n```\n\n## Developing\n\nWe use uv to have one synchronized development environment for all packages.\nSee [installing uv](https://docs.astral.sh/uv/getting-started/installation/). We\nrecommend installing uv using your system's package manager, or into a small\ndedicated virtual environment.\n\nOnce uv is installed, you can get a development environment by running:\n\n```sh\ngit clone https://github.com/equinor/ert\ncd ert\nuv sync --all-groups\n```\n\n### Test setup\n\nThe tests can be run with pytest directly, but this is very slow:\n\n```sh\nuv run pytest tests/\n```\n\nThere are many kinds of tests in the `tests` directory, while iterating on your\ncode you can run a fast subset of the tests with by using the rapid checks from the\njustfile:\n\n```sh\nuv run just rapid-tests\n```\n\nYou can also run all of the checks in parallel with\n\n```sh\nuv run just check-all\n```\n\n[Git LFS](https://git-lfs.com/) must be installed to get all the files. This is\npackaged as `git-lfs` on Ubuntu, Fedora or macOS Homebrew.  For Equinor TGX\nusers, it is preinstalled.\n\nIf you have not used git-lfs before, you might have to make changes to your global Git config for git-lfs to work properly.\n```sh\ngit lfs install\n```\n\ntest-data/ert/block_storage is a submodule and must be checked out.\n```sh\ngit submodule update --init --recursive\n```\n\nIf you checked out submodules without having git lfs installed, you can force git lfs to run in all submodules with:\n```sh\ngit submodule foreach \"git lfs pull\"\n```\n\n### Build documentation\n\nYou can build the documentation after installation by running\n```sh\nuv run just build-docs\n```\nand then open the generated `./ert_docs/index.html` or\n`./everest_docs/index.html` in a browser.\n\nTo automatically reload on changes you may use\n\n```sh\nuv run sphinx-autobuild docs/ert docs/ert/_build/html\n```\n\nfor ert and\n\n```sh\nuv run sphinx-autobuild docs/everest docs/everest/_build/html\n```\n\nfor everest.\n\n### Style requirements\n\nThere are a set of style requirements, which are gathered in the `pre-commit`\nconfiguration. After running `uv sync --all-groups`, `pre-commit` is already\navailable. To have it automatically run on each commit:\n\n```sh\nuv run pre-commit install\n```\n\nThere is also a pre-push hook configured in `pre-commit` to run a collection of\nrelatively fast tests, to install this hook:\n\n```sh\nuv run pre-commit install --hook-type pre-push\n```\n\n\n### Trouble with setup\n\nAs a simple test of your `ert` installation, you may try to run one of the\nexamples, for instance:\n\n\n```sh\nuv run just poly\n```\nThis opens up the ert graphical user interface with a simple example using\npolynomials (see `./test-data/ert/poly_example`).\n\nFinally, test ert by starting and successfully running the experiment.\n\n### Notes\n\nThe default maximum number of open files is normally relatively low on MacOS\nand some Linux distributions. This is likely to make tests crash with mysterious\nerror-messages. You can inspect the current limits in your shell by issuing the\ncommand `ulimit -a`. In order to increase maximum number of open files, run\n`ulimit -n 16384` (or some other large number) and put the command in your\n`.profile` to make it persist.\n\n### ert with a reservoir simulator\nTo actually get ert to work at your site you need to configure details about\nyour system; at the very least this means you must configure where your\nreservoir simulator is installed. In addition you might want to configure e.g.\nqueue system in the `site-config` file, but that is not strictly necessary for\na basic test.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Fert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequinor%2Fert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Fert/lists"}