UrbanLabs

Introduction

UrbanLabs is UrbanSim’s experimental Python Jupyter notebook hosting service running on JupyterHub using the JupyterLab user interface. UrbanLabs provides a virtual machine to run code via command line or Jupyter notebook that can be accessed in the web browser. For clients with consulting contracts, we use this service to host Python Jupyter notebooks to walk clients through the various stages of the model development process at the programming code-level. UrbanLabs user accounts are tied to UrbanCanvas where upon login your default Python working environment is established using a Docker container that contains a set of default UrbanSim related Python packages and GitHub repos as well as any specific repos related to your modeling consulting contract. New Python packages or JupyterHub extensions can be installed on the fly and external data can be uploaded to the virtual machine during the session at anytime. Some of the technologies underlying UrbanLabs, including the Zero to JupyterHub for Kubernetes deployment distribution UrbanLabs currently uses, are still in the early stages of development so this service should be considered experimental with updates planned over time.

Please note that your UrbanLab user session will timeout after a period of inactivity to free up server resources. Currently when this happens, any data stored on your remote session will be preserved (e.g. GitHub repo directories or data and data directories) from session to session however your computing environment (e.g installed Python environment) will not be. Server resources can be manually scaled by UrbanSim to appropriately fit the computing requirements for tasks performed in UrbanLabs before a session has been initiated.

For more on how to use the JupyterLab user interface in UrbanLabs see the JupyterLab help system or for general Jupyter information see the Jupyter general help system.

Note

UrbanLabs is currently an experimental service used by UrbanSim to review and showcase programming code-level model information with clients and is not a service currently available on-demand for client use. Contact us here to learn more.

login_page

Notes

  • When viewing Jupyter notebooks with JupyterLab that have embedded JavaScript code, if you see blank cell output after running the cell and you do not already have Node.js installed on your local machine, you will need to download and install Node.js on your local machine in order to render the notebook cells that use JavaScript on your web browser. Once installed, you must close and re-open your browser to have it register Node.js.