Systems and methods for rapid processing and display of geospatial information

The DGGS model efficiently partitions the earth's surface into hierarchical triangular cells for rapid geospatial data retrieval, addressing inefficiencies in existing systems and reducing search times and costs.

WO2025151954A1PCT designated stage expired Publication Date: 2025-07-24BIGGEO INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CA2025/050058
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-16
Filing Date
2025-01-15
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

Existing geospatial data search systems, particularly in online marketplaces, are inefficient and slow, leading to significant economic losses due to millisecond delays, and current GIS systems like R-Trees and KD-Trees struggle with large-scale geospatial data and high computational costs.

Method used

A Discrete Global Grid System (DGGS) model that partitions the earth's surface into hierarchical triangular cells, each with unique identifiers, allowing for efficient indexing and searching of geospatial data by examining cells at varying resolutions to quickly identify relevant data.

Benefits of technology

The DGGS system significantly reduces search times and computational costs, enabling rapid retrieval of geospatial data, thereby enhancing the economic viability of online marketplaces and reducing power consumption in large database systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CA2025050058_24072025_PF_FP_ABST
    Figure CA2025050058_24072025_PF_FP_ABST
Patent Text Reader

Abstract

Discrete Global Grid Systems (DGGS)-based systems and methods for querying, filtering and sorting of geospatial objects applicable to a range of marketplace services are described. The DGGS system includes a model defining an area of a spherical surface with polygonal cells having both parent and child cells where child cells are fully contained within the parent cell and where each child cell is a fraction of the parent cell's area. In one aspect, each of cells are triangular cells corresponding to the spherical surface at different resolutions wherein each resolution is a degree of resolution and wherein a degree of resolution of a child cell is defined by a triangular cell within the parent cell and having a border-length 50% of a border-length of a parent cell. For a defined resolution, each cell has a corresponding location coordinate and a point ID if data is associated with that cell.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEMS AND METHODS FOR RAPID PROCESSING AND DISPLAY OF GEOSPATIAL INFORMATIONFIELD

[0001] The disclosure relates to Discrete Global Grid Systems (DGGS)-based systems and methods for querying, filtering and sorting of geospatial objects that provide for rapid results that can be applied to a range of marketplace services. The DGGS system includes a model that defines an area of a spherical surface by a plurality of polygonal cells that include both parent and child cells where the child cells are fully contained within the parent cell and where each child cell corresponds to a fraction of the parent cell’s area. In one aspect, each of the parent and child cells are triangular cells corresponding to the spherical surface at a plurality of resolutions wherein each resolution is defined as a degree of resolution and wherein a degree of resolution of a child cell is defined by a triangular cell within the parent cell and having a border length 50% of a border length of a parent cell. For a defined resolution, each cell has a corresponding location coordinate and one or more point IDs if data is associated with that cell.BACKGROUND

[0002] Discrete Global Grid Systems (DGGS) are mosaic models of the earth’s surface that comprise cells that correspond to regions on the earth’s surface that are used to build and contain geospatial data structures. A DGGS containing geospatial data can enable geospatial queries where data within cells is accessed / retrieved through geospatial indexing and where geospatial data is logically organized enabling access and retrieval.

[0003] DGGS are widely used in a wide range of applications that enable users to access and utilize geospatial data.

[0004] One key area of use of DGGS systems is the consumer world, where consumers are increasingly making purchases online. Depending on the type of purchase, the geospatial component / attributes of the purchase may be very important for a variety of reasons, including the need of proximity to an offered product or service and / or to address various user preferences. To satisfy these needs, online marketplace developers require easy-to-integrate data structures that efficiently perform these searches across geospatial and non-geospatial attributes.

[0005] The speed at which a marketplace returns relevant results is increasingly important to the sales process insomuch as delays in conducting searches and presenting data to users can significantly affect sales. Importantly, studies have shown that millisecond delays during a user’s interaction with an online system across thousands of users can result in millions of dollars in lost sales. As a result, there is a need for improved systems and methods for conducting searches for objects with geospatial attributes.SUMMARY

