DOI: 10.4121/908dd8a2-821e-485b-b659-21995f273e4e.v2
title: Supporting data and code for: Investigating the Operational Feasibility for Drones Using Wind Simulations in Rotterdam

description: Supporting data and code for: <strong><em>Investigating the Operational Feasibility for Drones Using Wind Simulations in Rotterdam</em></strong><br>This research investigates drone safety and operational feasibility in urban environments using computational fluid dynamics (CFD) simulations of Rotterdam, Netherlands. The study employs Reynolds-Averaged Navier-Stokes (RANS) equations to model 3D wind fields across the city, using uncertainty quantification through polynomial chaos expansion to select optimal inflow angles based on 2022 weather data.<br>The research demonstrates that comprehensive city-wide risk analysis can be achieved with relatively few well-selected inflow conditions, and shows that drones capable of withstanding wind speeds of 12 m/s and medium turbulence levels could operate safely approximately 90% of the time. <br>The methodology involves preprocessing geometric data from Dutch national datasets, running CFD simulations across four mesh regions, and performing both city-wide risk assessment and yearly operational feasibility analysis. The code used for this work is included in this repository and summarised below.<br><br><strong>Pre-processing geometry and running City4CFD</strong><strong>city4cfd_process.zip</strong> - Preprocesses geometric data from Dutch national datasets (3DBAG, PDOK, AHN4) by splitting combined geometries into four manageable areas for City4CFD processing. Outputs processed geometries ready for OpenFOAM.<br><strong>Requirements</strong>: City4CFD, Python 3<br><strong>Dakota Uncertainty Quantification</strong><strong>dakota_run.zip</strong> - Performs uncertainty quantification using polynomial chaos expansion to determine optimal inflow angles for CFD simulations based on 2022 KNMI weather data from Rotterdam. Generates histogram data and extracts wind angles for OpenFOAM simulations.<br><strong>Requirements</strong>: Dakota 6.19, Python 3<br><strong>OpenFOAM Sampling Preparation</strong><strong>prep_openfoam_sampling.zip</strong> - Prepares OpenFOAM sampling by aligning sampling points across the 4 different regions in OpenFOAM coordinates, enabling precise averaging of results in overlapping areas. Outputs aligned sampling surfaces and probes.<br><strong>Requirements</strong>: Python 3, OpenFOAM-7, and rusterizer (https://github.com/ipadjen/rusterizer)<br><strong>Running OpenFOAM</strong><strong>openfoam_cases.zip</strong> - Contains OpenFOAM simulation setup to solve Reynolds-Averaged Navier-Stokes (RANS) equations for computing 3D wind fields over Rotterdam's urban terrain for the 4 different regions. Simulations performed for multiple inflow angles determined through uncertainty quantification.<br><strong>Requirements</strong>: OpenFOAM-7 with custom turbulence models from https://github.com/gsclara/UrbanFoam <br><strong>Post-Processing Pipeline</strong><strong>post_processing.zip</strong> - Transforms raw OpenFOAM results into comprehensive drone safety analysis through statistical processing, city-wide risk assessment, and operational feasibility evaluation. The pipeline processes simulation data using weather-weighted statistics, generating risk maps, contour plots, and publication-ready visualizations.<br><strong>Requirements</strong>: Python 3<br><strong>Mesh Overlap Check</strong><strong>check_mesh_overlap.zip</strong> - Checks CFD simulation consistency across different mesh regions by analysing overlapping areas. Processes VTK files, transforms coordinates between reference frames, and quantifies field differences at overlapping mesh boundaries.<br><strong>Requirements</strong>: Python3