EMAworkbench
EMAworkbench copied to clipboard
EMAworkbench and Rhodium
Is EMAworkbench an update of Rhodium? Is it possible to briefly describe the difference between the two in README.md? Thanks!
No, Rhodium is actually a python port of openMORDM, an R package (https://doi.org/10.1016/j.envsoft.2015.07.014 https://github.com/OpenMORDM/OpenMORDM). The workbench started already in 2010 and has a much longer history. I have had a series of talks with the makers of Rhodium on merging our efforts, but for various reasons that has so far not happened.
Rhodium and the workbench have a largely overlapping feature set and quite similar dependencies. Bothy use platypus_opt to support Many Objective Evolutionary Algorithms, and SALib for more advanced sampling techniques.
Rhodium is part of project platypus, which also contains amongst others platypus_opt and the prim package. The standalone prim package is actually a port of the prim code that comes with the workbench.
A major difference between the workbench and rhodium is that the workbench has been designed to explicitly interact with models developed in other modelling environments (e.g, netlogo, vensim, excel, java, anylogic, modflow, pcraster, arena, simio). Out of the box it ships with ready made classes for NetLogo, Vensim, and Excel, but I have working examples for any of the other aforementioned tools. Rhodium does not offer any support for this.
Probably the best way of getting a sense of the differences at the API level is to compare rhodiums implementation of the DPS lake problem (https://doi.org/10.1016/j.envsoft.2017.02.017) https://github.com/Project-Platypus/Rhodium/blob/master/examples/Basic/dps_example.py with the one that comes with the workbench: https://github.com/quaquel/EMAworkbench/blob/master/ema_workbench/examples/lake_model_dps.py
Thank you very much for your detailed explanation. I think I'll go using EMAworkbench for my work.
If you have any further questions, just post them here or contact me by e-mail. I will include a discussion on Rhodium in the documentation as soon as possible.
Will do, thanks again for your prompt reply!
@cedavidyang It took some time, but with #184 we now included this in the official docs: Alternative packages