[0006] In accordance with the disclosure, a method for indexing and searching geospatial data within a discrete global grid system (DGGS) is described. The DGGS model defines an area of a spherical surface by a plurality of polygonal cells that include both parent and child cells where the child cells are fully contained within the parent cell and where each child cell corresponds to a fraction of the parent cell’s area.

[0007] In one embodiment, each of the parent and child cells are triangular cells corresponding to the spherical surface at a plurality of resolutions wherein each resolution is defined as a degree of resolution and wherein a degree of resolution of a child cell is defined by a triangular cell within the parent cell and having a border length 50% of a border length of a parent cell. For a defined resolution, each cell has a corresponding location coordinate and one or more point IDs if data is associated with that cell. The method includes the steps of: within a defined search boundary at a resolution 1 level, identify all cells: i) fully within the search boundary; ii) overlapping the search boundary; iii) outside the search boundary.

[0008] In various embodiments and for resolutions 1-n, the method further includes the steps of:(1) Identify all cells at resolution n fully within the search boundary;(2) Determining if the cells from step (1) contain a point ID and marking cells containing a point ID and discarding cells that do not have a point ID;(3) Identify all cells at resolution n overlapping the search boundary;(4) Determining if the cells from step (3) contain a point ID and discarding cells that do not contain a point ID.

[0009] In another embodiment, and for cells having a point ID from step (4), incrementing the resolution and examine n+1 child cells and;(5) for cells having a point ID from step (4), incrementing the resolution and examine n+1 child cells and;(a) determining if the child cells from step (5) are within the boundary, outside the boundary or overlapping the boundary;(i) for cells within the boundary, determining if each child cell within the boundary contains a point ID and if a cell within the boundary contains a point ID marking that cell within the boundary as having a point ID; and,(ii) discarding cells outside the boundary.

[0010] In another embodiment, and for cells overlapping the boundary, determining if the cell overlapping the boundary has a point ID, conducting further steps of:1) discarding cells overlapping the boundary that do not have a point ID; and,2) for cells overlapping the boundary and having a point ID, increasing resolution by 1 and repeating step (5).

[0011] In various embodiments:• the method further includes associating data with each point ID, wherein associated data has at least a location coordinate.• the point I D is used to effect access to a secondary database having data associated with that point ID.• triangular parent cell has 4 child cells fully contained with a preceding parent cell.• a location coordinate is latitude and longitude.BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Various objects, features and advantages of the disclosure will be apparent from the following description of particular embodiments of the disclosure, as illustrated in the accompanying drawings. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of various embodiments. Similar reference numerals indicate similar components.Figure 1 illustrates a basic 3D tetrahedron and its surfaces as well as a representation of the globe as a multitude of discrete polygons.Figures 1A and 2 illustrate a plurality of triangular parent and child cells at multiple degrees of resolution.Figure 2A illustrates an indexing hierarchy for cells containing and not-containing data.Figures 3 to 3E illustrate a method of selecting and discarding cells through multiple degrees of resolution.Figure 4 is a flowchart illustrating a method of selecting and discarding cells through multiple degrees of resolution.Figure 5 is a flowchart illustrating steps of accessing secondary databases from a primary search;Figure 6 illustrates representative runtime differences between the methods of the disclosure and other search systems.DETAILED DESCRIPTION

[0013] With reference to the figures, systems and methods of building discrete global grid systems (DGGSs) and methods of indexing and searching such systems are described. This includes data structures and algorithms on a Discrete Global Grid System (DGGS) that can improve the efficiency of searching for objects with geospatial attributes and, algorithms which utilize the properties and functionality of a DGGS to provide efficient operations.

[0014] As described herein, data structures and algorithms can improve the efficiency of geospatial searches compared to traditional approaches. Improving the speed of searches can increase the economic viability of online marketplaces that have products with geospatial andnon-geospatial attributes. In addition, improving the efficiency of searches can substantially decrease power requirements of computing systems that support large and complex databases.

