3D flight route optimization for air-taxis in urban areas (Python + arcpy repository)
This is a repository for an 3D route optimization for air taxis with the multiple criteria "Shortest Flight Time", "Least Energy Consumption" and "Least Added Noise". This dataset includes the code and information of how to run the optimization. The optimization can be run for multiple eVTOL types in any urban area, if the flight characteristics of the aircrafts are known and if the spatial input data is available. In the predefined set-up, the study area is New York City, and the supported aircraft types the Lilium jet 5-seater and the Ehang 184. If you wish to keep up with ongoing changes, please visit the referenced Github repository. Requirements: Install and get license for ArcGIS Pro (https://pro.arcgis.com/en/pro-app/get-started/install-and-sign-in-to-arcgis-pro.htm) Set up your Python environment: You need Python 3.68 (Comes with ArcGIS Pro). The libriaries that come with it are additionally listed in requirements.txt. Use the environment of ArcGIS Pro to run the main.py. For example, the environment for my installation is: "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" Download the Geodatabase "OptimizationInputs" and unzip. In init.py, set arcpy.env.workspace = r'...\OptimizationInputs.gdb' to the path where you stored the downloaded Geodatabase Running the optimization: Define, which aircraft you want to use. Currently you can use the flight characteristics of the Lilium Jet 5-seater (aircraft = "Lilium") or to the Ehang 184 (aircraft = "EHANG") in main.py Define the parameters that you want to use in main.py. Keep in mind, that bigger population sizes increase the computation time. The default population sie is therefore small. Define how often you want to run the loop in the main.py at location "for seed in range(1):" Run the main and do not open ArcGIS Pro until optimization has finished. Otherwise you can lock the Geodatabase in use. Getting the results: The logged data that contain the fitness values are stored in the directory "LogFiles". The runs from you contain "new" in their names. The Point Feature Classes are stored in the Geodatabase.