equinor / webviz-subsurface-components

Custom subsurface visualizations for use in Webviz and/or Dash.
https://github.com/orgs/equinor/projects/24
Mozilla Public License 2.0
33 stars 40 forks source link

Leaflet component #110

Closed HansKallekleiv closed 4 years ago

HansKallekleiv commented 4 years ago

Layer types:

Data input:

Interactivity:

anders-kiaer commented 4 years ago

Sounds good! 🎉🚀 I guess we might want to collaborate on that same PR #109, when people have time (cc @anders-kiaer, @HansKallekleiv, @thor85 ++) - we can always go back some commits if we decide on going a different route.

Since this is a big issue - we can maybe put our name behind each of the subtasks when self-assigning something, such that we don't work on the same item simultaneously.

HansKallekleiv commented 4 years ago

Good plan. Also feel free to add any tasks / ideas to this issue. The list above is far from complete.

thor85 commented 4 years ago

I tried looking into tile generation/serving. No conclusion, but posting some links you can check out.

Vector tiles is probably not the solution for surfaces, but could maybe be used for other data, e.g. cylinder logs?

ashildskalnes commented 4 years ago

I would also like to have an option to print a well name along a well (not only as tooltip)

thor85 commented 4 years ago

I would also like to have an option to print a well name along a well (not only as tooltip)

Currently I show wellnames on a tileLayer in Troll Maps, but I have made a branch where I display names as svg. It was noticeably slower on Troll with so many wellbores, so I left it for a while untill I have time to look at a different option (maybe pixiJS?). Svg probably works fine for most fields with much less wells though.

ashildskalnes commented 4 years ago

Correct colormap scaling given min-/max values (both for map values inside or outside given min/max)

ashildskalnes commented 4 years ago

Possibility to change the map without having to add the well layers again

asnyv commented 4 years ago

Should have an option for logarithmic colormap (e.g. for permeability)

anders-kiaer commented 4 years ago

This is a summary of feature requests that is aimed for being included in the Dash LayeredMap component ("version 2") - which will replace and improve the existing LayeredMap component.

The existing component can be viewed in action in the live demo on e.g. pages "Surface with seismic cross-section" (which shows how the user can draw a line, update the component state, and use Dash callbacks to update another Dash component) and "Surface viewer (FMU)" (which shows usage of syncing different instances of the same component). Example of Python usage of the current version is available here.

It can be assumed that the data to be visualized is available locally on disk, and available to the Python instance running.

Existing features that should probably be kept in some way:

* We have some simple hill shading implemented in the current version using WebGL. This could be improved (see this and this reference for inspiration).

Improvements to existing features / new features:

from flask import Flask

app = Flask(__name__)

@app.route("/tiles/<zoom>/<y>/<x>")
def tiles(zoom, y, x):
    return send_file(f"./sometile{zoom}_{x}_{y}.png")

if __name__ == "__main__":
    app.run(debug=False, host="localhost", port=8080)
anders-kiaer commented 4 years ago

A bit more explanation on the "logarithmic colormap" and "cut-of points" on colormap.

A rough sketch of linear/logarithmic in MS Paint 😎 🎨 image

anders-kiaer commented 4 years ago

Implemented in #219. Let us move any remaining missing/wanted feature requests to separate issues.