[0015] The improvements described herein are made with reference to and in comparison to current systems that enable searching within databases utilizing geospatial data.

[0016] By way of background, consumers regularly interact with online systems that utilize geospatial data within various software applications. For example, most personal phones are equipped with internal GPS enabling accurate location determination. As is known, GPS data can be used by software applications to determine a user’s location and determine proximity of the user to particular online product / service offerings.

[0017] Typically, within the online consumer space, a business may offer a range of products / services which can be accessed by a consumer through various application interfaces. When a consumer accesses the application interface, they may typically conduct searches for products and services using their phones, laptops, etc.. The application may use the location of the user to display products / services that are within a defined proximity to the user. Increasingly, and in various industries, consumers expect and / or require that search results are displayed rapidly and be relevant to a specific location which would usually be their current location. As such, many online marketplaces that deal with data that has geospatial attributes want to ensure that customers / users are presented with accurate and timely search results.

[0018] In addition, consumers are using online purchasing for an ever-expanding number and wider range of products and services that may have been traditionally conducted using face- to-face interactions at physical storefronts or online without any real-time geospatial attributes being part of the purchase. Increasingly, during online experiences, consumers are expecting greater and increasing functionality with the websites / apps they use for online purchasing.

[0019] As a result, merchant companies are similarly designing and providing websites / apps that provide additional and creative new features and functions to better serve their customers which often includes some form of geospatial data. Such features and functions can include greater amounts of data associated with a product or service that may increase the number of choices and / or the amount of information available to the consumer and as noted above may include a geospatial component.

[0020] One example is food delivery services like Uber eats™ or Skip the Dishes™ that utilize proprietary apps / programs (“applications”) that enable consumers, restaurants, and delivery personnel to be efficiently matched such that products like take-out food can be purchased and delivered to consumers within a short time frame. Such applications need to initially show nearby restaurants to customers and allow an order to be placed which simultaneously presents an estimated delivery time. After an order has been placed by one or more customers within a geographical area, the applications must then efficiently assign drivers with the best route to collect the orders from one or more restaurants and deliver them to one or more customers.

[0021] In other industries, as noted above, the accelerated adoption of online purchasing is also making inroads into industries where sales have traditionally been in person, such as car selling. As consumers demand more options for online purchasing, more data is continually being added to the geospatial searching systems, making efficient addressing of the so-called "Big Data" challenges (i.e. volume, variety, velocity, veracity and value) a more complex and relevant task.

[0022] Failing to efficiently manage this challenge significantly impacts the economic viability of these marketplaces.

[0023] Importantly, numerous studies have shown that marketplace speed directly affects successful sales. For example, Amazon ran tests that showed they would lose about 10% of annual revenue if the speed at which information was delivered to customers slowed down by one second. Similarly, it has been shown that a 0.1 -second improvement of mobile site speed increases conversion rates by 8.4% for retail sales and 10.1% for travel sites.

[0024] Additionally, the probability of bounce increases 32% as page load time goes from 1 second to 3 seconds.

[0025] Further still, a Deloitte Digital study showed that a millisecond page speed improvement can be worth millions of dollars in increased revenue. Thus, marketplace developers need efficient tools that are easy to integrate to create innovative and efficient solutions to deliver geospatially relevant results to their customers.

[0026] Developing algorithms to handle large-scale geospatial data is challenging as geospatial data ranges from a single point in 2D or 3D to more complex objects such as linespolygons, and 3D meshes. They also are usually accompanied by non-geospatial attributes (e.g., names of the streets). Moreover, products / services should be mapped to real-world locations using a reference system that provides a degree of resolution that is useful to customers. Given the size of geo-spatial areas, and the resolution that may be desired (eg. 10- 30m resolution), the DGGS may incorporate billions or trillions of cells of data. As a result, and because of these complexities, geospatial data cannot be treated in the same way non- geospatial data is.

