Weather forecasting using graph neural networks with multi-mesh representations

The use of graph neural networks with a multi-mesh representation in weather forecasting addresses the scalability and resource inefficiencies of traditional methods, providing accurate medium-range forecasts with reduced computational demands.

JP2026502886APending Publication Date: 2026-01-27DEEPMIND TECH LTD
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
JP2025537071
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-12-23
Filing Date
2023-12-22
Publication Date
2026-01-27

AI Technical Summary

Technical Problem

Traditional weather forecasting methods, such as numerical weather prediction (NWP), require extensive computational resources and are not scalable with increasing data, while existing machine learning approaches fail to match the accuracy of NWP systems, especially in medium-range forecasting.

Method used

A system utilizing graph neural networks with a multi-mesh representation processes weather data through a multi-mesh graph to efficiently propagate information, allowing for accurate weather forecasting with reduced computational resources and latency, and includes autoregressive forecasting to model short- and long-range interactions.

Benefits of technology

The system generates weather forecasts comparable to or more accurate than high-performance NWP systems using significantly fewer computational resources and with reduced latency, enabling efficient medium-range forecasting.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026502886000001_ABST
    Figure 2026502886000001_ABST
Patent Text Reader

Abstract

A method, system, and apparatus for forecasting weather using a graph neural network, the method including a computer program encoded on a computer storage medium, includes obtaining current weather data for a current time step, using the current weather data to generate current graph data representing a current state of a surface graph, and processing the current graph data using the graph neural network to generate a first forecast output defining first future weather data.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] This specification relates to using neural networks to forecast weather.

[0002] A neural network is a machine learning model that uses one or more layers of nonlinear units to predict an output for a received input. Some neural networks include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as the input to the next layer in the network, i.e., the next hidden layer or the output layer. Each layer of the network generates an output from the received input according to the current values ​​of its respective set of parameters. Summary of the Invention

[0003] This specification describes a system, implemented as a computer program on one or more computers at one or more locations, that generates predicted weather forecasts. In particular, the system generates predicted weather forecasts by processing a multi-mesh representation of a graph of a surface using a graph neural network.

[0004] As used herein, a weather forecast is a prediction of the values ​​of one or more weather characteristics, eg, atmospheric characteristics, surface characteristics, or both, at one or more locations at a future time.

[0005] Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages.

[0006] Traditional weather forecasts, e.g., medium-range forecasts, are commonly generated using numerical weather prediction (NWP), which attempts to numerically approximate the governing equations of weather. The most accurate traditional approaches require extensive computation, e.g., using some of the world's largest supercomputers to perform NWP.

[0007] However, these NWP systems do not scale well with the increasing amount of available data. Instead, the primary way NWP methods are improved is by highly trained experts manually refining better models, algorithms, and approximations, a time-consuming and costly process.

[0008] While machine learning systems scale well with additional data, existing machine learning approaches have not been shown to perform as well as the best NWP methods, for example, in medium-range weather forecasting tasks.

[0009] This specification describes a system that uses graph neural networks to generate weather forecasts that are as accurate as, and in many cases, better than, the best-performing NWP methods. By utilizing the graph neural networks described herein, the described system uses significantly fewer computational resources than the best-performing NWP systems during forecasting and produces predicted forecasts with significantly reduced latency. As a specific example, on a single hardware accelerator device, such as a Cloud TPU v4 device, the described system can generate a 10-day forecast at 0.25° resolution (including separate forecasts for each of the 10 days at six time steps) in less than 60 seconds. By comparison, ECMWF's IFS system, a high-performance NWP system, operates on an 11,664-core cluster and generates a 10-day forecast at 0.1° resolution (the first 90 hours are published in one-hour steps, 93-144 hours in three-hour steps, and 150-240 hours in six-hour steps) in approximately one hour. Although significantly more computationally efficient, the described system still produces predictions that are at least comparable to, and in many cases more accurate than, IFS systems.

[0010] In particular, the described system uses a "multi-mesh" representation that utilizes meshes at multiple different coarseness scales. By utilizing a multi-mesh representation, the system can use graph neural networks to effectively (and computationally efficiently) propagate information throughout space, i.e., to model both short- and long-range interactions, improving the quality of predicted weather forecasts.

[0011] Additionally, the system can autoregressively generate multi-step forecasts ("forecast trajectories") conditioned on previous model predictions, allowing the system to effectively model weather changes over time.

[0012] The details of one or more embodiments of the subject matter herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. [Brief explanation of the drawings]

[0013] [Figure 1] 1 illustrates an exemplary forecasting system. [Figure 2] FIG. 1 is a flow diagram of an example process for performing a forecast for a given real-world location. [Figure 3] FIG. 1 is a flow diagram of an exemplary process for processing graph data using a graph neural network. [Figure 4] The encoding-processing-decoding structure is shown. [Figure 5] Here is an example of an autoregressive rollout of weather forecasts. DETAILED DESCRIPTION OF THE INVENTION

[0014] Like reference symbols and designations in the various drawings indicate like elements.

[0015] 1 illustrates an exemplary forecasting system 100. Forecasting system 100 is an example of a system implemented as a computer program on one or more computers at one or more locations, which may implement the systems, components, and techniques described below.

[0016] The system 100 uses a graph neural network 110 to generate predicted weather forecasts.

[0017] To generate the predicted weather forecast 120, the system 100 obtains current weather data 102 for the current time step, e.g., the most recently measured or observed weather data at the time (time step) at which the prediction is made.

[0018] The current weather data 102 is defined on a latitude-longitude grid over the surface of an object, for example over part or all of the surface of a celestial body, for example over the Earth or a different planet.

