![Page 1: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/1.jpg)
www.randbe.es9 November 2015 1
Desarrollo de interfaces gráficas para librerías de R: OpenCPU y la librería “spdynmod”
Juan Arévalo-TorresJavier Martínez-López
![Page 2: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/2.jpg)
www.randbe.es9 November 2015 2
Who are we?
• University of Murcia Department of Ecology andHidrology (Spain)
• BC3 Basque Climate Change Centre (Bilbao)
• Randbee Consultants is a consulting firm made of amultidisciplinary team of researchers with a strongenvironmental science background (Malaga)
![Page 3: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/3.jpg)
www.randbe.es9 November 2015 3
Objectives
• Create a GUI for an existing R model library
• Test OpenCPU for model GUI development anddocumentation
• Compare OpenCPU with Shiny
![Page 4: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/4.jpg)
www.randbe.es9 November 2015 4
The Spdynmod library on CRAN
Martínez-López, J., Martínez-Fernández, J., Naimi, B., Carreño, M.F., Esteve, M.A., 2015. An open-source spatio-dynamic wetland model of plant community responses to hydrological pressures. Ecological Modelling 306, 326–333.
![Page 5: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/5.jpg)
www.randbe.es9 November 2015 5
Watershed Irrigation and Wetland plant communities
![Page 6: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/6.jpg)
www.randbe.es9 November 2015 6
Spdynmodocpu (R library using OpenCPU)
![Page 7: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/7.jpg)
www.randbe.es9 November 2015 7
What is OpenCPU?
• Web application framework for R (user library and server)• System exposes an HTTP API for embedded scientific computing with R• Can run as a single-user development server or as a high performance multi-user cloud server • OpenCPU JavaScript client library provides full integration of R and other JavaScript libraries
![Page 8: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/8.jpg)
www.randbe.es9 November 2015 8
OpenCPU vs ShinyOpenCPU Shiny
OpenCPU requires some basic knowledge on CSS and JavaScript
Fast prototyping and development without knowledge of JavaScript and CSS languages
OpenCPU server is easy to set up it only takes a few minutes (100% open source)
Easy to deploy Web apps using shinyapps hosting service and shiny server library (commercial)
No limit to the number of concurrent users Single R process per application
OpenCPU server provides a reliable and interoperable HTTP API for data analysis based on R
Shiny currently lacks of a REST API
Applications will naturally support parallel computing and asynchronous requests
Shiny can potentially support parallel computing but it is rather a presentation tool
Direct integration with any JavaScript library Shiny uses only JavaScript libraries already implemented in R
![Page 9: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/9.jpg)
www.randbe.es9 November 2015 9
Examples of Shiny apps
![Page 10: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/10.jpg)
www.randbe.es9 November 2015 10
Spdynmod GUI (server/desktop app)
![Page 11: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/11.jpg)
www.randbe.es9 November 2015 11
Spdynmod GUI (model run)
![Page 12: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/12.jpg)
www.randbe.es9 November 2015 12
Spdynmod GUI (model validation)
![Page 13: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/13.jpg)
www.randbe.es9 November 2015 13
Spdynmod documentation
![Page 14: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/14.jpg)
www.randbe.es9 November 2015 14
Conclusions
• OpenCPU good option for running models using GUIs
• Easy to link with existing JS and R libraries (spdynmod/spdynmodocpu)
• GUIs are useful for targeting different end-users and improve model documentation
• Easy to deploy, install and replicate (server/local):devtools::install_github(“javimarlop/spdynmodocpu”)
![Page 15: Desarrollo de interfaces gráficas para librerías de R ...r-es.org/7jornadasR/ponencias/juan_arevalo.pdf · and JavaScript. Fast prototyping and development without knowledge of](https://reader030.vdocuments.mx/reader030/viewer/2022041007/5ead5090c0f51c715878bd22/html5/thumbnails/15.jpg)
www.randbe.es
Thanks
9 November 2015 15
The spdynmod library: https://github.com/javimarlop/spdynmod
The interface library: https://github.com/javimarlop/spdynmodocpu
Join us at the Spdynmod Community:
Join the Randbee Team: [email protected]