Improving Performance, Scalability, and Transparency of Urban Morphology Modeling
Urban morphology software can produce hundreds of outputs which can become unwieldy due to the difficulty of development, testing, scalability, and running speed. The process by which outputs are created is often not visible to the user due to obfuscated methodology. To address this issue, we introduce the use of Hamilton, a python micro-framework for creating dataflows from Python functions. This gives structure to the code base, ensures it is unit testable, allows the user to select outputs that executes only the necessary code, and adds the ability to deploy a Directed Acyclic Graph (DAG) to visualize the user-selected outputs. We demonstrate this using Neighborhood Adaptive Tissues for Urban Resilience Futures (NATURF), a Python package that enables the examination of the effect of urban morphology at variable resolutions on the urban microclimate. It calculates 132 urban parameters, each available as an output, based on spatial data of building footprints and heights, which can be utilized by the Weather Research and Forecasting (WRF) model. Users can run the NATURF to generate any given subset of the available parameters into commonly used data structures like data frames. Our approach can also scale to natively suit the needs of experiments designed to facilitate exploratory modeling. This type of software design and implementation is transferable to other scientific software that model the complexities of urban system dynamics.