[0019] A "latitude-longitude" grid is a grid with one axis corresponding to latitude and the other axis corresponding to longitude, with each point on the grid having a corresponding latitude value and a corresponding longitude value. For example, the grid may be placed on the surface of an object at a specified resolution, such as 0.1 degrees, 0.25 degrees, 0.5 degrees, or 0.75 degrees. For example, if the grid is placed on the Earth's surface at 0.25 degree resolution, each grid cell is 721 by 1440, which corresponds to approximately 28 by 28 kilometers resolution at the Earth's equator.

[0020] Generally, the current weather data 102 includes, for each of a plurality of points on a latitude-longitude grid, the current weather characteristics at the point at the current time step.

[0021] The current weather characteristics may include characteristics of the surface at the point, characteristics of the atmosphere above the surface at the point, or both.

[0022] For example, the surface properties may include any of temperature, wind speed, wind direction, air pressure, precipitation, and the like.

[0023] The atmospheric properties may include any of humidity, temperature, wind speed, wind direction, geopotential, vertical wind speed, etc. for each of multiple vertical (pressure) levels, where each level is a different pressure level above the point. For example, the atmospheric properties may include "geopotential" at a pressure level of 500 hPa.

[0024] Table 1 shows an example set of surface and atmospheric properties that may be included in current weather data 120, as well as an example set of pressure levels at which each atmospheric property may be measured. [Table 1]

[0025] The current weather data 102 may include one or more weather-independent characteristics for each point, such as latitude and longitude, time of day, season, and optionally other characteristics, such as solar radiation.

[0026] The system 100 uses the current weather data 102 to generate current graph data 104 that represents the current conditions of the surface graph.

[0027] A surface graph generally includes multiple nodes, which in turn include grid nodes and mesh nodes.

[0028] Each grid node corresponds to one of the points on a latitude-longitude grid, while each mesh node corresponds to a node in a mesh arranged around (on) the surface at a particular scale. For example, the mesh may be an icosahedral mesh on the surface.

[0029] The graph also contains edges, which in turn contains a set of mesh edges.

[0030] The mesh edges include mesh edges corresponding to multiple meshes at different scales. In particular, the mesh edges include each edge corresponding to a mesh at a particular scale and each edge corresponding to one or more meshes at scales coarser than the particular scale. The particular scale is also referred to as a "first scale," and the one or more coarser scales are also referred to as a "second scale."

[0031] More specifically, the mesh edges include (i) a respective first-scale mesh edge connecting each pair of mesh nodes that are connected in a first mesh disposed around the surface at a first scale, and (ii) for each of one or more second scales that are coarser than the first scale, a respective second-scale mesh edge connecting each pair of mesh nodes that would be connected in a corresponding second mesh disposed around the surface at the second scale.

[0032] The graph is thus a "multi-mesh" representation because it includes edges from meshes at multiple levels of a hierarchy that includes meshes at multiple different coarseness scales (i.e., spatial resolutions). In other words, the multiple edges define a mesh hierarchy of meshes at different scales. In some implementations, for each mesh other than the finest-scale mesh, a different (true) subset of mesh nodes corresponds to nodes from the mesh. That is, as a result of the hierarchy of coarseness scales, a different subset of mesh nodes is included in each mesh other than the finest mesh (all mesh nodes are included in the finest mesh).

[0033] As a consequence of different meshes being at different coarseness scales, edges between mesh nodes corresponding to nodes from one or more meshes coarser than a particular coarseness represent long-range dependencies, while edges between mesh nodes corresponding to nodes from the first mesh represent local interactions.

[0034] The graph also typically includes one or more additional types of edges that allow information to propagate between the mesh nodes and grid nodes during operation of the graph neural network 110.

[0035] For example, the graph may include a set of grid-mesh edges. Each grid-mesh edge is a unidirectional edge from a respective grid node to a respective mesh node, and a grid node is connected to a mesh node by a grid-mesh edge only if certain criteria are met. For example, the criteria may specify that a given grid node is connected to a given mesh node by a grid-mesh edge only if the distance between the given mesh node and the given grid node is less than a threshold distance. As a particular example, the threshold distance may be based on the length of the edge in a first mesh at a first scale.

[0036] Instead of or in addition to grid-mesh edges, the graph may include a set of mesh-grid edges. Each mesh-grid edge is a unidirectional edge from a respective mesh node to a respective grid node, and a mesh node is connected to a grid node by a mesh-grid edge only if certain criteria are met. For example, the criteria may specify that a given mesh node is connected to a given grid node by a mesh-grid edge only if the given mesh node is adjacent to (e.g., is a vertex of) a face of a first mesh at a first scale that contains the given grid node. For example, the first mesh may include triangular faces, each defined by three points of each of the mesh nodes of the first mesh, and a given grid node may be connected to each of the three mesh nodes if the grid node point is within the region of the surface enclosed by the corresponding triangular face.

[0037] The current graph data 104, which represents the current state of the graph, includes a respective embedding for each node and edge in the graph, i.e., for each mesh node, grid node, and edge. An embedding is an ordered collection of numbers, for example, a vector of floating-point or other numbers with a specified dimensionality.

[0038] In general, system 100 generates node and edge embeddings using current weather data. Generating node and edge embeddings from current weather data is described in more detail below.

[0039] In some cases, the current weather data includes, for each point on the latitude-longitude grid, weather characteristics at the point at one or more preceding time steps, each earlier than the current time step. That is, the current weather data includes preceding weather characteristics in addition to the current weather characteristics to provide additional context for the weather forecast. As an example, the current weather data may include weather characteristics at the current time step and the immediately preceding time step.

[0040] The system 100 processes the current graph data 104 using a graph neural network 110 to generate a predictive output that defines a predicted weather forecast 120 .

[0041] In particular, the forecast output defines, for each point on the latitude-longitude grid, future weather data including predicted weather characteristics at the point at the first future time step after the current time step.

[0042] Optionally, system 100 may generate predictions for multiple future time points starting from the current time point by "autoregressively" using, for each future time point, weather data generated using graph neural network 110 for one or more prior time points to generate graph data to be provided as input to graph neural network 110 for the future time points.

