Design and Implementation of DJI UAV Aerial Photogrammetry Data Management System

In recent years, the rapid advancement of unmanned aerial vehicle (UAV) technology, particularly with DJI UAV models, has revolutionized aerial photogrammetry. As a leading provider, DJI drone systems offer cost-effective, flexible, and high-precision solutions for capturing spatial data. However, managing the vast amounts of data generated by DJI UAV aerial surveys presents significant challenges. Traditional folder-based storage methods often lead to data confusion, security vulnerabilities, and inefficiencies in handling multiple projects. Moreover, the inability to promptly assess data quality, such as identifying gaps or insufficient overlap in imagery, can result in costly re-flights and project delays. To address these issues, I designed and implemented a comprehensive data management system specifically for DJI UAV aerial photogrammetry. This system leverages metadata extraction, spatial visualization, and automated quality checks to streamline workflows. By integrating key technologies like EXIF and XMP data analysis, projection algorithms, and overlap calculations, the system enables efficient storage, real-time quality evaluation, and multi-format data exports. In this article, I detail the system’s architecture, core functionalities, and testing outcomes, emphasizing its application to DJI drone operations, including models like DJI FPV, to enhance data management in fields such as environmental monitoring, construction, and emergency mapping.

The foundation of this system lies in harnessing metadata from DJI UAV imagery. Specifically, EXIF (Exchangeable Image File Format) and XMP (eXtensible Metadata Platform) data provide critical information about each image. EXIF data, embedded in JPEG or TIFF files, includes details such as camera model, resolution, capture time, exposure parameters, and GPS coordinates (latitude, longitude, and altitude). For instance, a typical DJI drone captures EXIF data that facilitates geotagging and camera calibration. XMP, being extensible, records UAV-specific attributes like flight speed, pitch angle, yaw angle, and roll angle, which are essential for accurate spatial analysis. By parsing these metadata, the system constructs a robust database that organizes images by project, task, and lens, ensuring structured storage and quick retrieval. This approach mitigates the risks of data mishandling and enhances security by centralizing information in a SQL Server database, as opposed to disparate folders.

To achieve spatial visualization of flight paths and coverage areas, I developed a projection algorithm that translates image data into ground coordinates. This process accounts for the DJI UAV’s POS (Position and Orientation System) data, including longitude ($L_0$), latitude ($B_0$), flight altitude ($A$), pitch angle ($\phi$), yaw angle ($\kappa$), and roll angle ($\omega$). The algorithm first calculates the angular field of view based on camera parameters. For an image with width $W_0$, height $H_0$, and focal length $F$, the lateral opening angle ($\theta$) and longitudinal opening angle ($\delta$) are derived as:

$$\theta = \tan^{-1}\left(\frac{W_0}{2F}\right)$$

$$\delta = \tan^{-1}\left(\frac{H_0}{2F}\right)$$

Next, considering the relative flight height ($A – A_0$), where $A_0$ is the average ground elevation, the coverage distances due to pitch and roll angles are computed. The pitch-related distances ($H_1$ and $H_2$) and roll-related distances ($W_1$ and $W_2$) are given by:

$$W_1 = (A – A_0) \cdot \tan(\theta – \omega), \quad W_2 = (A – A_0) \cdot \tan(\theta + \omega)$$

$$H_1 = (A – A_0) \cdot \tan(\delta – \phi), \quad H_2 = (A – A_0) \cdot \tan(\delta + \phi)$$

Using these, the ground coordinates of the image’s four corners are determined based on the yaw angle ($\kappa$) and the photo center coordinates ($X_0$, $Y_0$), which are converted from GPS data. The coordinates for the top-left ($X_1$, $Y_1$), top-right ($X_2$, $Y_2$), bottom-right ($X_3$, $Y_3$), and bottom-left ($X_4$, $Y_4$) points are calculated as:

$$X_1 = X_0 + H_2 \cdot \sin\kappa – W_1 \cdot \cos\kappa, \quad Y_1 = Y_0 + H_2 \cdot \cos\kappa + W_1 \cdot \sin\kappa$$

$$X_2 = X_0 + H_2 \cdot \sin\kappa + W_2 \cdot \cos\kappa, \quad Y_2 = Y_0 + H_2 \cdot \cos\kappa – W_2 \cdot \sin\kappa$$

$$X_3 = X_0 – H_1 \cdot \sin\kappa + W_2 \cdot \cos\kappa, \quad Y_3 = Y_0 – H_1 \cdot \cos\kappa – W_2 \cdot \sin\kappa$$

$$X_4 = X_0 – H_1 \cdot \sin\kappa + W_1 \cdot \cos\kappa, \quad Y_4 = Y_0 – H_1 \cdot \cos\kappa + W_1 \cdot \sin\kappa$$

This projection enables the automatic generation of flight route maps and coverage area maps, which are visualized using SharpMap in the system. For example, in a DJI FPV drone survey, this allows operators to quickly verify that the planned flight path aligns with the actual route and identify any missed areas.

