Positioning data analysis method, apparatus, device, and medium
By comparing the elevation values of satellite positioning data with reference elevation values, the unreliability of satellite positioning data when it is obstructed by obstacles or not activated is solved, and the reliability judgment of accurate positioning data under continuous offset conditions is realized.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2021-03-24
- Publication Date
- 2026-05-12
AI Technical Summary
When satellite positioning systems encounter obstacles or the user does not enable positioning, the positioning data becomes unreliable, affecting navigation accuracy.
By obtaining the elevation value and reference elevation value of the current positioning data, and utilizing the correlation between longitude, latitude and elevation data, the difference in elevation values is compared to determine the reliability of the positioning data.
When positioning data experiences continuous offsets, it can accurately identify unreliable positioning data, improve the accuracy of positioning data reliability assessment, and avoid navigation misdirection.
Smart Images

Figure CN115129796B_ABST
Abstract
Description
Technical Field
[0001] This application generally relates to the field of data processing, specifically to the field of intelligent transportation technology, and in particular to a positioning data analysis method, apparatus, equipment, and medium. Background Technology
[0002] Satellite positioning systems have been widely used to achieve functions such as navigation, positioning, and timing.
[0003] However, because satellite positioning systems require communication between ground terminals and satellites, several problems can arise. For example, obstacles may obstruct the ground terminal, the user may switch to positioning from a function that was never activated, or other factors may affect the system, leading to unreliable positioning data. This can cause inconvenience for users. For instance, users navigating based on navigation information generated from such positioning data may easily deviate from the correct route. Therefore, assessing the reliability of positioning data is of great importance. Summary of the Invention
[0004] In view of the above-mentioned defects or deficiencies in the prior art, it is desirable to provide a positioning data analysis method, apparatus, device and medium that can accurately determine the reliability of positioning data in the case of continuous position shift.
[0005] Firstly, this application proposes a location data analysis method, including:
[0006] Obtain current location data, which includes current location data and elevation value;
[0007] Based on the current location data, obtain the reference elevation value corresponding to the current location data;
[0008] The reliability of the current positioning data is determined based on the elevation value and the reference elevation value.
[0009] Secondly, this application proposes a positioning data analysis device, comprising:
[0010] The first acquisition module is used to acquire current positioning data, which includes current location data and elevation value;
[0011] The second acquisition module is used to acquire the reference elevation value corresponding to the current location data based on the current location data;
[0012] The determination module is used to determine the reliability of the current positioning data based on the elevation value and the reference elevation value.
[0013] Thirdly, embodiments of this application provide an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the method described in embodiments of this application.
[0014] Fourthly, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method described in embodiments of this application.
[0015] This application fully utilizes the characteristic that longitude, latitude, and elevation data are both correlated and independent. By comparing the difference between the elevation value in the current positioning data and the reference elevation value in the elevation grid data, the reliability of the current positioning data is determined, which effectively improves the reliability of the positioning data reliability judgment. Even when the positioning data has continuous offset, unreliable positioning data can still be accurately identified.
[0016] Additional aspects and advantages of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Attached Figure Description
[0017] Other features, objects, and advantages of this application will become more apparent from the following detailed description of non-limiting embodiments with reference to the accompanying drawings:
[0018] Figure 1 This illustration shows a schematic diagram of a network architecture provided in an embodiment of this application;
[0019] Figure 2 A flowchart of a positioning data analysis method according to an embodiment of this application is shown;
[0020] Figure 3 This diagram illustrates the signaling interaction of a positioning data analysis method according to an embodiment of this application.
[0021] Figure 4 A flowchart of a positioning data analysis method according to another embodiment of this application is shown;
[0022] Figure 5 A flowchart of a positioning data analysis method according to yet another embodiment of this application is shown;
[0023] Figure 6 This application illustrates elevation grid data according to a specific embodiment;
[0024] Figure 7 This application shows a comparison diagram of navigation horizontal trajectory and elevation change according to a specific embodiment;
[0025] Figure 8A block diagram of a positioning data analysis apparatus according to an embodiment of this application is shown;
[0026] Figure 9 A schematic diagram of the structure of a computer system suitable for implementing an electronic device or server according to embodiments of this application is shown. Detailed Implementation
[0027] The present application will now be described in further detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and not intended to limit it. Furthermore, it should be noted that, for ease of description, only the parts relevant to the invention are shown in the accompanying drawings.
[0028] It should be noted that, unless otherwise specified, the embodiments and features described in this application can be combined with each other. This application will now be described in detail with reference to the accompanying drawings and embodiments.
[0029] It should be noted that as Kalman filtering technology has become a common technology for satellite positioning, the satellite positioning results given by the positioning device are strongly correlated in time series and have made full use of the user's dynamic information. Position and velocity maintain good consistency in Kalman filtering. Therefore, the existing technical solution fails when there is a continuous offset in the satellite positioning results and cannot correctly determine the reliability of the positioning results.
[0030] Based on this, this application proposes a positioning data analysis method, apparatus, device, and medium.
[0031] Please see Figure 1 , Figure 1 This illustration shows a schematic diagram of a network architecture provided by one or more embodiments of this application. Figure 1 As shown, this network architecture may include a server 10d and a user terminal cluster. The user terminal cluster may include one or more user terminals; the number of user terminals is not limited here. Figure 1As shown, the user terminal cluster can specifically include user terminal 10a, user terminal 10b, and user terminal 10c, etc. Server 10d can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. User terminals 10a-10c can include smartphones, tablets, laptops, PDAs, mobile internet devices (MIDs), wearable devices (smartwatches, smart bracelets, etc.), and in-vehicle computers and devices in driving systems, etc., mobile terminals with positioning functions. Figure 1 As shown, user terminals 10a, 10b, and 10c can each connect to server 10d via a network, so that each user terminal can interact with server 10d through the network connection.
[0032] It should be understood that, Figure 1 The number of user terminals 10a, 10b, 10c and server 10d shown is merely illustrative.
[0033] Taking user terminal 10a as an example, user terminal 10a can be called a mobile terminal, that is, a computer device that can be used while on the move. User terminal 10a can be understood as a comprehensive information processing platform with a wide range of communication methods. For example, it can communicate through wireless operating networks such as Global System for Mobile Communication (GSM), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Enhanced Data Rate for GSM Evolution (EDGE), 4G (fourth-generation communication technology), and 5G (fifth-generation communication technology), as well as through wireless local area networks (Wi-Fi), Bluetooth, and infrared. In addition, user terminal 10a integrates a global satellite navigation system positioning chip, which can be used to process satellite signals and accurately locate the user of user terminal 10a, and can be used for location services. After obtaining its current positioning data using the integrated global navigation satellite system positioning chip, user terminal 10a can perform a reliability assessment on this data. During this assessment, user terminal 10a can send an elevation grid data request to server 10d. Upon receiving this request, server 10d determines the map grid where user terminal 10a is located based on its current positioning data and sends the corresponding ground truth elevation value back to user terminal 10a. This allows user terminal 10a to determine the reliability of its current positioning data based on the elevation values it detects and the received ground truth elevation value.
[0034] The implementation details of the technical solutions in the embodiments of this application are described in detail below.
[0035] Figure 2 A flowchart of a positioning data analysis method according to one or more embodiments of this application is shown. It should be noted that the execution entity of the positioning data analysis method in this embodiment is a positioning data analysis device, which can be implemented by software and / or hardware. In this embodiment, the positioning data analysis device can be configured in an electronic device or in a server used to control the electronic device, the server communicating with and controlling the electronic device.
[0036] like Figure 2 As shown, the positioning data analysis method of this application embodiment includes the following steps:
[0037] Step 101: Obtain the current location data, which includes the current location data and elevation value.
[0038] The current location data refers to the user terminal's position information in a two-dimensional plane, which may include the longitude and latitude of the current location. The elevation value is the vertical height of the user terminal, which can be the distance between the user terminal and the horizontal plane. It should be understood that both the current location data and the elevation value can be obtained directly through satellite navigation.
[0039] A Global Navigation Satellite System (GNSS), also known as a Global Navigation Satellite System, is a space-based radio navigation and positioning system that provides users with all-weather, three-dimensional coordinates, velocity, and time information at any location on the Earth's surface or in near-Earth space. Common GNSS systems include the US Global Positioning System (GPS), China's BeiDou Navigation Satellite System (BDS), GLONASS, and the European Union's Galileo system. GPS was the first to emerge, but with the full-scale launch of BDS and GLONASS services in the Asia-Pacific region in recent years, especially the rapid development of BDS in the civilian sector, satellite navigation systems are now widely used in navigation, communications, consumer entertainment, surveying, timing, vehicle management, and automotive navigation and information services. The overall development trend is towards providing high-precision services for real-time applications.
[0040] Step 102: Obtain the reference elevation value corresponding to the current location data based on the current location data.
[0041] Among them, the elevation grid data consists of the grid data of the target map and the elevation values of each grid, while the reference elevation value is the elevation value recorded in the elevation grid data of the map grid where the current location data is located.
[0042] In one or more embodiments, when the executing entity is a user terminal, user terminals 10a-10c can periodically communicate with server 10d to download and save elevation grid data from the server. This allows them to directly query the elevation grid data to obtain the reference elevation value corresponding to the current location data after each acquisition of current location data. Alternatively, after acquiring current location data, they can send the current location data to server 10d. Server 10d then queries the elevation grid data based on the received current location data to obtain the reference elevation value corresponding to the current location data and sends the reference elevation value back to the user terminal, enabling the user terminal to obtain the reference elevation value corresponding to the current location data. In one or more embodiments, when the executing entity is a server, server 10d can, after receiving the current location data sent by user terminals 10a-10c, query the reference elevation value corresponding to the current location data based on the stored elevation grid data.
[0043] Step 103: Determine the reliability of the current positioning data based on the elevation value and the reference elevation value.
[0044] In one or more embodiments, after querying or retrieving the reference elevation value corresponding to the current location data from the server, the real-time elevation value given by satellite positioning and the reference elevation value are further compared, and the reliability of the current positioning data is determined based on the difference between the elevation value and the reference elevation value.
[0045] In one or more embodiments, such as Figure 3 As shown, the execution subject is the server as an example.
[0046] Step 301: The user terminal determines its current location data based on the global satellite navigation system.
[0047] The current positioning data is three-dimensional data, including horizontal longitude and latitude information and vertical elevation value.
[0048] Step 302: The user terminal generates an elevation grid data request based on the current positioning data.
[0049] Step 303: The user terminal sends an elevation grid data request to the server.
[0050] Step 304: The server receives a request for elevation grid data.
[0051] Step 305: The server extracts the current location data of the user terminal from the elevation grid data request.
[0052] Step 306: The server queries the map grid where the user terminal is located based on the longitude and latitude information in the current location data.
[0053] Step 307: The server uses the true elevation value corresponding to the map grid as the reference elevation value and compares the difference between the elevation value in the current positioning data and the reference elevation value.
[0054] Step 308: The server determines the reliability of the current location data. For example, it determines whether the current location data is reliable (location is normal) or unreliable (location is abnormal).
[0055] Step 309: The server sends the determined reliability result to the user terminal.
[0056] Step 310: The user terminal issues a warning message if the location data is unreliable.
[0057] Therefore, one or more embodiments of this application fully utilize the characteristics that longitude, latitude and elevation data are both correlated and independent. By comparing the difference between the elevation value in the current positioning data and the reference elevation value in the elevation grid data, the reliability of the current positioning data is determined, which effectively improves the reliability of the positioning data reliability judgment. Even when the positioning data has continuous offset, unreliable positioning data can still be accurately identified.
[0058] In one or more embodiments, determining the reliability of the current positioning data based on the elevation value and the reference elevation value includes: obtaining the absolute error between the elevation value and the reference elevation value; and determining that the current positioning data is unreliable when the absolute error is greater than a first preset threshold and greater than a second preset threshold. The first preset threshold is an abnormal parameter corresponding to the reference elevation value, and the second preset threshold is a deviation threshold between the elevation value and the reference elevation value.
[0059] Wherein, the absolute error is the absolute value of the difference between the collected value and the reference value, that is, the absolute error between the elevation value and the reference elevation value is the difference between the elevation value H and the reference elevation value H. r The absolute value of the difference | (HH r )| .
[0060] In one or more embodiments, the application scenario is surface navigation, that is, it does not involve significant changes in elevation caused by indoor height. Normal roads (planned driving routes) typically do not experience sudden changes in elevation; therefore, the elevation value H and the reference elevation value H0 are... r The absolute error between |(HH) r The deviation should be less than a preset threshold. Accordingly, in one or more embodiments, the elevation data conforms to a Gaussian distribution; therefore, outliers can be removed using the multiple standard deviation method.
[0061] In one or more embodiments, when the user terminal obtains the reference elevation value, it can also simultaneously obtain the standard deviation corresponding to the reference elevation value. That is, the server obtains the true elevation value and standard deviation based on the elevation values in historical positioning data when calculating the elevation grid data. Then, it simultaneously determines whether the absolute error between the elevation value and the reference elevation value is greater than both a first preset threshold and a second preset threshold. If so, the current positioning data is determined to be unreliable, i.e., the positioning is abnormal. If not, i.e., the absolute error is greater than the first preset threshold but less than or equal to the second preset threshold, or the absolute error is greater than the second preset threshold but less than or equal to the first preset threshold, or the absolute error is less than or equal to both the first preset threshold and the second preset threshold, the current positioning data is considered reliable, i.e., the positioning is normal.
[0062] In one or more embodiments, the first preset threshold and the second preset threshold are thresholds preset by the user. Preferably, the first preset threshold (abnormal parameter) is six times the standard deviation, i.e., |(HH r )|>6×STD H The second preset threshold (deviation threshold) is 100. That is, if the absolute error between the current positioning data elevation value and the reference elevation value is greater than 100 and greater than 6 times the standard deviation, it indicates that the elevation value of the current positioning data may be abnormal. If the absolute error between the current positioning data elevation value and the reference elevation value is less than or equal to 100, or less than or equal to 6 times the standard deviation, or both less than or equal to 100 and less than or equal to 6 times the standard deviation, then the current positioning data is considered reliable and the positioning is normal.
[0063] Therefore, by setting redundant abnormal parameters and evaluation methods, this application can effectively improve the detection rate of unreliable positioning data and effectively avoid the impact of continuous position shift on the reliability of positioning data.
[0064] In one or more embodiments, when the current location data is unreliable, an alert is issued and the current location data is updated.
[0065] In other words, when the current location data is determined to be unreliable, the server can control the user terminal to issue an unreliable location data warning, so as to remind the user not to use the current location data for navigation, driving or other activities to avoid traffic accidents. At the same time, the server can update the current location data to provide the user with reliable location data in a timely manner.
[0066] It should be understood that the positioning data analysis method proposed in this application embodiment can be embedded in the positioning SDK (Software Development Kit), which can effectively filter out some abnormal satellite positioning data. Therefore, improving the basic capabilities of the SDK through the positioning data analysis method can effectively improve the performance of positioning products and enhance the user experience.
[0067] In some embodiments, such as Figure 4 As shown, the location data analysis method also includes:
[0068] Step 201: Divide the target area into at least one map grid and obtain historical positioning data in each map grid. The historical positioning data includes at least one historical location data and the historical elevation value corresponding to each historical location data.
[0069] It should be noted that the server can divide the map data of the target area into grids of a certain size according to latitude and longitude. In one or more embodiments, the map of my country can be divided into grids of a certain size according to latitude and longitude, and then each map grid is encoded to give each map grid a unique ID. Specifically, for each map grid, there is a one-to-one mapping between the latitude and longitude information covered by the map grid and the ID. Optionally, in this embodiment, the size of the map grid can be 100m × 100m.
[0070] In one or more embodiments, historical location data for each map grid stored in the server can be sent to the server as location data for each user terminal that has activated satellite positioning. In one or more embodiments, to ensure that the calculation of elevation grid data is not affected by severely outdated historical data, the server can filter the location data stored within the last 1-2 months.
[0071] In one or more embodiments, since location data is usually reported in the form of the user's driving trajectory, it is necessary to filter the historical location data after it is obtained to remove, for example, historical location data with insufficient positioning accuracy, indoor location data, and the start and end points of the driving trajectory.
[0072] In one or more embodiments, the reliability assessment of positioning data is applied to determine the reliability of positioning data within a driving trajectory. Therefore, the elevation values of indoor positioning data can significantly impact the accuracy of elevation grid data. In certain situations, such as underground parking spaces, the starting and ending points of a vehicle's trajectory are often the locations of the parking spaces; using their elevation values to calculate elevation grid data also severely affects the accuracy of the elevation grid data. Furthermore, people typically linger for a period before driving and after parking, easily leading to redundant uploading of historical positioning data, which in turn significantly influences the elevation values of the map grid based on the starting and ending positions. Therefore, indoor positioning data, as well as the starting and ending points of driving trajectories, are removed from historical positioning data to ensure the accuracy of the elevation values corresponding to each map grid.
[0073] In one or more embodiments, the remaining historical location data is stored in the storage location corresponding to the map grid according to user information (user ID), longitude, latitude, and the elevation value corresponding to each set of location data (latitude and longitude array).
[0074] Step 202: For any map grid, preprocess the historical positioning data in the map grid according to the correspondence between historical positioning data and users to obtain candidate elevation values provided by at least one user.
[0075] In one or more embodiments, in order to ensure that the elevation data in each map grid conforms to a Gaussian distribution, that is, to avoid the historical location data of a certain user in a map grid having a large impact on the elevation value corresponding to that map grid in the elevation grid data, it is necessary to preprocess the historical location data for each map grid to obtain candidate elevation values.
[0076] In one or more embodiments, historical positioning data in the map grid is preprocessed according to the correspondence between historical positioning data and users to obtain candidate elevation values provided by at least one user. This includes: statistically analyzing historical positioning data based on user information to obtain the number of historical positioning data corresponding to each user, wherein the number of historical positioning data is used to reflect the number of times the user appears in the map grid; and for each user, when the number of historical positioning data is greater than or equal to a second preset number, obtaining the average value of historical elevation data in the historical positioning data as the candidate elevation value provided by the user.
[0077] In one or more embodiments, when determining the elevation value applied to the driving trajectory, according to the vehicle's driving speed on the road and the frequency of generating positioning data, the vehicle should report no more than two positioning data within a 100m×100m space. However, if the vehicle is delayed due to traffic lights, traffic jams, etc., the vehicle will generate and report multiple positioning data within the map grid. The elevation values of these data remain unchanged, but if all of them are retained, it will seriously affect the weight of the elevation values of other passing vehicles within the map grid. That is, the elevation values within the map grid will be greatly affected by the vehicle and will no longer conform to the Gaussian distribution. Therefore, preprocessing is required.
[0078] In one or more embodiments, the number of historical location data corresponding to each user in the map grid can be counted. If a user appears more than or equal to a second preset number in the grid, the elevation value corresponding to each location data of the user in the map grid is obtained, the average elevation value is calculated, and the average elevation value is used as the elevation value of the user in the map grid. Optionally, the second preset number can be 3.
[0079] Step 203: Calculate the true elevation values of the map grid based on the candidate elevation values.
[0080] In one or more embodiments, the true elevation value of a map grid can be calculated based on the number of candidate elevation values in each map grid. For example, when the number of candidate elevation values is greater than or equal to a first preset number, the map grid is treated as a first type of map grid, and the true elevation value is calculated according to the strategy corresponding to the first type of map grid. When the number of candidate elevation values is less than or equal to the first preset number, the map grid is treated as a second type of map grid, and the true elevation value is calculated according to the strategy corresponding to the second type of map grid.
[0081] In one or more embodiments, for a first type of map grid, the candidate elevation values in the first type of map grid are subjected to robust calculation to obtain at least one target elevation value; the mean of the at least one target elevation value is used as the true elevation value of the map grid, and the standard deviation of the at least one target elevation value is used as the outlier base of the map grid, which is used to generate anomaly parameters for judging the reliability of the elevation values.
[0082] In one or more embodiments, the historical data collected by the user terminal may contain a certain proportion of long-tailed outliers, that is, outliers close to the horizontal axis among the elevation values that conform to a Gaussian distribution. Long-tailed outliers can be removed using the absolute median.
[0083] In one or more embodiments, robustness calculation is performed on candidate elevation values to obtain target elevation values, including: calculating the median difference and absolute median difference of candidate elevation values; determining robustness parameters based on the absolute median difference; and using candidate elevation values whose absolute error between the candidate elevation value and the median difference is less than or equal to the robustness parameters as target elevation values.
[0084] In other words, the median absolute deviation (MAD) of candidate elevation values can be calculated using the absolute median deviation formula, as follows:
[0085] MAD=b M i (|(X) i -M j (X) i ))|)
[0086] Among them, X i M is the candidate elevation value. j (X) i M is the median of the candidate elevation values. i denoted as the median difference of the candidate elevation values, and b is the scaling factor, which is 1.4826 in this application.
[0087] In one or more embodiments, the robustness parameter can be a parameter threshold preset by the user, a parameter threshold obtained through a finite number of experiments, or a parameter threshold obtained through a finite number of computer simulations. Preferably, three times the absolute median difference can be used as the robustness parameter, and the elevation value X... i With median difference M i The absolute error | (X i -M i If the absolute error is greater than the robustness parameter, then |(X)| is considered equal to the robustness parameter. i -M i )|>3 If the MAD (Marginal Error) is less than or equal to the robustness parameter, then that elevation value is discarded. i -M i )|≤3 If MAD is used, this elevation value will be used as the target elevation value for further calculation of the elevation grid data.
[0088] In other words, after robustness calculation, the mean and standard deviation (STD) of the obtained target elevation values are calculated. In one or more embodiments, mathematical algorithms can be used to calculate the mean and standard deviation of the target elevation values separately, or mathematical algorithms can be used to calculate the mean and standard deviation of the target elevation values simultaneously. Preferably, algorithms such as Kalman filtering and least squares method can be used to calculate the mean and standard deviation. In one or more embodiments, the outlier can be the standard deviation corresponding to the reference elevation value.
[0089] In one or more embodiments, for grids lacking historical positioning data, such as those lacking uploaded historical positioning data, and furthermore, due to the aforementioned preprocessing, some map grids may have insufficient remaining historical positioning data samples. Therefore, interpolation processing is required for map grids with insufficient elevation data to ensure the accuracy of the calculation results. In one or more embodiments, if the number of historical positioning data in a map grid is less than a first preset number, or if the number of candidate elevation values in a map grid is less than a first preset number after preprocessing, the map grid is determined to be a second type of map grid. At least one reference map grid adjacent to the second type of map grid is obtained, and the weighted average of the candidate elevation values of the at least one reference map grid is used as the true elevation value of the map grid. The weight of the reference map grid is the reciprocal of the distance between the reference map grid and the map grid.
[0090] In other words, the K nearest neighbor grids of the map grid to be interpolated are obtained. Then, the weight of each nearest neighbor grid is generated based on the distance between each nearest neighbor grid and the map grid to be interpolated. The true elevation value of each nearest neighbor grid is multiplied by the corresponding weight value, and then the average is calculated. The average value is used as the true elevation value of the map grid to be interpolated.
[0091] It should be understood that the distance between each nearest neighbor grid and the map grid to be interpolated can be calculated using the distance between the center points of the two grids, and the distance between each nearest neighbor grid cannot be greater than a preset distance threshold. If a map grid to be interpolated does not have K nearest neighbor grids, then that map grid is discarded.
[0092] In some embodiments, such as Figure 5 As shown, the process of calculating elevation grid data may include:
[0093] Step 501: Divide the map into grids.
[0094] Optionally, the map can be divided into a grid of a fixed size according to latitude and longitude (e.g., 100m). (100m), and each grid cell is encoded with a unique ID. A one-to-one mapping relationship is formed between the location of a map grid cell and its ID.
[0095] Step 502: Perform data mining using the user's historical elevation data.
[0096] Optionally, select the two most recent historical location data reported by user terminals stored on the server to examine each user's driving trajectory. This requires preliminary filtering of abnormal location points reported by user terminals, such as removing the start and end points of the driving trajectory, indoor GPS location points, and GPS location points with poor accuracy. Place the data after removing outliers into their respective map grids according to the user's ID, longitude, latitude, and elevation value.
[0097] Step 503: Preprocess the elevation data within the map grid.
[0098] Optionally, before calculating the average elevation value and standard deviation of the elevation values within the grid, further preprocessing of the elevation data within the map grid is required to ensure that the elevation data in each grid conforms to a Gaussian distribution. Specifically, if a user appears more than a threshold number of times within a map grid, the average of these location information points for that user is used to replace multiple original points, thereby avoiding excessive influence of a single user within a grid on the final result.
[0099] Step 504: Determine whether the data within the map grid is redundant.
[0100] If yes, proceed to step 505; otherwise, proceed to step 506.
[0101] Step 505: Perform robustness calculation on the data within the map grid.
[0102] Step 506: Perform interpolation on the map grid.
[0103] In other words, after preprocessing, it is necessary to determine whether there are enough users and GPS positioning points. If there is enough data, robust calculations of mean and standard deviation are performed. Otherwise, if the amount of data in the map grid cannot guarantee the accuracy of the calculation results, interpolation processing of the grid is required.
[0104] Specifically, the absolute median and median difference of elevation values within the map grid are calculated using the formula for calculating the absolute median. Elevation values whose absolute error with respect to the median difference is greater than the robustness parameter are deleted. If, after robustness calculation, the remaining samples still have sufficient users and data volume (elevation values), the mean and standard deviation of the remaining samples are statistically analyzed and used as the true elevation value and standard deviation of the map grid. Otherwise, the elevation calculation for that grid is abandoned, and interpolation processing is performed on that grid.
[0105] Because the process of calculating grid elevations requires ensuring the accuracy of the results, and it's impossible for every location on the map to have user GPS coordinates, a large number of grids will lack data. Without increasing the data sample size, interpolation is needed for map grids with insufficient sample data. Specifically, the K-NN nearest neighbor algorithm is used to regress each grid to its weighted average elevation data of its K nearest neighbors. The weight of each nearest neighbor is the reciprocal of the distance between that nearest neighbor and the grid to be interpolated, and the distance between any two nearest neighbors cannot exceed a threshold. If a grid lacks K nearest neighbor data, it is discarded.
[0106] Step 507: Merge redundant meshes.
[0107] Among them, there are a lot of redundant grids in the calculated grid data, such as large areas of unchanged elevation and large areas of elevation gaps. Therefore, a distributed K-means clustering algorithm is used to cluster the redundant grids and merge them into a large grid, which is the redundant grid merging process, and finally generates elevation grid data.
[0108] Step 508: Generate elevation grid data for the target area.
[0109] Due to human factors such as natural disasters or infrastructure construction, road network elevation data may change. Therefore, it is necessary to periodically repeat the above process to dynamically maintain and update the elevation grid data. Taking a certain location as an example, the generated elevation grid data for month xx of year xxxx is as follows: Figure 6 As shown, (a) is a reference elevation data map, and (b) is a reference elevation standard deviation data map.
[0110] In one specific embodiment, such as Figure 7As shown, (a) is a horizontal trajectory map obtained by satellite positioning during a user's driving navigation process, and (b) is an elevation value data map compared with (a). It can be seen from (a) that there is a significant offset, i.e., the user's horizontal driving trajectory is on the water surface. For this type of amine, neither the satellite data used nor the analysis of the distribution, user position, and speed over time series can provide a warning. However, using the scheme proposed in this application, the reference elevation value of the map grid corresponding to the trajectory can be obtained using elevation grid data, which is 70m with a standard deviation of 20m. Calculations show that the elevation value of the convex area in (b) meets the anomaly condition, i.e., the absolute error between the actual elevation value and the reference elevation value is greater than 100 and greater than 6 times the standard deviation.
[0111] In summary, the embodiments of this application fully utilize the characteristics of longitude, latitude, and elevation data being both correlated and independent. By comparing the difference between the elevation value in the current positioning data and the reference elevation value in the elevation grid data, the reliability of the current positioning data is determined, effectively improving the reliability of the positioning data reliability judgment. Even when the positioning data undergoes continuous shifts, unreliable positioning data can still be accurately identified.
[0112] It should be noted that although the operation of the method of the present invention is described in a specific order in the accompanying drawings, this does not require or imply that the operations must be performed in that specific order, or that all the operations shown must be performed in order to achieve the desired result.
[0113] Further reference Figure 8 The diagram shows a block diagram of a positioning data analysis device according to an embodiment of this application.
[0114] like Figure 8 As shown, the positioning data analysis device 10 includes:
[0115] The first acquisition module 11 is used to acquire current positioning data, which includes current location data and elevation value;
[0116] The second acquisition module 12 is used to acquire the reference elevation value corresponding to the current location data based on the current location data;
[0117] The determination module 13 is used to determine the reliability of the current positioning data based on the elevation value and the reference elevation value.
[0118] In some embodiments, the second acquisition module 12 is further configured to:
[0119] The target area is divided into at least one map grid, and historical positioning data in each map grid is obtained. The historical positioning data includes at least one historical location data and the historical elevation value corresponding to each historical location data.
[0120] For any map grid, the historical positioning data in the map grid is preprocessed according to the correspondence between the historical positioning data and users to obtain candidate elevation values provided by at least one user.
[0121] Calculate the true elevation values of the map grid based on candidate elevation values.
[0122] In some embodiments, the second acquisition module 12 is further configured to:
[0123] Based on the user's information, the historical location data is statistically analyzed to obtain the number of historical location data for each user. The number of historical location data is used to reflect the number of times the user appears in the map grid.
[0124] For each user, when the number of historical location data is greater than or equal to the second preset number, the average value of historical elevation data in the historical location data is obtained as a candidate elevation value provided by the user.
[0125] In some embodiments, the second acquisition module 12 is further configured to:
[0126] For the first type of map grid, the candidate elevation values in the first type of map grid are subjected to robust calculation to obtain at least one target elevation value, wherein the number of candidate elevation values in the first type of map grid is greater than or equal to a first preset number;
[0127] The mean of at least one target elevation value is used as the true elevation value of the map grid, and the standard deviation of at least one target elevation value is used as the outlier cardinality of the map grid. The outlier cardinality is used to generate outlier parameters for judging the reliability of elevation values.
[0128] In some embodiments, the second acquisition module 12 is further configured to:
[0129] Calculate the median and absolute median of the candidate elevation values;
[0130] Determine the robustness parameters based on the absolute median;
[0131] Candidate elevation values whose absolute error between the candidate elevation value and the median is less than or equal to the robustness parameter are taken as target elevation values.
[0132] In some embodiments, the second acquisition module 12 is further configured to:
[0133] Obtain the median of the candidate elevation values;
[0134] Obtain the absolute value of the difference between each candidate elevation value and the median;
[0135] The median of the absolute values of the differences is taken as the median difference of the candidate elevation values, and the product of the median difference and the scaling factor is taken as the absolute median difference.
[0136] In some embodiments, the second acquisition module 12 is further configured to:
[0137] For the second type of map grid, at least one reference map grid adjacent to the second type of map grid is obtained, wherein the number of candidate elevation values in the second type of map grid is less than a first preset number;
[0138] The weighted average of the reference elevation values of at least one reference map grid is used as the true elevation value of the second type of map grid, and the weight of the reference map grid is the reciprocal of the distance between the reference map grid and the map grid.
[0139] In some embodiments, the second acquisition module 12 is further configured to:
[0140] Based on the current location data and map grid data, determine the target map grid to which the current location data belongs;
[0141] Use the true elevation value corresponding to the target map grid as the reference elevation value.
[0142] In some embodiments, the determining module 13 is further configured to:
[0143] Obtain the absolute error between the elevation value and the reference elevation value;
[0144] When the absolute error is greater than both the first preset threshold and the second preset threshold, the current positioning data is determined to be unreliable. The first preset threshold is the abnormal parameter corresponding to the reference elevation value, and the second preset threshold is the deviation threshold between the elevation value and the reference elevation value.
[0145] In some embodiments, the determining module 13 is further used for
[0146] If the current location data is unreliable, an alert message will be sent and the current location data will be updated.
[0147] It should be understood that the units or modules described in the positioning data analysis device 10 are related to the reference. Figure 2 The steps in the described method correspond to each other. Therefore, the operations and features described above for the method also apply to the location data analysis device 10 and the units contained therein, and will not be repeated here. The location data analysis device 10 can be pre-implemented in the browser or other security applications of an electronic device, or it can be loaded into the browser or other security applications of an electronic device through download or other means. The corresponding units in the location data analysis device 10 can cooperate with the units in the electronic device to implement the solutions of the embodiments of this application.
[0148] The division of modules or units mentioned in the detailed description above is not mandatory. In fact, according to the embodiments of this disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.
[0149] In summary, the embodiments of this application fully utilize the characteristics of longitude, latitude, and elevation data being both correlated and independent. By comparing the difference between the elevation value in the current positioning data and the reference elevation value in the elevation grid data, the reliability of the current positioning data is determined, effectively improving the reliability of the positioning data reliability judgment. Even when the positioning data undergoes continuous shifts, unreliable positioning data can still be accurately identified.
[0150] The following is for reference. Figure 9 , Figure 9 A schematic diagram of the structure of a computer system suitable for implementing the embodiments of this application is shown.
[0151] like Figure 9 As shown, the computer system 900 includes a central processing unit (CPU) 901, which can perform various appropriate actions and processes based on programs stored in read-only memory (ROM) 902 or programs loaded from storage section 908 into random access memory (RAM) 903. RAM 903 also stores various programs and data required for the system's operating instructions. CPU 901, ROM 902, and RAM 903 are interconnected via bus 904. Input / output (I / O) interface 905 is also connected to bus 904.
[0152] The following components are connected to I / O interface 905: an input section 906 including a keyboard, mouse, etc.; an output section 907 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 908 including a hard disk, etc.; and a communication section 909 including a network interface card such as a LAN card, modem, etc. The communication section 909 performs communication processing via a network such as the Internet. A drive 910 is also connected to I / O interface 905 as needed. A removable medium 911, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on drive 910 as needed so that computer programs read from it can be installed into storage section 908 as needed.
[0153] Specifically, according to embodiments of this application, the flowchart above refers to... Figure 2The described process can be implemented as a computer software program. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowchart. In such an embodiment, the computer program contains program code for performing the methods shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via communication section 909, and / or installed from removable medium 911. When the computer program is executed by central processing unit (CPU) 901, it performs the functions defined in the system of this application.
[0154] It should be noted that the computer-readable medium shown in this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this application, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this application, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media can also be any computer-readable medium other than computer-readable storage media, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.
[0155] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operational instructions of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two connected blocks may actually be executed substantially in parallel, or they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified functions or operational instructions, or using a combination of dedicated hardware and computer instructions.
[0156] The units or modules described in the embodiments of this application can be implemented in software or hardware. The described units or modules can also be housed in a processor; for example, a processor can be described as including a first acquisition module, a second acquisition module, and a determination module. The names of these units or modules do not necessarily limit the specific unit or module itself. For example, the first acquisition module can also be described as "acquiring current positioning data, which includes current location data and elevation values."
[0157] In another aspect, this application also provides a computer-readable storage medium, which may be included in the electronic device described in the above embodiments, or may exist independently and not assembled into the electronic device. The aforementioned computer-readable storage medium stores one or more programs that, when used by one or more processors, execute the positioning data analysis method described in this application.
[0158] The above description is merely a preferred embodiment of this application and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of disclosure in this application is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the foregoing disclosed concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features with similar functions disclosed in this application.
Claims
1. A method for analyzing location data, characterized in that, include: The system receives an elevation grid data request and extracts current positioning data from the elevation grid data request. The current positioning data includes current location data and elevation value. The elevation grid data request is generated by the terminal based on the current positioning data. Based on the current location data and map grid data, determine the target map grid to which the current location data belongs; When the number of candidate elevation values provided by the user in the target map grid is greater than or equal to a first preset number, the target map grid is used as a first type of map grid, and the candidate elevation values in the first type of map grid are subjected to robust calculation to obtain at least one target elevation value. The mean of the at least one target elevation value is used as the true elevation value of the map grid, and the standard deviation of the at least one target elevation value is used as the outlier base of the map grid. The outlier base is used to generate outlier parameters for judging the reliability of the elevation values. When the number of candidate elevation values is less than the first preset number, the target map grid is used as a second type of map grid, and at least one reference map grid adjacent to the second type of map grid is obtained; The weighted average of the candidate elevation values of the at least one reference map grid is used as the true elevation value of the second type of map grid, and the weight of the reference map grid is the reciprocal of the distance between the reference map grid and the map grid. Use the true elevation value corresponding to the target map grid as the reference elevation value; Based on the elevation value and the reference elevation value, the reliability of the current positioning data is determined, and the reliability result is sent to the terminal; The method further includes: obtaining the absolute error between the elevation value and the reference elevation value; When the absolute error is greater than a first preset threshold and greater than a second preset threshold, the current positioning data is determined to be unreliable. The terminal issues a reminder message and updates the current positioning data. The first preset threshold is the abnormal parameter corresponding to the reference elevation value, and the second preset threshold is the deviation threshold between the elevation value and the reference elevation value.
2. The method according to claim 1, characterized in that, Also includes: The target area is divided into at least one map grid, and historical positioning data in each map grid is obtained. The historical positioning data includes at least one historical location data and a historical elevation value corresponding to each historical location data. For any of the map grids, the historical positioning data in the map grids are preprocessed according to the correspondence between the historical positioning data and users to obtain the candidate elevation value provided by at least one user. This includes: statistically analyzing the historical positioning data based on the user's user information to obtain the number of historical positioning data corresponding to each user, where the number of historical positioning data reflects the number of times the user appears in the map grid; and for each user, when the number of historical positioning data is greater than or equal to a second preset number, obtaining the average value of the historical elevation data in the historical positioning data as the candidate elevation value provided by the user. The true elevation value of the map grid is calculated based on the number of candidate elevation values.
3. The method according to claim 1, characterized in that, The step of performing robust calculations on the candidate elevation values in the first type of map grid to obtain at least one target elevation value includes: Calculate the median difference and absolute median difference of the candidate elevation values; Determine the robustness parameter based on the absolute median difference; The candidate elevation value whose absolute error between the candidate elevation value and the median difference is less than or equal to the robustness parameter is taken as the target elevation value.
4. The method according to claim 3, characterized in that, The calculation of the median difference and absolute median difference of the candidate elevation values includes: Obtain the median of the candidate elevation values; Obtain the absolute value of the difference between each candidate elevation value and the median; The median of the absolute values of the differences is taken as the median difference of the candidate elevation values, and the product of the median difference and the scaling factor is taken as the absolute median difference.
5. A positioning data analysis device, characterized in that, include: The first acquisition module is used to receive an elevation grid data request and extract current positioning data from the elevation grid data request. The current positioning data includes current location data and elevation value. The elevation grid data request is generated by the terminal based on the current positioning data. The second acquisition module is used to determine the target map grid to which the current location data belongs based on the current location data and the map grid data; Use the true elevation value corresponding to the target map grid as the reference elevation value; The determination module is used to determine the reliability of the current positioning data based on the elevation value and the reference elevation value, and send the reliability result to the terminal; The device is further configured to: when the number of candidate elevation values provided by the user in the target map grid is greater than or equal to a first preset number, use the target map grid as a first type of map grid, perform robust calculation on the candidate elevation values in the first type of map grid, and obtain at least one target elevation value; The mean of the at least one target elevation value is used as the true elevation value of the map grid, and the standard deviation of the at least one target elevation value is used as the outlier base of the map grid. The outlier base is used to generate outlier parameters for judging the reliability of the elevation values. The device is further configured to: when the number of candidate elevation values is less than the first preset number, use the target map grid as a second type of map grid and obtain at least one reference map grid adjacent to the second type of map grid; The weighted average of the candidate elevation values of the at least one reference map grid is used as the true elevation value of the second type of map grid, and the weight of the reference map grid is the reciprocal of the distance between the reference map grid and the map grid. The device is also used to: obtain the absolute error between the elevation value and the reference elevation value; When the absolute error is greater than a first preset threshold and greater than a second preset threshold, the current positioning data is determined to be unreliable. The terminal issues a reminder message and updates the current positioning data. The first preset threshold is the abnormal parameter corresponding to the reference elevation value, and the second preset threshold is the deviation threshold between the elevation value and the reference elevation value.
6. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the positioning data analysis method as described in any one of claims 1-4.
7. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by the processor, the program implements the location data analysis method as described in any one of claims 1-4.