[0043] That is, the system may “roll out” a prediction generated using graph neural network 110 to generate additional predictions using predicted weather data rather than actual, observed or measured weather data. In other words, when predicting weather data at a second future time point that is after the first future time point described above, system 100 uses the predicted weather data generated using graph neural network 110 for the first future time point to complement the graph data provided as input to graph neural network 110 to generate predicted weather data for the second future time point. If the weather data at a given time step includes characteristics for the given time point and one or more preceding time points, the system may use the predicted weather data for the given time point and one or more preceding time points to generate predicted weather data for a future time point after the given time point. By repeating this process, system 100 can generate a sequence of multiple weather forecasts at multiple future time points, starting from current observed or measured weather data at the current time point (without acquiring any additional observed or measured weather data). In some examples, a combination of predicted weather data for a time point equal to or preceding a given time point and actual, observed, or measured weather data may be used to generate predicted weather data for a future time point after the given time point.

[0044] The weather forecast generated by the system 100 may be referred to as a “medium-range” forecast because, for example, the time interval between the present time and the first future time is between 3 and 12 hours, e.g., 6 hours.

[0045] For example, system 100 can start with weather data for the current time and generate predictions at each of multiple six-hour intervals into the future. The way system 100 incorporates graph neural network 110 and multi-mesh representations allows forecasts to remain accurate (relative to other forecasting approaches) even for time points much further in the future relative to the current time point, e.g., five or more days from the current time point.

[0046] Once generated, system 100 or other systems can use the predicted weather data for any of a variety of purposes, some examples of which are provided below.

[0047] For example, the predictions may be used for "daily" forecasting, and the system may generate a user interface presentation that visually displays data characterizing predicted values ​​of one or more weather characteristics at each of one or more of the future time points. The system may provide the user interface presentation for viewing by the user, for example, by including the presentation in the user interface of a weather software application executing on the user device, in a web page displayed in a web browser executing on the user device, or as a "green screen" or other visualization in a streaming video or television broadcast.

[0048] As a particular example, a user may submit a query specifying a point on a grid, and the system may respond by providing weather data characterizing the predicted weather at the point at one or more future times. Alternatively or in addition to a user interface presentation, the system may generate audio describing the predicted value(s) and provide the audio for playback to the user.

[0049] As another example, the predictions may be used for "extreme weather forecasting," e.g., cyclone tracking, extreme heat, extreme cold, heavy or light precipitation, etc. In these examples, the system may generate and provide an alert whenever the predicted value of a given characteristic meets a specified threshold (indicating that an extreme weather event is occurring).

[0050] In another example, the system can be incorporated into an energy management system. The energy management system can be configured to obtain contextual weather data characterizing the weather at a real-world location of a renewable energy power generation facility, such as a wind or solar energy power generation facility, at one or more prior time points. The contextual weather data can be processed as described above, and the renewable energy power generation facility, e.g., a wind or solar energy power generation facility, can be controlled in response to predicted weather data characterizing the predicted weather at the real-world location of the renewable energy power generation facility at corresponding future time points or times. For example, at a solar power generation facility, solar panels can be tilted or covered to protect the panels from predicted weather water particles greater than a threshold severity, or at a wind power generation facility, the energy power generation facility can be configured to maximize output based on the predicted weather, or one or more other power generation sources on the same power grid as the renewable energy power generation facility can be controlled to increase or decrease power from the other power generation sources for grid balancing in response to predicted power output from the renewable energy power generation facility based on the predicted weather. In a related energy management system, instead of controlling the renewable energy power generation facility, the predicted weather data characterizing the predicted weather at the real-world location of the renewable energy power generation facility may be used to send signals to electricity consumers on the power grid to which the renewable energy power generation facility is connected to control one or more power consuming devices of the consumers for load balancing, e.g., in a smart grid, in response to predicted power output from the renewable energy power generation facility based on the predicted weather.

[0051] In another exemplary application, the system can be incorporated into a flood early warning system. The flood early warning system can be configured to obtain contextual weather data characterizing weather at a real-world location of the at-risk area at one or more prior time points. The contextual weather data can be processed as described above, and the flood early warning system can output an alert in response to predicted weather data characterizing predicted weather at the real-world location of the at-risk area at a corresponding future time point. For example, an alert may be provided in response to a predicted weather forecast predicting greater than a threshold level of precipitation. Similar systems may be used to warn of potential landslides. The alert can be issued via one or more channels, e.g., television, radio, the Internet, mobile phones, public transportation, or public warning devices. In some implementations, the alert is a public alert, such as an audible and / or visual warning device at the real-world location of the at-risk area, that can warn of a localized danger to life or property.

[0052] In another exemplary application, the system may be incorporated into an air or sea traffic control system. The air or sea traffic control system may be configured to obtain contextual weather data characterizing weather at a real-world location of one or more aircraft or vessels at a future time. The contextual weather data may be processed as described above, and the air or sea traffic control system may output a signal to control the flight patterns or vessel routes of one or more aircraft or vessels at the real-world location in response to a predicted time sequence characterizing predicted weather at the real-world location at a corresponding future time. The signal may be a warning signal or a routing signal, which in some embodiments may be automatically provided to an aircraft or vessel, for example, to enable the aircraft or vessel to take evasive action. In some embodiments, the system is an air traffic control system, in which case the real-world location may be the location of an airport. The signal may be output in response to predicted weather exceeding a threshold level of severity, e.g., exceeding a threshold level of precipitation or meteorological water particles, or exceeding a threshold level of wind (speed), or exceeding a threshold level of a particular wind behavior (e.g., characterized by wind speed and / or direction).

