SECURE DATASTORE OF SEARCHABLE HETEROGENOUS GEOSPATIAL DATA

Systems and methods are provided for publishing immutable references to geospatial data. In embodiments, a method includes identifying geospatial data of a data provider, wherein the geospatial data is associated with a grid element of a discrete global grid (DGG); generating, in a grid element data store, an immutable reference in time to the geospatial data, the immutable reference including a pointer to a unique label of the grid element of the DGG and a storage location of the geospatial data; receiving a data request from a user, the data request including location information identifying the grid element; and providing a response to the user including the storage location of the geospatial data associated with the grid element to enable access of the geospatial data by the user, wherein the immutable reference provides a guarantee that the geospatial data is originating from the data provider.

BACKGROUND

Aspects of the present disclosure relate generally to geospatial data, more particularly, to a secure datastore of searchable heterogenous geospatial data.

A discrete global grid (DGG) is a mosaic which covers the entire Earth's surface, and partitions the Earth's surface. The purpose of a DGG is to discretize the continuous surface of the Earth into addressable elements. In one grid-modeling strategy, each region of the Earth is represented by a point, and the grid is abstracted as a set of region-points, wherein each region or region-point is called a cell. When each cell of a grid is subject to a recursive partition, the result is a series of discrete global grids with progressively finer resolution, forming a hierarchical grid called a Hierarchical DGG.

SUMMARY

In a first aspect of the disclosure, there is a computer-implemented method including: identifying, by a computing device, geospatial data of a data provider, wherein the geospatial data is associated with a grid element of a discrete global grid (DGG); generating, by the computing device, in a grid element data store, an immutable reference in time to the geospatial data, the immutable reference including a pointer to a unique label of the grid element of the DGG and a storage location of the geospatial data; receiving, by the computing device, a data request from a user, the data request including location information identifying the grid element; and providing, by the computing device, a response to the user including the storage location of the geospatial data associated with the grid element to enable access of the geospatial data by the user, wherein the immutable reference provides a guarantee that the geospatial data is originating from the data provider.

In another aspect of the disclosure, there is a computer program product including one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media. The program instructions are executable to: identify geospatial data of a data provider, wherein the geospatial data is associated with a grid element of a discrete global grid (DGG); generate in a grid element data store, an immutable reference in time to the geospatial data, the immutable reference including: a pointer to a unique label of the grid element of the DGG, a storage location of the geospatial data, a public key of the data provider, and a checksum of the geospatial data generated by the data provider and signed with a private key of the data provider; receive a data request from a user, the data request including location information identifying the grid element; and provide a response to the user including the storage location of the geospatial data associated with the grid element to enable access of the geospatial data by the user, wherein the immutable reference provides a guarantee that the geospatial data is originating from the data provider.

In another aspect of the disclosure, there is system including a processor, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media. The program instructions are executable to: generate a discrete global grid (DGG) by creating a mathematical partition of the Earth's surface into discrete grid elements; assign unique labels to each of the grid elements; identify geospatial data of a data provider, wherein the geospatial data is associated with a grid element of the DGG; generate in a grid element data store, an immutable reference in time to the geospatial data, the immutable reference including: a pointer to a unique label of the grid element of the DGG, a storage location of the geospatial data, a public key of the data provider, and a checksum of the geospatial data generated by the data provider and signed with a private key of the data provider; receive a data request from a user, the data request including location information identifying the grid element; and provide a response to the user including the storage location of the geospatial data associated with the grid element to enable access of the geospatial data by the user, wherein the immutable reference provides a guarantee that the geospatial data is originating from the data provider.

DETAILED DESCRIPTION

Aspects of the present disclosure relate generally to geospatial data, more particularly, to a secure datastore of searchable heterogenous geo spatial data. According to aspects of the disclosure, a discrete global grid (DGG) is generated, wherein a unique identifier is assigned to every grid element, allowing for formation of a hierarchical DGG (HDGG). In implementations, a system stores references to data associated with an HDGG element, where the references are immutable in time such that changes to the stored data are prevented. In aspects, the system generates responses to user queries by fusing diverse types or categories of data associated with a HDGG element.

