Geosiris Open EnergyML Studio

Geosiris / Data handling · 7 min

EnergyML Studio

Open, check, edit and display EnergyML data in your web browser — nothing to install, and no file ever leaves your computer.

EnergyML Studio is the successor of our Web Studio. It reads RESQML, WITSML and PRODML data, whatever their release, packaged as EPC files with their HDF5 arrays or held on a server, and lets you explore it, check it against the standards, correct it, complete it and see it in 2D and 3D.

Its core is the same Rust library as our open-source components, compiled to WebAssembly. The application therefore runs entirely in the browser tab: there is no server behind it, and the files you open are read on your own computer.

Open EnergyML Studio — a synthetic example model is provided, so you can try every feature below without data of your own.

The demonstrations announced on this page will be published on our YouTube channel.

Open your data

  • Packages and their arrays. Drop an EPC file, with its HDF5 files or without them: the inventory, the editor, the graph and the saving work in both cases. Files are recognised by their content, not by their name.
  • Several packages at once, each with its own colour, and the possibility to bring all or part of one package into another: the tool first lists the new, identical and conflicting objects, and lets you decide for each conflict.
  • Other sources: meshes (OBJ, PLY, STL), tables (CSV, Parquet), GeoJSON features, WITSML wells and logs.
  • Nothing is lost. Unsaved changes left by a previous visit are offered back when you return.

Demonstration 1 — First steps (video to come). Open the example model provided with the application, with and without its HDF5 file. A quick tour: the object tree, an object opened in a panel, the graph of its references, and the model in 3D. About two minutes.

Explore a package

  • Five tree views of the same package — by type; from feature to interpretation, representation and property; the reverse way; by model; by collection — plus a sortable table and a search on title, type or UUID.
  • An interactive graph of the references, expanded node by node in the direction you choose, exported as an image.
  • Compare two packages, object by object and field by field, matched on their UUID.
  • Statistics and a written report of the package, ready to share.
  • The standards at hand: the documentation of every class and field of the schema, and the property kind dictionary.
  • The files of the package: every part and attached document (PDF, Markdown, text), which can be viewed, added or removed.

Demonstration 2 — Understand a package you did not write (video to come). Receive an unknown EPC file and find your way in it: the five tree views, the reference graph grown from one surface, the statistics, and the comparison with an earlier delivery of the same model.

Validate and repair

  • A verdict on the whole package: errors, warnings and notes, by rule or by object, with the unreadable parts counted apart.
  • Each error at its place: the faulty field is shown in red in the editor, and its parent too, even when folded.
  • Your own rules: a rule set of your organisation can be loaded on top of the standard checks.
  • Repair in one action the references that point to an object present under another identifier; what cannot be repaired is listed with the reason.
  • No accidental delivery: saving a package that still holds errors asks for confirmation.

Demonstration 3 — Check and repair a faulty package (video to come). The example model also exists with deliberate mistakes. Run the check, read the verdict, follow an error to the field concerned, fix it, repair the broken references in one action, check again, and save a clean package.

Edit and create

  • A field-by-field editor driven by the schema itself: one widget per type, the documentation of each field on hover, and the list of classes an empty slot accepts.
  • References chosen, not typed: among the objects of the package, from the property kind dictionary, or by UUID for an object held elsewhere.
  • New objects with their identity and citation already filled in.
  • A workshop for the repetitive work: the skeleton of a base model, built in one step and shown before it exists; missing features restored; one value set on many objects at once.
  • Every change can be undone, deletion included, and a journal keeps the list of changes. Deleting an object first shows what would be left pointing at nothing.

Demonstration 4 — Complete a model (video to come). Edit a field with the schema documentation in view, create a new interpretation and link it to its feature, set a property kind from the dictionary, delete an object after reading its impact, then undo everything step by step.

See the model

  • 3D: several objects at once, coloured by property or by stratigraphic unit, with vertical exaggeration, a graduated bounding box and the true coordinates of any picked point. What cannot be drawn is listed, with the reason.
  • Map: the footprints of the package on a map, an optional background map and the real relief of the area, both downloaded only when you ask for them.
  • Cross-sections along a trace drawn on the map or in 3D, cutting surfaces and wells from several packages, exported as images or stored in the package itself.
  • Wells: which data each well holds, the well column unrolled along the measured depth, the logs in measured or vertical depth, and the stratigraphic tops.
  • Charts: cross-plots of two properties, data arrays read as tables, time series.

Demonstration 5 — From map to cross-section (video to come). Show the model on its map with the background and the real relief, draw a trace across it, open the cross-section through surfaces and wells, adjust colours and markers, export it as an image and store it in the package.

Demonstration 6 — Wells (video to come). The well matrix of a field, a well column coloured by stratigraphic unit, its logs in depth, and the tops read on the wells, side by side with the 3D view.

Build with operations

A catalogue of geomodeling operations creates new objects from those already in the package: surfaces from points, contour lines, 2D and 3D grids, faults, thicknesses and other measures, wells from a table or a trajectory, structural frameworks. Each operation first shows what it is going to produce. Results stay in the scene until you decide to add them to the package.

Demonstration 7 — Build a surface from scratch (video to come). Import a table of points, build a surface from it, draw its contour lines, cut it along a trace, and add the result to the package with its colour map.

Work with a server

  • Connect to an ETP server, or to an OSDU Reservoir DDMS, and read a dataspace as you would read a file.
  • Follow the changes made by other users while you work.
  • Send your changes back: the tool lists the objects and arrays added, modified or removed, warns when the server copy has changed in the meantime, and sends them in small transactions.

Demonstration 8 — Edit a dataspace on an ETP server (video to come). Connect to a server, choose a dataspace, check it as a whole, correct an object, and send the change back, with the review of what is going to be sent.

Analyse injection tests and water samples

For geothermal and injection projects, PRODML data receive dedicated views: the injectivity diagnostic and the Hall plot of an injection test, and the Piper and Stiff diagrams and the ionic balance of a water analysis.

Demonstration 9 — Geothermal data (video to come). Open an injection test and read its injectivity index and its Hall plot; open a water sample and read its facies on a Piper diagram.

Save and share

The package is saved as an EPC file with its HDF5 files, in full or for a selection of objects. Views export as images (3D, map, graph, cross-sections), features as GeoJSON, tables as CSV, meshes as OBJ, GeoJSON or VTK.

Good to know

  • Privacy. Everything happens in the browser. Only two things ever reach the network, and only when you ask for them: the background map tiles and the public data you choose to download.
  • Size. The whole package is held in the memory of the browser tab: a few hundred megabytes work well; beyond that, the application says so rather than failing silently.
  • Languages. English and French.
  • The library underneath — reading, checking and writing EnergyML data from Rust, Python or the command line — is open source: see energyml-rust on GitHub.

Back to Editors / Validators.