[0053] In another exemplary application, the system can be incorporated into an energy management system configured to obtain contextual weather data characterizing the weather at a real-world location of a building or industrial facility at a prior point in time. The contextual weather data can be processed as described above to control shutters, or a ventilation system, or a temperature control system of the building or industrial facility in response to predicted weather data characterizing the predicted weather at the real-world location of the building or industrial facility at a corresponding future point in time. Such a system can be used to control the temperature or humidity of the building or industrial facility, or to keep it dry, or to protect the building or industrial facility.

[0054] Before using graph neural network 110 to predict the weather, system 100 or another training system trains graph neural network 110 with training data.

[0055] For example, the training data may include multiple sequences of target weather data, each sequence containing observed or measured target weather data at a respective time. Such training data may be obtained from any of a variety of data sources that compile historically observed or measured weather at different points around a surface (e.g., the ERA5 archive of the European Centre for Medium-Range Weather Forecasts (ECMWF)).

[0056] The graph neural network 110 may be trained using any of a variety of objectives that measure how accurately the graph neural network 110 can predict weather characteristics.

[0057] As an example, the training system may train graph neural network 110 to minimize, for each time step in each sequence of target weather data, an objective measuring either (i) the error between the target weather data for the time step and the corresponding future weather data generated using graph neural network 110 for the time step, or (ii) the error between a normalization of the target weather data for the time step and a normalization of the corresponding future weather data generated using graph neural network 110 for the time step. That is, as described in more detail below with reference to FIG. 2, in some implementations, the output of graph neural network 110 is in a normalized space. Thus, in these implementations, the system uses errors calculated in the normalized space to train the neural network. For example, in the normalized space, each output value may be normalized to have zero mean and unit variance. For example, the respective mean and variance of each output value may be estimated from corresponding output values ​​at points on a latitude-longitude grid. The estimated mean may then be subtracted from each of the corresponding output values ​​at the points on the latitude-longitude grid, and the corresponding output values ​​may be scaled using the estimated variance (e.g., divided by the corresponding standard deviation). Calculating the loss in normalized space may improve stability during training. The error may be squared error, so that the objective minimized by training is, for example, mean squared error. In some examples, the objective may be a (single) scalar loss obtained by averaging over latitude-longitude, pressure levels, and weather characteristics. In some examples, the average may be a weighted average, with different latitude-longitude, pressure levels, and / or weather characteristics assigned different weights in the objective.

[0058] In some cases, the objective may be an autoregressive training objective. More specifically, in an autoregressive training objective, for each of one or more time steps in a sequence of target weather data, corresponding future weather data for the time step is generated by providing, as input to a graph neural network, graph data generated using future weather data generated using the graph neural network at one or more preceding time steps.

[0059] That is, in these cases, during training, the graph neural network 110 is used to autoregressively generate respective future weather data at each of a number of time steps, starting from each of at least a subset of the time steps in each training sequence. That is, while the actual weather is known at training time, the system can still perform autoregressive predictions. This can improve the model's ability to make accurate forecasts over multiple time steps during inference.

[0060] In some implementations, the number of autoregressive steps used before a loss is calculated remains fixed throughout training. In some other implementations, the number of autoregressive steps performed varies as training progresses using a curriculum training schedule (i.e., a schedule in which one or more parameters used during training vary during different stages of training). For example, the curriculum may indicate that in early stages of training, only a single autoregressive step is performed, while in later stages of training, multiple autoregressive steps are performed. For example, in later stages of training, the number of autoregressive steps may be increased linearly as the stages progress until a maximum number of steps is reached.

[0061] In some implementations, the system trains the graph neural network 110 using lower-resolution training data. In other words, in these implementations, the target weather data is defined on a grid having a lower resolution than the grid on which the current weather data is defined after training. Training on lower-resolution data can improve the computational efficiency of the training process without significantly impairing inference-time performance.

[0062] 2 is a flow diagram of an exemplary process 200 for generating predicted weather data. For convenience, process 200 is described as being performed by one or more computer systems located at one or more locations. For example, a forecasting system, such as forecasting system 100 of FIG. 1 , suitably programmed, may perform process 200.

[0063] The system obtains current weather data for the current time step (step 202). As described above, the current weather data is defined on a latitude-longitude grid on the surface of the object and includes, for each of a plurality of points on the latitude-longitude grid, the current weather characteristics at the point at the current time step.

[0064] The system uses the current weather data to generate current graph data that represents the current state of the surface graph (step 204).

[0065] As explained above, the graph is a surface "multi-mesh" graph, and the current graph data representing the current state of the graph includes a respective embedding for each node in the graph and for each edge in the graph.

[0066] To generate the embeddings, the system may use at least current weather data to generate respective features for each of the nodes and edges in the graph. The system may then process the respective features of each of the nodes and edges in the graph using a corresponding encoder neural network to generate a respective embedding for each of the nodes and edges. For example, each type of node and edge may have a different corresponding encoder neural network, and the encoder neural network may be trained together with the graph neural network. As described, node types may include mesh nodes and grid nodes, and edge types may include mesh edges, and optionally grid-mesh edges and / or mesh-grid edges. For example, mesh nodes and grid nodes may have different corresponding encoder neural networks, and mesh edges, grid-mesh edges, and mesh-grid edges may have different corresponding encoder neural networks. The encoder neural network(s) may generally have any suitable neural network architecture. For example, the neural network(s) may be respective multilayer perceptrons (MLPs).

[0067] For example, the system may generate the respective characteristics for each of the grid nodes at least in part from current weather characteristics at the point corresponding to the grid node, and may generate the respective characteristics for each of the mesh nodes based at least in part on the longitude and latitude of the mesh node. In addition to the current weather characteristics at the point, the characteristics for a given grid node may optionally include analytically calculated characteristics at the point and static characteristics at the point.