In implementations, a system is provided for securely storing geospatial data and performing heterogeneous data fusion. In embodiments the system includes: a) a first component configured to: create a partition of the entire Earth's surface into a DGG (e.g., using a projection function, such as Mercator), where each point on the Earth is contained in one and only one grid element; assign a unique identifier to every grid element (e.g., using x and y coordinates of the top left corner of the grid element); and allow for the formation of a HDGG by allowing an address to reference multiple base grid elements; b) a second component configured to store immutable references in time to data concerning a HDGG grid element in order to guarantee that the data accessed has not changed since it was published and that the data is originating from the claimed source; and c) a third component configured to fuse data of heterogeneous type (e.g., different types of data, such as satellite imagery and property records) to provide unique insights about a HDGG grid component (e.g., using a neural network).

In some embodiments, fusing the data to provide unique insights comprises performing one or more of: 1) combining satellite imagery and textual property records to identify buildings and more accurately estimate real estate value; 2) combining hyperspectral remote sensing data, in situ temperature and soil moisture data, and textual bills of sale to predict the expected yield and profit of a farming plot; and 3) combining synthetic aperture radar data, automatic identification system (AIS) data, and textual reports from observers to determine if a ship is taking part in prohibited fishing activities.

Finding, verifying the provenance of, analyzing, and combining disparate types of data for a given geographical area of interest (AoI) is a daunting task and one for which an integrated solution does not exist. In embodiments, a system is provided that uses permanent and discrete addresses for every spot on the globe to provide immutable references to data about these addresses, along with a way to fuse all of the diverse types of data into a coherent picture. Implementations of the disclosure have advantages over other geospatial databases. For example, the SpatioTemporal Asset Catalog (STAC) project provides a common language to describe a range of geospatial information, so the information can be indexed and discovered. The STAC project focuses on a data asset versus an AoI; does not provide mechanisms for verifying the source of data; does not provide mechanisms for verifying that data has remained unchanged; focuses on quantitative data and eschews qualitative data; and does not provide a mechanism for combining different data sets in a meaningful way in space or time for a given AoI. While there are benefits to aggregating geospatial data from different parties in single searchable database, the overall quality of query results may be questioned when there is no mechanism for trusting the source or integrity of the geospatial data relied on.

Advantageously, implementations of the disclosure utilize a DGG grid element as the atomic unit (e.g., as opposed to a data asset), and provide immutable references to geospatial data associated with the grid element. With a focus on AoIs, embodiments of the disclosure provide a built-in and robust geospatial index of data assets for a DGG grid element. In contrast, for systems that utilize a data asset as an atomic unit, it is nontrivial to determine which data assets reference which geographic AoI. Moreover, systems such as the STAC project are mutable (liable to change), and thus can be changed by data providers and system administrators, which opens such systems up to unstable analysis pipelines. In contrast, embodiments of the disclosure enable users to verify that stored data has not been changed since it was published to the system.

It is to be understood that the aforementioned advantages, as well as other advantages described herein, are example advantages and should not be construed as limiting. Embodiments of the present disclosure can contain all, some, or none of the advantages while remaining within the spirit and scope of the present disclosure.

It should be understood that, to the extent implementations of the disclosure collect, store, or employ personal information provided by, or obtained from, individuals (for example, personal information associated with property records), such information shall be used in accordance with all applicable laws concerning protection of personal information. Additionally, the collection, storage, and use of such information may be subject to consent of the individual to such activity, for example, through “opt-in” or “opt-out” processes as may be appropriate for the situation and type of information. Storage and use of personal information may be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Implementations of the disclosure may include a computer system/server12ofFIG.1in which one or more of the program modules42are configured to perform (or cause the computer system/server12to perform) one of more functions of the geospatial data publication96ofFIG.3. For example, the one or more of the program modules42may be configured to: generate a discrete global grid (DGG) by creating a mathematical partition of the Earth's surface into discrete grid elements; assign unique labels to each of the grid elements; identify geospatial data of a data provider, wherein the geospatial data is associated with a grid element of the DGG; generate in a grid element data store, an immutable reference in time to the geospatial data, the immutable reference including: a pointer to a unique label of the grid element of the DGG, a storage location of the geospatial data, a public key of the data provider, and a checksum of the geospatial data generated by the data provider and signed with a private key of the data provider; receive a data request from a user, the data request including location information identifying the grid element; and provide a response to the user including the storage location of the geospatial data associated with the grid element to enable access of the geospatial data by the user, wherein the immutable reference provides a guarantee that the geospatial data is originating from the data provider.

