A GNSS observation data statistical method, device and medium
Patent Information
- Application Number
- CN202611399599.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-10
- Publication Date
- 2026-10-13
AI Technical Summary
[0003]目前,在现有技术中,工程师通常需要人工选取各次记录中看似重叠的时间段进行对比,然而由于各设备时钟差异和采样时刻不完全同步,所选取的对比区间难以保证严格一致,不同天线或架次的数据常常在不完全相同的观测条件下被比较
[0015]本发明提供了一种GNSS观测数据统计方法、设备及介质,通过获取多个设备在飞行任务中记录的GNSS原始观测数据,为多设备信号质量评估提供原始数据基础;进一步地,通过对各设备的所述GNSS原始观测数据进行解析,得到各设备对应的观测数据表以及各设备对应的整秒时刻集合,将不同设备记录的原始观测数据转换为具有统一结构的观测数据表和整秒时刻集合;进一步地,通过对各设备的所述整秒时刻集合求交集,得到共同观测时间,确定所有设备均具有观测记录的时间点;进一步地,基于所述共同观测时间,从各设备的所述观测数据表中提取所述共同观测时间对应的观测子表,使各设备的观测数据仅保留所有设备均进行观测的时间段内的数据,从而在时间维度上实现严格对齐;进一步地,根据预设信噪比阈值,对各设备的所述观测子表进行统计,得到各设备在每个卫星信号标识下的达标观测次数和总观测次数,将各设备的信号接收质量量化为可统计的达标观测次数和总观测次数;进一步地,根据各设备的所述达标观测次数和所述总观测次数,计算各设备的信噪比达标占比,使不同设备在共同观测时间内的信号接收质量具有统一的量化比较指标;进一步地,根据各设备的总观测次数,对多设备的所述信噪比达标占比进行加权平均,得到加权后的整体信噪比达标占比,以各设备的总观测次数作为权重,避免因各设备观测样本数量差异导致整体统计结果偏向样本量较大的设备。由此,通过共同观测时间的提取和观测子表的对齐,消除了观测时段不一致对比较结果的影响;通过计算信噪比达标占比并以总观测次数加权平均,消除了观测样本量差异对整体指标的影响,从而在多设备、多架次场景下实现了对GNSS观测数据的客观比较和统计。
Smart Images