[0068] As a particular example, the respective feature of each of the grid nodes may include a respective normalized value of each of one or more of the current weather characteristics at the point. For example, the grid node values ​​(i.e., the distribution of values ​​across the grid nodes) may be normalized to have zero mean and unit variance. For example, for each physical variable, the system can calculate the mean and standard deviation per pressure level over a historical period, e.g., the period covered by the training data for the neural network or a different historical period, and use the mean and standard deviation per pressure level to normalize the corresponding values ​​to zero mean and unit variance.

[0069] As another example, the respective features of each of the edges may be based on the respective positions (e.g., positions on the surface of the object) of each of the two nodes connected by the edge. For example, for mesh edges, mesh-grid edges, and grid-mesh edges, the features may include the length of the edge and the vector difference between the 3D positions of the sending node for the edge and the receiving node for the edge, calculated in the local coordinate system of the receiving node. In some cases, the system may normalize the edge lengths based, for example, on the length of the longest edge in the graph.

[0070] The system processes the current graph data using the graph neural network to generate a first forecast output that defines, for each of the points on the latitude-longitude grid, first future weather data including predicted weather characteristics at the point at a first future time step that is after the current time step (step 206).

[0071] For example, the system may process graph data through a set of graph neural network layers to generate updated embeddings for each of the grid nodes, and then process the updated embeddings of the grid nodes using a decoder neural network to generate a first predicted output. For example, the decoder neural network may be an MLP.

[0072] The system may process graph data using graph neural network layers in any of a variety of ways, and the graph neural network layers may have any suitable graph neural network layer architecture. For example, the layers may include any of a message passing neural network (MPNN) layer, a graph convolutional neural network (GCNN) layer, or a graph simulator network (GSN) layer.

[0073] In some implementations, the system processes graph data using graph neural network layers in an encoding-processing-decoding configuration. Exemplary techniques for generating updated embeddings of grid nodes in an encoding-processing-decoding configuration are described in more detail below with reference to Figures 3 and 4.

[0074] Generally, the first forecast output identifies a respective predicted value for each of the weather-dependent properties included in the current weather data.

[0075] Thus, the weather characteristics identified in the first forecast output may include characteristics of the surface at the point, characteristics of the atmosphere above the surface at the point, or both.

[0076] For example, the surface properties may include any of temperature, wind speed, wind direction, air pressure, precipitation, and the like.

[0077] The atmospheric properties may include any of humidity, temperature, wind speed, wind direction, geopotential, vertical wind speed, etc. for each of a plurality of vertical levels, where each level is a different pressure level above the point.

[0078] For example, the system can predict the five surface properties shown in Table 1, and for each of the atmospheric properties shown in Table 1, the system can predict the property's respective value for each of the 37 pressure levels shown in Table 1.

[0079] In some implementations, the first forecast output directly specifies the value of the predicted weather characteristic for each of the points on the grid.

[0080] In some other implementations, the first forecast output includes a predicted difference in the weather characteristic between the current time and the first future time. Thus, for a given characteristic for a given grid node, the system may generate a predicted characteristic at the first future time from the characteristic at the current time and the predicted difference.

[0081] As a particular example, the predicted delta of a weather characteristic may be the predicted delta (i.e., difference) between (i) the normalized value of the characteristic at the current time point and (ii) the normalized value of the characteristic at a first future time point.

[0082] In this example, to generate the first future weather data from the current weather data and the first forecast output, the system may denormalize the predicted difference for each point and for each of the one or more weather characteristics and apply the denormalized predicted difference to the value of the characteristic at the current time, e.g., add the denormalized predicted difference to the value of the characteristic at the current time, or subtract the denormalized predicted difference from the value of the characteristic at the current time. For example, the predicted difference may be denormalized by scaling it with the variance (e.g., multiplying by the corresponding standard deviation) and then adding the mean, using the variance and mean used to normalize the corresponding output value.

[0083] 3 is a flow diagram of an exemplary process 300 for processing graph data using a graph neural network. For convenience, process 300 will be described as being performed by one or more computer systems located at one or more locations. For example, a forecasting system, such as forecasting system 100 of FIG. 1 , suitably programmed, may perform process 300.

[0084] In the example of FIG. 3, the system performs processing of a graph neural network using an encoding-processing-decoding configuration.

[0085] The system processes the respective embeddings of each of the nodes and edges in a bipartite subgraph of the graph, including the grid nodes, mesh nodes, and grid-mesh edges, using a grid-mesh graph neural network to update the respective embeddings of at least the mesh nodes (step 302). The bipartite subgraph includes nodes that can be divided into two disjoint (non-overlapping) sets, in this case the grid nodes and the mesh nodes, and all edges (in this case the grid-mesh edges) connect respective nodes that belong to different ones of the disjoint sets. Generally, the grid-mesh graph neural network includes multiple graph neural network layers and may have any suitable architecture, for example, as described above. In some cases, the graph neural network layers are configured to update only the embeddings of the mesh nodes, while in other cases, the graph neural network layers also update the embeddings of one or more of the grid nodes, the grid-mesh edges, or both.

[0086] Thus, the grid-mesh graph neural network acts as an "encoder" that encodes information from the grid nodes to the mesh nodes in a multi-mesh representation.

[0087] After updating the respective embeddings of at least the mesh nodes and grid-mesh edges, the system processes the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes.

[0088] For example, the system may process the respective embeddings of each of the mesh nodes and mesh edges using a mesh graph neural network to update the respective embeddings of at least each of the mesh nodes (step 304). Generally, the mesh graph neural network includes multiple graph neural network layers and has any suitable architecture, e.g., as described above. In some cases, the graph neural network layers are configured to update only the embeddings of the mesh nodes, and in other cases, the graph neural network layers also update the embeddings of the mesh edges.

[0089] Thus, the system uses a mesh graph neural network to propagate information across multiple scales of the mesh. In particular, the system may use coarser mesh edges to propagate long-range dependencies and finer mesh edges to represent local interactions. In other words, the mesh graph neural network acts as a processor that communicates information across multiple meshes.

