Journal of Hydroinformatics (Feb 2024)

Client-side web-based model coupling using basic model interface for hydrology and water resources

  • Gregory Ewing,
  • Carlos Erazo Ramirez,
  • Ashani Vaidya,
  • Ibrahim Demir

DOI
https://doi.org/10.2166/hydro.2024.212
Journal volume & issue
Vol. 26, no. 2
pp. 494 – 502

Abstract

Read online

A recent trend in hydroinformatics has been the growing number of data, models, and cyber tools, which are web accessible, each aiming to improve common research tasks in hydrology through web technologies. Coupling web-based models and tools holds great promise for an integrated environment that can facilitate community participation, collaboration, and scientific replication. There are many examples of server-side, hydroinformatics resource coupling, where a common standard serves as an interface. Yet, there are few, if any, examples of client-side resource coupling, particularly cases where a common specification is employed. Toward this end, we implemented the basic model interface (BMI) specification in the JavaScript programing language, the most widely used programing language on the web. By using BMI, we coupled two client-side hydrological applications (HydroLang and HLM-Web) to perform rainfall–runoff simulations of historical events with rainfall data and a client-side hydrological model as a case study demonstration. Through this process, we present how a common and often tedious task – the coupling of two independent web resources – can be made easier through the adoption of a common standard. Furthermore, applying the standard has facilitated a step toward the possibility of client-side ‘Model as a Service’ for hydrological models. HIGHLIGHTS We present the basic model interface (BMI) specification for the JavaScript programming language.; We present a comprehensive example of how BMI may be used as a common standard to couple client-side, hydroinformatics web resources.; For developers, BMI for JavaScript simplifies the effort needed to implement an Application Programing Interface for their resource.; For users, BMI for JavaScript accelerates learning and working with a new resource.;

Keywords