Another critical component is the overlap calculation, which assesses the quality of DJI UAV aerial imagery. The forward overlap (along the flight direction) and side overlap (between adjacent strips) are vital for creating accurate orthomosaics and 3D models. The forward overlap ratio is defined as the ratio of the overlapping length ($P_x$) to the image length ($L_x$), while the side overlap ratio is the ratio of the overlapping width ($P_y$) to the image width ($L_y$). Mathematically, these are expressed as:

$$\text{Forward Overlap} = \frac{P_x}{L_x} \times 100\%$$

$$\text{Side Overlap} = \frac{P_y}{L_y} \times 100\%$$

The system automates these calculations by analyzing consecutive images in a flight strip and adjacent strips, flagging any pairs that fall below user-defined thresholds (e.g., 80% forward overlap and 65% side overlap for a DJI drone survey). This immediate feedback helps in deciding whether a re-flight is necessary, thus saving time and resources.

The system architecture is structured into three layers: presentation, logic, and foundation. The presentation layer provides an intuitive user interface built with C# and Developer Express, allowing users to interact with the system through commands and visual feedback. The logic layer acts as the core, comprising four modules: data ingestion, map generation, overlap calculation, and data export. Data ingestion involves importing DJI UAV imagery and metadata into the SQL Server database, organized by projects and tasks. For instance, a project may include multiple tasks from different DJI drone models, each with specific parameters. The map generation module uses the projection algorithm to create flight route and coverage area maps, which are rendered in real-time using SharpMap. The overlap calculation module computes and displays results in tabular form, highlighting deficiencies. The data export module supports multiple formats, such as Omega Phi Kappa (.txt), CSV (.csv), CASS (.dat), and Inpho (.txt), enabling seamless integration with other software like ArcGIS or photogrammetry tools. The foundation layer relies on SQL Server for data storage, with tables for projects, tasks, and POS data, ensuring data integrity and security.

In terms of implementation, I developed the system using the .NET framework in Visual Studio 2015, with C# as the primary language. The database schema includes tables for aerial survey projects, tasks, and POS data. For example, the project table stores fields like project name, creation date, and location, while the task table contains details such as drone model (e.g., DJI FPV), camera specs, and flight parameters. The POS data table holds image-specific information, including GPS coordinates and orientation angles, all linked through primary keys. This structured approach facilitates efficient querying and management, addressing the limitations of traditional folder-based systems.

To validate the system, I conducted tests with three distinct DJI UAV aerial survey cases, each representing different terrains and flight conditions. The details of these test cases are summarized in the table below:

Test Case Number of Images Number of Strips Flight Length (km) Area Covered (km²) Location Type Relative Height (m) Terrain
Case 1 151 9 1.2 0.01 Hotel area in a flat region 50 Relatively flat
Case 2 124 10 1.7 0.09 Mountainous area 100 High relief
Case 3 401 14 6.4 0.16 University campus 175 Relatively flat

For each case, I performed data ingestion, flight route map generation, and coverage area map creation. The system successfully imported all images, extracted EXIF and XMP data, and stored them in the database. The flight route maps displayed the actual paths of the DJI drone, allowing for quick comparisons with planned routes. The coverage area maps, generated using the projection algorithm, showed the image footprints and strip divisions. For example, in Case 2, which involved a DJI UAV in a mountainous region, the system visualized the complex terrain adjustments, highlighting its adaptability. I compared the results with those from commercial software like Inpho and found consistent strip counts and image arrangements, though minor differences in rotation occurred due to unprocessed POS data in our system. This demonstrates the system’s reliability in providing spatial insights for DJI FPV and other models.

Overlap calculation tests were conducted with predefined thresholds: 80% forward overlap for all cases, and side overlaps of 65%, 60%, and 75% for Cases 1, 2, and 3, respectively. The system computed the overlaps automatically and presented them in a table, with deficient pairs highlighted in red. Users could double-click any entry to highlight the corresponding image pairs on the map, facilitating easy identification of issues. In Case 3, for instance, the system flagged several image pairs with low side overlap, enabling prompt decisions on re-flights. This functionality proved crucial for quality assurance in DJI drone operations, reducing the risk of data inadequacies.

The data export module was tested by exporting POS data to various formats. In Case 1, I exported data to Inpho format and imported it into photogrammetry software, where it integrated seamlessly. Similarly, exports to CASS format supported cadastral mapping tasks. This interoperability enhances the utility of DJI UAV data across different applications, from environmental assessments to infrastructure projects.

In conclusion, the DJI UAV aerial photogrammetry data management system I designed addresses key challenges in data storage, visualization, and quality assessment. By leveraging metadata analysis, projection algorithms, and automated checks, it transforms traditional management practices into a digital, spatially visual process. Testing with real-world DJI drone data, including DJI FPV scenarios, confirmed its effectiveness in improving efficiency and reducing costs. Future work could involve integrating AI for advanced analytics and expanding support for more UAV models. This system represents a significant step forward in harnessing the full potential of DJI UAV technology for geospatial applications.

Scroll to Top