Files
ResInsight/import/ensemblefiledialog/index.html
2025-02-14 11:25:53 +01:00

382 lines
27 KiB
HTML

<!DOCTYPE html>
<html lang="en-us" dir="ltr" itemscope itemtype="http://schema.org/Article" data-r-output-format="html">
<head>
<meta charset="utf-8">
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="generator" content="Hugo 0.142.0">
<meta name="generator" content="Relearn 7.3.2+7b470298046df2c96c0da9da07a54572b7c4e1b0">
<meta name="description" content="Ensemble File Import When using the standard file selection dialog, the user is limited to select files in one directory only. If the interesting files are distributed over multiple directories, the dialog has to be opened once for each directory. The recursive file selection dialog is created to circumvent this limitation. This dialog is able to search a directory tree for files matching a specified pattern.
Note
This dialog is used for import of different file types like *.EGRID, *.SMSPEC, *.TS, *.GRDECL, …">
<meta name="author" content="">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Ensemble File Dialog :: ResInsight">
<meta name="twitter:description" content="Ensemble File Import When using the standard file selection dialog, the user is limited to select files in one directory only. If the interesting files are distributed over multiple directories, the dialog has to be opened once for each directory. The recursive file selection dialog is created to circumvent this limitation. This dialog is able to search a directory tree for files matching a specified pattern.
Note
This dialog is used for import of different file types like *.EGRID, *.SMSPEC, *.TS, *.GRDECL, …">
<meta property="og:url" content="https://resinsight.org/import/ensemblefiledialog/index.html">
<meta property="og:site_name" content="ResInsight">
<meta property="og:title" content="Ensemble File Dialog :: ResInsight">
<meta property="og:description" content="Ensemble File Import When using the standard file selection dialog, the user is limited to select files in one directory only. If the interesting files are distributed over multiple directories, the dialog has to be opened once for each directory. The recursive file selection dialog is created to circumvent this limitation. This dialog is able to search a directory tree for files matching a specified pattern.
Note
This dialog is used for import of different file types like *.EGRID, *.SMSPEC, *.TS, *.GRDECL, …">
<meta property="og:locale" content="en_us">
<meta property="og:type" content="article">
<meta property="article:section" content="Import">
<meta itemprop="name" content="Ensemble File Dialog :: ResInsight">
<meta itemprop="description" content="Ensemble File Import When using the standard file selection dialog, the user is limited to select files in one directory only. If the interesting files are distributed over multiple directories, the dialog has to be opened once for each directory. The recursive file selection dialog is created to circumvent this limitation. This dialog is able to search a directory tree for files matching a specified pattern.
Note
This dialog is used for import of different file types like *.EGRID, *.SMSPEC, *.TS, *.GRDECL, …">
<meta itemprop="wordCount" content="471">
<title>Ensemble File Dialog :: ResInsight</title>
<link href="/css/fontawesome-all.min.css?1739528537" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fontawesome-all.min.css?1739528537" rel="stylesheet"></noscript>
<link href="/css/auto-complete.css?1739528537" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/auto-complete.css?1739528537" rel="stylesheet"></noscript>
<link href="/css/perfect-scrollbar.min.css?1739528537" rel="stylesheet">
<link href="/css/theme.min.css?1739528537" rel="stylesheet">
<link href="/css/format-html.min.css?1739528537" rel="stylesheet" id="R-format-style">
<script>
window.relearn = window.relearn || {};
window.relearn.relBasePath='..\/..';
window.relearn.relBaseUri='..\/..';
window.relearn.absBaseUri='https:\/\/resinsight.org';
window.relearn.min = `.min`;
window.relearn.disableAnchorCopy=false;
window.relearn.disableAnchorScrolling=false;
// variant stuff
window.relearn.themevariants = [ 'relearn' ];
window.relearn.customvariantname = "my-custom-variant";
window.relearn.changeVariant = function(variant) {
var oldVariant = document.documentElement.dataset.rThemeVariant;
window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant);
document.documentElement.dataset.rThemeVariant = variant;
if (oldVariant != variant) {
document.dispatchEvent( new CustomEvent('themeVariantLoaded', { detail: { variant, oldVariant } }) );
}
}
window.relearn.markVariant = function() {
var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant");
var select = document.querySelector("#R-select-variant");
if (select) {
select.value = variant;
}
}
window.relearn.initVariant = function() {
var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant") ?? "";
if( variant == window.relearn.customvariantname ){
}else if( !variant || !window.relearn.themevariants.includes(variant) ){
variant = window.relearn.themevariants[0];
window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant);
}
document.documentElement.dataset.rThemeVariant = variant;
}
window.relearn.initVariant();
window.relearn.markVariant();
// translations
window.T_Copy_to_clipboard = `Copy to clipboard`;
window.T_Copied_to_clipboard = `Copied to clipboard!`;
window.T_Copy_link_to_clipboard = `Copy link to clipboard`;
window.T_Link_copied_to_clipboard = `Copied link to clipboard!`;
window.T_Reset_view = `Reset view`;
window.T_View_reset = `View reset!`;
window.T_No_results_found = `No results found for "{0}"`;
window.T_N_results_found = `{1} results found for "{0}"`;
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [['$$','$$'], ['\\[','\\]']],
processEscapes: true,
processEnvironments: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
TeX: { equationNumbers: { autoNumber: "AMS" },
extensions: ["AMSmath.js", "AMSsymbols.js"] }
},
menuSettings: { renderer: "CommonHTML" }
});
MathJax.Hub.Queue(function() {
var all = MathJax.Hub.getAllJax();
while(jax = all.pop()) {
jax.SourceElement().parentNode.className += ' has-jax';
}
});
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>
</head>
<body class="mobile-support html" data-url="/import/ensemblefiledialog/index.html">
<div id="R-body" class="default-animation">
<div id="R-body-overlay"></div>
<nav id="R-topbar">
<div class="topbar-wrapper">
<div class="topbar-sidebar-divider"></div>
<div class="topbar-area topbar-area-start" data-area="start">
<div class="topbar-button topbar-button-sidebar" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide"><button class="topbar-control" onclick="toggleNav()" type="button" title="Menu (CTRL&#43;ALT&#43;n)"><i class="fa-fw fas fa-bars"></i></button>
</div>
<div class="topbar-button topbar-button-toc" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="Table of Contents (CTRL&#43;ALT&#43;t)"><i class="fa-fw fas fa-list-alt"></i></button>
<div class="topbar-content">
<div class="topbar-content-wrapper">
<nav class="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#ensemble-file-import">Ensemble File Import</a></li>
<li><a href="#ensemble-file-structure">Ensemble File Structure</a>
<ul>
<li><a href="#sub-folder">Sub Folder</a></li>
<li><a href="#main-folder">Main Folder</a></li>
</ul>
</li>
<li><a href="#examples-of-use-of-ensemble-import-dialog">Examples of Use of Ensemble Import Dialog</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/index.html"><span itemprop="name">ResInsight</span></a><meta itemprop="position" content="1">&nbsp;>&nbsp;</li><li
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/import/index.html"><span itemprop="name">Import</span></a><meta itemprop="position" content="2">&nbsp;>&nbsp;</li><li
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><span itemprop="name">Ensemble File Dialog</span><meta itemprop="position" content="3"></li>
</ol>
<div class="topbar-area topbar-area-end" data-area="end">
<div class="topbar-button topbar-button-prev" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/import/eclipsesummarydata/index.html" title="Eclipse Summary Data (🡐)"><i class="fa-fw fas fa-chevron-left"></i></a>
</div>
<div class="topbar-button topbar-button-next" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/import/roffgridmodels/index.html" title="ROFF Grid Models (🡒)"><i class="fa-fw fas fa-chevron-right"></i></a>
</div>
<div class="topbar-button topbar-button-more" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="More"><i class="fa-fw fas fa-ellipsis-v"></i></button>
<div class="topbar-content">
<div class="topbar-content-wrapper">
<div class="topbar-area topbar-area-more" data-area="more">
</div>
</div>
</div>
</div>
</div>
</div>
</nav>
<div id="R-main-overlay"></div>
<main id="R-body-inner" class="highlightable import" tabindex="-1">
<div class="flex-block-wrapper">
<article class="default">
<header class="headline">
</header>
<h1 id="ensemble-file-dialog">Ensemble File Dialog</h1>
<h2 id="ensemble-file-import">Ensemble File Import</h2>
<p>When using the standard file selection dialog, the user is limited to select files in one directory only. If the interesting files are distributed over multiple directories, the dialog has to be opened once for each directory. The recursive file selection dialog is created to circumvent this limitation. This dialog is able to search a directory tree for files matching a specified pattern.</p>
<details open class=" box cstyle notices note">
<summary class="box-label" tabindex="-1">
<i class="fa-fw fas fa-exclamation-circle"></i>
Note
</summary>
<div class="box-content">
<p>This dialog is used for import of different file types like *.EGRID, *.SMSPEC, *.TS, *.GRDECL, &hellip;</p>
</div>
</details>
<p><a href="#R-image-fe35ff99b8fd40d51718caeaed8de6e1" class="lightbox-link"><img class="noborder lazy lightbox noshadow figure-image" loading="lazy" src="/images/plot-window/RecursiveImportDialog2.png" style=" height: auto; width: auto;"></a>
<a href="javascript:history.back();" class="lightbox-back" id="R-image-fe35ff99b8fd40d51718caeaed8de6e1"><img class="noborder lazy lightbox noshadow lightbox-image" loading="lazy" src="/images/plot-window/RecursiveImportDialog2.png"></a></p>
<p>The dialog consists of the following fields:</p>
<ul>
<li><strong>Path Pattern</strong>: The path filter uses normal wildcard file globbing, like in any unix shell. When the filter ends with a single &ldquo;**&rdquo; (eg. &ldquo;/home/*&rdquo;), however, ResInsight will search recursively in all subdirectories from that point. This is indicated by &ldquo;&hellip;&rdquo; in the <strong>Effective Filter</strong> label below.</li>
<li><strong>File Pattern</strong>: The search pattern that applies to the file name.
<ul>
<li><strong>*</strong> Matches any number of any characters except the path separator</li>
<li><strong>?</strong> Matches one character exception the directory separator</li>
<li><strong>[abc]</strong> Matches one of the specified characters. Ex. a, b or c</li>
<li><strong>*[!D]</strong> Exclude files ending with the character &lsquo;D&rsquo; (file extension is not considered)</li>
</ul>
</li>
<li><strong>File Type</strong>: The available file types will depend on the type of data to import. When importing summary data, there will be several items, and one with <strong>SMSPEC</strong>.</li>
<li><strong>File Extensions</strong>: List of file extensions, ie &ldquo;.EGRID .GRID&rdquo;. The extension text is independent to the file type defined above, e.g. <em>CSV</em> data can be imported from a file with extension &ldquo;TXT&rdquo;</li>
<li>Use &lsquo;realization-*&rsquo; in filter : Replace the text &ldquo;realization-12&rdquo; with &ldquo;realization-*&rdquo;</li>
<li>Ensemble grouping : Group ensemble by Main folder or Sub Folder (Used by FMU workflow)</li>
<li><strong>Effective Filter</strong>: The effective filter displays the resulting full path search pattern. It is updated on the fly as the user edits the pattern fields. A text string of &ldquo;&hellip;&rdquo; indicates a complete recursive directory search.</li>
</ul>
<h2 id="ensemble-file-structure">Ensemble File Structure</h2>
<p>Multiple summary files defining an ensemble can be organized differently in folders. ResInsight support two different modes, Sub Folder and Main Folder.</p>
<h3 id="sub-folder">Sub Folder</h3>
<p>Example folder structure</p>
<pre><code>real-1/case-1
/case-2
real-2/case-1
/case-2
real-3/case-1
/case-2
</code></pre>
<p>Using the option <strong>Group By Sub Folder</strong> will identify <strong>case-1</strong> and <strong>case-2</strong> as the ensemble names. This folder structure is used by the <strong>FMU workflow</strong>.</p>
<h3 id="main-folder">Main Folder</h3>
<p>Example folder structure</p>
<pre><code>case-1/real-1
case-1/real-2
case-1/real-3
case-2/real-1
case-2/real-2
case-2/real-3
</code></pre>
<p>Using the option <strong>Group By Main Folder</strong> will identify <strong>case-1</strong> and <strong>case-2</strong> as the ensemble names. This folder structure is used by the <strong>Everest workflow</strong>.</p>
<p>After pressing the <strong>Find</strong> button, a file search is performed in the root directory and the directories below matching the path pattern. The files found are presented in a list, where the user can check/uncheck each file individually.</p>
<p>When the <strong>OK</strong> button is pressed, all checked files are imported.</p>
<h2 id="examples-of-use-of-ensemble-import-dialog">Examples of Use of Ensemble Import Dialog</h2>
<p><a href="/workflows/ensemblesurface/index.html">Ensemble Surface</a></p>
<p><a href="/plot-window/ensembleplotting/index.html">Ensemble Summary</a></p>
<footer class="footline">
</footer>
</article>
</div>
</main>
</div>
<aside id="R-sidebar" class="default-animation">
<div id="R-header-topbar" class="default-animation"></div>
<div id="R-header-wrapper" class="default-animation">
<div id="R-header" class="default-animation">
<a id="logo" href="https://resinsight.org/">
<img src="https://resinsight.org//images/ResInsightCroppedIconPicture.png">
</a>
</div>
<script>
window.index_js_url="/searchindex.en.js?1739528537";
</script>
<search><form action="/search/index.html" method="get">
<div class="searchbox default-animation">
<button class="search-detail" type="submit" title="Search (CTRL+ALT+f)"><i class="fas fa-search"></i></button>
<label class="a11y-only" for="R-search-by">Search</label>
<input data-search-input id="R-search-by" name="search-by" class="search-by" type="search" placeholder="Search...">
<button class="search-clear" type="button" data-search-clear="" title="Clear search"><i class="fas fa-times" title="Clear search"></i></button>
</div>
</form></search>
<script>
var contentLangs=['en'];
</script>
<script src="/js/auto-complete.js?1739528537" defer></script>
<script src="/js/lunr/lunr.min.js?1739528537" defer></script>
<script src="/js/lunr/lunr.stemmer.support.min.js?1739528537" defer></script>
<script src="/js/lunr/lunr.multi.min.js?1739528537" defer></script>
<script src="/js/lunr/lunr.en.min.js?1739528537" defer></script>
<script src="/js/search.js?1739528537" defer></script>
<script>
(function() {
const urlParams = new URLSearchParams(window.location.search);
const searchQuery = urlParams.get('q');
if (searchQuery) {
const newUrl = `/search/?search-by=${encodeURIComponent(searchQuery)}`;
window.location.replace(newUrl);
}
})();
</script>
</div>
<div id="R-homelinks" class="default-animation">
<hr class="padding">
</div>
<div id="R-content-wrapper" class="highlightable">
<div id="R-shortcutmenu-home" class="R-sidebarmenu">
<ul class="enlarge morespace collapsible-menu">
<li class="" data-nav-id="/releases/index.html"><a class="padding" href="/releases/index.html">Releases</a><ul id="R-subsections-a71c2f29677ba690c1b8bf454f228c9c" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/getting-started/index.html"><a class="padding" href="/getting-started/index.html">Getting Started</a><ul id="R-subsections-87c0363912f379e0725cbe1d504c985c" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/3d-main-window/index.html"><a class="padding" href="/3d-main-window/index.html">3D Main Window</a><ul id="R-subsections-122c1165ab4202e74b8e3c0619dc7420" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/plot-window/index.html"><a class="padding" href="/plot-window/index.html">Plot Main Window</a><ul id="R-subsections-6087943109d37785a7a7442a1415914b" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/calculated-data/index.html"><a class="padding" href="/calculated-data/index.html">Calculated Data</a><ul id="R-subsections-d7700e605b6718d9f0232aeb66e77ad1" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/wells-and-completions/index.html"><a class="padding" href="/wells-and-completions/index.html">Wells and Completions</a><ul id="R-subsections-6bd77eb465ff0d28f042f42913bdffda" class="collapsible-menu"></ul></li>
<li class="parent " data-nav-id="/import/index.html"><a class="padding" href="/import/index.html">Import</a><ul id="R-subsections-6394d937fb0ab7f32a2b2b5bee229032" class="collapsible-menu">
<li class="" data-nav-id="/import/cloudservices/index.html"><a class="padding" href="/import/cloudservices/index.html">Cloud Services</a></li>
<li class="" data-nav-id="/import/cloudservicesauthorization/index.html"><a class="padding" href="/import/cloudservicesauthorization/index.html">Cloud Services - Authorization</a></li>
<li class="" data-nav-id="/import/eclipsecases/index.html"><a class="padding" href="/import/eclipsecases/index.html">Eclipse Cases</a></li>
<li class="" data-nav-id="/import/eclipsesummarydata/index.html"><a class="padding" href="/import/eclipsesummarydata/index.html">Eclipse Summary Data</a></li>
<li class="active " data-nav-id="/import/ensemblefiledialog/index.html"><a class="padding" href="/import/ensemblefiledialog/index.html">Ensemble File Dialog</a></li>
<li class="" data-nav-id="/import/roffgridmodels/index.html"><a class="padding" href="/import/roffgridmodels/index.html">ROFF Grid Models</a></li>
<li class="" data-nav-id="/import/seismicdata/index.html"><a class="padding" href="/import/seismicdata/index.html">Seismic Data</a></li>
<li class="" data-nav-id="/import/lasfile/index.html"><a class="padding" href="/import/lasfile/index.html">Log ASCII Standard File</a></li>
<li class="" data-nav-id="/import/geomechanicaldata/index.html"><a class="padding" href="/import/geomechanicaldata/index.html">Geomechanical Data</a></li>
<li class="" data-nav-id="/import/soursimrlresults/index.html"><a class="padding" href="/import/soursimrlresults/index.html">SourSimRL Results</a></li>
<li class="" data-nav-id="/import/elementpropertytable/index.html"><a class="padding" href="/import/elementpropertytable/index.html">Element Property Table</a></li>
<li class="" data-nav-id="/import/observeddata/index.html"><a class="padding" href="/import/observeddata/index.html">Observed Time History Data</a></li>
<li class="" data-nav-id="/import/pressuredata/index.html"><a class="padding" href="/import/pressuredata/index.html">Pressure/Depth Data</a></li>
<li class="" data-nav-id="/import/appendingadditionalproperties/index.html"><a class="padding" href="/import/appendingadditionalproperties/index.html">Appending Additional Properties</a></li>
<li class="" data-nav-id="/import/pasteexceltimedata/index.html"><a class="padding" href="/import/pasteexceltimedata/index.html">Paste Excel Time History Data</a></li></ul></li>
<li class="" data-nav-id="/export/index.html"><a class="padding" href="/export/index.html">Export</a><ul id="R-subsections-5d95f477b90785732dc9d6d81acc75cc" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/scripting/index.html"><a class="padding" href="/scripting/index.html">Scripting</a><ul id="R-subsections-184799376902c8c3045f6aad007b8b97" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/misc/index.html"><a class="padding" href="/misc/index.html">Miscellaneous</a><ul id="R-subsections-f243eab41fb28f51378992bf36c41035" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/best-practices/index.html"><a class="padding" href="/best-practices/index.html">Best Practices</a><ul id="R-subsections-4f78aa4e6926d1389cf4d79364e23592" class="collapsible-menu"></ul></li>
<li class="" data-nav-id="/workflows/index.html"><a class="padding" href="/workflows/index.html">Workflows</a><ul id="R-subsections-87fd3d7b9e4d48a0ba290b60ba4064f4" class="collapsible-menu"></ul></li>
</ul>
</div>
<div id="R-shortcutmenu-shortcuts" class="R-sidebarmenu">
<ul class="space collapsible-menu">
<li class="" data-nav-id="/about"><a class="padding" href="/about"><i class='fas fa-info-circle'></i> About</a></li>
<li class="" data-nav-id="/training"><a class="padding" href="/training"><i class='fa fa-university'></i> Training</a></li>
<li class="" data-nav-id="/support"><a class="padding" href="/support"><i class='far fa-question-circle'></i> Support</a></li>
<li class="" data-nav-id="/releases"><a class="padding" href="/releases"><i class='fas fa-download'></i> Download and Install</a></li>
</ul>
</div>
<div class="padding footermargin footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showFooter"></div>
<div id="R-menu-footer">
<hr class="padding default-animation footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showFooter">
<div id="R-prefooter" class="footerLangSwitch footerVariantSwitch footerVisitedLinks">
<ul>
<li id="R-select-language-container" class="footerLangSwitch">
<div class="padding menu-control">
<i class="fa-fw fas fa-language"></i>
<span>&nbsp;</span>
<div class="control-style">
<label class="a11y-only" for="R-select-language">Language</label>
<select id="R-select-language" onchange="location = this.querySelector( this.value ).dataset.url;">
<option id="R-select-language-en" value="#R-select-language-en" data-url="/import/ensemblefiledialog/index.html" lang="en-us" selected></option>
</select>
</div>
<div class="clear"></div>
</div>
</li>
<li id="R-select-variant-container" class="footerVariantSwitch">
<div class="padding menu-control">
<i class="fa-fw fas fa-paint-brush"></i>
<span>&nbsp;</span>
<div class="control-style">
<label class="a11y-only" for="R-select-variant">Theme</label>
<select id="R-select-variant" onchange="window.relearn.changeVariant( this.value );">
<option id="R-select-variant-relearn" value="relearn" selected>Relearn</option>
</select>
</div>
<div class="clear"></div>
</div>
<script>window.relearn.markVariant();</script>
</li>
<li class="footerVisitedLinks">
<div class="padding menu-control">
<i class="fa-fw fas fa-history"></i>
<span>&nbsp;</span>
<div class="control-style">
<button onclick="clearHistory();">Clear History</button>
</div>
<div class="clear"></div>
</div>
</li>
</ul>
</div>
<div id="R-footer" class="footerFooter showFooter"><a href="https://www.ceetronsolutions.com"><img src='https://resinsight.org//images/CeeSolLogoSmallForDarkBackground.png' style='width: 140px; '></a><br>
ResInsight is developed by <br> <a href="https://www.ceetronsolutions.com">Ceetron Solutions</a>
<p>in collaboration with</p>
<a href="https://www.equinor.com">Equinor ASA</a>
</div>
</div>
</div>
</aside>
<script src="/js/clipboard.min.js?1739528537" defer></script>
<script src="/js/perfect-scrollbar.min.js?1739528537" defer></script>
<script src="/js/theme.js?1739528537" defer></script>
</body>
</html>