[0090] After updating the embeddings of the mesh nodes, the system processes the respective embeddings of each of the nodes and edges in a bipartite subgraph of the graph that includes the grid nodes, mesh nodes, and mesh-grid edges using a mesh-grid graph neural network to update the respective embeddings of each of the grid nodes (step 306). Generally, the mesh-grid graph neural network includes multiple graph neural network layers and has any suitable architecture, for example, as described above. In some cases, the graph neural network layers are configured to update only the embeddings of the grid nodes, and in other cases, the graph neural network layers also update the embeddings of one or more of the mesh nodes, mesh-grid edges, or both.

[0091] Thus, the mesh-grid graph neural network acts as a "decoder" that decodes information from the mesh nodes to the grid nodes.

[0092] FIG. 4 shows an example of an encoding-processing-decoding configuration.

[0093] As shown in Figure 4, the system 100 uses a grid-mesh neural network to encode 410 information from grid nodes to mesh nodes via grid-mesh edges. For example, Figure 4 shows that information from a set of grid nodes connected to a particular mesh node by respective grid-mesh edges is propagated to the particular mesh node by message passing through the respective grid-mesh edges.

[0094] The system 100 then uses the mesh graph neural network to process 420 the information encoded in the mesh nodes by performing multi-mesh message passing 450 .

[0095] In particular, in the example of FIG. 4, the mesh hierarchy includes seven levels M0-M6, with M0 being the coarsest level and M6 being the finest level. As shown in FIG. 6, by implementing multi-mesh message passing, the system can simultaneously pass information over long distances through the coarsest levels and locally across the finest levels. Thus, edges between mesh nodes at the coarsest levels reflect long-range dependencies, while edges between mesh nodes at the finest levels represent local interactions. A mesh hierarchy can be constructed, for example, by iteratively dividing a regular icosahedron (12 nodes and 20 faces) six times to obtain an icosahedral mesh hierarchy with a total of 40,962 nodes and 81,920 faces at the finest level.

[0096] The system 100 then uses the mesh-grid neural network to decode 430 the information processed from the mesh node to the grid node by the mesh-grid edges. For example, Figure 4 shows that information from a set of mesh nodes connected to a particular grid node by respective mesh-grid edges is propagated to the particular grid node by message passing through each mesh-grid edge.

[0097] Figure 5 shows an example of autoregressively rolling out weather forecasts.

[0098] 5, system 100 receives actual weather data 502 at time t (and optionally, one or more time points earlier than t). The system uses a graph neural network ("Graphcast") 110 to generate predicted weather data 504 at time t+1. The system then uses the predicted weather 504 (and optionally, the actual weather data 502 at time t) as input to graph neural network 110 to generate predicted weather data 504 at time t+2. The system can continue to autoregressively feed predictions from graph neural network 110 as input to graph neural network 110 over multiple different time points until it generates predicted weather data 506 at time t+T (where T is the number of autoregressive iterations).

[0099] Graph neural networks are described, for example, in Battaglia et al. arXiv:1806.01261.

[0100] This specification uses the term "configured" in the context of systems and computer program components. To say that one or more computer systems are configured to perform a particular operation or action means that the system has installed thereon software, firmware, hardware, or a combination thereof that, when running, causes the system to perform the operation or action. To say that one or more computer programs are configured to perform a particular operation or action means that the one or more programs contain instructions that, when executed by a data processing device, cause the device to perform the operation or action.

[0101] Embodiments of the subject matter and functional operations described herein can be implemented in digital electronic circuitry, tangibly embodied computer software or firmware, computer hardware, such as the structures disclosed herein and their structural equivalents, or one or more combinations thereof. Embodiments of the subject matter described herein may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible, non-transitory storage medium for execution by or controlling the operation of a data processing apparatus. The computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random-access or serial-access memory device, or one or more combinations thereof. Alternatively or additionally, the program instructions may be encoded in an artificially generated propagated signal, such as a mechanically generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to a receiving device suitable for execution by the data processing apparatus.

[0102] The term "data processing apparatus" refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. An apparatus may also be or include special-purpose logic circuitry, such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, an apparatus may optionally include code that creates an execution environment for a computer program, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof.

[0103] A computer program, which may be called or described as a program, software, software application, app, module, software module, script, or code, can be written in any form of programming language, including compiled or interpreted, declarative or procedural, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, for example, one or more scripts stored in a markup language document, in a single file dedicated to the program, or in multiple cooperating files, for example, files that store one or more modules, subprograms, or code portions. A computer program can be deployed to be executed on one computer or to be executed on multiple computers that are located at one site or distributed across multiple sites and interconnected by a data communications network.

[0104] As used herein, the term "database" is used broadly to refer to any collection of data. The data need not be structured in any particular way, or even at all, and may be stored on storage devices in one or more locations. Thus, for example, an index database may contain multiple collections of data, each of which may be organized and accessed in a different way.

[0105] Similarly, the term "engine" is used broadly herein to refer to a software-based system, subsystem, or process programmed to perform one or more specific functions. Typically, an engine is implemented as one or more software modules or components installed on one or more computers at one or more locations. In some cases, one or more computers are dedicated to a particular engine, and in other cases, multiple engines may be installed and run on the same computer or computers.

[0106] The processes and logic flows described herein may be implemented by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be implemented by special purpose logic circuitry, such as an FPGA or an ASIC, or a combination of special purpose logic circuitry and one or more programmed computers.

[0107] A computer suitable for running a computer program may be based on a general-purpose or special-purpose microprocessor, or both, or on other types of central processing units. Generally, the central processing unit receives instructions and data from a read-only memory, a random-access memory, or both. The basic components of a computer are a central processing unit for executing instructions and one or more memory devices for storing instructions and data. The central processing unit and memory may be supplemented by, or incorporated in, special-purpose logic circuitry. Generally, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively connected to receive data from or transmit data to them, or both. However, a computer need not have such devices. Furthermore, a computer may be incorporated in other devices, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.