FIG.4shows a block diagram of an exemplary environment400in accordance with aspects of the disclosure. In embodiments, the environment400includes a network402enabling communication between a server404, one or more data provider devices406and one or more client devices408. The server404, one or more data provider devices406and one or more client devices408may each comprise the computer system/server12ofFIG.1, or elements thereof. The one or more data provider devices406and/or the server404may be computing nodes10in the cloud computing environment50ofFIG.2. In implementations, the server404comprises a special purpose computing device configured to provide geospatial data publication, management, and query services to users of the network402in accordance with methods discussed herein. The one or more client devices408may be local computing devices used by cloud consumers in the cloud computing environment50ofFIG.2(e.g., PDA or cellular telephone54A, desktop computer54B, laptop computer54C, and/or automobile computer system54N).

In embodiments, the server404comprises one or more modules, each of which may comprise one or more program modules such as program modules42described with respect toFIG.1. In the example ofFIG.4, the server404includes a Hierarchical DGG (HDGG) module420, a grid element data storage (GEDS) module421, a data collection module422, a heterogeneous data fusor (HDF) module423, a communication module424, and a query module425, each of which may comprise one or more program module(s)42ofFIG.1, for example.

In implementations, the HDGG module420is configured to create a partition of the entire surface of the Earth into a Discrete Global Grid (DGG), where each point on the Earth is contained in one and only one grid element. The DGG discretizes the continuous surface of the Earth into addressable elements that can then be used to create persistent and permanent addresses. In embodiments, the HDGG module420is further configured to assign a unique identifier to every grid element and enabling the formation of a Hierarchical DGG (HDGG) by allowing for an address of a particular geographic area or areas of interest (AoIs) (e.g., a business, a farm, etc.) to reference multiple base grid elements.

