Weather forecasting using multi-grid representations using graph neural networks
Through the graph neural network processing multi-grid representation, the problem of high computing resource consumption and insufficient accuracy in medium-term weather forecasts is solved, and efficient and accurate weather forecasts are achieved, which are suitable for a variety of application scenarios.
Patent Information
- Application Number
- CN202380092214.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-23
- Filing Date
- 2023-12-22
- Publication Date
- 2025-08-22
AI Technical Summary
The existing numerical weather forecasting methods and machine learning methods have problems such as high computing resource consumption and insufficient prediction accuracy in the medium-term weather forecast, and it is difficult to effectively expand with the increase in data volume.
The graph neural network is used to process multi-grid representations, and predicted weather forecasts are generated through autoregression, and information is spread across space by multi-grid representations, short-term and long-term interaction modeling is carried out to generate accurate medium-term forecasts.
Generate accurate forecasts comparable to or even better than the highest performance numerical weather forecasting system with fewer computing resources, reducing latency, and are suitable for a variety of application scenarios such as weather forecasting, extreme weather alerts, energy management and traffic control.
Smart Images

Figure CN120530348A_ABST
Abstract
Description
Background Art
[0001] This specification relates to using neural networks to perform weather forecasting.
[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. In addition to an output layer, some neural networks also include one or more hidden layers. The output of each hidden layer serves as the input for the next layer in the network (i.e., the next hidden layer or output layer). Each layer of the network generates an output from the received input based on the current values of the corresponding set of parameters. Summary of the Invention
[0003] This specification describes a system for generating predictive weather forecasts, implemented as a computer program on one or more computers in one or more locations. Specifically, the system generates predictive 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 properties (eg, atmospheric properties, surface properties, or both) for one or more locations at a future time.
[0005] Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages.
[0006] Conventional weather forecasts (e.g., medium-range weather forecasts) are typically generated using numerical weather prediction (NWP), which attempts to numerically approximate the governing equations of weather. The most accurate conventional methods use massive computations to perform NWP, for example, using some of the world's largest supercomputers.
[0007] However, these NWP systems do not scale well as the amount of available data increases. Instead, the main way to improve NWP methods is through the manual innovation of better models, algorithms, and approximations by highly trained experts, which is a time-consuming and expensive process.
[0008] While machine learning systems do scale well with additional data, existing machine learning methods have not yet been shown to perform as well as the best NWP methods, for example on medium-range weather forecasting tasks.
[0009] This specification describes a system that uses a graph neural network to generate weather forecasts that are as accurate as, and in many cases better than, the highest-performing NWP methods. By utilizing a graph neural network as described in this specification, the described system uses significantly fewer computational resources than the highest-performing NWP systems when forecasting, and generates forecasts with significantly reduced latency. As a specific example, on a single hardware accelerator device (e.g., a Cloud TPU v4 device), the described system can generate a 10-day forecast with a resolution of 0.25° (including corresponding forecasts made at a step size of 6 hours each over the 10-day period) in less than 60 seconds. In comparison, a high-performance NWP system, ECMWF's IFS system, runs on an 11,664-core cluster and generates a 10-day forecast with a resolution of 0.1° (published with a step size of 1 hour for the first 90 hours, a step size of 3 hours for hours 93-144, and a step size of 6 hours for hours 150-240) in approximately one hour. Although significantly more computationally efficient, the described system still generates predictions that are at least comparable to, and in many cases more accurate than, the IFS system.
[0010] Specifically, the described system uses a "multi-grid" representation that utilizes grids at multiple different coarseness scales. By utilizing a multi-grid representation, the system can use graph neural networks to efficiently (and in a computationally efficient manner) propagate information across space, i.e., to model both short-term and long-term interactions in order to improve the quality of predicted weather forecasts.
[0011] Furthermore, the system can autoregressively generate multi-step forecasts (“forecast trajectories”) conditioned on previous model forecasts, allowing the system to effectively model the evolution of weather across time.
[0012] The details of one or more embodiments of the subject matter of this specification 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 DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 An example forecasting system is shown.
[0014] Figure 2 is a flow chart of an example process for performing a forecast for a given real-world location.
[0015] Figure 3 is a flowchart of an example process for processing graph data using a graph neural network.
[0016] Figure 4 An encode-process-decode configuration is shown.
[0017] Figure 5 An example of autoregressive geodetic weather forecasting is shown.
[0018] Like reference numbers and designations throughout the various drawings indicate like elements. DETAILED DESCRIPTION
[0019] Figure 1 Illustrated is an example forecasting system 100. Forecasting system 100 is an example of a system implemented as a computer program on one or more computers in one or more locations in which the systems, components, and techniques described below may be implemented.
[0020] The system 100 uses a graph neural network 110 to generate predictive weather forecasts.
[0021] To generate a predicted weather forecast 120 , the system 100 obtains current weather data 102 for a current time step, eg, the most recently measured or observed weather data up to the point in time (the time step) for which a prediction is being made.
[0022] The current weather data 102 is defined on a latitude and longitude grid over a surface of a subject (eg, over some or all of a surface of a celestial body, such as the Earth or a different planet).
[0023] A "latitude-longitude" grid is a grid having one axis corresponding to latitude and another axis corresponding to longitude, such that each point on the grid has a corresponding latitude value and a corresponding longitude value. For example, a grid can be placed on the surface of a subject at a specified resolution (e.g., 0.1 degrees, 0.25 degrees, 0.5 degrees, or 0.75 degrees). For example, when a grid is placed on the surface of the Earth at a 0.25 degree resolution, each grid cell is 721×1440, which corresponds to a resolution of approximately 28×28 kilometers at the Earth's equator.
[0024] Typically, the current weather data 102 includes, for each of a plurality of points on the latitude and longitude grid, current weather attributes at the point up to a current time step.
[0025] The current weather properties may include properties of the surface at the point, properties of the atmosphere above the surface at the point, or both.
[0026] For example, surface properties may include any of temperature, wind speed, wind direction, air pressure, precipitation levels, and the like.
[0027] For each vertical (pressure) level in a plurality of vertical (pressure) levels, where each level is a different pressure level above the point, the atmospheric properties may include any of humidity, temperature, wind speed, wind direction, geopotential, vertical wind speed, etc. For example, the atmospheric properties may include "geopotential" at a pressure level of 500 hPa.
[0028] Table 1 shows an example of a set of surface properties and atmospheric properties that may be included in the current weather data 120 , and an example of a set of pressure levels at which each atmospheric property may be measured.
[0029] The current weather data 102 may also include one or more weather-independent attributes for each point, such as latitude and longitude, time of day, time of year, and optionally other attributes, such as solar radiation.
[0030] The system 100 uses the current weather data 102 to generate current map data 104 that represents the current state of a map of a surface.
[0031] A graph of a surface generally includes a plurality of nodes, which in turn include grid nodes and mesh nodes.
[0032] Each grid node corresponds to a point on the latitude and longitude grid, and each mesh node corresponds to a node in a grid placed around (on) the surface at a particular scale. For example, the grid can be an icosahedral grid over the surface.
[0033] The graph also includes edges, which in turn include a collection of mesh edges.
[0034] Mesh edges include mesh edges corresponding to multiple meshes at different scales. Specifically, mesh edges include corresponding edges corresponding to meshes at a specific scale and corresponding edges corresponding to one or more meshes at a scale coarser than the specific scale. The specific scale will also be referred to as a "first scale," and the one or more coarser scales will also be referred to as a "second scale."
[0035] 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 placed around the surface at the first scale; and (ii) for each of one or more second scales 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 placed around the surface at the second scale.
[0036] Thus, the graph is a "multi-grid" representation because it includes edges from grids at multiple levels in a grid hierarchy—i.e., a hierarchy that includes grids at multiple different scales of coarseness (i.e., spatial resolution). In other words, the multiple edges define a grid hierarchy of grids at different scales. In some implementations, for each grid except the finest scale, a corresponding different subset (a proper subset) of grid nodes corresponds to nodes from that grid. That is, due to the hierarchy of coarseness scales, each grid except the finest grid includes a different subset of grid nodes (where the finest grid includes all site nodes).
[0037] Since different meshes are at different roughness scales, edges between mesh nodes corresponding to nodes from one or more meshes coarser than a certain roughness represent long-range dependencies, and edges between mesh nodes corresponding to nodes from the first mesh represent local interactions.
[0038] The graph typically also includes one or more additional types of edges that allow information to propagate between grid nodes during operation of the graph neural network 110 .
[0039] For example, a graph may include a set of grid-to-grid edges. Each grid-to-grid edge is a unidirectional edge from a corresponding grid node to a corresponding grid node, and a grid node is connected to a grid node via the grid-to-grid edge only if a certain criterion is satisfied. For example, the criterion may specify that a given grid node is connected to a given grid node via the grid-to-grid edge only if the distance between the given grid node and the given grid node is less than a threshold distance. As a specific example, the threshold distance may be based on the length of an edge in a first grid at a first scale.
[0040] As an alternative to or in addition to mesh-to-mesh edges, a graph can include a set of mesh-to-mesh edges. Each mesh-to-mesh edge is a unidirectional edge from a corresponding mesh node to a corresponding mesh node, and a mesh node is connected to a mesh node via the mesh-to-mesh edge only if a certain criterion is satisfied. For example, the criterion can specify that a given mesh node is connected to a given mesh node via the mesh-to-mesh edge only if the given mesh node is adjacent to a face (e.g., a vertex of the face) of a first mesh at a first scale that contains the given mesh node. For example, the first mesh can include triangular faces, each triangular face defined by points of corresponding three of the mesh nodes of the first mesh, and a given mesh node can be connected to each of the three mesh nodes if the point of the mesh node is within the region of the surface spanned by the corresponding triangular face.
[0041] The current graph data 104 representing the current state of the graph includes a corresponding embedding for each of the nodes and edges in the graph, i.e., a corresponding embedding for each of the grid nodes, mesh nodes, and edges. An embedding is an ordered set of values, such as a vector of floating points or other values of a specified dimension.
[0042] Typically, the system 100 uses current weather data to generate node and edge embeddings. Generating node and edge embeddings from current weather data will be described in more detail below.
[0043] In some cases, the current weather data includes, for each point on the latitude and longitude grid, weather attributes for that point up to one or more previous time steps that are each prior to the current time step. That is, in addition to the current weather attributes, the current weather data also includes previous weather attributes to provide additional context for the weather forecast. As an example, the current weather data may include weather attributes for the current time step and the immediately previous time step.
[0044] The system 100 processes the current graph data 104 using a graph neural network 110 to generate a forecast output defining a predicted weather forecast 120 .
[0045] Specifically, the forecast output defines future weather data that includes, for each of the points on the latitude and longitude grid, predicted weather attributes at the point up to a first future time step after the current time step.
[0046] Optionally, the system 100 can generate forecasts for multiple future time points starting from the current time point in the following manner: for each future time point, "autoregressively" uses weather data generated using the graph neural network 110 for one or more previous time points to generate graph data, which is provided as input to the graph neural network 110 for the future time point.
[0047] That is, the system can "roll out" the predictions generated using the graph neural network 110 to generate additional predictions using predicted weather data instead of actual observed or measured weather data. In other words, when predicting weather data for a second future time point after the first future time point described above, the system 100 uses the predicted weather data generated using the graph neural network 110 for the first future time point to populate the graph data provided as input to the graph neural network 110 to generate predicted weather data for the second future time point. When the weather data at a given time step includes attributes for the given time point and one or more previous time points, the system can use the predicted weather data for the given time point and the one or more previous time points to generate predicted weather data for future time points after the given time point. By repeating this process, the system 100 can generate a sequence of multiple weather predictions for multiple future time points, starting from the currently observed or measured weather data at the current time point (without obtaining any additional observed or measured weather data). In some examples, a combination of predicted weather data for a time point equal to or prior to 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.
[0048] The weather forecast generated by system 100 may be referred to as a “medium-range” forecast, for example, because the time interval between the current point in time and the first future point in time is between three and twelve hours, eg, six hours.
[0049] For example, the system 100 can start with weather data for the current time point and generate a forecast for each of a plurality of six-hour intervals in the future. Because the system 100 incorporates the graph neural network 110 and the multi-grid representation, the forecast can still be accurate (relative to other forecasting methods) even for time points in the distant future relative to the current time point, for example, five or more days after the current time point.
[0050] Once generated, the predicted weather data can be used by the system 100 or another system for any of a variety of purposes. The following are some examples.
[0051] For example, the prediction may be for a "day-by-day" forecast, and the system may generate a user interface presentation that visually displays data representing predicted values of one or more of the weather attributes for each of one or more of the future time points. The system may provide the user interface presentation for viewing by a user, e.g., in a user interface of a weather software application running on a user device, on a web page displayed in a web browser running on the user device, or by including the presentation as a "green screen" or other visual form in a streaming video or television broadcast.
[0052] As a specific example, a user may submit a query specifying a point on a grid, and in response, the system may provide weather data representing the predicted weather at that point at one or more future points in time. Alternatively or in addition to user interface presentation, the system may generate speech describing the predicted value and provide that speech for playback to the user.
[0053] As another example, the forecast can be used for "extreme weather forecasting," e.g., cyclone tracking, extreme high temperatures, extreme low temperatures, high rainfall, low rainfall, etc. In these examples, the system can generate and provide an alert whenever the predicted value of a given attribute meets a specified threshold, which would indicate that an extreme weather event is occurring.
[0054] 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 representing the weather at one or more previous points in time at a real-world location of a renewable energy generation facility, such as a wind power facility or a solar power facility. The contextual weather data can be processed as described above, and the renewable energy generation facility, such as a wind power facility or a solar power facility, can be controlled in response to the predicted weather data representing the predicted weather at a corresponding future point in time at the real-world location of the renewable energy generation facility. For example, in a solar farm, solar panels can be tilted or covered to protect the panels from predicted weather and hydrometeorological effects greater than a threshold severity; or in a wind farm, the energy generation facility can be configured to maximize output based on the predicted weather; or one or more other generation sources on the same power grid as the renewable energy generation facility can be controlled to increase or decrease power from the other generation sources in response to the predicted power output from the renewable energy generation facility based on the predicted weather to achieve grid balancing. In a related energy management system, instead of controlling a renewable energy generation facility, predicted weather data characterizing the predicted weather in the real-world location of the renewable energy generation facility can be used to send a signal to a consumer of electricity on the power grid to which the renewable energy generation facility is connected to control one or more power-consuming devices of the consumer in response to the predicted power output from the renewable energy generation facility based on the predicted weather to achieve load balancing, such as load balancing in a smart grid.
[0055] In another example application, the system can be incorporated into a flood warning system. The flood warning system can be configured to obtain contextual weather data representing the weather at one or more previous points in time in the real-world location of the danger zone. The contextual weather data can be processed as described above; and the flood warning system can output a warning in response to the predicted weather data representing the predicted weather at the corresponding future points in time in the real-world location of the danger zone. For example, a warning can be provided in response to the predicted weather forecast predicting a precipitation amount greater than a threshold level. A similar system can be used to warn of potential landslides. The warning can be issued via one or more channels (e.g., television, radio, the Internet, mobile phones, public transportation, or public warnings). In some implementations, the warning is a public warning, such as an auditory and / or visual warning in the real-world location of the danger zone, which can warn of a local danger to life or property.
[0056] In another example application, the system can be incorporated into an air or marine traffic control system. The air or marine traffic control system can be configured to obtain contextual weather data representing the weather at a previous point in time at a real-world location of one or more air or marine vehicles. The contextual weather data can be processed as described above; and the air or marine traffic control system can output a signal for controlling the flight mode or routing of one or more air or marine vehicles at the real-world location in response to a predicted time series representing the predicted weather at a corresponding future point in time at the real-world location. The signal can be a warning signal or a routing signal; in some implementations, it can be automatically provided to the air or marine vehicle, for example, to enable the air or marine vehicle to take evasive action. In some implementations, the system is an air traffic control system, and the real-world location can be the location of an airport. The signal can be output in response to the predicted weather having a severity greater than a threshold level—for example, a precipitation or hydrometeorological level greater than a threshold level, a wind (speed) level greater than a threshold level, or a specific wind behavior (e.g., characterized by wind speed and / or wind direction) greater than a threshold level.
[0057] In another example application, the system can be incorporated into an energy management system configured to obtain contextual weather data representing the weather at a previous point in time at the real-world location of a building or industrial facility. This contextual weather data can be processed as described above, and the shutters, ventilation system, or temperature control system of the building or industrial facility can be controlled in response to the predicted weather data representing the predicted weather at a corresponding future point in time at the real-world location of the building or industrial facility. 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.
[0058] Before using the graph neural network 110 to predict weather, the system 100 or another training system trains the graph neural network 110 on training data.
[0059] For example, the training data may include multiple target weather data sequences, i.e., multiple sequences each including target weather data that has been observed or measured at a corresponding point in time. Such training data may be obtained from any of a variety of data sources that collect weather that has been observed or measured historically at different points around the surface (e.g., the ERA5 archive of the European Centre for Medium-Range Weather Forecasts (ECMWF)).
[0060] The graph neural network 110 may be trained using any of a variety of objective functions that measure how accurately the graph neural network 110 can predict weather attributes.
[0061] As an example, the training system may train the graph neural network 110 to minimize an objective function that measures, for each time step in each target weather data sequence, (i) the error between the target weather data for that time step and the corresponding future weather data generated for that time step using the graph neural network 110, or (ii) the error between the normalized result of the target weather data for that time step and the normalized result of the corresponding future weather data generated for that time step using the graph neural network 110. That is, as described below with reference to Figure 2 As will be described in more detail, in some implementations, the output of the graph neural network 110 is in a normalized space. Therefore, 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 can be normalized to have zero mean and unit variance. For example, the corresponding mean and variance of each output value can be estimated from the corresponding output value at a point on a latitude and longitude grid. The estimated mean can then be subtracted from each of the corresponding output values at the point on the latitude and longitude grid, and the corresponding output value can be scaled using the estimated variance (e.g., divided by the corresponding standard deviation). Computing the loss in the normalized space can improve stability during training. The error can be a squared error, so that the objective function minimized by training is, for example, the mean squared error. In some examples, the objective function can be a (single) scalar loss obtained by averaging across latitude and longitude, pressure level, and weather attribute. In some examples, the average can be a weighted average, where different latitude and longitude, pressure level, and / or weather attribute are assigned different weights in the objective function.
[0062] In some cases, the objective function can be an autoregressive training objective function. More specifically, in the autoregressive training objective function, for each of one or more time steps in a target weather data sequence, corresponding future weather data for that time step is generated by providing graph data generated using the future weather data as input to a graph neural network, where the future weather data was generated using the graph neural network at one or more previous time steps.
[0063] That is, in these cases, during training, the graph neural network 110 is used to autoregressively generate corresponding future weather data at each of a plurality of time steps, starting from each time step in at least a subset of the time steps in each training sequence. That is, even though the actual weather is known during training, the system can still perform autoregressive forecasting. This can improve the model's ability to make accurate forecasts for more than one step ahead during inference.
[0064] In some implementations, the number of autoregressive steps taken before calculating the loss 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 dictate that for an initial stage of training, only a single autoregressive step be performed, while for later stages of training, more than one autoregressive step be performed. For example, in the later stages of training, the number of autoregressive steps may increase linearly as the stage progresses until a maximum number of steps is reached.
[0065] In some implementations, the system uses lower-resolution training data to train the graph neural network 110. In other words, in these implementations, the target weather data is defined on a grid with 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 compromising inference time performance.
[0066] Figure 2 is a flow chart of an example process 200 for generating predicted weather data. For convenience, process 200 will be described as being performed by a system of one or more computers located in one or more locations. For example, a suitably programmed forecasting system (e.g., Figure 1 The forecasting system 100) can perform process 200.
[0067] 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 and longitude grid on the surface of the subject, and includes, for each of a plurality of points on the latitude and longitude grid, current weather attributes at the point up to the current time step.
[0068] The system uses the current weather data to generate current map data representing the current state of the map of the surface (step 204).
[0069] As described above, the graph is a "multi-grid" graph of the surface, and the current graph data representing the current state of the graph includes a corresponding embedding for each node in the graph and each edge in the graph.
[0070] To generate the embeddings, the system may use at least the current weather data to generate corresponding features for each of the nodes and edges in the graph. The system may then process the corresponding features of each of the nodes and edges in the graph using a corresponding encoder neural network to generate a corresponding 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 have been trained jointly with the graph neural network. As discussed, the types of nodes may include grid nodes and mesh nodes, and the types of edges may include grid edges and optionally grid-to-grid edges and / or mesh-to-grid edges. For example, grid nodes and mesh nodes may have different corresponding encoder neural networks, and mesh edges, mesh-to-grid edges, and mesh-to-grid edges may have different corresponding encoder neural networks. The encoder neural network may generally have any suitable neural network architecture. For example, the neural network may be a corresponding multilayer perceptron (MLP).
[0071] For example, the system can generate a corresponding feature for each of the grid nodes based at least in part on current weather attributes at a point corresponding to the grid node, and can generate the corresponding feature for each of the grid nodes based at least in part on the longitude and latitude of the grid node. In addition to the current weather attributes at the point, the features for a given grid node can optionally include analytically calculated features at the point and static features at the point.
[0072] As a specific example, the corresponding features for each of the grid nodes may include a corresponding normalized value for each of one or more of the current weather attributes at that point. For example, the values of the grid nodes (i.e., the distribution of values over the grid nodes) may be normalized to have zero mean and unit variance. For example, for each physical variable, the system may calculate a per-pressure level mean and standard deviation over a historical period (e.g., a period covered by the training data for the neural network or a different historical period), and use the per-pressure level mean and standard deviation to normalize the corresponding values to zero mean and unit variance.
[0073] As another example, the corresponding features for each of the edges can be based on the corresponding positions of each of the two nodes connected by the edge (e.g., positions on the surface of the body). For example, for a mesh edge, a mesh-to-grid edge, and a mesh-to-grid edge, the features can include the length of the edge and the vector difference between the 3D positions of the sender node of the edge and the receiver node of the edge calculated in the local coordinate system of the receiver. In some cases, the system can normalize the edge lengths, for example, based on the length of the longest edge in the graph.
[0074] The system processes the current graph data using a graph neural network to generate a first forecast output defining first future weather data, the first future weather data including, for each of the points on the latitude and longitude grid, predicted weather attributes at the point up to a first future time step after the current time step (step 206).
[0075] For example, the system can process the graph data through a set of graph neural network layers to generate an updated embedding for each of the grid nodes, and then use a decoder neural network to process the updated embedding of the grid nodes to generate a first predicted output. For example, the decoder neural network can be an MLP.
[0076] The system can use the graph neural network layer to process graph data in any of a variety of ways, and the graph neural network layer can have any suitable graph neural network layer architecture. For example, the layer can include any of a message passing neural network (MPNN) layer, a graph convolutional neural network (GCNN) layer, or a graph simulator network (GSN) layer.
[0077] In some implementations, the system processes graph data using a graph neural network layer in an encode-process-decode configuration. Figure 3 and Figure 4 Example techniques for generating updated embeddings of grid nodes in an encode-process-decode configuration are described in more detail.
[0078] Typically, the first prediction output specifies a respective predicted value for each of the weather-related attributes included in the current weather data.
[0079] Thus, the weather properties specified in the first forecast output may include properties of the surface at the point, properties of the atmosphere above the surface at the point, or both.
[0080] For example, surface properties may include any of temperature, wind speed, wind direction, air pressure, precipitation levels, and the like.
[0081] For each vertical level in a plurality of vertical levels, where each level is a different pressure level above the point, the atmospheric properties may include any of humidity, temperature, wind speed, wind direction, geopotential, vertical wind speed, and the like.
[0082] For example, the system may predict the five surface properties shown in Table 1, and for each of the atmospheric properties shown in Table 1, may predict a corresponding value of the property for each of the 37 pressure levels shown in Table 1.
[0083] In some implementations, the first forecast output directly specifies the value of the forecasted weather attribute for each of the points on the grid.
[0084] In some other implementations, the first prediction output includes a predicted delta of the weather attribute between the current time point and the first future time point. Thus, for a given attribute of a given grid node, the system can generate a predicted attribute at the first future time point from the attribute at the current time point and the predicted delta.
[0085] As a specific example, the predicted difference for a weather attribute may be the predicted difference (ie, the difference) between (i) the normalized value of the attribute at the current point in time and (ii) the normalized value of the attribute at a first future point in time.
[0086] In this example, to generate first future weather data from current weather data and a first forecast output, the system can, for each point and for each of the one or more weather attributes, denormalize the forecast difference and apply the denormalized forecast difference (difference value) to the value of the attribute at the current time point, e.g., adding the denormalized forecast difference to the value of the attribute at the current time point or subtracting the denormalized forecast difference from the value of the attribute at the current time point. For example, the forecast difference can be denormalized using the variance and mean that have been used to normalize the corresponding output value by scaling using the variance (e.g., multiplying by the corresponding standard deviation) and then adding the mean.
[0087] Figure 3 is a flow chart of an example process 300 for processing graph data using a graph neural network. For convenience, process 300 will be described as being performed by a system of one or more computers located in one or more locations. For example, a properly programmed forecasting system (e.g., Figure 1 The forecasting system 100) can perform process 300.
[0088] exist Figure 3 In the example, the system uses an encode-process-decode configuration to perform graph neural network processing.
[0089] The system processes the respective embeddings of each of the nodes and edges in a bipartite subgraph of a graph comprising grid nodes, grid nodes, and grid-to-grid edges using a grid-to-grid graph neural network to update the respective embeddings of at least the grid nodes (step 302). The bipartite subgraph comprises nodes that can be partitioned into two disjoint (non-overlapping) sets, in this example, grid nodes and grid nodes, where each edge (in this example, a grid-to-grid edge) connects respective nodes belonging to a different one of the disjoint sets. Typically, the grid-to-grid graph neural network comprises a plurality of graph neural network layers, e.g., having any suitable architecture as described above. In some cases, the graph neural network layer is configured to update only the embeddings of the grid nodes, while in other cases, the graph neural network layer also updates the embeddings of one or more of the grid nodes, the grid-to-grid edges, or both.
[0090] Therefore, the grid-to-grid graph neural network acts as an “encoder” that encodes information from grid nodes onto grid nodes in the multi-grid representation.
[0091] After updating the respective embeddings of at least the mesh nodes and mesh-to-mesh edges, the system processes the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the mesh nodes.
[0092] For example, the system can use a grid graph neural network to process the respective embeddings of each of the grid nodes and the grid edges to update the respective embeddings of at least each of the grid nodes (step 304). Typically, the grid graph neural network includes a plurality of graph neural network layers, for example, having any suitable architecture as described above. In some cases, the graph neural network layers are configured to update only the embeddings of the grid nodes, while in other cases, the graph neural network layers also update the embeddings of the grid edges.
[0093] Therefore, the system uses a grid graph neural network to propagate information across grids at multiple scales. Specifically, the system can use coarser grid edges to propagate long-range dependencies and finer grid edges to represent local interactions. In other words, the grid graph neural network acts as a processor to transmit information across multiple grids.
[0094] After updating the embeddings of the grid nodes, the system processes the corresponding embeddings of each of the nodes and edges in the bipartite subgraph of the graph including the grid nodes, the grid nodes, and the grid-to-grid edges using a grid-to-grid graph neural network to update the corresponding embedding of each of the grid nodes (step 306). Typically, the grid-to-grid graph neural network includes a plurality of graph neural network layers, for example, having any suitable architecture as described above. In some cases, the graph neural network layer is configured to update only the embeddings of the grid nodes, while in other cases, the graph neural network layer also updates the embeddings of one or more of the grid nodes, the grid-to-grid edges, or both.
[0095] Therefore, the grid-to-grid graph neural network acts as a “decoder” that decodes information from grid nodes to grid nodes.
[0096] Figure 4 An example of an encode-process-decode configuration is shown.
[0097] like Figure 4 As shown, the system 100 uses a grid-to-grid neural network to encode 410 information from grid nodes onto grid nodes via grid-to-grid edges. For example, Figure 4 It is shown that information from a set of mesh nodes connected to a particular mesh node through corresponding mesh-to-mesh edges is propagated into the particular mesh node by means of message passing across the corresponding mesh-to-mesh edges.
[0098] The system 100 then processes 420 the information that has been encoded in the lattice nodes by performing multi-lattice message passing 450 using the lattice graph neural network.
[0099] Specifically, in Figure 4 In the example of , the hierarchy of the grid includes seven levels M0 to M6, where M0 is the coarsest level and M6 is the finest level. As shown in Figure 6, by performing multi-grid message passing, the system can simultaneously transmit information across long distances through the coarsest level and locally across the finest level. Therefore, the edges between the grid nodes at the coarsest level reflect long-term dependencies, and the edges between the grid nodes at the finest level represent local interactions. The hierarchy of the grid can be constructed by, for example, iteratively dividing a regular icosahedron (12 nodes and 20 faces) 6 times to obtain a hierarchy of icosahedral grids with a total of 40,962 nodes and 81,920 faces at the finest level.
[0100] The system 100 then decodes 430 the processed information from the grid nodes into the grid nodes using the grid-to-grid neural network with the aid of the grid-to-grid edges. For example, Figure 4 It is shown that information from a set of mesh nodes connected to a particular mesh node through respective mesh-to-mesh edges is propagated into the particular mesh node by means of message passing across the respective mesh-to-mesh edges.
[0101] Figure 5 An example of autoregressive geodetic weather forecasting is shown.
[0102] Specifically, if Figure 5As shown, the system 100 receives actual weather data 502 at time point 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 for time point t+1. The system then uses the predicted weather 504 (and optionally the actual weather data 502 at time point t) as input to the graph neural network 110 to generate predicted weather data 504 for time point t+2. The system can continue to autoregressively feed the predictions from the graph neural network 110 as input to the graph neural network 110 across multiple different time points until predicted weather data 506 for time point t+T (where T is the number of autoregressive iterations) is generated.
[0103] For example, graph neural networks are described in arXiv:1806.01261 by Battaglia et al.
[0104] This specification uses the term "configured" in connection with system and computer program components. When a system of one or more computers is configured to perform a particular operation or action, it means that software, firmware, hardware, or a combination thereof is installed on the system that, when in operation, causes the system to perform the operation or action. When one or more computer programs are configured to perform a particular operation or action, it means that the one or more programs include instructions that, when executed by a data processing device, cause the device to perform the operation or action.
[0105] Embodiments of the subject matter and functional operations described in this specification may be implemented in digital electronic circuit systems, in tangibly embodied computer software or firmware, in computer hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more thereof. Embodiments of the subject matter described in this specification 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 a data processing device or for controlling the operation of a data processing device. The computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more thereof. Alternatively or in addition, the program instructions may be encoded on an artificially generated propagated signal (e.g., a machine-generated electrical, optical, or electromagnetic signal) that is generated to encode information for transmission to a suitable receiver device for execution by the data processing device.
[0106] The term "data processing equipment" refers to data processing hardware and encompasses all types of equipment, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. The equipment may also be or further include special-purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the equipment may optionally include code that creates an execution environment for a computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these.
[0107] A computer program (which may also be referred to or described as a program, software, software application, app, module, software module, script, or code) may be written in any form of programming language, including compiled or interpreted languages or declarative or procedural languages, and it may be deployed in any form, including as a standalone 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 may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a data communications network.
[0108] In this specification, the term "database" is used broadly to refer to any collection of data: the data need not be structured in any particular way, or at all, and may be stored on a storage device in one or more locations. Thus, for example, an index database may include multiple collections of data, each of which may be organized and accessed differently.
[0109] Similarly, in this specification, the term "engine" is used broadly to refer to a software-based system, subsystem, or process that is programmed to perform one or more specific functions. Typically, an engine will be implemented as one or more software modules or components installed on one or more computers in one or more locations. In some cases, one or more computers will be dedicated to a specific engine; in other cases, multiple engines may be installed and run on the same computer or computers.
[0110] The processes and logic flows described in this specification can be performed 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 can also be performed by special-purpose logic circuitry, such as an FPGA or ASIC, or by a combination of special-purpose logic circuitry and one or more programmed computers.
[0111] A computer suitable for executing a computer program can be based on a general-purpose or special-purpose microprocessor, or both, or any other type of central processing unit. Typically, the central processing unit will receive instructions and data from a read-only memory or random access memory, or both. The basic elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. The central processing unit and memory can be supplemented by or incorporated into a dedicated logic circuit system. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to receive data from one or more mass storage devices or transfer data to one or more mass storage devices or both. However, a computer need not have such devices. In addition, a computer can be embedded in another device, 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, such as a universal serial bus (USB) flash drive, to name a few.
[0112] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, by way of example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disks; and CD ROM and DVD-ROM disks.
[0113] To provide for user interaction, embodiments of the subject matter described in this specification can be implemented on a computer having a display device (e.g., 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 (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide for user interaction; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including sound, voice, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from 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. In addition, a computer can 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 receiving responsive messages from the user in response.
[0114] A data processing device used to implement a machine learning model may also include, for example, dedicated hardware accelerator units for processing general-purpose and computationally intensive parts of machine learning training or production (i.e., inference, workloads).
[0115] Machine learning models can be implemented and deployed using a machine learning framework (e.g., the TensorFlow framework).
[0116] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component (e.g., as 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 implementations of the subject matter described in this specification), or any combination of one or more such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (LANs) and wide area networks (WANs), such as the Internet.
[0117] A computing system may include a client and a server. The client and server are typically remote from each other and typically interact via a communication network. The relationship between the client and the server is generated by computer programs running on respective computers and having a client-server relationship with each other. In some embodiments, the server transmits data (e.g., an HTML page) to a user device, for example, for the purpose of displaying data to a user interacting with the device acting as a client and receiving user input from the user. Data generated at the user device, for example, the results of the user interaction, may be received from the device at the server.
[0118] Although this specification contains many specific implementation details, these details should not be interpreted as limiting the scope of any invention or the scope of what may be claimed, but rather as descriptions of features that may be unique to a particular embodiment of a particular invention. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, although features may be described above as functioning in certain combinations and even initially claimed as such, one or more features from the claimed combination may be deleted from the combination in some cases, and the claimed combination may involve a subcombination or a variant of a subcombination.
[0119] Similarly, although operations are depicted in the drawings and recited in the claims in a particular order, this should not be construed as requiring that such operations be performed in the particular order shown or in a sequential order, or that all illustrated operations be performed, to achieve the desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the above-described embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products.
[0120] Specific embodiments of the present subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired results. As an example, the processes depicted in the accompanying figures do not necessarily require the particular order shown or sequential order to achieve the desired results. In some cases, multitasking and parallel processing may be advantageous.
Claims
1. A method performed by one or more computers, the method comprising: obtaining current weather data for a current time step, wherein the current weather data is defined on a latitude and longitude grid on a surface of a subject and includes, for each of a plurality of points on the latitude and longitude grid, current weather attributes at the point as of the current time step; generating, using the current weather data, current map data representing a current state of a map of the surface, the map comprising: a plurality of nodes, the plurality of nodes comprising a plurality of grid nodes and a plurality of mesh nodes, the plurality of grid nodes each corresponding to one of the points on the latitude and longitude grid, the plurality of mesh nodes each corresponding to a node in a first grid placed around the surface at a first scale; and a plurality of edges, the plurality of edges comprising a plurality of mesh edges comprising (i) a respective first-scale mesh edge connecting each pair of mesh nodes that are connected in the first mesh placed around the surface at the first scale, and (ii) for each of one or more second scales 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 placed around the surface at the second scale; and The current graph data includes a respective embedding for each of the nodes and edges in the graph; and The current graph data is processed using a graph neural network to generate a first forecast output defining first future weather data, the first future weather data including, for each of the plurality of points on the latitude and longitude grid, a forecasted weather attribute at the point until a first future time step after the current time step.
2. The method according to claim 1, wherein The current weather data includes, for each of the plurality of points on the latitude and longitude grid, weather attributes at the point up to one or more previous time steps each prior to the current time step.
3. The method according to claim 1 or claim 2, further comprising: generating first future map data representing a first future state of the map of the surface from at least the first future weather data; as well as The first future graph data is processed using the graph neural network to generate a second forecast output defining second future weather data, the second future weather data including, for each of the plurality of points on the latitude and longitude grid, a predicted weather attribute at the point until a second future time step after the first future time step.
4. The method according to claim 3, wherein: The first future weather data includes, for each of the plurality of points on the latitude and longitude grid, (i) the current weather attribute at the point up to the current time step, and (ii) the predicted weather attribute at the point up to the first future time step.
5. A method according to any preceding claim, wherein: The first prediction output includes, for each point and for each of one or more of the weather attributes, a predicted difference in the weather attribute between the current point in time and the first future point in time.
6. A method according to any preceding claim, wherein: The plurality of edges includes a plurality of grid-to-mesh edges, wherein each grid-to-mesh edge of the plurality of grid-to-mesh edges is a unidirectional edge from a corresponding grid node to a corresponding grid node, and wherein a given grid node is connected to the given grid node via the grid-to-mesh edge only if a distance between the given grid node and the given grid node is less than a threshold distance.
7. The method according to claim 6, wherein: The threshold distance is based on a length of the edge in the first mesh at the first scale.
8. A method according to any preceding claim, wherein: The plurality of edges includes a plurality of mesh-to-grid edges, wherein each mesh-to-grid edge of the plurality of mesh-to-grid edges is a unidirectional edge from a corresponding mesh node to a corresponding mesh node, and wherein a given mesh node is connected to the given mesh node by the mesh-to-grid edge only if the given mesh node is adjacent to a face of the first mesh at the first scale that contains the given mesh node.
9. A method according to any preceding claim, wherein: Generating the current graph data includes: generating respective features for each of the nodes and edges in the graph using at least the current weather data; and The respective features of each of the nodes and edges in the graph are processed using a corresponding encoder neural network to generate the respective embeddings for each of the nodes and edges.
10. The method according to claim 9, wherein: Each type of node and edge has a different corresponding encoder neural network.
11. The method according to claim 9 or 10, wherein: The respective characteristics for each of the grid nodes are generated at least in part from the current weather attributes at the point, and wherein the respective characteristics for each of the grid nodes are generated at least in part based on the longitude and latitude of the grid node.
12. The method according to claim 11, wherein The respective feature for each of the grid nodes includes a respective normalized value for each of one or more of the current weather attributes at the point.
13. The method according to any one of claims 9 to 12, wherein: The respective feature for each of the edges is based on a respective position of each of two nodes connected by the edge.
14. A method according to any preceding claim when dependent on claim 6, wherein Processing the current graph data using a graph neural network to generate a first prediction output defining first future weather data includes: processing the respective embeddings of each of the nodes and edges in a bipartite subgraph of the graph comprising the grid nodes, the grid nodes, and the grid-to-grid edges using a grid-to-grid graph neural network to update the respective embeddings of at least the grid nodes; processing the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes after updating the respective embeddings of at least the grid nodes and the grid-to-grid edges; and The first prediction output is generated from the updated embeddings of the grid nodes.
15. The method according to claim 14, wherein Processing the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes includes: The respective embeddings of each of the mesh nodes and mesh edges are processed using a mesh graph neural network to update the respective embeddings of at least each of the mesh nodes.
16. A method according to claim 14 or claim 15 when dependent on claim 8, wherein Processing the respective embeddings of each of the nodes and edges in the graph to update the embeddings of the grid nodes includes: The respective embeddings of each of the nodes and edges in a bipartite subgraph of the graph comprising the grid nodes, the grid nodes, and the grid-to-grid edges are processed using a grid-to-grid graph neural network to update the respective embedding of each of the grid nodes.
17. The method according to any one of claims 14 to 16, wherein Generating the first predicted output includes: The updated embeddings of the grid nodes are processed 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 over the surface.
19. A method according to any preceding claim when dependent on claim 5, wherein The predicted difference of the weather attribute is a predicted difference between a normalized value of the attribute at the current point in time and a normalized value of the attribute at the first future point in time, and wherein the method further comprises generating the first future weather data from the current weather data and the first prediction output, comprising: For each point and for each weather attribute of the one or more weather attributes, the predicted difference is denormalized and the denormalized predicted difference is applied to the value of the attribute at the current point in time.
20. A method according to any preceding claim, wherein The first grid and the one or more second grids define a grid hierarchy of grids at different scales, and wherein, for each second grid, a respective different subset of the grid nodes corresponds to nodes from the second grid.
21. The method according to 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. A method according to any preceding claim, wherein: The time interval between each time step is between three and twelve hours.
23. The method according to claim 22, wherein The time interval is six hours.
24. A method according to any preceding claim, wherein: The graph neural network has been trained on training data, wherein the training data includes multiple target weather data sequences to minimize an objective function, which measures, for each time step in each target weather data sequence, (i) the error between the target weather data for the time step and the corresponding future weather data generated for the time step using the graph neural network, or (ii) the error between a normalized result of the target weather data for the time step and a normalized result of the corresponding future weather data generated for the time step using the graph neural network.
25. The method according to claim 24, wherein The objective function is an autoregressive training objective function, in which, for each time step in one or more time steps in the target weather data sequence, the corresponding future weather data for the time step is generated by providing graph data generated using future weather data as input to the graph neural network, wherein the future weather data is generated at one or more previous time steps using the graph neural network.
26. The method according to claim 25, wherein During training, the graph neural network is used to autoregressively generate corresponding future weather data at each of a plurality of time steps, starting from each time step in at least a subset of the time steps in each training sequence.
27. The 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. The method according to any one of claims 24 to 27, wherein The neural network has been trained using a curriculum training schedule that varies the number of autoregressive steps performed.
29. The method of any preceding claim, further comprising generating an alert whenever a given predicted weather attribute meets a specified threshold.
30. The method according to any one of claims 1 to 28, wherein The predicted weather output represents predicted weather at a real-world location of the renewable energy generation facility, the method further comprising: (i) controlling the renewable energy generation facility in response to predicted weather at the real-world location; or (ii) sending a signal to a consumer of electricity on a grid to which the renewable energy generation facility is connected, responsive to the predicted power output from the renewable energy generation facility based on the predicted weather at the real-world location.
31. The method according to any one of claims 1 to 28, wherein The predicted weather output represents predicted weather at a real-world location, the method further comprising outputting a signal for controlling a flight mode or a marine vehicle route of one or more air or marine vehicles in response to the predicted weather at the real-world location.
32. The method according to any one of claims 1 to 28, wherein The predicted weather output represents 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. A system comprising: one or more computers; and One or more storage devices, the one or more storage devices being communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform the operations of the corresponding method according to 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 operations of the respective method of any one of claims 1 to 32.