[0108] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.

[0109] To provide for interaction with a user, embodiments of the subject matter described herein may be implemented in a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user, as well as a keyboard and pointing device, such as a mouse or trackball, by which the user can provide input to the computer. Other types of devices may also be used to interact with the user. For example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic, speech, or tactile input. Furthermore, a computer may interact with a user by sending and receiving documents to a device used by the user, for example, by sending a web page to a web browser on the user's device in response to a request received from the web browser. A computer may also interact with a user by sending text messages or other forms of messages to a personal device (e.g., a smartphone running a messaging application) and then receiving a reply message from the user.

[0110] A data processing device for implementing machine learning models may also include dedicated hardware accelerator units, for example for handling the common and computationally intensive part of machine learning training or production, i.e., inference, workloads.

[0111] The machine learning model may be implemented and deployed using a machine learning framework, for example, the TensorFlow framework.

[0112] Embodiments of the subject matter described herein may be implemented in a computing system that includes a back-end component, e.g., a data server, or includes a middleware component, e.g., an application server, or includes a front-end component, e.g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described herein, or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), e.g., the Internet.

[0113] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends data (e.g., HTML pages) to a user device, for example, to display the data to and receive user input from a user interacting with the device functioning as a client. Data generated at the user device, e.g., results of user interaction, can be received from the device by the server.

[0114] While the specification contains many specific implementation details, these should not be construed as limiting the scope of any invention or the scope of patentable subject matter, but rather as descriptions of features that may be unique to particular embodiments of a particular invention. Certain features described herein as separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment may also be implemented in multiple embodiments, either separately or in any suitable subcombination. Furthermore, even if features may be described above as functioning in a particular combination and originally claimed as such, one or more features from a claimed combination may, in some cases, be deleted from the combination, and the claimed combination may be directed to subcombinations or variations of the subcombinations.

[0115] Similarly, while operations are illustrated in the figures and described in the claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order or sequential order shown, or that all of the operations shown be performed, to achieve desirable results. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated into a single software product or packaged into multiple software products.

[0116] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims may be performed in a different order and still produce desirable results. As an example, the processes depicted in the accompanying figures do not necessarily require the particular order shown or sequential order to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.

Claims

1. 1. A method implemented by one or more computers, the method comprising: obtaining current weather data for a current time step, the current weather data being defined on a latitude-longitude grid across a surface of the object, and for each of a plurality of points on the latitude-longitude grid, the current weather data including current weather characteristics at the point at the current time step; generating current graph data representing a current state of a graph of the surface using the current weather data, the graph comprising: a plurality of nodes, the plurality of nodes including a plurality of grid nodes each corresponding to one of the points on the latitude-longitude grid, and a plurality of mesh nodes each corresponding to a node in a first mesh disposed about the surface at a first scale; a plurality of edges, the plurality of edges including: (i) a respective first-scale mesh edge connecting each pair of mesh nodes that are connected in the first mesh disposed about the surface at the first scale; and (ii) for each of one or more second scales that are coarser than the first scale, a plurality of mesh edges including a respective second-scale mesh edge connecting each pair of mesh nodes that would be connected in a corresponding second mesh disposed about the surface at the second scale; generating the current graph data, the current graph data including a respective embedding for each of the nodes and edges in the graph; processing the current graph data using a graph neural network to generate, for each of the plurality of points on the latitude-longitude grid, a first forecast output defining first future weather data including predicted weather characteristics at the point at a first future time step after the current time step.

2. 2. The method of claim 1, wherein the current weather data includes, for each of the plurality of points on the latitude-longitude grid, weather characteristics at the point at one or more previous time steps, each earlier than the current time step.

3. generating first future graph data representing a first future state of the graph of the surface from at least the first future weather data; 3. The method of claim 1 or 2, further comprising: processing the first future graph data using the graph neural network to generate a second forecast output defining, for each of the plurality of points on the latitude-longitude grid, second future weather data including predicted weather characteristics at the point at a second future time step that is after the first future time step.

4. 4. The method of claim 3, wherein the first future weather data includes, for each of the plurality of points on the latitude-longitude grid, (i) the current weather characteristics at the point at the current time step, and (ii) the predicted weather characteristics at the point at the first future time step.

5. 5. The method of claim 1, wherein the first forecast output comprises, for each point, and for each of one or more of the weather characteristics, a predicted difference in the weather characteristic between the current time point and the first future time point.

6. 6. The method of claim 1, wherein the plurality of edges comprises a plurality of grid-mesh edges, each of the plurality of grid-mesh edges being a unidirectional edge from a respective grid node to a respective mesh node, and wherein a given grid node is connected to a given mesh node by a grid-mesh edge if and only if the distance between the given grid node and the given mesh node is less than a threshold distance.

7. The method of claim 6 , wherein the threshold distance is based on the length of the edge in the first mesh at the first scale.

8. 8. The method of claim 1, wherein the plurality of edges comprises a plurality of mesh-grid edges, each of the plurality of mesh-grid edges being a unidirectional edge from a respective mesh node to a respective grid node, and wherein a given mesh node is connected to a given grid node by a mesh-grid edge if and only if the given mesh node is adjacent to a face of the first mesh at the first scale that contains the given grid node.

9. generating the current graph data generating respective features for each of the nodes and edges in the graph using at least the current weather data; and processing the respective features of each of the nodes and edges in the graph using a corresponding encoder neural network to generate the respective embeddings of each of the nodes and edges.

10. The method of claim 9 , wherein each type of node and edge has a different corresponding encoder neural network.