In embodiments, the GEDS module421is configured to store immutable references in time to data concerning a HDGG grid element in a data store (e.g., a grid element data storage (GEDS). This guarantees that data accessed by users has not changed since it was published to the server404, and that the data is originating from the indicated data source (e.g., data provider device406).

In implementations, the data collection module422is configured to collected data of diverse types (heterogenous data) from one or more data sources (e.g., data provider device406). In embodiments, the HDF module423is configured to fuse data of heterogeneous types in response to a user query in order to provide unique insights about a HDGG grid component.

In embodiments, the communication module424is configured to provide a user interface for clients/users within the environment400. In implementations, the communication module424provides data verification options and search query options.

In implementations, the query module425is configured to receive search queries from users, generate results to the search queries, and send the results to the users in response to the search queries. Search queries may comprise results determined by the server404, links to existing data referenced by the server404, or the data itself. In implementations, the query module425performs verification operations to verify geospatial data upon request.

In embodiments, the data provider device406comprises one or more modules, each of which may comprise one or more program modules such as program modules42described with respect toFIG.1. In the example ofFIG.4, the data provider device406includes a communication module430configured to enable a user to communicate with the server404(e.g., via a UI provided by the server404), which may comprise one or more modules (e.g., program modules42ofFIG.1). Additionally, the example ofFIG.4shows a database431configured to store data (e.g., sensor data, satellite data, or other geospatial data). In one example, a data provider device is a satellite device406A providing satellite data to the server404, and/or to users of the server404(e.g., via references to the data provided by the server404). In another example, a data provider device comprises one or more sensors406B providing sensor data to the server404and/or to users of the server404.

In embodiments, the one or more client devices408comprises one or more modules, each of which may comprise one or more program modules such as program modules42described with respect toFIG.1. In the example ofFIG.4, the client device408includes a query module440(e.g., comprising program module(s)42ofFIG.1) configured to receive data query inputs from a user and provide the data to the query module425of the server404.

The server404, the one or more data provider devices406, and the one or more client device408may each include additional or fewer modules than those shown inFIG.4. In embodiments, separate modules may be integrated into a single module. Additionally, or alternatively, a single module may be implemented as multiple modules. Moreover, the quantity of devices and/or networks in the environment is not limited to what is shown inFIG.4. In practice, the environment400may include additional devices and/or networks; fewer devices and/or networks; different devices and/or networks; or differently arranged devices and/or networks than illustrated inFIG.4.

FIG.5illustrates the generation of a Discrete Global Grid (DGG) according to aspects of the disclosure. Operations illustrated inFIG.5may be conducted in the environment ofFIG.4. In implementations, the server404discretizes at500the continuous surface of the Earth502into addressable grid elements (represented by horizontal and vertical lines at504).

FIG.6depicts grid elements of a DGG600according to aspects of the disclosure. The DGG600comprises discrete grid elements, such that any point on the Earth (globe) is contained in one and only one grid element. One such grid element is represented at602. In implementations, the server404associates an address for a particular AoI with a combination of grid elements (represented at604).

FIG.7illustrates registration of DGG grid element addresses according to aspects of the disclosure. Operations illustrated inFIG.7may be conducted in the environment ofFIG.4. In embodiments, the server404assigns each grid element (e.g., grid element602) a unique label called an address, such that, given the latitude and longitude of a point on the Earth, the address of the grid element containing the given point can be determined by the server404. In implementations, all addresses are stored in a grid element data storage (GEDS)700by the GEDS module421of the server404. Additionally, in implementations, the server404assigns addresses to respective AoIs comprised of multiple grid elements (e.g., grid elements604).

FIG.8illustrates data providers linked to DGG addresses according to aspects of the disclosure. Operations illustrated inFIG.8may be conducted in the environment ofFIG.4. In implementations, the GEDS700stores references to heterogenous data from multiple data providers (e.g.,406A-406C). By way of example, the GEDS700may enable users access to satellite image data800, sensor data801, and text data802. In embodiments, the server404links DGG addresses to geospatial data provided by one or more data providers (e.g.,406A-406C), and saves the links in the GEDS700. In implementations, the links are stored in a GEDS700by the GEDS module421of the server404. In embodiments, data references are also stored in the GEDS700, wherein the data references may be provided to users to enable the users to obtain the data from the data providers directly, or from a data store of the server404.

FIG.9illustrates data input to a heterogenous data fusion network900utilized by the server404according to aspects of the disclosure. Operations illustrated inFIG.9may be conducted in the environment ofFIG.4and are described with reference to elements depicted inFIG.4. In implementations, the server404utilizes convoluted neural networks (CNN) to process diverse types or categories of data, to extract insights from the data. In general, a CNN is a class of artificial neural network most commonly applied to analyze visual imagery, which includes an input layer, hidden layers (performing convolutions) and an output layer. By way of example, server404may utilize a satellite imagery CNN901, a hyperspectral CNN902, a synthetic aperture radar CNN903, and an in situ sensor CNN904. Additional machine learning models may be utilized in the heterogenous data fusion network900, including text record models905A and905B, for example. In embodiments, outputs from the machine learning networks and models of the data fusion network900may be fed to other networks and models of the data fusion network900and/or combined by the server404to provide unique insights to users of the server404. In embodiments, the machine learning models utilize natural language processing (NLP) tools and methods to generate insights from textual data.

In one example, the server404combines satellite imagery data insights from the Satellite Imagery CNN901with textual property record insights obtained from text record model905A to generate a query output to a user, wherein the output identifies buildings and accurately estimates real estate value.

In a second example, the server404utilizes the heterogenous data fusion network900to combine hyperspectral remote sensing data insights from the Hyperspectral CNN902, in situ temperature and soil moisture output data from the in situ sensor CNN904, and insights derived from textual bills of sale by the Text Records Model905B, to generate a prediction of expected yields and expected profits of a farming plot (AoI).

In a third example, the server404utilizes the heterogenous data fusion network900to combine synthetic aperture radar data outputs from the Synthetic Aperture Radar CNN903, automatic identification system (AIS) data from a data provider device406, and textual reports from observers (e.g., analyzed by Text Record Model905A, or905B) to determine if a ship is taking part in prohibited fishing activities.

FIG.10illustrates a user query method according to aspects of the disclosure. Operations illustrated inFIG.10may be conducted in the environment ofFIG.4and are described with reference to elements depicted inFIG.4. In embodiments, a user1000(e.g., a user of a client device408) retrieves Datums for a DGG grid element (e.g., DGG grid element602ofFIG.6) at1001. The term Datum as used herein refers to an atomic piece of data about a DGG grid element. In implementations, the server404provides the user with the Datums in response to a search query input by the user1000. In embodiment, the user feeds the retrieved Datums into the heterogenous data fusion network900of the server404to obtain insights (machine learning output(s)) based on the data. In implementations, the server404retrieves the Datums based on a search query input by the user1000, and automatically feeds the Datums into one or more machine learning models or neural networks of the heterogenous data fusion network900to obtain one or more outputs based on store rules and a requested output of the user (e.g., an estimated real estate value, yield and profit predictions, identifications of ships taking part in prohibited fishing activities).

FIG.11shows a flowchart of an exemplary method in accordance with aspects of the present disclosure. Operations of the method may be conducted in the environment ofFIG.4and are described with reference to elements depicted inFIGS.4-10.

At operation1100, the server404generates a DGG by creating a mathematical partition of the Earth's surface into discrete grid elements such that any point on the Earth (globe) is contained in one and only one grid element. See DGG600ofFIG.6, for example. In embodiments, the HDGG module420of the server404implements operation1100. In aspects of the disclosure, operation1100includes the following suboperations.

At suboperation1100A, the server404chooses a projection function from the Earth (S{circumflex over ( )}2) to a finite Cartesian plane (R{circumflex over ( )}2). This function is diffeomorphic and takes each latitude and longitude point to a unique (x, y) point in the plane. Examples of projection functions include: equirectangular; mercator; loximuthal; equidistant conic; and stereographic. The plane is finite with a height h and a width w.

At suboperation1100B, the server404chooses resolution parameters h′ and w′ such that h mod h′=0 and w mod w′=0. This operation uniquely partitions the plane.

At operation1101, the server404assigns a unique label called an address to each grid element such that, given the latitude and longitude of a point on the Earth, the server404can determine the address of the grid element containing the given point. In implementations, the server404records the address in the GEDS700. In embodiments, when the GEDS700is first instantiated, a record for each DGG grid element is created in the GEDS700by the server404using the unique label (address). Once these foundational records are created by the server404, they cannot be deleted or altered in any way.

In embodiments, the server404calls the top left corner of the plane (0, 0). The server404identifies each grid component in the plane by its top left corner, for example (x, y), and each grid component is identified by the rectangle with corners (x, y), (x+w′, y), (x, y+h′), (x+w′, y+h′). The top left coordinate of the grid element (x, y) is concatenated into the string “x:y” and is used as the address of the grid element. With this configuration, for any point on the Earth the server404can find its address via projecting the latitude and longitude of that point in the same fashion as above and then determining which grid element the resulting Cartesian point belongs to. In embodiments, the HDGG module420of the server404implements operation1001.

Optionally, at operation1102, the server404assigns a unique label (address) to AoIs comprised of more than one grid element (e.g., a group of grid element604ofFIG.6), thereby forming a Hierarchical DGG (HDGG). AoIs can be any geographic area of interest defined by a user of the server404. AoIs may contain stationary objects of interest therein such as farms or towns, or mobile objects such as ships. In implementations, the server404stores AoI addresses in the GEDS700. In embodiments, the HDGG module420of the server404implements operation1102.

In implementations, the server404is configured to index, store, and prove the provenance of any and all kinds of data that reference any given DGG grid element (e.g., grid element602ofFIG.6). Accordingly, at operation1103, the server404identifies geospatial data (a data asset) provided by one or more data providers (e.g., via data provider device(s)406) for publication by the server404. The term geospatial data as used here refers to data that pertain to one or more geographic points in one or more DGG grid elements of the DGG. In embodiments data providers register with the server404(e.g., via a UI provided by the server404) and provide the server404with registration information about the providers. In implementations, server404obtains verification data during a registration or data publication process to verify the source and content of the geospatial data to be published. (e.g., a public encryption key of the provider).

In implementations, when a data provider wishes to publish geospatial data to the server404, they must submit a cryptographically signed checksum of the underlying data asset (i.e., satellite image, text file, PDF, sensor data spreadsheet, etc.). In implementations, the data provider uses a cryptographic hash function to calculate a checksum for the geospatial data, and uses a private encryption key to create a digital signature of the checksum. See the method described below with respect toFIG.12. In embodiments, the server404obtains the checksum and the cryptographic hash function from the data provider at operation1103, and stores them in the GEDS700. In aspects of the disclosure the server404determines a remote storage location of geospatial data provided by a data provider. In implementations, the server404obtains the geospatial data from the data provider, and optionally stores the geospatial data in a data store of the server404.

At operation1104, the server404generates and stores immutable references to the geospatial data identified at operation1103in the GEDS700, wherein the references link the geospatial data to one or more DGG grid elements. Examples of the diverse types and natures of geospatial data referenced in the GEDS700include, but are not limited to: satellite imagery; remote sensor measurements; in situ sensor measurements; and text-based records.

In implementations, the immutable references are in the form of Datums. As noted above, a Datum is an atomic piece of data about a DGG grid element. In implementations, a Datum comprises: a pointer to the address of the DGG grid element; a public key of the entity publishing the information (data provider); a location of the data (in local or remote data storage); a checksum of the data signed using the data publisher's private key; and optionally, metadata (e.g., timestamps, data type, sensors used, data schemas, access protocols, etc.) providing data about the Datum. The term pointer as used herein refers to a software program object that stores a memory address. The term checksum as used herein refers to a small-sized block of data derived from another block of digital data for the purpose of verification or detecting errors that may have been introduced during its transmission or storage. In implementations, the server404obtains the checksum for the geospatial data from the data provider as part of the data publication process of the server404. In embodiments, the GEDS700provides an index for all Datums referring to a specified DGG address. Once a Datum is registered to an address in the GEDS700it cannot be unregistered, which prevents tampering with or altering data after publication of the data by the server404. In embodiments, the GEDS module421implements operation1003.

At operation1105, the server404receives, from a user (e.g., a user of client device408) a data request (via a UI provided by the server404) including location information identifying one or more grid elements. Location information may be in the form of and address of the one or more grid elements, or may be in the form of other location information that can be utilized by the server404to identify one or more grid elements, such as latitude and longitude, global positioning system (GPS) data, etc. In embodiments, the query module425of the server404implements operation1105.

Given the free form nature of what the underlying linked data of a Datum record represents, in implementations, the server404provides users with the ability to synthesis geospatial data of distinct types into cohesive insights. In implementations, the data request from the user is a request for available geospatial data associated with the one or more grid elements. In other implementations, the data request includes a query for information that is generated by the server404. The data request may identify a type of information requested (e.g., satellite data) or a category of information requested (e.g., prediction of expected yields and expected profits). In embodiments, the type of data requested requires the synthesis of at least two distinct categories or types of data.

Accordingly, at operation1106, the server404optionally generates query results in response to the data request of the user using CNNs (e.g., the heterogeneous data fusion network900). The neural network architecture discussed herein is designed to perform heterogeneous data fusion (i.e., meld a myriad of disparate types of data), in a way that allows for unique insights to be derived. In implementations, the heterogeneous data fusion network900is a fully connected neural network where the input layer is connected upstream to data specific neural networks (e.g., a satellite imagery CNN901for performing image segmentation). The number of layers in the heterogeneous data fusion network900and the number of nodes in the output layer is determined by the use case. Operation1106may be implemented by the following suboperations.

In suboperation1106A, the server404identifies one or more grid elements based on the location information in the data request.

At suboperation1106B, the server404identifies all Datums associated with the one or more grid elements.

At suboperation1106C, the server404obtains geospatial data based on (associated with) the Datums or a subgroup of the Datums. In embodiments, the server404filters the Datums and/or geospatial data by categories or type of data, based on the data request of the user.

At suboperation1106D, the server404utilizes machine learning (e.g., the heterogenous data fusion network900) and the geospatial data obtained at suboperation1106C to generate results in response to the data request. In implementations, the server404coalesces all Datums for a GEDS element; trains convolutional neural networks (CNNs) to understand a segmentation of image, radar, and sensor data; trains neural network language models to understand semantic and ontological features of text data concerning the DGG grid element; and/or combines Datum model outputs into a fusion network to learn insights. See, for example, the examples discussed with respect toFIG.9.

At operation1107, the server404provides results to the user in response to the data request. In implementation, the results comprise references or links to the location of geospatial data associated with the location information (e.g., one or more grid elements), wherein the user may access the geospatial data based on the references. In other implementations, the results comprise the geospatial data (e.g., satellite images, sensor data, text documents, etc.) associated with the location information. In embodiments, the results include information generated by the server404using machine learning methods (e.g., using the heterogenous data fusion network900). In aspects of the disclosure, access controls for the actual geospatial data (data asset) are considered to be the purview of the data publisher and thus, while a Datum is available to every user of the server404, the underlying data asset is not available via the server404. In embodiments, the query module425of the server404implements operation1107. Exemplary use cases include the following.

Predicting the Price of Commodity Futures

In a first use scenario, a CNN is trained using hyper-spectral satellite imagery to determine the overall health of corn crops in the United States. A long short-term memory (LSTM) network is trained to predict heavy rains which effect corn harvests. A recurrent neural network (RNN) language model is trained to understand current corn contracts. In this scenario, the heterogeneous data fusion network900takes the output of these machine learning networks and predicts the size of the future corn crop.

Wildfire Insurance Risk Management

A CNN is trained using optical satellite imagery to predict the density of vegetation in wildfire prone areas. A RNN language model is trained to understand property and other records. In this scenario, the heterogeneous data fusion network900is able to estimate the risk profile for wildfire insured homes using outputs of the CNN and RNN.

Tracking Marine Debris

A CNN is trained using synthetic aperture radar data to detect where the Great Pacific Garbage Patch is. A CNN is trained on geo-tagged images from ships to determine the density of the garbage patch. A LSTM network is trained on current ocean current measurements to determine future current flows. In this scenario, the heterogeneous data fusion network900is able to estimate where the garbage patch will move to, and how the density will change over time using the outputs of the above-identified machine learning networks.

FIG.12shows a flowchart of an exemplary verification method in accordance with aspects of the present disclosure. Operations of the method may be conducted in the environment ofFIG.4and are described with reference to elements depicted inFIG.4.

Given a Datum, any user with proper access credentials to the linked data can verify its validity. Presently, it is practically impossible to forge a digital signature, but it is quite easy to check that a digital signature is valid. Similarly, it is mathematically improbable that two different files that look the same will have the same checksum. Since the record of Datums is immutable on the server404, embodiments of the disclosure enable a user to ensure that the data asset they received is precisely the one the data provider made an attestation about during publication with the server404, and has not been altered in any way.

In implementations, at operation1200, a user device (e.g., client device408) requests geospatial data (a data asset) from a provider of the geospatial data. In embodiments, a client device408of the user sends the request to a data provider device406of the provider of the geospatial data. In implementation, the user uses the results obtained by the server at operation1107ofFIG.11to obtain the geospatial data. In aspects, the user obtains the Datum associated with geospatial data from the server404according to operation1107ofFIG.11, and submits the Datum to the provider at operation1200in order to identify the geospatial data to be obtained.

At operation1201, the user device receives the requested geospatial data from the provider. By way of example, the data provider may provide a satellite image to the user device in response to the request at operation1200.

At operation1202, the user device submits the geospatial data to the server404with a verification request. The user device may submit the geospatial data directly, or provide the server404with a link to the geospatial data, wherein the link enables the server404to obtain the geospatial data from a data store. In embodiments, the verification request includes the Datum associated with the geospatial data.

At operation1203, the server404receives the verification request and obtains the geospatial data, either directly from the user device or from a remote data store, based on the verification request.

At operation1204, the server404obtains the data provider's public encryption key and determines whether the signed checksum in the GEDS700associated with the geospatial data is signed by the data provider (using their private encryption key). In implementations, the server404obtains the data provider's public encryption key using the data provider's registration information or information obtained from the data provider at the time the geospatial data at issue was published to the server404.

At operation1205, the server404determines whether the geospatial data is the same as the original geospatial data submitted for publication by the server404. In implementations, operation1205is implemented using the following suboperations.

At suboperation1205A, the server404accesses the cryptographic hash function associated with the geospatial data in the GEDS700, and hashes the geospatial data obtained at operation1203to generate a new checksum.

At suboperation1205B, the server404compares the new checksum with the original checksum for the geospatial data of interest submitted by the provider during the publication process in order to determine whether the new checksum is the same as the original checksum (i.e., the data is valid).

At operation1206, the server404sends a verification notification to the user device (e.g., client device408) in response to the verification request, which indicates whether the geospatial data submitted by the user for verification at operation1202is valid. In implementations, in response to the server404determining that the data provider of the geospatial data submitted for verification signed the checksum, and determining that the new checksum matches the originally submitted checksum, the server404sends a verification notification to the user confirming that the geospatial data submitted for verification is valid. Alternatively, in response to the server404determining that either the data provider of the geospatial data submitted for verification did not sign the checksum, or determining that the new checksum does not match the originally submitted checksum, the server404sends a verification notification to the user indicating that the geospatial data submitted for verification is not valid.