[0027] Conventional GIS systems (computer systems that analyze and displays geographical reference information) associate each object with a set of coordinates (i.e. , latitude / longitude) in a continuous space and use traditional data structures (KD-Tree / R-Trees) to efficiently prune irrelevant objects from a given search. However, these conventional methods are inefficient when dealing with geospatial Big Data as they require relatively expensive geometric calculations that must be done for every returned result.

[0028] By way of example, the purpose of spatial indices such as KD-Tree and R-Tree is to form a balanced search tree to efficiently find the relevant geospatial objects. KD-Tree and R- Tree data structures partition the objects by grouping the objects using simple bounding shapes (e.g., rectangles) to ensure that all the leaf nodes are approximately at the same depth of the tree to make a depth-balanced tree. These balanced trees are object-specific, which means they attempt to balance the number of objects in the leaf nodes. These trees show a good average performance for spatial queries. However, this object-specific approach introduces difficulties when the results of an operation on one set of objects should be combined with the results from another set of objects. When elements within the space are non-uniformly distributed, balancing the tree can be difficult and inserting new objects in areas with fewer objects can result in costly operations to re-balance the tree. Also, although they have good average performance, such systems suffer from a poor worse-case performance which is exacerbated as the number of objects grows, significantly changing the uniformity of objects within the space. Moreover, they do not have a built-in method to partition the data structure across computing nodes, which is commonly needed for high-performance computing. Finally, these trees rely on traditional GIS, causing them to inherit the issues that are common in flat maps such as singularities, distortion, and discontinuities along map edges.

[0029] Improving Discrete Global Grid Systems (DGGS) is an area of research aiming to address the challenges of the traditional GIS approach by providing a globally consistent hierarchical domain for geospatial algorithms and data structures.

[0030] DGGS directly and naturally partitions the space (rather than the objects) and provides efficient hierarchy and neighborhood traversal operations. However, DGGS do not currently possess an equivalent data structure that can efficiently provide the same operations as the R- T ree / KD-T ree.

[0031] Furthermore, and looking forward, the total amount of data created, captured, and replicated is predicted to grow to 175 zettabytes by 2025, and as a significant amount of this data has geospatial attributes, the need for efficient data structures capable of handling geospatial attributes continues to grow. When datasets are this large, partitioning across many different computing instances is often necessary, which can prove challenging. This is especially true when designing multidimensional data structures.

[0032] Geospatial partitioning data structures are commonplace in modern database systems, both in SQL and NoSQL systems. For example, Oracle's database management solution uses R-Trees to index geospatial objects and SQL server uses a B-Tree to partition the space rather than the objects. In NoSQL databases, the implementations span from Geohash, B+-Trees to R-Trees. Alternatively, the open-source SpatialHadoop is a MapReduce framework for spatial data which uses a two-level spatial index based on traditional spatial index structures, including Grid, R-tree and R+-tree. Although geospatial indices are well researched, there is still room for improvement, especially when dealing with the Big Data produced in the current era. For example, a novel method for parallel indexing of real-time geospatial data for 3D R-Trees was introduced in 2018, and a machine learning geospatial index which outperforms R-tree in terms of storage consumption and IO cost for queries was introduced in 2020.

[0033] To use an R-Tree or KD-Tree in a location-based search, a marketplace developer must first choose the domain in which to construct these data structures. In conventional GIS, this domain is usually planar, requiring a projection that creates some distortion. Additionally, these earth flattening methods need special treatments near discontinuities at the edges. Globebased methods such as the standard spherical lat-long coordinate system avoid the potential distortion with the cost of more complex computations on the curved surface. Also, to build these geospatial data structures, the globe should be discretized into smaller, uniform regions(cells). Relying on lat-long grids for discretizing the globe creates cells with extreme shape and size variations, particularly near the poles. In contrast, a Discrete Global Grid System (DGGS) partitions the surface of the earth into a hierarchy of mostly regular cells. This approach also reduces distortion when compared to map-based approaches.