11. 11. The method of claim 9 or 10, wherein the respective characteristics of each of the grid nodes are generated at least in part from the current weather characteristics at the point, and the respective characteristics of each of the mesh nodes are generated at least in part based on the longitude and latitude of the mesh node.

12. The method of claim 11 , wherein the respective characteristics of each of the grid nodes include a respective normalized value for each of one or more of the current weather characteristics at the point.

13. A method according to any one of claims 9 to 12, wherein the respective characteristic of each of the edges is based on the respective position of each of the two nodes connected by the edge.

14. processing the current graph data using a graph neural network to generate a first forecast output defining first future weather data; processing the respective embeddings of each of the nodes and edges in a bipartite subgraph of the graph, including the grid nodes, the mesh nodes, and the grid-mesh edges, using a grid-mesh graph neural network to update the respective embeddings of at least the mesh nodes; after updating the respective embeddings of at least the mesh nodes and the grid-mesh edges, processing the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes; A method according to any preceding claim when dependent on claim 6, comprising generating the first predicted output from the updated embedding of the grid nodes.

15. processing the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes, 15. The method of claim 14, comprising processing the respective embeddings of each of the mesh nodes and mesh edges using a mesh graph neural network to update the respective embeddings of at least each of the mesh nodes.

16. processing the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes, 16. A method according to claim 14 or 15 when dependent on claim 8, comprising using a mesh-grid graph neural network to process the respective embeddings of each of the nodes and edges in a bipartite subgraph of the graph comprising the grid nodes, the mesh nodes, and the mesh-grid edges, in order to update the respective embeddings of each of the grid nodes.

17. Generating the first predicted output includes:

17. The method of any one of claims 14 to 16, comprising processing the updated embeddings of the grid nodes using a decoder neural network to generate the first predicted output.

18. A method according to any preceding claim, wherein the mesh at the first scale is an icosahedral mesh spanning the surface.

19. the predicted difference in the weather characteristic is a predicted difference between a normalized value of the characteristic at the current time point and a normalized value of the characteristic at the first future time point, the method comprising generating the first future weather data from the current weather data and the first forecast output; 19. The method of any one of claims 1 to 18 when dependent on claim 5, further comprising, for each point, and for each of the one or more weather characteristics, generating the predicted difference comprises de-normalizing the predicted difference and applying the de-normalized predicted difference to the value of the characteristic at the current time.

20. 20. The method of any one of claims 1 to 19, wherein the first mesh and the one or more second meshes define a mesh hierarchy of meshes at different scales, and for each second mesh, a respective different subset of the mesh nodes corresponds to nodes from the second mesh.

21. 21. The method of claim 20, wherein edges between mesh nodes corresponding to nodes from the one or more second meshes represent long-range dependencies, and edges between mesh nodes corresponding to nodes from the first mesh represent local interactions.

22. The method of any one of claims 1 to 21, wherein the time interval between each time step is between 3 hours and 12 hours.

23. 23. The method of claim 22, wherein the time interval is 6 hours.

24. 24. The method of any one of claims 1 to 23, wherein the graph neural network is trained based on training data, the training data including a plurality of sequences of target weather data, to minimize, for each time step in each sequence of target weather data, an objective to measure either: (i) an error between the target weather data for the time step and corresponding future weather data generated using the graph neural network for the time step; or (ii) an error between a normalization of the target weather data for the time step and a normalization of the corresponding future weather data generated using the graph neural network for the time step.

25. 25. The method of claim 24, wherein the objective is an autoregressive training objective, wherein for each of one or more time steps in the sequence of target weather data, the corresponding future weather data for the time step is generated by providing as input to the graph neural network graph data generated using future weather data generated using the graph neural network at one or more preceding time steps.

26. 26. The method of claim 25, wherein during training, the graph neural network is used to autoregressively generate respective future weather data at each of a plurality of time steps, starting with each of at least a subset of the time steps in each training sequence.

27. A method according to any one of claims 24 to 26, wherein the target weather data is defined on a grid having a lower resolution than the grid on which the current weather data is defined.

28. 28. The method of any one of claims 24 to 27, wherein the neural network is trained using a curricula training schedule that varies the number of autoregressive steps performed.

29. The method of any one of claims 1 to 28, further comprising generating an alert whenever a given predicted weather characteristic meets a specified threshold.

30. The predicted weather output characterizes the predicted weather at a real-world location of a renewable energy power generation facility, and the method further comprises: (i) controlling the renewable energy power generation facility in response to the predicted weather at the real-world location; or 29. The method of any one of claims 1 to 28, further comprising: (ii) transmitting a signal to a consumer of electricity on a power grid to which the renewable energy power generation facility is connected in response to a predicted power output from the renewable energy power generation facility based on the predicted weather at the real-world location.

31. 29. The method of any one of claims 1 to 28, wherein the predicted weather output characterizes the predicted weather at a real-world location, the method further comprising outputting a signal for controlling flight patterns or vessel routes of one or more aircraft or vessels in response to the predicted weather at the real-world location.

32. 29. The method of any one of claims 1 to 28, wherein the predicted weather output characterizes the predicted weather at a real-world location of a building or industrial facility, the method further comprising controlling shutters, or a ventilation system, or a temperature control system of the building or industrial facility in response to the predicted weather at the real-world location.

33. one or more computers; and one or more storage devices communicatively coupled to the one or more computers, the one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform the operations of the respective methods of any one of claims 1 to 32.

34. One or more non-transitory computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform the respective method operations of any one of claims 1 to 32.

Citation Information

Patent Citations

  • Method and device for predicting typhoon water level based on graph convolutional neural network

    CN113011501A

  • Air-conditioning control system

    JP2002089929A

  • Disaster coping determination support device and disaster coping determination support program

    JP2016217762A

  • Broadcasting station system and unmanned flight vehicle

    JP2017168944A

  • Power generation amount prediction device, power generation amount prediction method, and power generation amount prediction system

    JP2018126038A