DHI/mikeio1d

Make the UI/UX experience in jupyter notebooks better

ryan-kipawa opened this issue · 5 comments

The current mikeio1d is fairly primitive and not that accessible for beginner python users. Examples of potential improvements include:

  • Reading results: currently requires making a query object. Simplify so that in the read function itself you can specify ID(s), item(s), time(s), etc.
  • Loading results: should only be done upon reading, not opening a .res1d file. For large result files it's nice to load the file to see what's in it before reading (e.g. result types, time frames). Right now there's some functionality to limit what's read to specific items, but it's specified as arguments when first opening the res1d file. The ideal is to load nothing, until the read function where you specify precisely what you want to load (object ID, result item, time steps)
  • Result objects: a more granular definition of these would help. For example, a modeller might be looking for a 'weir', or an 'orifice', or a 'pump', or a plain 'conduit'. In mikeio1d, all of these are considered 'reaches'. I get the history behind it, but for ui/ux it could be improved here, even if only as abstractions.
  • Result processing: other issues opened include features to help working with the results, like exporting to shapefiles or making derived results. Adding some flexibility here would lower the bar for users to do some useful things on their own.

Agreed! @murray91 , maybe we could have a working team to get it planned out.

AL89 commented

Couldn't agree more, @rywm-dhi.

And instead of creating a new thread, I also have a wish for improvements. Or maybe it is already available, I just can't find the specific data.

Here is my problem:
In MIKE VIEW I can create a length profile of a system I choose, from an upstream Node to a downstream Node. On the default length profile that pops up in a new window, I am able to see many details. For the Nodes I can see the water level for the specific calculation, and also the bottom and terrain levels. For the Links I am able to see the size (dimension).
Now, using the mikeio1d module, how do I access those standard model details, like the bottom and terrain levels for the Nodes and the dimension for the Links? I know I can retrieve the result data, like the water levels, but how do I access the data that was specified in the MIKE+ model (.sqlite) I have? Because if MIKE View can retrieve them, I bet I can retrieve it with the mikeio1d module, right?

Thanks in advance!

Hi @AL89, very relevant question. I created a discussion #53 showcasing how some of your requested static network data could be accessed. It is clear from that example that the current access of static network data is not very easy to use. We need improvements here. Would you mind creating a new issue, requesting for more useful API in MIKE IO 1D for accessing static data?

AL89 commented

Hi @gedaskir - thanks for your quick response.
And thank you for showcasing how to access static data. I agree that it currently is not an easy-to-use approach to access network data. I can create an updated issue occasionally regarding this.

I think this can be closed now. Everything has been implemented except for derived quantities which is already covered in #18 .