[0034] Despite the research into the construction of DGGS and its use in various earth observation capacities, DGGS still requires the development of advanced data structures and algorithms commonly used in conventional GIS.Overview

[0035] Within this description a set of generalized data structures and operations on top of a DGGS are described, which provide efficient querying, filtering, and sorting of geospatial objects. These generalized data structures and associated operations offer efficient mechanisms for culling unrelated geospatial objects, similar to the benefits of an R-T ree or KD- Tree. Data structures similar to spatial search trees using the hierarchy and neighborhood operations of DGGS that can support multidimensional queries in an efficient manner are described.Introduction

[0036] Within this description, a Discrete Global Grid System (DGGS) is defined as a spatial reference system that uses a hierarchical tessellation of cells to partition and address a spherical object such as the globe. Reference to the globe and spherical objects are interchangeable.

[0037] As shown in Figure 1 , at the highest level, a DGGS is a mosaic of polygons that represents a spherical object, for example the globe. The simplest 3D representation of a spherical object having identical planar surfaces is a tetrahedron. Figure 1 shows a tetrahedron with 4 identical triangular polygon surfaces, labelled as surfaces 1-4.

[0038] As the number of polygonal planar surfaces increases, for example an octahedron, icosahedron, and so on, the representation of the spherical object becomes more accurate as each polygon representing a portion of the object’s surface is substantially equivalent to the curved portion of the sphere that the polygon represents. As such, and depending on the desired resolution, the surface of the sphere, such as the globe can be represented by many billions or trillions of polygons. This is the process of tessellation.

[0039] In one aspect, a method for indexing and searching geospatial data within a discrete global grid system (DGGS) is described. The DGGS model defines an area of a spherical surface by a plurality of polygonal cells that include both parent and child cells where the child cells are fully contained within the parent cell and where each child cell corresponds to a fraction of the parent cell’s area.

[0040] As shown in Figure 1A, in one embodiment, the DGGS utilizes a triangle polygon 10 as a cell defining a particular area of the global surface wherein the resolution (i.e. the area defined by that triangle) can be increased by division of a parent cell 10 into a plurality of child cells. For example, the triangular cell 10 from Figure 1 can be sub-divided into additional smaller triangular cells of equal dimensions and area, labelled in this example as child cells 11 , 12, 13 and 14 where the first numeral is a parent cell identifier “1” and the second numeral is the child cell identifier 1-4.

[0041] The resolution of each child cell can be further refined within an expanding hierarchy of parent and child cells representing increasing degrees of resolution and smaller areas that are defined by the boundaries of that triangle. If each triangle is sub-divided into 4 additional child triangles, each level or degree of resolution thereby defines an area 25% smaller than the area of its parent and has a boundary length that is 50% of the boundary length of its parent.

[0042] For example, as shown in Figures 1A and 2 if the boundary length d of cell 1 is 1 km at resolution 1 (each successive subdivision of resolution being referred to herein as “resolution 1”, “resolution 2”, etc.), that is where the length of 1 side of cell 1 is 1 km, the boundary length of cell 11 is 0.5d or 0.5 km (resolution 2). The area defined within cell 1 is 0.5 km2and the area defined within cell 11 is 25% of cell 1 or 0.125 km2.

[0043] Similarly, cell 111 would have a boundary length of 0.25d (resolution 3) and an area of 0.03125 km2. As such, progressively smaller and smaller boundary lengths and areas can be defined.

[0044] As shown in Figure 1A, and for the purposes of illustration, the identifier given to each successive series of smaller cells can follow a hierarchical naming / indexing pattern, with a longer string of numbers defining each degree of resolution. Thus, a first or primary degree (resolution 1) of resolution may be a 1 number string, whereas resolution 4 would be a 4 number string (resolution 4) (e.g. 1323).

