Contains the code for generating data required for the PredictingLocalWindFields in 3D project.
Generates the following data:
- 2D Cityscapes
- Drone positions
- 2D LiDAR scan
- 2D Windflow data
- 3D Wind flow field using Phiflow
- 3D Cityscape using quadtrees for intersection (csv and mat files)
- PointCloud Data from a simulated LiDAR on a UAV using the MATLAB UAB ToolBox
Install the required packages using the following command:
pip install -r requirements.txtRun the following command to generate the cityscapes:
python main.py gen cityscapesRun the following command to generate drone positions:
python main.py gen droneRun the following command to generate wind flow fields:
python main.py gen windflowRun the following command to save visualisations of the wind flow fields:
python main.py viz wind --index 10 --export-allRun the following command to generate 2D LiDAR scans:
python main.py gen lidarRun the following command to generate demo viz cityscapes:
python main.py viz wind --index 10 --export-all --export-dir data/demoviz --map_size 140Run the following command to generate transparent cityscapes:
python main.py viz wind --index 10 --export-all-transparent --map_size 140 --export-dir data/transparentTo the run the interactive demo 🎮
python main.py demo --index 0The MATLAB files present in this repo must be run from the MATLAB editor application.
The 3D LiDAR simulation is conducted using the MATLAB UAV toolbox. MATLAB requires 4 corners of a rect to create a mesh. The CSV file contains the start and end coordinates for a rect. The .mat files contain the 4 corners of the rect.
data/
├─ cityscapes/
│ ├─ city_0.csv
│ ├─ city_1.csv
│ ├─ city_(...).csv
│ ├─ city_60.csv
├─ drone_positions/
│ ├─ city_0.csv
│ ├─ city_1.csv
│ ├─ city_(...).csv
│ ├─ city_60.csv
├─ exportviz/
│ ├─ city_0.png
│ ├─ city_1.png
│ ├─ city_(...).png
│ ├─ city_60.png
├─ matlab_meshes/
│ ├─ city_0.mat
│ ├─ city_1.mat
│ ├─ city_(...).mat
│ ├─ city_60.mat
├─ lidar/
│ ├─ city_0_pos0.npy
│ ├─ city_0_pos1.npy
│ ├─ city_0_pos(...).npy
│ ├─ city_1_pos0.npy
│ ├─ city_1_pos1.npy
│ ├─ city_1_pos(...).npy
│ ├─ city_(...)_pos(...).npy
├─ windflow/
│ ├─ city_0.npy
│ ├─ city_1.npy
│ ├─ city_(...).npy
│ ├─ city_60.npy
├─ pointclouds/
│ ├─ city_0/
│ │ ├─ pointcloud_1.csv
│ │ ├─ pointcloud_(...).csv
│ │ ├─ pointcloud_10.csv
│ ├─ city_1/
│ │ ├─ pointcloud_1.csv
│ │ ├─ pointcloud_(...).csv
│ │ ├─ pointcloud_10.csv
│ ├─ city_60/
│ │ ├─ pointcloud_1.csv
│ │ ├─ pointcloud_(...).csv
│ │ ├─ pointcloud_10.csv- UAV Toolbox
- Aerospace Blockset
- Aerospace Toolbox
- Control System Toolbox
- Navigation Toolbox
- Stateflow
- Simulink
- Simulink 3D Animation