Figure CN122901889A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of GNSS technology, and in particular to a GNSS observation data statistical method, equipment, and medium. Background Technology
[0002] The performance evaluation of UAV-borne GNSS antennas under actual flight conditions requires raw observation data collected from multiple flights and multiple antennas. The data output by the GNSS receiver includes information such as timestamps, satellite numbers, and signal-to-noise ratio. However, data from different devices or flights are usually stored independently, and the starting time, sampling time, and observation duration recorded by each device are often inconsistent.
[0003] Currently, in existing technologies, engineers typically need to manually select seemingly overlapping time periods from various records for comparison. However, due to differences in clock speeds and incomplete synchronization of sampling times among different devices, it is difficult to ensure strict consistency in the selected comparison intervals. Data from different antennas or sorties are often compared under not entirely identical observation conditions. Furthermore, the number of satellites observed and the number of effective observations by different devices within the same time period may vary significantly. If multiple test results are simply summarized, the large sample size of the equipment data will disproportionately affect the overall statistical results, making it difficult for indicators such as the percentage of compliance to objectively reflect the true reception quality of each antenna. Therefore, the above problems make the batch comparison testing process for multiple antennas and sorties inefficient, and the fairness and repeatability of the statistical conclusions cannot be guaranteed. Summary of the Invention
[0004] This invention provides a method, device, and medium for statistical analysis of GNSS observation data. The technical problem it aims to solve is: how to provide an effective solution for objectively comparing and statistically analyzing GNSS observation data in scenarios involving multiple devices and multiple sorties.
[0005] In a first aspect, the present invention provides a method for statistical analysis of GNSS observation data, comprising: Acquire raw GNSS observation data recorded by multiple devices during flight missions; The raw GNSS observation data of each device is parsed to obtain the observation data table corresponding to each device and the set of whole second times corresponding to each device. The observation data table contains satellite signal identifiers. The common observation time is obtained by finding the intersection of the sets of integer seconds from each device. Based on the common observation time, extract the observation sub-table corresponding to the common observation time from the observation data table of each device; Based on the preset signal-to-noise ratio threshold, the observation sub-tables of each device are statistically analyzed to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier; Calculate the percentage of each device that meets the standard based on the number of observations for each device and the total number of observations; Based on the total number of observations for each device, the weighted average of the signal-to-noise ratio (SNR) compliance rates of the multiple devices is calculated to obtain the overall weighted SNR compliance rate.
[0006] Optionally, acquiring raw GNSS observation data recorded by multiple devices during the flight mission includes: In response to the record start command, the system receives the raw message output by the GNSS receiver, performs escaping and normalization processing on the raw message, and obtains normalized observation data. According to the preset separation rules, the standardized observation data is stored on disk as a raw data file; In response to the readback command, the original data file is read and the original GNSS observation data is output.
[0007] Optionally, before parsing the raw GNSS observation data from each device, the method further includes: Locate the target time segment separator in the original data file that does not follow a newline character; Insert a newline character after the target time period separator to make each observation time period stand on a separate line, thus obtaining a formatted raw data file; The parsing of the raw GNSS observation data from each device includes parsing the formatted raw data file.
[0008] Optionally, the step of parsing the raw GNSS observation data of each device to obtain the observation data table corresponding to each device and the set of whole-second times corresponding to each device includes: Extract the signal type code, signal strength value, and timestamp from the raw GNSS observation data; The signal type encoding is decoded to obtain the satellite signal identifier; A preset compensation operation is performed on the signal strength value to obtain the signal-to-noise ratio; The timestamp is converted from a UTC millisecond timestamp to Beijing time and truncated to the nearest second to obtain the exact second. The observation data table is constructed using the whole second as the row index, the satellite signal identifier as the column index, and the signal-to-noise ratio as the cell. All whole-second moments are extracted from the observation data table to form the whole-second moment set.
[0009] Optionally, decoding the signal type encoding to obtain the satellite signal identifier includes: Extract the satellite system identifier and signal type identifier code from the signal type code; According to the satellite system identifier, a preset signal type mapping relationship is queried, and the signal type identifier is encoded and mapped to a signal type identifier; When the satellite system is identified as GPS, extract the additional identification field; When the satellite system is identified as GLONASS, extract the frequency point number field; The satellite system identifier, the signal type identifier, the additional identifier field, and the frequency point number field are combined to obtain the satellite signal identifier.
[0010] Optionally, the step of finding the intersection of the sets of integer seconds from each device to obtain the common observation time includes: Perform an intersection operation on the set of integer seconds for each device to obtain the intersection; Determine whether the intersection is an empty set; If the intersection is an empty set, the error will be reported and the process will terminate. If the intersection is not an empty set, then the intersection is taken as the common observation time.
[0011] Optionally, the step of statistically analyzing the observation sub-tables of each device according to a preset signal-to-noise ratio threshold to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier includes: By statistically analyzing the observation sub-tables of each device according to the satellite system dimension, the number of satellites for each device is obtained. Using the preset signal-to-noise ratio threshold, traverse the observation sub-tables of each device and count the number of qualified observations for each satellite signal identifier; Count the total number of observations for each satellite signal identifier in the observation sub-table; The number of qualified observations, total number of observations, number of satellites, and average signal-to-noise ratio for each device were statistically analyzed based on both satellite system and device dimensions.
[0012] Optionally, after obtaining the weighted overall signal-to-noise ratio compliance rate, the method further includes: Get the current timestamp; A statistical curve is generated based on the number of satellites, the number of observations that meet the standard, the total number of observations, the average signal-to-noise ratio, and the percentage of those that meet the standard for each device. Embed the statistical curve chart into the summary table; Name the result file corresponding to the summary table with the current timestamp.
[0013] Secondly, the present invention also provides a computer device including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the above-described method.
[0014] Thirdly, the present invention also provides a computer-readable storage medium storing a computer program that, when executed by a processor, can implement the above-described method.
[0015] This invention provides a GNSS observation data statistics method, device, and medium. By acquiring raw GNSS observation data recorded by multiple devices during flight missions, it provides a raw data foundation for multi-device signal quality assessment. Further, by parsing the raw GNSS observation data from each device, it obtains observation data tables and sets of integer seconds corresponding to each device, converting the raw observation data recorded by different devices into observation data tables and sets of integer seconds with a unified structure. Further, by finding the intersection of the sets of integer seconds from each device, it obtains the common observation time, determining the time points when all devices have observation records. Further, based on the common observation time, it extracts observation sub-tables corresponding to the common observation time from the observation data tables of each device, ensuring that the observation data of each device retains only the time points when all devices conducted observations. The data within the time interval is strictly aligned in the time dimension. Furthermore, based on a preset signal-to-noise ratio (SNR) threshold, the observation sub-tables of each device are statistically analyzed to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier. This quantifies the signal reception quality of each device into statistically measurable number of qualified observations and the total number of observations. Further, based on the number of qualified observations and the total number of observations for each device, the SNR qualification rate of each device is calculated, providing a unified quantitative comparison index for the signal reception quality of different devices within the same observation period. Further, based on the total number of observations for each device, a weighted average of the SNR qualification rates of multiple devices is calculated to obtain a weighted overall SNR qualification rate, using the total number of observations for each device as the weight to avoid bias in the overall statistical results towards devices with larger sample sizes due to differences in the number of observation samples for each device. Therefore, by extracting the common observation time and aligning the observation sub-tables, the impact of inconsistent observation periods on the comparison results is eliminated; by calculating the percentage of signal-to-noise ratio that meets the standard and weighting the average with the total number of observations, the impact of differences in the number of observation samples on the overall indicators is eliminated, thus enabling objective comparison and statistics of GNSS observation data in multi-device and multi-flight scenarios. Attached Figure Description
[0016] To more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the following description of the embodiments will be briefly introduced. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0017] Figure 1 A flowchart illustrating a GNSS observation data statistical method provided in an embodiment of the present invention; Figure 2 This is a schematic block diagram of a computer device provided in an embodiment of the present invention. Detailed Implementation
[0018] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0019] It should be understood that, when used in this specification and the appended claims, the terms "comprising" and "including" indicate the presence of the described features, integrals, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or collections thereof.
[0020] It should also be understood that the terminology used in this specification is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms unless the context clearly indicates otherwise.
[0021] It should also be further understood that the term "and / or" as used in this specification and the appended claims refers to any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.
[0022] As used in this specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if [the described condition or event] is detected" may be interpreted, depending on the context, as "once determined," "in response to determination," "once [the described condition or event] is detected," or "in response to detection of [the described condition or event]."
[0023] Please see Figure 1This invention provides a GNSS observation data statistical method for uniformly processing raw observation data of the Global Navigation Satellite System recorded by multiple devices during flight missions, in order to obtain statistical indicators that objectively reflect the overall signal reception quality level of multiple devices. Further, GNSS, short for Global Navigation Satellite System, is a space infrastructure that uses satellite signals to provide users with positioning, navigation, and timing services. Further, GNSS includes satellite navigation systems built by multiple countries and regions, such as GPS, BDS, GLONASS, GALILEO, QZSS, IRNSS, and SBAS. Further, GNSS receivers continuously receive satellite signals and output raw observation data during flight missions. Raw observation data refers to the signal observation records output by the receiver without ground-based depth processing; each observation record includes a timestamp, satellite number, signal type code, and signal strength value. The timestamp identifies the observation time corresponding to the record, the satellite number distinguishes different satellites, the signal type code indicates the satellite system and signal frequency corresponding to the record, and the signal strength value reflects the signal strength. Further, "multiple devices" refers to GNSS receivers mounted on multiple UAVs, or receivers corresponding to multiple antennas on the same UAV. In actual flight missions, GNSS receivers on different devices record observation data independently. Due to differences in flight sorties, mission planning, or equipment configuration, the start and end times of data recording by each device are often inconsistent, resulting in incomplete overlap of observation periods for different devices. Furthermore, the number of valid observation records generated by each device within the same observation period may also differ. If all observation records from each device are simply summarized, different devices will be compared over unequal observation periods, and the statistical results will be affected by both time inconsistencies and sample size differences, making it difficult to objectively reflect the true signal reception quality of each device. For example, if one device experiences severe satellite signal obstruction during a certain period, while another device records nothing during that same period, combining their data would result in the former's low signal-to-noise ratio dragging down the overall performance. However, this period was not a shared observation period for both devices, making the comparison unfair. Therefore, this embodiment addresses this problem through the following processing steps: S1 acquires raw GNSS observation data recorded by multiple devices during flight missions.
[0024] In practice, the raw observation data originates from the continuous output and recording of observation data by GNSS receivers on each device during the flight mission. Furthermore, the raw observation data exists in the form of a data stream, containing a large number of observation records arranged chronologically. Each observation record can be represented as a combination of timestamp, satellite number, signal type code, and signal strength value. The raw observation data is not stored directly in a structured table format, but exists as a data stream output by the receiver. Furthermore, there is no unified time alignment between the data streams recorded by different devices; the start and end times and sampling densities of each record may differ. After the raw observation data is acquired and processed by the system, subsequent steps can parse and statistically analyze the data. Furthermore, the raw observation data can be acquired by reading from onboard storage devices or by transmitting it back to the ground processing system via a data transmission link; this invention does not specifically limit the method. Regardless of the acquisition method, the content remains in the original data stream format and is not subject to in-depth processing at the ground end.
[0025] In some preferred embodiments, acquiring raw GNSS observation data recorded by multiple devices during a flight mission includes: in response to a recording start command, receiving raw messages output by a GNSS receiver, escaping and normalizing the raw messages to obtain normalized observation data; writing the normalized observation data to disk as a raw data file according to a preset separation rule; and in response to a readback command, reading the raw data file and outputting the raw GNSS observation data.
[0026] In practical implementation, the format of the raw messages output by the GNSS receiver during flight missions may differ depending on the receiver model, and the start, stop, and read methods of data recording have a significant impact on subsequent data processing efficiency. Therefore, this embodiment triggers reception and parsing by recording a start command, escapes and normalizes the raw messages to obtain normalized observation data, and writes it to disk as a raw data file according to a preset separation rule. This file is then read using a readback command to output the raw GNSS observation data, thereby realizing command-driven event-triggered data recording and request-response mode data readback. The specific implementation method is as follows: The record initiation command is used to start the data recording process. It can be an unlock command issued by the flight control system or a specially configured record start command. In response to the record initiation command, the system begins receiving raw messages output by the GNSS receiver. Raw messages refer to messages directly output by the GNSS receiver that contain satellite observation information. For example, a raw message could be a RANGEA message output by a Novatei receiver. A RANGEA message is a type of raw observation data message output by a Novatei receiver, containing raw data from satellite observations.
[0027] Furthermore, the system performs escaping and normalization processing on the original message to obtain normalized observation data. Escaping processing refers to handling characters in the original message that conflict with the preset data recording format, ensuring that these characters are not misidentified as field separators, time period separators, or record end markers during subsequent parsing. Specifically, after receiving the original message output from the GNSS receiver, the system identifies predetermined special characters appearing in the original message and inserts a preset escape prefix character before the predetermined special character, or replaces the predetermined special character with a corresponding preset escape sequence, thus removing the format control function of the predetermined special character in the normalized observation data. In the subsequent parsing stage, by identifying the preset escape prefix character or preset escape sequence, the corresponding characters can be restored to their original content, ensuring that special characters contained within field values in the original observation data do not disrupt the unified data recording structure, and that no original data information is lost.
[0028] Normalization refers to unifying the format of the original message into a predetermined format, eliminating differences in the output formats of different receivers. Normalized observation data is data that has undergone escaping and normalization processing, possessing a unified internal structure and field arrangement. Specific methods of normalization processing may include unifying the order of different fields output by different receivers into a fixed order, unifying different data types into the same representation, and replacing special delimiters with standard delimiters, etc., which are not specifically limited in this invention.
[0029] Furthermore, the preset separation rules are rules used to distinguish different observation periods. The raw observation data is organized according to observation periods. An observation period refers to a time interval during which the receiver continuously outputs observation data. The preset separation rules define the separation method between different observation periods. For example, "#" can be used as a period separator. The system writes the normalized observation data to disk as a raw data file according to the preset separation rules. Writing to disk refers to writing data to a storage medium. The raw data file can be a file on an onboard storage device. During the disk writing process, the system writes the normalized observation data to the file according to the observation periods and inserts preset separators between different observation periods, separating the observation data in the raw data file according to the period. The disk writing operation persists the data in memory to the storage medium, forming a raw data file that can be read later. The storage path of the raw data file can be fixed, and this invention does not specifically limit it.
[0030] Furthermore, the readback command is used to request the reading of the raw data file. In response to the readback command, the system reads the contents of the raw data file and outputs the read content as raw GNSS observation data. The readback process adopts a request-response mode, meaning that after receiving the readback command, the system performs the read operation and outputs a data stream after the read is completed. The raw GNSS observation data is the data after normalized observation data has been processed according to preset separation rules, including observation records and time period separators. This data serves as input for subsequent analysis steps. The readback command can be a dump command sent by the ground-based tool to pull the contents of the raw data file from the airborne storage device. During the readback process, the device can respond with an acknowledgment character (ACK) to confirm, and echo the file path and number of bytes before outputting the data stream. This request-response mode allows the ground end to actively control the timing of data acquisition, facilitating batch processing.
[0031] In this embodiment, data recording is triggered by a recorded start command, rather than relying on flight control cycle pushes or manual start / stop. This ensures that the start time of data recording has a clear event trigger semantics, guaranteeing that different devices start recording under the same command event, thus improving the consistency of data acquisition from multiple devices. Furthermore, escaping and normalization processes eliminate differences in output formats from different receivers, giving data acquired by different devices a unified internal format. Preset separation rules store observation data in segments according to observation time periods, preserving time period boundary information in the original data files and providing structure for subsequent segment-by-segment analysis. The readback command adopts a request-response mode, allowing the ground end to actively request the reading of the original data file, making the data acquisition process controllable. This data acquisition method provides standardized input data for subsequent analysis and statistical processing, avoiding the problem of inconsistent data formats caused by different receiver models.
[0032] S2, parse the raw GNSS observation data of each device to obtain the observation data table corresponding to each device and the set of whole second times corresponding to each device. The observation data table contains satellite signal identifiers.
[0033] In practice, parsing refers to extracting fields and converting formats from each observation record in the original observation data. The timestamps in the original observation data might originally be Coordinated Universal Time (UTC), representing the number of milliseconds elapsed since the UTC time reference point. During parsing, the system converts this UTC to a whole second. A whole second refers to a discrete time value with a time granularity of one second, obtained by discarding the millisecond portion. The purpose of truncating the timestamps to whole seconds is to align observation records from different devices at the same time granularity. GNSS receivers typically output observation data at a frequency of 1 Hz, meaning they output one set of observation records per second. Therefore, different devices often have similar observation times within the same second. By truncating to whole seconds, observation records within the same second can be merged into the same whole second. The whole second time is used as a row index in the observation data table in subsequent steps.
[0034] Furthermore, during the parsing process, the system also decodes the signal type encoding in the original observation data into satellite signal identifiers. The signal type encoding is a compressed encoding field in the original observation data used to represent the satellite system and signal type. This encoding field compresses the satellite system identifier and signal type identifier into several bits. The signal type identifier is used to distinguish different signal frequencies under the same satellite system. The satellite signal identifier is the decoded field that uniquely represents the satellite system and signal type, such as GPS L1 C / A, BDS B1I, etc. The satellite signal identifier is used as a column index in the observation data table in subsequent steps. The observation data table is a structured two-dimensional table obtained after parsing, where rows correspond to whole seconds and columns correspond to satellite signal identifiers. For each combination of whole seconds and each satellite signal identifier, the corresponding cell in the observation data table records the signal-to-noise ratio (SNR) value of that signal at that moment. The SNR is obtained by compensating the signal strength values in the original observation data, and the unit is dB-Hz. The observation data table contains satellite signal identifiers; that is, the column index of the observation data table consists of different satellite signal identifiers.
[0035] Furthermore, the set of integer seconds is a collection of all integer seconds extracted from the observation data table. A set is a collection of distinct elements. The elements in the set of integer seconds are all the distinct integer seconds appearing in the observation data table. A device's set of integer seconds reflects all the integer seconds that the device actually recorded during the entire observation period, providing the foundational data for subsequent multi-device time alignment. Different devices may have different sets of integer seconds; set operations can be used to identify the time points where all devices share the same observation records.
[0036] In some preferred embodiments, before parsing the raw GNSS observation data of each device, the method further includes: locating a target time period separator in the raw data file that does not follow a newline character; inserting a newline character after the target time period separator so that each observation time period is on a separate line, thereby obtaining a formatted raw data file; the parsing of the raw GNSS observation data of each device includes: parsing the formatted raw data file.
[0037] In practice, the original data file uses preset separators to distinguish different observation periods. However, during the disk transfer process, there may be instances where the separator is not followed by a newline character, resulting in the content of multiple observation periods being on the same line, making line-by-line parsing impossible. Therefore, this embodiment locates the target time period separator that is not followed by a newline character and inserts a newline character after it, ensuring that each observation period is on a separate line, thus obtaining a formatted original data file. The specific implementation method is as follows: The target time period separator refers to the separator in the original data file used to separate observation periods without being followed by a newline character. The time period separator in the original data file can be the "#" character. The system reads the entire original data file, scans its content, and locates all "#" characters. For each "#" character, the system checks if the next character is a newline character. If the next character is not a newline character, the "#" character is identified as the target time period separator. If the next character is already a newline character, a newline already exists after the "#" character, and no further processing is needed. Furthermore, a newline character is a control character used to indicate the end of a line in text. In text files, newline characters are used to separate content into multiple lines.
[0038] Furthermore, after locating the target time period separator, the system inserts a newline character after it. After inserting the newline character, the content that originally followed the separator is moved to the next line, making the content after the separator a newline. After performing the newline character insertion operation on all target time period separators, each observation period in the original data file is a separate line, forming a formatted original data file. In the formatted original data file, each line corresponds to one observation period, and the line contains all the observation records within that period.
[0039] Furthermore, since the system only performs insertion operations on time segment separators that are not followed by a newline character, it will not insert newline characters again at positions where newlines have already been correctly inserted. Therefore, when the above positioning and insertion operations are performed again on the formatted original data file, no extra newlines will be generated. This formatting operation has idempotency, meaning that performing it multiple times has the same effect as performing it once. Idempotency ensures the safety of batch repetitive processing; even if the same file is formatted multiple times, the data content will not be corrupted or changed. This characteristic is particularly important for batch processing large amounts of data files, because the same file may need to be processed repeatedly during the process, and idempotency avoids data corruption caused by repeated processing.
[0040] Furthermore, the formatted raw data file serves as input for the parsing operation. When subsequently parsing the raw GNSS observation data from each device, the system uses the formatted raw data file as the processing object, reading the data corresponding to each observation period line by line, extracting the observation records, and parsing the fields. After formatting, each line in the raw data file corresponds to one observation period, allowing the parsing operation to be performed line by line, improving the accuracy and efficiency of the parsing. Without formatting, multiple observation periods would be mixed in the same line, making it difficult to distinguish the boundaries between different periods during parsing, potentially leading to parsing errors or omissions.
[0041] This embodiment locates the target time period separator that does not follow a newline character and inserts a newline character after it, ensuring that each observation time period in the original data file is on a separate line, eliminating the parsing difficulties caused by multiple time periods crowding onto the same line. Since only separators that do not meet the newline condition are processed, repeated processing of the formatted file will not generate redundant newlines, ensuring the formatting operation is idempotent and suitable for batch repetitive processing scenarios. This formatting method provides a clear data structure for subsequent line-by-line parsing and field extraction, improving the accuracy and stability of the parsing process.
[0042] In some preferred embodiments, parsing the raw GNSS observation data of each device to obtain an observation data table and a set of whole-second timestamps for each device includes: extracting signal type codes, signal strength values, and timestamps from the raw GNSS observation data; decoding the signal type codes to obtain satellite signal identifiers; performing a preset compensation operation on the signal strength values to obtain the signal-to-noise ratio; converting the timestamps from UTC millisecond timestamps to Beijing time and truncating them to whole seconds to obtain whole-second timestamps; constructing the observation data table using the whole-second timestamps as row indexes, the satellite signal identifiers as column indexes, and the signal-to-noise ratio as cell elements; and extracting all whole-second timestamps from the observation data table to form the set of whole-second timestamps.
[0043] In practice, each observation record in the original observation data contains fields such as signal type code, signal strength value, and timestamp. However, these fields cannot be directly used to construct the observation data table. Therefore, this embodiment decodes the signal type code to obtain the satellite signal identifier, performs a preset compensation operation on the signal strength value to obtain the signal-to-noise ratio, converts the timestamp from UTC millisecond timestamps to Beijing time and truncates it to whole seconds to obtain the whole-second moments, and finally constructs the observation data table using the whole-second moments as row indices, the satellite signal identifier as column indices, and the signal-to-noise ratio as cell values. All whole-second moments are then extracted from the observation data table to form a set of whole-second moments. The specific implementation method is as follows: The signal type code is an coded field in the raw observation data used to represent the satellite system and signal type. The signal type code can be an integer. The system extracts the signal type code, signal strength value, and timestamp for each observation record from the raw observation data. The timestamp is a UTC millisecond timestamp, which is an integer value representing the number of milliseconds elapsed since the UTC time reference point. The field order and separation method for each observation record in the raw observation data can be pre-defined, and field extraction is performed according to the agreed format during parsing.
[0044] Further, the system decodes the signal type code. Decoding refers to the process of converting compressed code into an identifier with clear semantics. Different bits in the signal type code have different meanings. The system extracts the satellite system identifier field and the signal type identifier code field from the signal type code. The satellite system identifier field is used to distinguish different satellite navigation systems, such as GPS, GLONASS, SBAS, GALILEO, BDS, QZSS, IRNSS, etc. The signal type identifier code field is used to distinguish different signal frequencies within the same satellite system. The system queries a preset signal type mapping relationship based on the satellite system identifier and maps the signal type identifier code to the signal type identifier. The preset signal type mapping relationship is a pre-defined correspondence from the signal type identifier code to the signal type identifier. When the satellite system identifier is GPS, the system also extracts an additional identifier field. The additional identifier field is used to distinguish different code types of the GPS system. Further, when the satellite system identifier is GLONASS, the system also extracts a frequency number field. The frequency number field is used to distinguish different frequencies of GLONASS satellites. Combining the satellite system identifier, signal type identifier, additional identifier field, and frequency number field yields the satellite signal identifier. A satellite signal identifier is used to uniquely identify a satellite signal.
[0045] Furthermore, the system performs a preset compensation operation on the signal strength value to obtain the signal-to-noise ratio (SNR). The signal strength value is the encoded value in the original observation data. The preset compensation operation is used to restore the signal strength value to the true SNR. The preset compensation operation can be performed by adding a fixed offset to the signal strength value. The SNR is then compared with a preset SNR threshold. For example, if the signal strength value in the original observation data is val, the SNR can be expressed as SNR = float(val) + 20, where float(val) represents converting val to a floating-point number, and 20 is the compensation offset. This compensation operation maps the encoded signal strength value to the actual SNR value range.
[0046] Furthermore, the system converts the timestamp from UTC to Beijing time and truncates it to the nearest second. For example, Beijing time is UTC plus 8 hours, resulting in a millisecond timestamp. The millisecond portion is then discarded, retaining only the second-level value to achieve alignment with the typical 1 Hz sampling rate of GNSS receivers. This allows observation records from different devices to be grouped to the same whole-second time point. For example, if an observation record has a UTC millisecond timestamp of 1700000000123, adding the milliseconds corresponding to 8 hours (28800000) yields a Beijing time millisecond timestamp of 1700028800123. Discarding the millisecond portion, the resulting whole-second time is 1700028800. This whole-second time is the corresponding whole-second time point in Beijing time.
[0047] Furthermore, the system constructs an observation data table using whole-second timestamps as row indexes, satellite signal identifiers as column indexes, and signal-to-noise ratio (SNR) as cell values. The observation data table is a structured two-dimensional table. For each whole-second timetamp and each satellite signal identifier, the corresponding cell is filled with the SNR of that signal at that time. If there is no observation value for a satellite signal at a certain time, the corresponding cell can be left blank. Further, the system extracts all distinct whole-second timestamps from the observation data table to form a set of whole-second timestamps. This set contains all whole-second time points that occurred during the observation period. When constructing the observation data table, if multiple observation records exist for the same satellite signal identifier at the same whole-second timetamp, the maximum or average SNR value can be used to fill the cell. For example, if there may be multiple observation records for the same signal within the same second, the record with the highest SNR can be selected as the value of that cell.
[0048] This embodiment extracts signal type codes, signal strength values, and timestamps from raw observation data, performs decoding, compensation calculations, and time conversion to obtain satellite signal identifiers, signal-to-noise ratios (SNR), and integer second timestamps. Based on these, an observation data table is constructed, and a set of integer second timestamps is extracted. This parsing process transforms the raw data stream into structured tabular data, providing clear data objects for subsequent intersection calculations and statistical operations. Decoding the signal type codes completely reconstructs the satellite system and signal type information, compensation calculations yield the true SNR, and time conversion and truncation ensure alignment between different devices at the same time granularity. This parsing method improves the accuracy and consistency of multi-device data processing.
[0049] In some preferred embodiments, decoding the signal type encoding to obtain the satellite signal identifier includes: extracting a satellite system identifier and a signal type identifier encoding from the signal type encoding; querying a preset signal type mapping relationship based on the satellite system identifier and mapping the signal type identifier encoding to a signal type identifier; when the satellite system identifier is GPS, extracting an additional identifier field; when the satellite system identifier is GLONASS, extracting a frequency point number field; and combining the satellite system identifier, the signal type identifier, the additional identifier field, and the frequency point number field to obtain the satellite signal identifier.
[0050] In practice, the signal type encoding in the raw observation data represents the satellite system and signal type in compressed form, with different bits carrying different information. Therefore, this embodiment extracts the satellite system identifier and signal type identifier encoding from the signal type encoding. Based on the satellite system identifier, a preset signal type mapping relationship is queried to obtain the signal type identifier. When the satellite system identifier is GPS, an additional identifier field is extracted; when the satellite system identifier is GLONASS, the frequency point number field is extracted. These fields are then combined to form the satellite signal identifier. The specific implementation method is as follows: The signal type code can be a fixed-length binary integer. For example, it can be a 16-bit integer. The satellite system identifier field is located in bits 0 to 2 of the signal type code. Bits 0 to 2 represent the lowest three bits. The values of these three bits can represent different satellite systems. For example, a value of 0 represents GPS, a value of 1 represents GLONASS, a value of 2 represents SBAS, a value of 3 represents GALILEO, a value of 4 represents BDS, a value of 5 represents QZSS, a value of 6 represents IRNSS, and a value of 7 is reserved. Further, the system extracts the value of this three-bit field from the signal type code to obtain the satellite system identifier. The extraction method can be to perform a bitwise AND operation between the signal type code and the mask, followed by shifting.
[0051] Furthermore, the signal type identifier encoding field is located at bits 5 to 8 of the signal type encoding. Bits 5 to 8 represent the 6th to 9th bits from the least significant bit, a total of four bits. The values of these four bits are used to distinguish different signal types within the same satellite system. The system extracts the values of these four bits from the signal type encoding to obtain the signal type identifier encoding. The extraction method can also be implemented through bitwise and shift operations.
[0052] Furthermore, the preset signal type mapping relationship is a pre-established correspondence table from signal type identifier code to signal type identifier, as shown in Table 1. Different satellite systems have different mapping relationships.
[0053] Table 1. Bit encoding of the type field and mapping relationship with signals of each system.
[0054] Furthermore, based on the extracted satellite system identifier, the system selects the corresponding mapping relationship to encode and map the signal type identifier to the signal type identifier. This mapping relationship can be stored in the form of a data table or configuration file for easy querying and updating. The additional identifier field is located at bit 9 of the signal type encoding. Bit 9 represents the 10th bit from the least significant bit. This field is only valid for GPS systems. When the satellite system identifier is GPS, the system extracts this field. A value of 0 indicates an additional L2P(Y) code, and a value of 1 indicates an additional L2C civilian code. The additional identifier field is used to further distinguish code types within the GPS system. For example, GPS L2P(Y) code is an encrypted military code, while L2C is an open civilian code; the two differ in signal characteristics and need to be distinguished.
[0055] Furthermore, the frequency number field is located in bits 10 to 14 of the signal type encoding. Bits 10 to 14 represent five bits from the 11th to the 15th bit from the least significant bit. This field is only valid for GLONASS systems. When the satellite system is identified as GLONASS, the system extracts this field. This field takes the value of an integer from 0 to 31, representing the frequency number of the GLONASS satellite. The frequency number is appended after the signal type identifier to distinguish signals from different GLONASS frequencies. GLONASS uses frequency division multiple access (FDMA), where different satellites transmit signals at different frequencies; the frequency number is used to identify the specific frequency.
[0056] Furthermore, the system combines the satellite system identifier, signal type identifier, additional identifier field, and frequency number field into a satellite signal identifier. When the satellite system identifier is not GPS, the additional identifier field can be empty. When the satellite system identifier is not GLONASS, the frequency number field can be empty. The combined satellite signal identifier can be, for example, GPS L1 C / A, BDS B1I, GLONASS L1 C / A freq=1, etc. The combination method can be string concatenation or combination of structured data fields.
[0057] This embodiment extracts the satellite system identifier and signal type identifier code from the signal type code, determines the signal type identifier according to a preset mapping relationship, and extracts additional identifier fields and frequency point number fields for GPS and GLONASS respectively, thus completely restoring the satellite signal identifier. Furthermore, this decoding method can accurately identify multi-frequency signals of seven satellite navigation systems, avoiding statistical distortion caused by incomplete signal type identification. Moreover, the satellite signal identifier serves as a column index for the observation data table, providing accurate data dimensions for subsequent detailed statistics by satellite system and signal type.
[0058] S3. Find the intersection of the sets of whole-second moments from each device to obtain the common observation time.
[0059] In practice, intersection refers to the set of elements commonly contained in multiple sets. Finding the intersection of the sets of integer seconds from each device involves identifying those integer seconds that appear in all device sets. These integer seconds constitute the common observation time. The common observation time represents the set of time points where all devices have observation records. Only at these time points do devices have comparable observation data. Since the start and end times of records from different devices may differ, directly comparing all observation records would lead to a mismatch in observation periods between devices. Obtaining the common observation time by finding the intersection ensures that subsequent statistics are performed only at time points where all devices have observations. Furthermore, intersection calculations can be implemented using set operations, such as performing an intersection operation on two sets, then intersecting the result with a third set, and so on. The complexity of intersection operations is related to the size of the sets; for the common amounts of observation data in flight missions, the computational cost is acceptable.
[0060] In some preferred embodiments, the step of finding the intersection of the sets of whole-second times of each device to obtain the common observation time includes: performing an intersection operation on the sets of whole-second times of each device to obtain the intersection; determining whether the intersection is an empty set; if the intersection is an empty set, then reporting an error and terminating; if the intersection is not an empty set, then using the intersection as the common observation time.
[0061] In practice, the set of integer seconds from multiple devices contains the integer seconds that occurred during the observation period for each device. Since the start and end times of recording for each device may differ, there may be discrepancies between the sets of integer seconds. Therefore, this embodiment performs an intersection operation on the sets of integer seconds from each device to obtain the intersection. It then determines whether the intersection is empty. If it is empty, an error is reported and the process terminates; otherwise, the intersection is used as the common observation time. The specific implementation is as follows: The set of whole-second moments is the collection of all whole-second moments in the observation data tables obtained by each device during the parsing phase. For each device, the elements in the set of whole-second moments represent the actual whole-second times when the device generated the observation record. The system performs an intersection operation on the set of whole-second moments for each device. Further, the intersection operation refers to extracting elements commonly contained in multiple sets. For two or more sets, the result of the intersection operation is a set consisting of elements appearing in all of these sets. For example, if device A's set of whole-second moments is 10:00:01, 10:00:02, and 10:00:03, and device B's set of whole-second moments is 10:00:02, 10:00:03, and 10:00:04, then their intersection is 10:00:02 and 10:00:03. Further, the intersection operation can be implemented using the intersection operation in set data structures. For multiple sets, the intersection of the first two sets can be calculated first, then the result can be intersected with the third set, and so on.
[0062] Furthermore, after obtaining the intersection, the system determines whether the intersection is an empty set. An empty set is a set that contains no elements. If the intersection is empty, it means that there are no shared whole-second observations among the devices, i.e., the observation periods of each device do not overlap at all. In this case, fair time alignment statistics cannot be performed, and the system terminates with an error message. Termination with an error message means outputting an error message and stopping subsequent processing. The error message can prompt the user to check if there are any anomalies in the time records of each device. For example, the error message may include a prompt such as "No shared observation time".
[0063] Furthermore, if the intersection is not empty, the system uses the intersection as the common observation time. The common observation time is the set of integer seconds for which all devices have observation records. This common observation time is used to extract the corresponding observation sub-table from the observation data tables of each device. The number of integer seconds in the common observation time may be large, but each integer second ensures that all devices have corresponding observation records, thus guaranteeing the fairness of subsequent statistics in the time dimension.
[0064] This embodiment obtains the common observation time by performing an intersection operation on the set of integer second moments and provides an exception handling mechanism through empty set detection. When no common observation time exists among the devices, the system terminates promptly to avoid meaningless results from continuing statistics without a valid alignment time. Furthermore, when a common observation time exists, the common observation time serves as the basis for subsequent extraction of the observation sub-table, ensuring that each device is compared only at the same observation time point, thus improving the fairness of multi-device comparisons and the reliability of statistical results.
[0065] S4. Based on the common observation time, extract the observation sub-table corresponding to the common observation time from the observation data table of each device.
[0066] In practice, the observation sub-table refers to a sub-table obtained by selecting a subset of rows from the complete observation data table. The system extracts rows corresponding to whole-second moments from each device's observation data table based on the shared observation time, forming the observation sub-table for each device. The observation sub-table only contains observation records corresponding to whole-second moments observed by all devices. Thus, the observation sub-tables of each device achieve strict alignment in the time dimension, allowing subsequent statistics to be performed within the same observation time interval. The extraction of the observation sub-table can be implemented by row-by-row filtering, i.e., traversing the row indices of the observation data table, determining whether the row index belongs to the shared observation time, retaining the row if it does, and discarding it otherwise.
[0067] S5. Based on the preset signal-to-noise ratio threshold, the observation sub-tables of each device are statistically analyzed to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier.
[0068] In practice, the preset signal-to-noise ratio (SNR) threshold is a pre-set critical value for SNR compliance. This threshold is used to distinguish whether the signal quality meets the standard. For example, the preset SNR threshold can be set to 40 dB-Hz. This threshold can be flexibly adjusted according to the test standard to adapt to different evaluation criteria. The number of compliance observations refers to the number of cells in the observation sub-table where the SNR is greater than or equal to the preset SNR threshold. The total number of observations refers to the total number of cells in the observation sub-table with valid SNR values. The system iterates through the observation sub-tables of each device, statistically analyzes the column corresponding to each satellite signal identifier, and accumulates the number of compliance observations and the total number of observations under that satellite signal identifier. By comparing the SNR with the preset SNR threshold, it can be determined whether each observation record meets the standard. The number of compliance observations and the total number of observations under each satellite signal identifier provide the basic data for subsequent calculation of the SNR compliance rate. During the statistical process, empty cells are not counted.
[0069] In some preferred embodiments, the step of statistically analyzing the observation sub-tables of each device according to a preset signal-to-noise ratio threshold to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier includes: statistically analyzing the observation sub-tables of each device by satellite system dimension to obtain the number of satellites for each device; traversing the observation sub-tables of each device using the preset signal-to-noise ratio threshold to count the number of qualified observations for each satellite signal identifier; counting the total number of observations for each satellite signal identifier in the observation sub-tables; and counting the number of qualified observations, the total number of observations, the number of satellites, and the average signal-to-noise ratio for each device by satellite system dimension and device dimension.
[0070] In specific implementation, the observation sub-table is a partial table extracted from the observation data tables of each device during the common observation period. This embodiment statistically analyzes the observation sub-tables of each device according to the satellite system dimension to obtain the number of satellites. It then iterates through the observation sub-tables using a preset signal-to-noise ratio (SNR) threshold to count the number of qualified observations, and counts the total number of observations for each satellite signal identifier. Finally, it calculates the number of qualified observations, the total number of observations, the number of satellites, and the average SNR according to both the satellite system and device dimensions. The specific implementation method is as follows: Satellite system dimension refers to classifying observation records according to different satellite navigation systems, such as GPS, BDS, GLONASS, GALILEO, QZSS, IRNSS, SBAS, etc. Satellite signal identifiers include a satellite system identifier portion, and the system classifies the columns of the observation sub-table based on the satellite system identifier within the satellite signal identifier. For example, all satellite signal identifiers beginning with GPS are categorized under the GPS system dimension.
[0071] Furthermore, the system statistically analyzes the observation sub-tables of each device according to the satellite system dimension to obtain the satellite count for each device. The satellite count refers to the number of different satellite numbers observed by the device within the common observation period. The satellite number is the satellite number field in the observation record, used to distinguish different satellites within the same satellite system. The system iterates through all satellite numbers appearing in the observation sub-tables, groups them by satellite system, and counts the number of different satellite numbers within each satellite system to obtain the satellite count. For example, if device A observes 3 satellites of the GPS system and 4 satellites of the BDS system within the common observation period, then the GPS system satellite count is 3, and the BDS system satellite count is 4.
[0072] Furthermore, the system iterates through the observation sub-tables of each device using a preset signal-to-noise ratio (SNR) threshold. The preset SNR threshold is a pre-defined critical value for determining whether an SNR is acceptable. Iteration refers to sequentially accessing each cell in the observation sub-table. For each cell, the system compares the SNR value in that cell with the preset SNR threshold. If the SNR is greater than or equal to the preset SNR threshold, the observation record corresponding to that cell is considered a compliant observation. The system accumulates the number of compliant observations grouped by satellite signal identifier, obtaining the number of compliant observations for each satellite signal identifier. For example, if the preset SNR threshold is 40 dB-Hz and the SNR of a certain cell is 42 dB-Hz, then that cell is considered a compliant observation.
[0073] Furthermore, the system counts the total number of observations for each satellite signal identifier in the observation sub-table. The total number of observations refers to the number of cells in the observation sub-table with a valid signal-to-noise ratio value. The system iterates through each cell in the observation sub-table, counts the non-empty cells, and accumulates the observations by satellite signal identifier to obtain the total number of observations for each satellite signal identifier. The total number of observations reflects the number of observation samples for that satellite signal within the common observation time.
[0074] Furthermore, the system statistically analyzes the number of qualified observations, total number of observations, number of satellites, and mean signal-to-noise ratio (SNR) for each device, categorized by satellite system and device. The mean SNR is the arithmetic mean of all SNR values under a specific satellite signal identifier. The system sums the SNR values corresponding to each satellite signal identifier in the observation sub-table and divides this sum by the total number of observations for that satellite signal identifier to obtain the mean SNR. The statistical results can be organized in tabular form, with rows corresponding to devices and columns corresponding to satellite systems. Each cell contains the number of satellites, the number of qualified observations, the total number of observations, and the mean SNR for that device under that satellite system.
[0075] This embodiment performs statistical analysis on the observation sub-table by satellite system and device dimensions to obtain the number of satellites, the number of qualified observations, the total number of observations, and the average signal-to-noise ratio (SNR). These statistical results provide the foundational data for subsequent calculations of the SNR compliance rate and weighted average. Counting the number of satellites by satellite system dimension reflects the visibility of different satellite systems, the average SNR reflects the average signal quality level, and the number of qualified observations and the total number of observations are used to calculate the compliance rate. This statistical process is fully automated, ensuring the accuracy and consistency of statistics across multiple devices and satellite systems.
[0076] S6. Calculate the percentage of each device that meets the standard based on the number of observations that meet the standard and the total number of observations.
[0077] In practice, the signal-to-noise ratio (SNR) compliance rate is the ratio of the number of observations meeting the standard to the total number of observations, usually expressed as a percentage. For a single device, the SNR compliance rate reflects the overall compliance level of all satellite signals within the common observation period. The higher the percentage, the better the signal reception quality of the device. The system divides the number of observations meeting the standard for each device by the total number of observations to obtain the corresponding SNR compliance rate for each device. When the total number of observations is zero, the device has no valid observation data within the common observation period, and the corresponding SNR compliance rate can be defined as zero, or the device is excluded from the weighted average.
[0078] S7. Based on the total number of observations for each device, the weighted average of the signal-to-noise ratio compliance rates of the multiple devices is calculated to obtain the weighted overall signal-to-noise ratio compliance rate.
[0079] In practice, weighted averaging is a method for calculating the average value, where different data items are weighted according to their respective weights. In this step, the weight corresponding to the percentage of devices meeting the signal-to-noise ratio (SNR) standards is the total number of observations for that device. The weighted overall SNR compliance percentage is obtained by multiplying the SNR compliance percentage of each device by its total number of observations, summing the results, and then dividing by the sum of the total number of observations for all devices. For example, if device A has 1000 total observations and a compliance percentage of 80%, and device B has 100 total observations and a compliance percentage of 90%, then the weighted overall SNR compliance percentage is (1000×80%+100×90%)÷(1000+100), which is approximately 80.9%. Furthermore, the significance of weighted averaging is that devices with more total observations contribute more to the overall index, thus avoiding the extreme proportion of devices with fewer total observations from having an impact on the overall result that is disproportionate to the sample size. The percentage of weighted overall signal-to-noise ratios that meet the standard can be used as an objective indicator for evaluating the overall signal reception quality of multiple devices.
[0080] This embodiment analyzes raw GNSS observation data from multiple devices to obtain an observation data table and a set of integer-second time intervals. The intersection of these integer-second time intervals yields the common observation time, allowing comparisons between different devices only based on this common observation time, overcoming the unfairness caused by inconsistent observation times. When calculating the percentage of devices meeting the signal-to-noise ratio (SNR) standard, a weighted average is performed using the total number of observations for each device, eliminating the impact of sample size differences on the overall index. This scheme automatically completes the entire process from raw data to overall statistical indicators without manual intervention, providing an efficient and objective technical means for multi-device GNSS signal quality assessment. By introducing a preset SNR threshold, this scheme can flexibly adapt to different signal quality assessment standards, improving its versatility. This scheme is applicable to various application scenarios such as UAV GNSS antenna selection, installation scheme evaluation, and positioning performance testing.
[0081] In some preferred embodiments, after obtaining the weighted overall signal-to-noise ratio (SNR) compliance rate, the method further includes: obtaining the current timestamp; generating a statistical curve based on the number of satellites, compliance observations, total observations, average SNR, and the SNR compliance rate of each device; embedding the statistical curve into a summary table; and naming the result file corresponding to the summary table with the current timestamp.
[0082] In practice, after obtaining the weighted overall signal-to-noise ratio (SNR) compliance rate, the system acquires the current timestamp and generates a statistical curve based on the number of satellites, number of compliance observations, total number of observations, average SNR, and SNR compliance rate for each device. The statistical curve is then embedded into a summary table, and the result file corresponding to the summary table is named with the current timestamp. The specific implementation method is as follows: The current timestamp refers to the current system time when the system executed this step. The system can obtain the current timestamp by calling the system time interface to get a time string representing the current moment. The current timestamp is used to name the result file to avoid overwriting results from multiple runs. The format of the current timestamp can be year, month, day, hour, minute, and second, for example, 20240315123000.
[0083] Furthermore, statistical curves are graphs used to display trends or comparisons in statistical data. The system generates statistical curves based on the number of satellites, the number of observations meeting the standard, the total number of observations, the average signal-to-noise ratio (SNR), and the percentage of devices meeting the SNR standard. There can be up to five statistical curves, corresponding to the number of satellites, the number of observations meeting the standard, the total number of observations, the average SNR, and the percentage of devices meeting the SNR standard. The statistical curves can be in the form of line charts or bar charts. With the device on the horizontal axis and the corresponding statistical value on the vertical axis, the differences between different devices can be visually displayed. For example, a statistical curve for the number of observations meeting the standard can show a comparison of the number of times each device meets the standard under different satellite systems.
[0084] Furthermore, the summary table is a table containing statistical values. The summary table can include the number of satellites for each device in each satellite system, the number of observations meeting the standard, the total number of observations, the average signal-to-noise ratio (SNR), and the percentage of devices meeting the SNR standard. The system embeds statistical graphs into the summary table. Embedding means inserting the graph as an object into the table file, placing the graph and the table data in the same file. The embedded summary table can be a workbook file containing charts and data. For example, spreadsheet software can be used to insert statistical graphs as image objects into a specified location on the worksheet.
[0085] Furthermore, the system names the result files corresponding to the summary tables with the current timestamp. For example, the summary table is saved as a file named with the current timestamp, and the filename includes the year, month, day, hour, minute, and second information. The result file can be a spreadsheet file. Because the filename includes the timestamp, the result files generated each time the system runs have different filenames, preventing the overwriting of historical results and facilitating traceability and long-term comparison. For example, the result filename could be "Statistical Results_20240315123000.xlsx".
[0086] This embodiment obtains the current timestamp, generates statistical curves based on the statistical indicators of each device, and embeds them into a summary table. The result files are named with timestamps, achieving visualized output and traceable management of statistical results. The statistical curves can intuitively display the differences between multiple devices, helping users quickly identify devices with poor signal quality. Timestamp naming avoids overwriting of result files from multiple runs, ensuring that historical results are retained. This output method improves the usability and management efficiency of statistical results, providing convenience for batch comparison testing of multiple devices.
[0087] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.
[0088] Please see Figure 2 , Figure 2 This is a schematic block diagram of a computer device provided in an embodiment of this application. The computer device 500 can be a terminal or a server, wherein the server can be a standalone server or a server cluster composed of multiple servers.
[0089] The computer device 500 includes a processor 502, a memory, and a network interface 505 connected via a system bus 501. The memory may include a non-volatile storage medium 503 and internal memory 504.
[0090] The non-volatile storage medium 503 may store an operating system 5031 and a computer program 5032. When the computer program 5032 is executed, it causes the processor 502 to perform a GNSS observation data statistical method.
[0091] The processor 502 provides computing and control capabilities to support the operation of the entire computer device 500.
[0092] The internal memory 504 provides an environment for the operation of the computer program 5032 in the non-volatile storage medium 503. When the computer program 5032 is executed by the processor 502, the processor 502 can execute a GNSS observation data statistical method.
[0093] The network interface 505 is used for network communication with other devices. Those skilled in the art will understand that the above structure is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device 500 to which the present application is applied. A specific computer device 500 may include more or fewer components than shown in the figures, or combine certain components, or have different component arrangements.
[0094] The processor 502 is used to run a computer program 5032 stored in a memory to implement the steps of a GNSS observation data statistical method provided in any of the above embodiments.
[0095] It should be understood that in the embodiments of this application, the processor 502 may be a central processing unit (CPU), or it may be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor.
[0096] It will be understood by those skilled in the art that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program may be stored in a storage medium, which is a computer-readable storage medium. The computer program is executed by at least one processor in the computer system to implement the process steps of the embodiments of the above methods.
[0097] Therefore, the present invention also provides a storage medium. This storage medium may be a computer-readable storage medium. The storage medium stores a computer program. When executed by a processor, the computer program causes the processor to perform the steps of a GNSS observation data statistical method provided in any of the above embodiments.
[0098] The storage medium is a physical, non-transient storage medium, such as a USB flash drive, external hard drive, read-only memory (ROM), magnetic disk, or optical disk, or any other physical storage medium capable of storing program code. The computer-readable storage medium can be non-volatile or volatile.
[0099] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.
[0100] In the several embodiments provided by this invention, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For example, the division of each unit is only a logical functional division, and there may be other division methods in actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed.
[0101] The steps in the method of this invention can be adjusted, merged, or reduced in order according to actual needs. The units in the device of this invention can be merged, divided, or reduced according to actual needs. Furthermore, the functional units in the various embodiments of this invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0102] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, a terminal, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention.
[0103] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail in a certain embodiment, please refer to the relevant descriptions in other embodiments.
[0104] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, this invention is also intended to include these modifications and variations as long as they fall within the scope of the claims of this invention and their equivalents.
[0105] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present invention, and these modifications or substitutions should all be covered within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.
Claims
1. A statistical method for GNSS observation data, characterized in that, include: Acquire raw GNSS observation data recorded by multiple devices during flight missions; The raw GNSS observation data of each device is parsed to obtain the observation data table corresponding to each device and the set of whole second times corresponding to each device. The observation data table contains satellite signal identifiers. The common observation time is obtained by finding the intersection of the sets of integer seconds from each device. Based on the common observation time, extract the observation sub-table corresponding to the common observation time from the observation data table of each device; Based on the preset signal-to-noise ratio threshold, the observation sub-tables of each device are statistically analyzed to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier; Calculate the percentage of each device that meets the standard based on the number of observations for each device and the total number of observations; Based on the total number of observations for each device, the weighted average of the signal-to-noise ratio (SNR) compliance rates of the multiple devices is calculated to obtain the overall weighted SNR compliance rate.
2. The GNSS observation data statistical method according to claim 1, characterized in that, The acquisition of raw GNSS observation data recorded by multiple devices during the flight mission includes: In response to the record start command, the system receives the raw message output by the GNSS receiver, performs escaping and normalization processing on the raw message, and obtains normalized observation data. According to the preset separation rules, the standardized observation data is stored on disk as a raw data file; In response to the readback command, the original data file is read and the original GNSS observation data is output.
3. The GNSS observation data statistical method according to claim 2, characterized in that, Before parsing the raw GNSS observation data from each device, the method further includes: Locate the target time segment separator in the original data file that does not follow a newline character; Insert a newline character after the target time period separator to make each observation time period stand on a separate line, thus obtaining a formatted raw data file; The parsing of the raw GNSS observation data from each device includes parsing the formatted raw data file.
4. The GNSS observation data statistical method according to claim 1, characterized in that, The process of parsing the raw GNSS observation data from each device yields an observation data table for each device and a set of whole-second time intervals for each device, including: Extract the signal type code, signal strength value, and timestamp from the raw GNSS observation data; The signal type encoding is decoded to obtain the satellite signal identifier; A preset compensation operation is performed on the signal strength value to obtain the signal-to-noise ratio; The timestamp is converted from a UTC millisecond timestamp to Beijing time and truncated to the nearest second to obtain the exact second. The observation data table is constructed using the whole second as the row index, the satellite signal identifier as the column index, and the signal-to-noise ratio as the cell. All whole-second moments are extracted from the observation data table to form the whole-second moment set.
5. The GNSS observation data statistical method according to claim 4, characterized in that, Decoding the signal type encoding to obtain the satellite signal identifier includes: Extract the satellite system identifier and signal type identifier code from the signal type code; According to the satellite system identifier, a preset signal type mapping relationship is queried, and the signal type identifier is encoded and mapped to a signal type identifier; When the satellite system is identified as GPS, extract the additional identification field; When the satellite system is identified as GLONASS, extract the frequency point number field; The satellite system identifier, the signal type identifier, the additional identifier field, and the frequency point number field are combined to obtain the satellite signal identifier.
6. The GNSS observation data statistical method according to claim 1, characterized in that, The process of finding the intersection of the sets of integer seconds from each device to obtain the common observation time includes: Perform an intersection operation on the set of integer seconds for each device to obtain the intersection; Determine whether the intersection is an empty set; If the intersection is an empty set, the error will be reported and the process will terminate. If the intersection is not an empty set, then the intersection is taken as the common observation time.
7. The GNSS observation data statistical method according to claim 1, characterized in that, The observation sub-tables of each device are statistically analyzed according to a preset signal-to-noise ratio threshold to obtain the number of qualified observations and the total number of observations for each device under each satellite signal identifier, including: By statistically analyzing the observation sub-tables of each device according to the satellite system dimension, the number of satellites for each device is obtained. Using the preset signal-to-noise ratio threshold, traverse the observation sub-tables of each device and count the number of qualified observations for each satellite signal identifier; Count the total number of observations for each satellite signal identifier in the observation sub-table; The number of qualified observations, total number of observations, number of satellites, and average signal-to-noise ratio for each device were statistically analyzed based on both satellite system and device dimensions.
8. The GNSS observation data statistical method according to claim 7, characterized in that, After obtaining the weighted overall signal-to-noise ratio compliance rate, the method further includes: Get the current timestamp; A statistical curve is generated based on the number of satellites, the number of observations that meet the standard, the total number of observations, the average signal-to-noise ratio, and the percentage of those that meet the standard for each device. Embed the statistical curve chart into the summary table; Name the result file corresponding to the summary table with the current timestamp.
9. A computer device, characterized in that, The computer device includes a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the method as described in any one of claims 1-8.
10. A computer-readable storage medium, characterized in that, The storage medium stores a computer program that, when executed by a processor, can implement the method as described in any one of claims 1-8.