[0045] Figure 2 shows a cell with resolution 4 as described above where the boundary length is 0.0625d at resolution 4. In addition, this figure shows X’s in various cells illustrating cells having data which will be explained below. As can be seen in this example, various cells within the hierarchy do not include data.

[0046] Referring to Figures 2 and 2A, the existence of data or not within a cell can be shown within a hierarchical indexing scheme. In this example, 3 of 4 primary cells have data and the center cell does not. This is shown graphically in Figures 2 and 2A as 3 “X” cells (i.e. containing data) and 1 “0” cell not containing data. If a cell has data, the location of that data with the cell can be further refined. For example, as shown in Figure 2A, resolution 2 can further refine the location of data within a child cell. For the purposes of sim plicity / clarity, Figure 2A refines data location down a single arm of the tree where at resolution 2, 2 cells have data, at resolution 3, 2 cells have data and at resolution 4 all 4 child cells have data.

[0047] Importantly, the above partitioning of cells ensures that there are no more than four children per parent and that the tree has not gone past the maximum resolution (i.e., out of bounds)

[0048] As each cell at each level has a unique cell identifier, each cell having data can be uniquely defined.

[0049] Further, once the model and indexing system has been defined, data that has been inserted into the DGGS can have additional attributes associated with it via a unique identifier as shown in Tables 1 and 1A.

[0050] Table 1 shows that each DGGS cell may have point IDs associated with that cell. Table 1A shows that each point ID or data element can have various attributes associated with that point ID. For example, Table 1A shows lat-long coordinates, "type” and “other attributes” being associated with a point ID.Table 1-DGGS Cell IDs and Point IDsTable 1A-Point IDs and Attributes

[0051] The foregoing tables are representative outlines of how data may be inserted into the DGGS as Point IDs that may be then associated with particular attributes. Thus, once the indexing system has been built and data added to the system, searches for relevant data within an area defined by the system can be conducted. That is, cells with Point IDs can be searched and thus be connected to other data sources that have any number of attributes.Search Process

[0052] As shown in Figures 3-3E, a representative example showing how data within an area can be rapidly located.

[0053] Figure 3 shows a representative area showing 13 triangular cells labeled 1-13. For the purposes of illustration, a user wishes to search the area for a type of real estate asset within that area that is for sale.

[0054] Initially, the user identifies an area to be searched by a defined boundary namely a circular area designated by dotted circle 20. For context, the radius of the circle may be 10km.

[0055] In a first step, at resolution 1 , all cells inside and overlapping the defined boundary are identified, in this case, cells 1-13. These cells are shown with light shading.

[0056] For each cell identified, each cell is examined to determine if that cell contains data or not by examining cells. Generally, throughout the analysis, there are three types of cells, a) those cells fully within the boundary, b) those cells overlapping the boundary and c) those cells outside the boundary. The order of the steps of analysis can be conducted sequentially or concurrently.

[0057] From the analysis, cell 6 is determined to be fully within the boundary and is determined to contain no data. This cell is discarded as shown as a cell without shading (Figure 3A).

[0058] Cells overlapping the boundary are examined. It is initially determined that cell 7 contains data as shown in Figure 3(1). The system then increases the resolution for cell 7 (i.e. cells 71-74 at resolution 2) as shown in Figure 3A and determines that cells 71 , 72 and 74 are fully within radius 20. That is, these cells do not overlap with boundary 20 whereas cell 73 does overlap with the boundary.

[0059] The system then checks to determine if each of cells 71 , 72 and 74 contain data which as shown in Figure 3A is determined as yes (shown with line shading).

[0060] The system then checks those child cells that overlap the boundary. In this example, as shown in Figure 3A, cell 73 overlaps the boundary. The system then checks if cell 73 contains data which is determined as no. Cell 73 is then discarded for further review as shown in Figure 3A.

[0061] As shown in Figure 3B, another cell is checked. In this example, cell 3 is examined and it is determined that it contains data as shown by line shading.

