resdata
Package for reading and writing the fortran result files from reservoir simulators
What it is and what it does
ResData is a Python library that bridges the gap between Fortran-based reservoir simulation software and Python data analysis workflows. It provides read and write access to the binary result files produced by reservoir simulators—RESTART, INIT, RFT, Summary, and GRID files—in both unified and non-unified, formatted and unformatted variants. The package wraps a C++ implementation using cwrap, giving it performance-critical file I/O while maintaining a Python-friendly interface.
Originally developed as part of the Equinor ERT project, ResData is actively maintained and officially supports Linux and macOS. It depends on numpy, pandas, natsort, typing_extensions, cwrap, and resfo-utilities for its core functionality. The package is suitable for reservoir engineering workflows, simulation result analysis, and data integration pipelines where direct access to simulator output files is needed.
Use it for:
- Extract and analyze pressure, saturation, or other properties from RESTART files for reservoir engineering studies
- Convert simulator output files into pandas DataFrames for statistical analysis or visualization
- Automate batch processing of multiple simulation result sets in production workflows
- Integrate reservoir simulation data into Python-based decision-support or history-matching systems
- Read GRID and INIT files to validate reservoir model geometry and initial conditions
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ResData reads and writes result files from reservoir simulators, including RESTART, INIT, RFT, Summary, and GRID files in both unified and non-unified, formatted and unformatted variants.
Yes, with conditions. Install if you work with Fortran-based reservoir simulator output and need programmatic Python access to those files. The active maintenance, recent release, and lack of known vulnerabilities are strong signals. However, the C++ build dependency and GPLv3 copyleft license require upfront consideration—ensure your build environment has a compatible compiler and that the license terms align with your project's constraints.
Install
resdata on PyPI
pip
pip install resdatauv
uv add resdatapoetry
poetry add resdataInstalling resdata
Before you install
Medium install friction due to C++ extension layer requiring a C++17-compatible compiler (GCC 8+ or Clang 11+) and CMake/Conan build tooling. Active maintenance with release 1 day old and recent commits indicate solid upkeep.
License in practice
GPLv3 copyleft license means any derivative work or linked application must also be open-source under GPLv3 terms. Suitable for open research and internal tools but requires careful review before use in proprietary products.
Quickstart
pip install resdata
import resdata
# Load a RESTART file
restart = resdata.RestartFile('path/to/file.UNRST')
Requires a C++17-compatible compiler (GCC 8+ or Clang 11+), CMake, and Conan 2 for building from source. Pre-built wheels available for Python 3.11–3.14 on Linux, macOS (ARM64), and Windows.
Verify before relying
- Whether pre-built wheels fully eliminate the need for a C++ compiler on target systems
- Specific performance characteristics when handling large RESTART or GRID files
- Compatibility with non-Equinor reservoir simulators beyond those mentioned
Package facts
| License | GPL-3.0 (copyleft) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 6 — cwrap, numpy, pandas, natsort, typing_extensions, resfo-utilities |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 105,733/month — #12,684 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: resdata-6.3.3-cp311-cp311-macosx_11_0_arm64.whl; resdata-6.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; resdata-6.3.3-cp311-cp311-win_amd64.whl; resdata-6.3.3-cp312-cp312-macosx_11_0_arm64.whl; resdata-6.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; resdata-6.3.3-cp312-cp312-win_amd64.whl; resdata-6.3.3-cp313-cp313-macosx_11_0_arm64.whl; resdata-6.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; resdata-6.3.3-cp313-cp313-win_amd64.whl; resdata-6.3.3-cp314-cp314-macosx_11_0_arm64.whl; resdata-6.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; resdata-6.3.3-cp314-cp314-win_amd64.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
resforesfo parses binary and ASCII output files from…
copyleft · top 15,000 on PyPI
resfo-utilitiesresfo-utilities parses and processes output…
copyleft · top 15,000 on PyPI
oil-reservoir-synthesizerGenerates synthetic oil reservoir simulator…
copyleft · top 15,000 on PyPI
xtgeoXTGeo manipulates subsurface reservoir…
copyleft · top 15,000 on PyPI
GridDataFormatsGridDataFormats reads and writes n-dimensional…
copyleft · top 15,000 on PyPI
peppypeppy reads and manages Portable Encapsulated…
permissive · top 15,000 on PyPI
xtgeovizProvides plotting functions for xtgeo objects,…
copyleft · top 15,000 on PyPI
cwrapcwrap is a Python wrapper around C code that…
copyleft · top 15,000 on PyPI
cmake-formatFormats, lints, and annotates CMake listfiles,…
copyleft · top 15,000 on PyPI
f90nmlf90nml reads, writes, and modifies Fortran…
permissive · top 15,000 on PyPI