[0062] As shown in Figure 3C, cell 3’s child cells are examined. As shown, cells 32-34 overlap the boundary. Cell 31 is outside the boundary and is discarded. Cells 32-34 are determined to contain data.

[0063] The child cells are examined (resolution 3), and it is determined that only cell 333 contains data. The remaining cells are discarded as shown in Figure 3D.

[0064] The process is repeated for all cells at increasing resolution as may be determined such that all cells having data and within the boundary are identified as shown in Figure 3E.

[0065] Turning to Figure 4, a process for selecting and discarding cells within a search area is described.

[0066] Initially, a search area is defined 40. Next, the system determines all cells that are fully within the boundary at resolution 1 42 (i.e. n=1).

[0067] Each cell is examined to determine if it contains data or not 44. Cells containing data are marked as such 46. Cells that do not contain data are deleted from further review 48.

[0068] The system further looks at cells that intersect with the boundary 50. Each cell at resolution 1 are examined to determine if it contains data or not 52. If a cell does not contain data, it is discarded 48. If a cell overlapping the boundary contains data, the system increases the resolution and examines the child cells 54 for cells inside the boundary 56, cells outside the boundary 58 and cells overlapping the boundary 60. If a child cell is fully within the boundary, and contains data, it is retained (62 and 46). If a child cell is fully within the boundary and does not contain data, it is discarded (62 and 48). If a child cell is outside the boundary, it is discarded (58 and 48). If a child cell overlaps the boundary and does not contain data, it is discarded. If a child cell overlaps the boundary 60 and contains data (64 and 54), the process is repeated at the next level of resolution 54. If a child cell overlaps the boundary 60 and does not contain data (64 and 487), the cell is discarded.

[0069] As a result, by leveraging the hierarchical grid provided by a DGGS, an adaptive representation of the search region is obtained and can be used to efficiently obtain the data associated with the cells in said representation.

[0070] Importantly, the time it takes to identify cells having a Point ID is reduced as cells can be rapidly examined through the increasing resolution scheme described above. In other words, a Point ID is either associated with a cell or not at a particular degree of resolution. If the search boundary determines that a cell is fully within the boundary, then no additional computing is required to determine whether the cell has 1 point of data or 100 points of data. In other words, the system is able to distinguish between true and false positives for many points, drastically reducing the number of expensive geometric queries that must be done for potential results. Additionally, the time it takes to retrieve data from a cell does not depend on how much total data has been assigned to other cells due to the unbalanced nature of the tree.

[0071] Additionally, the prefix tree structure mirrors the hierarchical structure of the DGGS, so traversing the tree (i.e. visiting the parents or children of a node) is the same as traversing the DGGS hierarchy.

[0072] Figure 6 is a graph comparing runtimes of different spatial searches. The results of the graph show that the hierarchical (Big Geo) search is substantially faster (greater than an order of magnitude) than Postgres / PostGIS) and Redis search methods.

[0073] In summary, a search is faster than currently available geospatial searches due to the algorithm’s relationship between the cells, points, parents, and children. Predetermined areas for a (latitude, longitude) point to an ID at a particular resolution.

[0074] The system is advantaged over other systems as scale size is not a limitation and a search is conducted in constant time. Importantly, the size of a cell does not impact time for the algorithm to be completed.

[0075] In various embodiments, as introduced in Tables 1 and 1A, cells are provided with Cell IDs and Point IDs that may be associated with Cell IDs. As shown in Figure 5, typically, when a system enabling searches to be conducted is being set up, it may be desired to set up the system for a limited type of data. For example, if the search system is to be limited to real estate, only data having real estate attributes would be associated with Point IDs. Thus, when the area search is being conducted, cells having Point IDs would have data of interest to the user. In this case, when an area search is completed, the resulting set of IDs can be sent to another database / system to access the specific data associated with that Point ID (eg. all real estate within the area) and that data displayed to the user with or without additional filtering.

[0076] In another example, when a system is being set-up multiple types of data may be built within the database, for example, real estate and cars. In this case, Point IDs for both cars and real estate would be located from a search and other databases accessed to display real estate and car dealerships. Filtering of the displayed data to exclude one or more types of data may be enabled to display the data of interest to the user.

[0077] In various embodiments, examples of applications of being able to efficiently search the DGGS include: a) Geospatial data analysis and visualization to organize and analyze large volumes of geospatial data, enabling visualization and analysis of data at various scales. b) Environmental monitoring and modeling of environmental conditions on a global scale, including changes in temperature, precipitation, and land use, and to model the impact of environmental changes. c) Earth observation to process data from satellite and remote sensing systems, enabling the analysis of data on a global scale.d) Urban planning and development to analyze and model urban areas, including population density, land use patterns, and transportation networks. e) Disaster management to monitor and analyze natural disasters such as hurricanes, earthquakes, and wildfires, and to support disaster response and recovery efforts.

Claims

CLAIMS1. A method for indexing and searching geospatial data within a discrete global grid system (DGGS) wherein: the DGGS defines an area of a surface by a plurality of polygonal cells including both parent and child cells; the child cells are fully contained within a parent cell; each child cell corresponds to a fraction of a parent cell’s area at a plurality of resolutions and each resolution is defined as a degree of resolution; and, for a defined resolution, each parent and child cell has a corresponding location coordinate and one or more point IDs of data is associated with a cell, the method comprising the step of: within a defined search boundary at a resolution 1 level, identify all cells: i) fully within the search boundary; ii) overlapping the search boundary; and, iii) outside the search boundary.

2. The method as in claim 1 , further comprising the steps of: i) for resolutions 1-n,(1) identify all cells at resolution n fully within the search boundary;(2) determining if the cells from step (1) contain a point ID and marking cells containing a point ID and discarding cells that do not have a point ID;(3) identify all cells at resolution n overlapping the search boundary;(4) determining if the cells from step (3) contain a point ID and discarding cells that do not contain a point ID.

3. The method as in claim 2 further comprising the steps of:(5) for cells having a point ID from step (4), incrementing the resolution and examine n+1 child cells and;(a) determining if the child cells from step (5) are within the boundary, outside the boundary or overlapping the boundary;(i) for cells within the boundary, determining if each child cell within the boundary contains a point ID and if a cell within the boundary contains a point ID marking that cell within the boundary as having a point ID; and,(ii) discarding cells outside the boundary.

4. The method as in claim 3 further comprising the steps of:(i) for cells overlapping the boundary, determining if the cell overlapping the boundary has a point ID:

1. discarding cells overlapping the boundary that do not have a point ID; and,2. for cells overlapping the boundary and having a point ID, increasing resolution by 1 and repeating step (5).

5. The method as in any one of claims 1-4, wherein each of the parent and child cells are triangular cells corresponding to a spherical surface at a plurality of resolutions wherein each resolution is defined as a degree of resolution and wherein a degree of resolution of a child cell is defined by a triangular cell within the parent cell and having a border length 50% of a border length of a parent cell.

6. The method as in claim 4 or 5 further comprising the step of associating data with each point ID, wherein associated data has at least a location coordinate.

7. The method as in claim 5 or 6 wherein the point ID is configured to effect access to a secondary database having data associated with that point ID.

8. The method as in any one of claims 5-7 wherein a triangular parent cell has 4 child cells fully contained with a preceding parent cell.

9. The method as in any one of claims 1-7 wherein a location coordinate is latitude and longitude.

Citation Information

Patent Citations

  • Head pose estimation using RGBD camera

    US20120293635A1

  • Methods and systems for selecting and analyzing geospatial data on a discrete global grid system

    US20170293635A1

  • System and Method For Efficient Geospatial Indexing

    US20180276242A1

  • Geospatial data analytics and visualization platform

    US20220156291A1

  • Digital earth framework and indexing schema to extend any "surface" discrete global grid system to construct interoperable "volumetric" discrete global grid systems

    WO2018136996A1