Water immersion simulation program, water immersion simulation method, and information processing device

The flood simulation program improves prediction accuracy by generating a digital twin and using data assimilation techniques to correct flood simulation results, enhancing reliability and accuracy of flood extent predictions.

WO2026004080A1PCT designated stage Publication Date: 2026-01-02FUJITSU LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/023453
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-28
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

Existing flood simulations often have low prediction accuracy at the boundary between flooded and non-flooded areas, which reduces the reliability of the simulation results.

Method used

A flood simulation program that generates a digital twin of real space, performs data assimilation using observation data and probability distributions to correct prediction results, and displays the predicted changes in flooding over time, incorporating ensemble Kalman filter methods to improve accuracy.

Benefits of technology

Enhances the reliability of flood simulation results by reducing the risk of inaccuracies at boundaries and providing more accurate predictions of flood extent and water levels.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024023453_02012026_PF_FP_ABST
    Figure JP2024023453_02012026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention improves reliability of a result of a water immersion simulation. In this invention, a computer: generates a digital twin reproducing the shape of a real space in a virtual space; in the digital twin, uses observation data representing a water immersion observed in the real space and a probability distribution of prediction results having a different water immersion area to execute data assimilation processing for correcting the prediction results; and displays result data generated from the predicted temporal change in the water immersion on a display screen.
Need to check novelty before this filing date? Find Prior Art

Description

Flood simulation program, flood simulation method, and information processing device

[0001] The present invention relates to a flood simulation program, a flood simulation method, and an information processing device.

[0002] One type of computer simulation is a flood simulation. A flood simulation simulates land inundation due to abnormal natural phenomena such as floods, storm surges, and tsunamis, and predicts the flooding conditions of a certain area. A flood simulation can support the development of disaster prevention plans to reduce damage from natural disasters. A flood simulation can also support the development of recovery plans to quickly recover from natural disasters.

[0003] For example, there is a technology that generates a flood hazard map in real time by incorporating observation data showing current flood conditions into the results of a flood simulation. There is also a technology that uses a convolutional neural network to predict future water levels from past water levels and rainfall. There is also a technology that uses a terrain model containing multiple cells to calculate the water level of each cell under a specified weather scenario and generate a flood risk map showing the flood risk of each cell. There is also a technology that trains multiple water level prediction models using different training data and then uses validation data to select the water level prediction model with the smallest prediction error for river peak water levels.

[0004] International Publication No. 2018 / 116958 Japanese Patent Application Laid-Open No. 2019-94640 US Patent Application Publication No. 2019 / 0318440 Japanese Patent Application Laid-Open No. 2023-77149

[0005] However, in a simple flood simulation, the prediction accuracy of the boundary between the flooded area and the non-flooded area may be low, and the prediction accuracy of the boundary may reduce the reliability of the results of the flood simulation. Therefore, in one aspect, the present invention aims to improve the reliability of the results of the flood simulation.

[0006] In one aspect, a flood simulation program is provided that causes a computer to execute the following processes: generate a digital twin that reproduces the shape of real space in a virtual space; perform a data assimilation process in the digital twin to correct the prediction results using observation data indicating flooding observed in real space and the probability distribution of prediction results with different flooded areas; use the results of the executed data assimilation process to execute a simulation to predict the change in flooding over time; and display the result data generated from the predicted change in flooding over time on a display screen.

[0007] In one aspect, the reliability of the results of the flood simulation is improved. The above and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings illustrating preferred embodiments of the present invention.

[0008] 1 is a diagram for explaining an information processing device according to a first embodiment; FIG. 2 is a diagram illustrating an example of hardware of an information processing device according to a second embodiment; FIG. 3 is a block diagram illustrating an example of functions of an information processing device according to a second embodiment; FIG. 4 is a diagram illustrating an example of an observation data table; FIG. 5 is a diagram illustrating an example of correcting samples from multiple flood simulators; FIG. 6 is a diagram illustrating an example of prediction errors at the boundary between a flooded area and a non-flooded area; FIG. 7 is a diagram illustrating an example of setting a spatial weighting function; FIG. 8 is a diagram illustrating an example of topographical data; FIG. 9 is a diagram illustrating an example of changes in water inflow over time; FIG. 10 is a diagram illustrating an example of predicted data from multiple flood simulators; FIG. 11 is a graph illustrating an example of predicted changes in water level over time; FIG. 12 is a diagram illustrating an example of visualized data showing a flooding situation; FIG. 13 is a flowchart illustrating an example of a procedure for flood simulation; FIG. 14 is a diagram illustrating a first example of displaying the boundary between a flooded area and a non-flooded area; FIG. 15 is a flowchart illustrating an example of a visualization procedure; FIG. 16 is a flowchart illustrating an example of a visualization procedure (continued 1); FIG. 17 is a flowchart illustrating an example of a visualization procedure (continued 2); FIG. 18 is a flowchart illustrating an example of a visualization procedure (continued 3); FIG. 19 is a flowchart illustrating an example of a visualization procedure (continued 4); and FIG. 19 is a flowchart illustrating an example of a visualization procedure (continued 5). 1 is a flowchart showing an example of a visualization procedure (continued 6); 2 is a flowchart showing an example of a visualization procedure (continued 7); 3 is a flowchart showing an example of a visualization procedure (continued 8); 4 is a flowchart showing an example of a visualization procedure (continued 9); 5 is a flowchart showing an example of a visualization procedure (continued 10); 6 is a flowchart showing an example of a visualization procedure (continued 11); 7 is a flowchart showing an example of a visualization procedure (continued 12); and 8 is a flowchart showing an example of a visualization procedure (continued 13).

[0009] The present embodiment will be described below with reference to the drawings. (a) First Embodiment FIG. 1 is a diagram illustrating an information processing device according to a first embodiment. The information processing device 10 according to the first embodiment executes a flood simulation. The flood simulation simulates land flooding due to an abnormal natural phenomenon such as a flood, a high tide, or a tsunami. The information processing device 10 may be a client device or a server device. The information processing device 10 may also be called a computer or a flood simulation device. The flood simulation according to the first embodiment is a technology for improving computer functions.

[0010] The information processing device 10 includes a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or may be a non-volatile storage such as a hard disk drive (HDD) or a flash memory.

[0011] The processing unit 12 is, for example, a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). However, the processing unit 12 may also include an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes a program stored in a memory such as a RAM. A set of processors may be called a multiprocessor or simply a "processor." Multiple processing steps described below may be performed by different processors.

[0012] The storage unit 11 stores the digital twin 13 and the observation data 14. The digital twin 13 is a reproduction of the terrain of real space in a virtual space. The digital twin 13 may include a three-dimensional terrain model formed in a three-dimensional virtual space. A position in the digital twin 13 may be identified by three-dimensional coordinates corresponding to longitude, latitude, and altitude.

[0013] The information processing device 10 generates a digital twin 13 in which the three-dimensional shape in real space and the three-dimensional shape in virtual space are time-synchronized. For example, the information processing device 10 generates a digital twin 13 in which the real space and the virtual space are time-synchronized and in which changes in the three-dimensional shape in real space are reflected in the three-dimensional shape in virtual space.

[0014] When there is a change in the topography of the real space, the information processing device 10 updates the three-dimensional shape in the virtual space by reproducing the topography of the real space in the virtual space. Furthermore, when a structure is constructed in the real space, the information processing device 10 updates the three-dimensional shape in the virtual space by reproducing the structure in the real space in the virtual space.

[0015] The digital twin 13 may be generated from LIDAR (Light Detection and Ranging) measurement data. LIDAR is a measurement method that measures the three-dimensional coordinates of each point by sampling the ground surface using a laser beam. The observation data 14 indicates flooding observed in real space. The observation data 14 may include water levels measured in the past at one or more observation points, and may also include changes in water levels over time.

[0016] For the flood simulation, the processing unit 12 generates a digital twin 13 corresponding to the area to be simulated. The processing unit 12 uses the digital twin 13 to execute a simulation that predicts changes in flooding over time. The simulation may be a time series simulation that predicts the flood situation at each of a plurality of times along a time axis. The simulation may also be an iterative calculation that repeatedly predicts the flood situation at the next time based on the flood situation at a certain time in accordance with fundamental equations that represent the laws of physics.

[0017] The flooding status may indicate a flooded area or the water level at each of multiple points. For example, a flooded area is a set of points where the water level exceeds a threshold. A non-flooded area is a set of points where the water level does not exceed a threshold. The water level threshold may be 0. The fundamental equation may be the shallow water equation. The shallow water equation is an equation that describes, in accordance with fluid mechanics, the waves that form on the surface of a water flow with a relatively shallow depth, and corresponds to an equation obtained by vertically integrating the Navier-Stokes equation.

[0018] Here, the processing unit 12 performs data assimilation processing to correct the flood situation prediction results by referring to the observation data 14. The data assimilation processing reduces the risk of calculating unrealistic prediction results by reflecting the observation data 14 in the prediction results during the simulation. For example, sequential data assimilation processing corrects the prediction results of the flood situation at a certain time using the observation data 14, and predicts the flood situation at the next time based on the corrected prediction results.

[0019] In the first embodiment, the processing unit 12 performs data assimilation processing using the observation data 14 and a probability distribution 15. The probability distribution 15 is a probability distribution of prediction results with different predicted flooded areas. The probability distribution 15 can also be said to represent the spatial distribution of the boundary between flooded and non-flooded areas. Multiple prediction results with different flooded areas may be called samples or ensemble members. Different prediction results are generated through multiple trials using different initial values ​​for the flood situation or different random numbers.

[0020] As an example, prediction results 15a, 15b, and 15c according to probability distribution 15 show different flooded areas. Prediction result 15a shows one prediction for the boundary between the flooded area and the non-flooded area. Prediction result 15b shows a different prediction boundary from prediction result 15a. The flooded area of ​​prediction result 15b is wider than prediction result 15a. Prediction result 15c shows a different prediction boundary from prediction results 15a and 15b. The flooded area of ​​prediction result 15c is even wider than prediction result 15b.

[0021] The data assimilation process of the first embodiment may use the ensemble Kalman filter method. The Kalman filter method starts from an initial state that follows a certain probability distribution and proceeds with a time series simulation. The Kalman filter method modifies the probability distribution of the intermediate state using observed data at an intermediate time and resumes the time series simulation using the modified probability distribution. The ensemble Kalman filter method approximates the probability distribution using an ensemble including multiple samples according to the Monte Carlo method.

[0022] For example, the processing unit 12 generates multiple samples that indicate the predicted results of the flood situation at a certain time, and performs data assimilation processing using the prior distribution that the samples follow and the observation data 14. The processing unit 12 restarts the simulation from the posterior distribution that the corrected samples follow, and generates multiple samples that indicate the predicted results of the flood situation at the next time. By repeating the above processing, the processing unit 12 predicts the change in the flood situation over time from the start time to the end time.

[0023] The processing unit 12 displays the result data generated from the prediction of the change in flooding over time on the display screen. The result data may indicate the flooded area at a specific time, or may indicate the predicted water level at each of multiple locations at a specific time. The result data may also indicate the union of the flooded areas at multiple times, i.e., the set of locations that will be flooded at at least one time. The result data may also be generated using a representative prediction result, such as the average, mode, or median, of multiple prediction results for the same time.

[0024] The result data may include image data generated by mapping the predicted flooded area on the three-dimensional terrain model represented by the digital twin 13. The processing unit 12 may output a display screen to a display device connected to the information processing device 10 or another information processing device. The processing unit 12 may also store the result data in non-volatile storage.

[0025] As described above, the information processing device 10 of the first embodiment generates a digital twin 13 that reproduces the shape of real space in a virtual space. In the digital twin 13, the information processing device 10 executes a data assimilation process to correct the prediction results using observation data 14 indicating flooding observed in real space and a probability distribution 15 of prediction results with different flooded areas. The processing unit 12 executes a simulation to predict changes in flooding over time using the results of the executed data assimilation process. The processing unit 12 displays result data generated from the predicted changes in flooding over time on the display screen. This improves the reliability of the results of the flood simulation. In particular, the risk of a decrease in the reliability of the results due to the prediction accuracy of the boundary between flooded and non-flooded areas is reduced.

[0026] In the data assimilation process, the information processing device 10 may evaluate the error between the observed water level indicated by the observation data 14 and the predicted water level indicated by the prediction result using a weighting function in which the weight is smaller for points closer to the boundary of the flooded area indicated by the prediction result. This improves the accuracy of the data assimilation process even when the prediction accuracy of the boundary between the flooded area and the non-flooded area is low.

[0027] Furthermore, in the data assimilation process, the information processing device 10 may use prediction results from multiple flood simulators. This improves the accuracy of the data assimilation process compared to using only a single flood simulator. Furthermore, in the data assimilation process, the information processing device 10 may determine a common probability distribution from the prediction results from multiple flood simulators and correct the prediction results of each of the multiple flood simulators using the observation data 14 and the common probability distribution. This improves the accuracy of the data assimilation process by determining a more accurate probability distribution compared to relying on the prediction result from a single flood simulator.

[0028] Furthermore, when displaying the resultant data, the information processing device 10 may detect boundary cells, which differ in whether they are flooded or not from adjacent cells, from among the multiple cells obtained by dividing the terrain, and display boundary lines with smoothed edges of the boundary cells. This prevents the boundary lines from appearing unnaturally notched, improving the ease of understanding and reliability of the flooded areas. Furthermore, when displaying the resultant data, the information processing device 10 may calculate boundary lines by dividing triangular boundary cells. This results in smooth boundary lines being displayed.

[0029] (b) Second Embodiment FIG. 2 is a diagram illustrating an example of hardware of an information processing device according to a second embodiment. The information processing device 100 according to the second embodiment executes a flood simulation. The information processing device 100 may be a client device or a server device. The information processing device 100 corresponds to the information processing device 10 according to the first embodiment. The flood simulation according to the second embodiment is a technology for improving computer functions.

[0030] The information processing device 100 includes a CPU 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a medium reader 106, and a communication interface 107, all connected via a bus. The CPU 101 corresponds to the processing unit 12 in the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 in the first embodiment.

[0031] The CPU 101 is a processor that executes program instructions. The CPU 101 loads programs and data stored in the HDD 103 into the RAM 102 and executes the programs. The information processing apparatus 100 may have multiple processors.

[0032] The RAM 102 is a volatile semiconductor memory that temporarily stores programs and data. The programs are executed by the CPU 101, and the data is used for calculations by the CPU 101. The information processing device 100 may also include a type of volatile memory other than RAM.

[0033] The HDD 103 is a non-volatile storage device that stores software programs and data. The software includes an operating system (OS), middleware, and application software. The information processing device 100 may also include other types of non-volatile storage, such as a solid-state drive (SSD).

[0034] The GPU 104 performs image processing in cooperation with the CPU 101 and displays images on a display device 111 connected to the information processing device 100. The display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector.

[0035] The GPU 104 may be used as a general purpose computing on graphics processing unit (GPGPU). The GPU 104 may execute a program in response to an instruction from the CPU 101. The information processing apparatus 100 may include a volatile semiconductor memory other than the RAM 102 as a GPU memory.

[0036] The input interface 105 receives an input signal from an input device 112 connected to the information processing apparatus 100. The input device 112 is, for example, a mouse, a touch panel, or a keyboard. A plurality of input devices may be connected to the information processing apparatus 100.

[0037] The medium reader 106 is a reading device that reads programs and data from the recording medium 113. The recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. Magnetic disks include flexible disks (FDs) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs). The medium reader 106 copies the programs and data read from the recording medium 113 to the RAM 102 or the HDD 103.

[0038] The read program may be executed by the CPU 101. The recording medium 113 may be a portable recording medium. The recording medium 113 may be used to distribute programs and data. The recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.

[0039] The communication interface 107 communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface that connects to a router or a switch via a wired cable, or may be a wireless communication interface that connects to a base station or an access point via a wireless link.

[0040] In the second embodiment, the information processing device 100 uses a digital twin representing the topography of a target area to perform a flood simulation that predicts changes in water levels over time at multiple locations under a specified water inflow rate. The water level prediction is performed along the time axis from the start time to the end time. For example, the shallow water equation is used as the fundamental equation representing the water flow.

[0041] The information processing device 100 performs data assimilation to correct the predicted water level at an intermediate time during the flood simulation, using observation data indicating the observed water levels observed in the past at multiple observation points. In the second embodiment, the information processing device 100 uses the ensemble Kalman filter method as the data assimilation algorithm. However, the information processing device 100 may use other data assimilation algorithms.

[0042] Flood simulation is also described in the following non-patent document: Xijun Lai, Qiuhua Liang, Herve Yesou, and S. Daillet, "Variational Assimilation of Remotely Sensed Flood Extents Using a 2-D Flood Model," Hydrology and Earth System Sciences, Volume 18, Issue 11, pages 4325-4339, November 2014.

[0043] Keighobad Jafarzadegan, Peyman Abbaszadeh, and Hamid Moradkhani, "Sequential Data Assimilation for Real-time Probabilistic Flood Inundation Mapping", Hydrology and Earth System Sciences, Volume 25, Issue 9, pages 4995-5011, September 2021. David F. Munoz, Peyman Abbaszadeh, Hamed Moftakhari, and Hamid Moradkhani, "Accounting for Uncertainties in Compound Flood Hazard Assessment: the Value of Data Assimilation", Coastal Engineering, Volume 171, Article 104057, January 2022.

[0044] The information processing device 100 sets an inflow point where water flows in and sets the time change of the expected value of the inflow amount. The expected value of the inflow amount may be specified by the user as a simulation condition. The actual inflow amount may be determined by adding a random number that follows a normal distribution to the expected value.

[0045] The information processing device 100 also sets a variable representing the water level for each of a plurality of locations and defines a water level vector that lists the water levels at the plurality of locations. The information processing device 100 initializes the water level vector by setting an initial water level value for each location. The initial water level value may be specified by the user as a simulation condition. The water levels at at least some of the locations may be determined by adding a random number that follows a normal distribution to an expected value.

[0046] The information processing device 100 uses random numbers to generate multiple samples, each of which indicates the inflow volume and water level vector at the start time. The samples are sometimes called ensemble members, and a collection of samples is sometimes called an ensemble. The ensemble approximates the probability distribution of the water level vector. The number of samples is determined from the perspective of prediction accuracy based on the concept of the Monte Carlo method. The number of samples may be specified by the user. For each sample at the start time, the information processing device 100 simulates the water flow for a certain period of time according to the basic equations, and generates a sample indicating the water level vector for the next time.

[0047] The information processing device 100 determines a prior distribution as a probability distribution of water level vectors from the ensemble at a certain time. The information processing device 100 calculates the mean vector of the prior distribution and calculates the variance-covariance matrix of the prior distribution. The information processing device 100 uses this variance-covariance matrix to calculate a Kalman gain matrix. The Kalman gain controls which of the predicted water level and the observed water level is given more importance. The greater the variance of the predicted water level, the greater the uncertainty of the prediction, and therefore the more importance is placed on the observed water level, resulting in a larger Kalman gain.

[0048] The information processing device 100 also calculates an observation vector that lists observed water levels at multiple observation points and a prediction vector that lists predicted water levels at multiple observation points. If the sample includes the predicted water level at the observation point, the information processing device 100 may extract the predicted water level at the observation point from the sample. If the sample does not include the predicted water level at the observation point, the information processing device 100 may interpolate the predicted water level at the observation point from the predicted water levels around the observation point. The information processing device 100 calculates an error vector between the observation vector and the prediction vector.

[0049] The information processing device 100 calculates a corrected sample by adding the product of the error vector and the Kalman gain matrix to the water level vector. In this way, one sample is converted into one corrected sample. The information processing device 100 forms a new ensemble so as to approximate the posterior distribution to which the corrected sample follows.

[0050] The samples included in the new ensemble may be the samples corrected by the above method. Alternatively, the samples included in the new ensemble may be adjusted by adding random numbers to the corrected samples. Alternatively, the information processing device 100 may calculate a mean vector and a variance-covariance matrix of the posterior distribution from the set of corrected samples, and may randomly extract multiple samples from this posterior distribution.

[0051] For each sample included in the new ensemble, the information processing device 100 simulates the water flow for a certain period of time according to the fundamental equations and generates a sample indicating the water level vector for the next time. By repeating the above process, the information processing device 100 predicts the water level at each time from the start time to the end time. The data assimilation period may be the same as the time step of the flood simulation or may be longer than the time step. For example, the time step may be 1 second, 10 seconds, 1 minute, etc., and the data assimilation period may be 1 minute, 10 minutes, etc.

[0052] When performing a flood simulation using a digital twin, the information processing device 100 executes the following process, as an example. The digital twin represents the shape of the ground surface and buildings using a collection of nodes. The information processing device 100 extracts nodes that represent multiple points in real space by sampling from the nodes on the ground surface included in the digital twin. The information processing device 100 also identifies the elevation of the extracted node and the elevation of surrounding nodes from the digital twin, and calculates the elevation gradient at the extracted node.

[0053] The information processing device 100 assigns variables indicating water depth and flow velocity to the extracted nodes. The fundamental equations that describe the physical behavior of water flow include variables such as water depth and flow velocity, and constants such as gradient and gravitational acceleration. By solving these fundamental equations, the information processing device 100 updates the water depth and flow velocity at each node after the water has moved for a certain period of time. The information processing device 100 maps the calculated water depth to the nodes of the digital twin. The information processing device 100 visualizes the flooded area by connecting nodes on the digital twin where the water depth exceeds a threshold value with a line.

[0054] 3 is a block diagram showing an example of functions of an information processing device according to the second embodiment. The information processing device 100 includes a model storage unit 121, an observation data storage unit 122, a prediction data storage unit 123, a simulation control unit 124, a time evolution unit 125, a data assimilation unit 126, and a visualization unit 127. The model storage unit 121, the observation data storage unit 122, and the prediction data storage unit 123 are implemented using, for example, the RAM 102 or the HDD 103. The simulation control unit 124, the time evolution unit 125, the data assimilation unit 126, and the visualization unit 127 are implemented using, for example, the CPU 101 and a program.

[0055] The model storage unit 121 stores terrain data that indicates the terrain of the target area. The terrain data is used to generate a digital twin that reproduces the terrain of real space in a virtual space. The digital twin is generated by expanding the terrain data in RAM 102. The digital twin represents a three-dimensional terrain model. The terrain data includes a large number of points, each identified by three-dimensional coordinates corresponding to latitude, longitude, and altitude. By connecting these points, the ground surface, natural fixtures such as standing trees and rocks, and structures such as buildings and roads are represented.

[0056] The model storage unit 121 also stores a flood simulator. The flood simulator is software that implements a simulation algorithm such as the shallow water equation. The model storage unit 121 may store control parameter values ​​for controlling the behavior of the flood simulator. The control parameter values ​​may be specified by the user.

[0057] The observation data storage unit 122 stores observation data. The observation data includes observed water levels measured at multiple observation points. The observation data includes observed water levels measured at different times at the same observation point, and indicates changes in the observed water levels over time. The observed water levels are measured when flooding occurs due to an abnormal natural phenomenon such as a flood, a high tide, or a tsunami.

[0058] The prediction data storage unit 123 stores prediction data that indicates the flood situation predicted by the flood simulation. The prediction data includes predicted water levels at each of multiple locations included in the target area. The prediction data includes predicted water levels for each of multiple times from a start time to an end time for the same location, and indicates changes in predicted water levels over time.

[0059] The simulation control unit 124 controls the flood simulation. The simulation control unit 124 loads topographical data from the model storage unit 121 to generate a digital twin. The simulation control unit 124 also starts the flood simulator stored in the model storage unit 121 and performs initial settings such as substituting values ​​for control parameters. The simulation control unit 124 manages the progression of time in the simulation. The simulation control unit 124 generates prediction data and stores it in the prediction data storage unit 123.

[0060] The time evolution unit 125 performs time evolution by advancing the time in the simulation using a flood simulator. The time evolution unit 125 acquires multiple samples showing the flood situation at a certain time, and predicts the flood situation after a certain time for each of the multiple samples using the flood simulator. The time evolution unit 125 repeats generating multiple samples showing the flood situation at the next time until the data assimilation time arrives.

[0061] The data assimilation unit 126 performs data assimilation using the observation data stored in the observation data storage unit 122. When the time for data assimilation arrives, the data assimilation unit 126 obtains an ensemble from the time evolution unit 125. The data assimilation unit 126 modifies the multiple samples included in the ensemble using the observed water level at that time included in the observation data using the ensemble Kalman filter method. The data assimilation unit 126 forms a new ensemble according to the posterior distribution represented by the multiple modified samples and outputs the new ensemble to the time evolution unit 125.

[0062] The visualization unit 127 visualizes the prediction data stored in the prediction data storage unit 123 and displays the image data on the display device 111. The visualization unit 127 detects flooded points where the predicted water level exceeds a threshold and determines a flooded area, which is a collection of these flooded points. The visualization unit 127 generates image data that highlights the flooded area on the digital twin. The visualization unit 127 may also display the flooding conditions at multiple times in chronological order. The visualization unit 127 may also visualize an area that is predicted to be flooded at at least one time by highlighting the union of the flooded areas at multiple times on the digital twin.

[0063] The visualization unit 127 may transmit the prediction data to another information processing device. The visualization unit 127 may also store the generated image data in a non-volatile storage such as the HDD 103, or may transmit the generated image data to another information processing device.

[0064] 4 is a diagram showing an example of an observation data table. The observation data table 128 is stored in the observation data storage unit 122. The observation data table 128 stores multiple records. Each record includes a time and the observed water level at each of multiple observation points at that time.

[0065] Next, improvements to flood simulations will be described. In flood simulations using a single flood simulator, even if data assimilation is performed, there are limits to prediction accuracy due to the influence of the algorithm used, and the prediction results may deviate significantly from the actual physical phenomena. Therefore, in the second embodiment, the information processing device 100 uses multiple flood simulators in combination. The calculation algorithms differ between the multiple flood simulators. The fluid equations used to describe flowing water may differ between the multiple flood simulators.

[0066] In principle, the information processing device 100 executes flood simulations using multiple flood simulators in parallel and independently of each other. However, the information processing device 100 coordinates the multiple flood simulators during data assimilation. The information processing device 100 forms an aggregated ensemble by combining the ensembles of the multiple flood simulators. From the aggregated ensemble, the information processing device 100 determines a prior distribution common to the multiple flood simulators, and then determines a posterior distribution common to the multiple flood simulators using the ensemble Kalman filter method.

[0067] The information processing device 100 then forms an ensemble for each of the multiple flood simulators from the common posterior distribution and restarts the time evolution of each flood simulator. This allows the information processing device 100 to average out differences in prediction results between the multiple flood simulators and reduce the risk of the prediction results deviating significantly from actual physical phenomena.

[0068] Fig. 5 is a diagram showing an example of correcting samples from multiple flood simulators. Probability distribution 131 is the probability distribution of observed data that takes into account noise contained in the observed water level. Probability distribution 132 is a prior distribution that is approximated by all samples from multiple flood simulators. Probability distribution 133 is a posterior distribution that is approximated by all corrected samples from multiple flood simulators. In the example of Fig. 5, three flood simulators are used.

[0069] Regarding the prior distribution, the first flood simulator has many samples with low predicted water levels. The second flood simulator has many samples with high predicted water levels. The third flood simulator has many samples with medium predicted water levels. When calculating the Kalman gain matrix, the information processing device 100 uses all the samples from the three flood simulators to calculate the mean vector and variance-covariance matrix of the probability distribution 132.

[0070] The information processing device 100 converts samples of the prior distribution into samples of the posterior distribution using a Kalman gain matrix common to the three flood simulators. At this time, samples of the posterior distribution corresponding to samples of the prior distribution generated by a certain flood simulator are reused in that flood simulator. Therefore, the number of samples included in the ensemble does not change before and after data assimilation in each of the three flood simulators. Note that the number of samples may be the same or different among the multiple flood simulators.

[0071] Next, we will explain another improvement to flood simulation. Flood simulation using the ensemble Kalman filter method evaluates the prediction error between observed and predicted water levels and uses this prediction error to correct samples. However, flood simulation can sometimes have difficulty predicting the boundary between flooded and non-flooded areas with high accuracy.

[0072] Therefore, due to the uncertainty of the predicted water level near the boundary, the prediction error of the sample may not be evaluated appropriately, and the sample correction may become unstable. Therefore, in the second embodiment, the information processing device 100 executes the ensemble Kalman filter method using weighted prediction errors that prioritize observation points far from the boundary.

[0073] FIG. 6 is a diagram showing an example of prediction error at the boundary between a flooded area and a non-flooded area. One sample shows a flooded area 141 and a non-flooded area 142. The flooded area 141 is an area where the predicted water level exceeds a threshold. The non-flooded area 142 is an area where the predicted water level does not exceed a threshold. A curve 143 shows the predicted water level on a straight line passing through the flooded area 141 and the non-flooded area 142. A curve 144 shows an example of an observed water level on the straight line. A curve 145 shows an example of an observed water level different from that of the curve 144.

[0074] The water level varies greatly near the boundary between the flooded area 141 and the non-flooded area 142. When the observed water level is as shown by curve 144, the difference between the predicted and observed water levels is small at points far from the boundary, while the difference between the predicted and observed water levels is large at points near the boundary. Since prediction accuracy at the boundary is generally not high, this sample is close to the observed data. However, due to the water level difference near the boundary, the prediction error of this sample may be evaluated as large.

[0075] If the observed water level is as shown in curve 145, the difference between the predicted and observed water levels is large at points far from the boundary, while the difference between the predicted and observed water levels is small at points near the boundary. Because the predicted water level at points far from the boundary deviates significantly from the observed water level, this sample is not close to the observed data. However, due to the water level difference near the boundary, the prediction error of this sample may be evaluated as not large. In this way, if points close to the boundary and points far from the boundary are treated equally, the prediction error of the sample may not be evaluated appropriately.

[0076] 7 is a diagram showing an example of setting a spatial weighting function. In order to optimize the evaluation of the prediction error, the information processing device 100 sets a weighting function as shown by curve 146. This weighting function is a spatial weighting function that assigns weights to coordinates on the digital twin. The weights take values ​​between 0 and 1. The weighting function is set for each sample.

[0077] The information processing device 100 detects the boundary between the flooded area 141 and non-flooded area 142 indicated by the sample. The information processing device 100 defines a weighting function in which the weight is 0 or a lower limit value sufficiently close to 0 at points on the boundary, and the weight approaches 1 as the distance from the boundary increases. This weighting function is preferably a differentiable smooth function, and may be a spline function.

[0078] In the ensemble Kalman filter method, the information processing device 100 multiplies the difference between the observed water level and the predicted water level at an observation point by the weight assigned to that observation point by a weighting function. The information processing device 100 multiplies a weighted error vector, which lists the weighted prediction errors of multiple observation points, by a Kalman gain matrix and adds the result to the original water level vector. This generates a corrected sample that suppresses the influence of boundary prediction accuracy. Equation (1) shows the weighted prediction error. In Equation (1), x n is the nth sample, y obs is the observed water level at the observation point, h(x n ) is the predicted water level at the observation point, M n (x n ) is sample x n Next, an example of a flood simulation will be described.

[0079]

[0080] FIG. 8 is a diagram showing an example of topographical data. The topographical data 150 shows the topography of the target area. FIG. 8 visualizes the topographical data 150 from an angle looking down on the target area from above, with roads drawn in solid lines and contour lines drawn in dotted lines. In a flood simulation, the information processing device 100 sets an inflow point 151 into which water will flow on the topographical data 150. In this flood simulation, the inflow point is a single point.

[0081] The information processing device 100 also sets observation points 152, 153, and 154, where observed water levels were measured, on the topographical data 150. A prediction point 155 is one of many points for which a predicted water level is calculated. As will be described later, the predicted water level at the prediction point 155 is used to evaluate the accuracy of the flood simulation of the second embodiment.

[0082] 9 is a diagram showing an example of the change in the amount of water inflow over time. A curve 161 shows the relationship between time and the amount of water inflow at the inflow point 151. The amount of inflow shown by the curve 161 is provided by the user as a simulation condition. The amount of inflow shown by the curve 161 is an expected value. When generating multiple samples at each time, the information processing device 100 may use an inflow amount with noise by adding a random number to the amount of inflow shown by the curve 161.

[0083] FIG. 10 is a diagram showing an example of prediction data from multiple flood simulators. As described above, the information processing device 100 predicts flood conditions at the same time using multiple flood simulators. Prediction data 162, 163, and 164 show samples generated at the same time by different flood simulators. FIG. 10 visualizes flooded areas where the predicted water level exceeds 0. The flooded areas differ between prediction data 162, 163, and 164.

[0084] In prediction data 162, the flooded area is relatively large. In prediction data 163, the flooded area is relatively small. In prediction data 164, the flooded area is medium in size. As such, due to differences in algorithms, prediction results may differ depending on the flood simulator. In particular, the boundary between the flooded area and the non-flooded area may differ greatly depending on the flood simulator.

[0085] 11 is a graph showing an example of predicted changes in water level over time. Curves 165, 166, 167, and 168 show the relationship between time and predicted water level at prediction point 155. Curve 165 shows the predicted water level when only the first flood simulator is used. Curve 166 shows the predicted water level when only the second flood simulator is used. Curve 167 shows the predicted water level when only the third flood simulator is used. Curve 168 shows the predicted water level when three flood simulators are used in combination using the method of the second embodiment.

[0086] When only a single flood simulator is used, bias in the predicted water level occurs depending on the flood simulator used, as shown by curves 165, 166, and 167. On the other hand, when multiple flood simulators are used in combination, bias in the predicted water level is smoothed out, as shown by curve 168, and highly accurate prediction results are obtained that are not dependent on the characteristics of a specific flood simulator.

[0087] FIG. 12 is a diagram showing an example of visualization data showing a flood situation. The visualization data 169 is generated by drawing a flooded area at a certain time on a digital twin. The visualization data 169 in FIG. 12 visualizes the digital twin of the target area from an angle looking down from diagonally above. The information processing device 100 displays the visualization data 169 on the display device 111. Next, the procedure for a flood simulation will be described.

[0088] FIG. 13 is a flowchart showing an example procedure for a flood simulation. In step S10, the simulation control unit 124 starts up multiple flood simulators. In step S11, the simulation control unit 124 performs initial settings for each of the multiple flood simulators. The initial settings may include loading topographical data and dividing the topography into multiple cells. In this case, a variable indicating the water level is set for each cell. The initial settings may also include setting simulation conditions such as the amount of water inflow. The initial settings may also include setting parameters for the basic equations and setting the time step.

[0089] In step S12, the data assimilation unit 126 generates an ensemble including multiple samples for each flood simulator using random numbers. The amount of water inflow may differ between different samples, and the initial values ​​of water levels at at least some points may differ. In step S13, the time evolution unit 125 performs time evolution on the latest ensemble for each of the multiple flood simulators. At this time, the time evolution unit 125 calculates the time change in water level until the next data assimilation time for each sample included in the ensemble.

[0090] In step S14, the data assimilation unit 126 calculates the predicted water level for each of the multiple observation points for each sample. The data assimilation unit 126 may extract the predicted water level for each observation point from the samples, or may interpolate the predicted water level for each observation point from the predicted water levels for points surrounding the observation point. In step S15, the data assimilation unit 126 determines, for each sample, flooded areas where the predicted water level exceeds a threshold and detects the boundary between flooded and non-flooded areas.

[0091] In step S16, the data assimilation unit 126 sets a weighting function for each sample in which the weight takes a lower limit value (e.g., 0) at points on the boundary and approaches 1 the further away from the boundary. In step S17, the data assimilation unit 126 assigns a weight to each of the multiple observation points using the weighting function for each sample. For each sample, the data assimilation unit 126 calculates a weighted prediction error between the predicted water level and the observed water level.

[0092] In step S18, the data assimilation unit 126 collects all samples generated by the multiple flood simulators and determines a prior distribution common to the multiple flood simulators. At this time, the data assimilation unit 126 calculates a mean vector and a variance-covariance matrix from the water level vectors of the multiple samples. In step S19, the data assimilation unit 126 calculates a Kalman gain matrix common to the multiple flood simulators from the prior distribution. The data assimilation unit 126 corrects each sample using the Kalman gain matrix and weighted prediction error.

[0093] In step S20, the data assimilation unit 126 uses the modified samples to form a new ensemble for each of the multiple flood simulators. The new ensemble used by a flood simulator may include modified samples converted from samples generated by that flood simulator, or may include new samples resampled by adding random numbers to the modified samples.

[0094] In step S21, the simulation control unit 124 determines whether the simulation time has reached the end time. If the end time has been reached, the flood simulation ends. If the end time has not been reached, the process returns to step S13.

[0095] Next, we will explain how to improve the visualization of flooded areas. A typical flood simulator divides the terrain of the target area into triangular cells and sets variables for each cell. The flood simulator predicts the water level in each cell using the finite element method, which uses basic equations such as the shallow water equations. In this case, the flooded area predicted by the flood simulation is represented by a collection of cells.

[0096] However, if the perimeter of a set of triangular cells is displayed as a boundary line indicating the boundary between the flooded and non-flooded areas, the boundary line will be notched and not smooth. As a result, the visualized flooded area will appear unnatural, which may reduce the ease of understanding the simulation results. Therefore, in the second embodiment, the information processing device 100 displays a smooth boundary line.

[0097] 14 is a diagram showing a first display example of the boundary between a flooded area and a non-flooded area. Cells 171 to 179 and 181 to 187 are subdivided triangular small areas. Cells 171 to 179 are cells where the predicted water level exceeds a threshold (e.g., 0). Cells 181 to 187 are cells where the predicted water level does not exceed the threshold. Hereinafter, cells where the predicted water level exceeds the threshold may be referred to as wet cells, and cells where the predicted water level does not exceed the threshold may be referred to as dry cells.

[0098] Cell 171 is adjacent to cell 181. Cell 172 is adjacent to cells 181 and 182. Cell 173 is adjacent to cells 174 and 182. Cell 174 is adjacent to cells 173 and 183. Cell 175 is adjacent to cells 176 and 183. Cell 176 is adjacent to cells 175 and 184. Cell 177 is adjacent to cells 184 and 185. Cell 178 is adjacent to cells 186 and 187. Cell 179 is adjacent to cell 187. When two cells are adjacent, they have one edge in common.

[0099] As one visualization method, the information processing device 100 may use the edge between the wet cell and the dry cell as the boundary of the flooded area. However, such a boundary would result in an unnatural, notched boundary. In reality, the periphery of a flooded area is often a smooth curve, and a boundary such as that shown in FIG. 14 is unrealistic. Note that reducing the cell size reduces the unnaturalness of the boundary, but increases the load on the flood simulation.

[0100] Fig. 15 is a diagram showing a second display example of the boundary between a flooded area and a non-flooded area. To reduce the unnaturalness of the boundary line, the information processing device 100 divides cells near the boundary when visualizing it and adds new edges. These new edges are used as boundary lines. In the example of Fig. 15, cells 172 to 178, 181 to 184, and 187 are divided, and new edges that penetrate through cells 172 to 178, 181 to 184, and 187 are added. The information processing device 100 displays the boundary line including the newly added edges.

[0101] The information processing device 100 generates boundary lines in the following procedure. First, the information processing device 100 classifies multiple cells into wet cells and dry cells according to the predicted water level. The information processing device 100 generates lists ldry and lwet. The list ldry is a set of dry cells that are adjacent to one or more wet cells and are also adjacent to one other dry cell. The list lwet is a set of wet cells that are adjacent to dry cells included in the list ldry.

[0102] The information processing device 100 counts the front edges of each cell included in the lists ldry and lwet. A front edge is an edge shared with a different type of cell. The number of front edges of a dry cell corresponds to the number of adjacent wet cells. The number of front edges of a wet cell corresponds to the number of adjacent dry cells.

[0103] The information processing device 100 extracts a dry cell with two front edges from the list ldry. The information processing device 100 sets a midpoint on each of the two front edges of the dry cell and divides the dry cell into two by connecting the two midpoints. The information processing device 100 also extracts a wet cell with two front edges from the list lwet. The information processing device 100 sets a midpoint on each of the two front edges of the wet cell and divides the wet cell into two by connecting the two midpoints.

[0104] Furthermore, the information processing device 100 extracts from the list ldry dry cells that have a front edge count of 1 and are adjacent to other dry cells that also have a front edge count of 1. The information processing device 100 sets a midpoint on each of the front edges of the two dry cells, and divides each of the two dry cells into two by connecting the two midpoints.

[0105] Furthermore, the information processing device 100 extracts from the list lwet wet cells that have a front edge count of 1 and are adjacent to another wet cell that also has a front edge count of 1. The information processing device 100 sets a midpoint on each of the front edges of the two wet cells and divides each of the two wet cells into two by connecting the two midpoints.

[0106] Note that the cells divided by the above method are for visualization purposes and do not have to be triangular. A new cell divided from a wet cell inherits the predicted water level of the original wet cell. A new cell divided from a dry cell has the average predicted water level of the adjacent wet cells. Next, the above visualization procedure will be explained using a flowchart.

[0107] 16 is a flowchart showing an example of a visualization procedure. In step S100, the visualization unit 127 defines an array vcount of length Nvert, where Nvert is the total number of vertices in the set of cells. The visualization unit 127 initializes each element of the array vcount to 0 and also initializes a variable icell to 0.

[0108] In step S101, the visualization unit 127 increments icell. In the following description of the flowchart, "increment" means increasing a numerical value by 1. In step S102, the visualization unit 127 determines whether icell exceeds Ncell. Ncell is the total number of cells. If icell exceeds Ncell, the process proceeds to step S104; otherwise, the process proceeds to step S103.

[0109] In step S103, the visualization unit 127 selects three vertices of the icell-th cell. In the following description, the icell-th cell may be referred to as cell icell. The visualization unit 127 increments three elements included in the array vcount that correspond to the three vertices. Then, the process returns to step S101. In step S104, the visualization unit 127 calculates the maximum value among the elements included in the array vcount as num.

[0110] In step S105, the visualization unit 127 defines an array pointer having a length Nvert and a matrix v2cell having Nvert rows and num columns. The visualization unit 127 initializes each element of the array pointer to 0, initializes each element of the matrix v2cell to 0, and initializes a variable icell to 0.

[0111] In step S106, the visualization unit 127 increments icell. In step S107, the visualization unit 127 determines whether icell exceeds Ncell. If icell exceeds Ncell, the process proceeds to step S113; otherwise, the process proceeds to step S108.

[0112] In step S108, the visualization unit 127 initializes the variable jv to 0. In step S109, the visualization unit 127 increments jv. In step S110, the visualization unit 127 determines whether jv exceeds 3. If jv exceeds 3, the process returns to step S106; otherwise, the process proceeds to step S111.

[0113] In step S111, the visualization unit 127 selects the jv-th vertex jvert of the cell icell. The visualization unit 127 increments the element corresponding to the vertex jvert among the elements included in the array pointer. In step S112, the visualization unit 127 sets, as icell, the element identified by the row corresponding to the vertex jvert and the column corresponding to the incremented value of pointer among the elements included in the matrix v2cell. Then, the process returns to step S109.

[0114] 17 is a flowchart (continued 1) showing an example of a visualization procedure. In step S113, the visualization unit 127 defines a matrix c2cell having Ncell rows and 3 columns. The number of columns in the matrix c2cell corresponds to the number of edges the cell has. The visualization unit 127 initializes each element of the matrix c2cell to 0 and initializes the variable icell to 0.

[0115] In step S114, the visualization unit 127 increments icell. In step S115, the visualization unit 127 determines whether icell exceeds Ncell. If icell exceeds Ncell, the process proceeds to step S129; otherwise, the process proceeds to step S116. In step S116, the visualization unit 127 defines an array clist of length Ncell. The visualization unit 127 initializes each element of the array clist to 0 and initializes a variable iv to 0.

[0116] In step S117, the visualization unit 127 increments iv. In step S118, the visualization unit 127 determines whether iv exceeds 3. If iv exceeds 3, the process proceeds to step S124; otherwise, the process proceeds to step S119. In step S119, the visualization unit 127 initializes a variable jc to 0. In step S120, the visualization unit 127 increments jc.

[0117] In step S121, the visualization unit 127 determines whether jc exceeds 3. If jc exceeds 3, the process returns to step S117; otherwise, the process proceeds to step S122. In step S122, the visualization unit 127 selects a cell jcell that shares the iv-th vertex of cell icell. In step S123, the visualization unit 127 increments the element included in array clist that corresponds to cell jcell. Then, the process returns to step S120.

[0118] 18 is a flowchart (continued 2) showing an example of a visualization procedure. In step S124, the visualization unit 127 initializes a variable jcell to 0 and initializes a variable pointer to 0. In step S125, the visualization unit 127 increments jcell. In step S126, the visualization unit 127 determines whether jcell exceeds Ncell. If jcell exceeds Ncell, the process returns to step S114; otherwise, the process proceeds to step S127.

[0119] In step S127, the visualization unit 127 determines whether the element corresponding to cell jcell among the elements included in array clist is 2. If this condition is met, the process proceeds to step S128; otherwise, the process returns to step S125. In step S128, the visualization unit 127 increments pointer. The visualization unit 127 sets the element identified by the row corresponding to icell and the column corresponding to pointer among the elements included in matrix c2cell to jcell. Then, the process returns to step S125.

[0120] 19 is a flowchart (continued 3) showing an example of a visualization procedure. In step S129, the visualization unit 127 defines an array mwet of length Ncell. The visualization unit 127 initializes each element of the array mwet to 0, initializes the variable icell to 0, initializes the variable wcnt to 0, and initializes the variable dcnt to 0.

[0121] In step S130, the visualization unit 127 increments icell. In step S131, the visualization unit 127 determines whether the predicted water level of cell icell is equal to or less than a threshold h0. h0 is the upper limit of the water level at which flooding can be assumed to be absent, and is specified by the user. h0 = 0 may also be used. If the predicted water level of cell icell is equal to or less than h0, processing proceeds to step S132; otherwise, processing returns to step S130.

[0122] In step S132, the visualization unit 127 initializes a variable jwet to 0, and initializes a variable jc to 0. In step S133, the visualization unit 127 increments jc. In step S134, the visualization unit 127 selects an adjacent cell jcell that shares the jc-th edge with the cell icell.

[0123] In step S135, the visualization unit 127 determines whether the predicted water level of the neighboring cell jcell exceeds h0. If the predicted water level exceeds h0, the process proceeds to step S137; otherwise, the process proceeds to step S136. In step S136, the visualization unit 127 determines whether jc is 3. If jc is 3, the process returns to step S130; otherwise, the process returns to step S133.

[0124] 20 is a flowchart (continued 4) showing an example of a visualization procedure. In step S137, the visualization unit 127 increments jwet. In step S138, the visualization unit 127 determines whether the element corresponding to the adjacent cell jcell among the elements included in the array mwet is 0. If this condition is met, the process proceeds to step S139; otherwise, the process proceeds to step S140.

[0125] In step S139, the visualization unit 127 increments wcnt. The visualization unit 127 sets the element included in the array mwet that corresponds to the neighboring cell jcell to wcnt. The visualization unit 127 sets the wcnt-th element included in the list lwet to the neighboring cell jcell.

[0126] In step S140, the visualization unit 127 determines whether jc is 3. If jc is 3, the process proceeds to step S141; otherwise, the process returns to step S133. In step S141, the visualization unit 127 determines whether jwet is 2. If jwet is 2, the process proceeds to step S142; otherwise, the process returns to step S130.

[0127] In step S142, the visualization unit 127 increments dcnt. The visualization unit 127 sets the dcnt-th element of the elements included in the list ldry as the cell icell. In step S143, the visualization unit 127 determines whether icell is equal to Ncell. If icell is equal to Ncell, the process proceeds to step S144; otherwise, the process returns to step S130.

[0128] 21 is a flowchart (continued 5) showing an example of a visualization procedure. In step S144, the visualization unit 127 defines an array FE of length Ncell and a matrix CFE of Ncell rows and 3 columns. The array FE is an array for counting the number of front edges of each of multiple cells. The visualization unit 127 initializes each element of the array FE to 0, initializes each element of the matrix CFE to 0, and initializes the variable icnt to 0.

[0129] In step S145, the visualization unit 127 increments icnt. In step S146, the visualization unit 127 determines whether icnt is equal to dcnt. dcnt indicates the length of the list ldry. If icnt is equal to dcnt, the process proceeds to step S155; otherwise, the process proceeds to step S147. In step S147, the visualization unit 127 selects the icnt-th element of the list ldry as the cell icell. In step S148, the visualization unit 127 initializes the variable jc to 0. In step S149, the visualization unit 127 increments jc.

[0130] In step S150, the visualization unit 127 determines whether jc is 3. If jc is 3, the process returns to step S145; otherwise, the process proceeds to step S151. In step S151, the visualization unit 127 selects an adjacent jcell that shares the jc-th edge of the cell icell.

[0131] In step S152, the visualization unit 127 determines whether the predicted water level of the neighboring cell jcell exceeds h0. If the predicted water level exceeds h0, the process proceeds to step S153; otherwise, the process returns to step S149. In step S153, the visualization unit 127 increments the element included in array FE that corresponds to cell icell. This increments the number of front edges of cell icell.

[0132] In step S154, the visualization unit 127 sets, among the elements included in the matrix CFE, an element identified by the row corresponding to the cell icell and the column corresponding to the number of front edges as the adjacent cell jcell. Then, the process returns to step S145.

[0133] In step S155, the visualization unit 127 performs the same processing as in steps S144 to S154 on the wet cells included in the list lwet. At this time, the visualization unit 127 uses wcnt instead of dcnt in step S146. wcnt indicates the length of the list lwet. The visualization unit 127 also uses the list lwet instead of the list ldry in step S147. The visualization unit 127 also determines whether the predicted water level of the neighboring cell jcell is equal to or lower than h0, instead of the determination in step S152.

[0134] 22 is a flowchart (continued 6) showing an example of a visualization procedure. In step S156, the visualization unit 127 defines an array lvert of length Nvert. The visualization unit 127 initializes each element of the array lvert to 0 and initializes a variable icnt to 0. In step S157, the visualization unit 127 increments icnt.

[0135] In step S158, the visualization unit 127 determines whether icnt is equal to dcnt. If icnt is equal to dcnt, processing proceeds to step S183; otherwise, processing proceeds to step S159. In step S159, the visualization unit 127 selects the icnt-th element of list ldry as cell icell. In step S160, the visualization unit 127 references array FE and determines whether the number of front edges of cell icell is 2. If the number of front edges is 2, processing proceeds to step S161; otherwise, processing returns to step S157.

[0136] In step S161, the visualization unit 127 initializes a variable jc to 0 and a variable haveg to 0. In step S162, the visualization unit 127 increments jc. In step S163, the visualization unit 127 determines whether jc is greater than the number of front edges of the cell icell. If jc is greater than the number of front edges, the process proceeds to step S170; otherwise, the process proceeds to step S164.

[0137] In step S164, the visualization unit 127 selects, from among the elements included in the matrix CFE, an element identified by the row corresponding to the cell icell and the column corresponding to jc as the neighboring cell jcell. In step S165, the visualization unit 127 adds the predicted water level of the neighboring cell jcell to havg.

[0138] In step S166, the visualization unit 127 initializes the variable jv to 0. In step S167, the visualization unit 127 increments jv. In step S168, the visualization unit 127 determines whether jv is greater than 3. If jv is greater than 3, the process returns to step S162; otherwise, the process proceeds to step S169.

[0139] In step S169, the visualization unit 127 increments the element that corresponds to the jv-th vertex of the adjacent cell jcell, among the elements included in the array lvert, and then the process returns to step S167.

[0140] 23 is a flowchart (continued 7) showing an example of a visualization procedure. In step S170, the visualization unit 127 divides havg by 2. The visualization unit 127 also defines an array v of length 3. The visualization unit 127 initializes each element of the array v to 0, initializes the variable cnt to 0, and initializes the variable iv to 0.

[0141] In step S171, the visualization unit 127 increments iv. In step S172, the visualization unit 127 selects the iv-th vertex ivert of the cell icell. The visualization unit 127 determines whether the element corresponding to the vertex ivert among the elements included in the array lvert is 2. If this condition is met, the process proceeds to step S173; otherwise, the process returns to step S171.

[0142] In step S173, the visualization unit 127 increments cnt. The visualization unit 127 sets the cnt-th element of the array v to the vertex ivert, and sets the element included in the array lvert that corresponds to the vertex ivert to 0. In step S174, the visualization unit 127 initializes the variable iv to 0.

[0143] In step S175, the visualization unit 127 increments iv. In step S176, the visualization unit 127 determines whether iv is greater than 3. If iv is greater than 3, the process proceeds to step S179; otherwise, the process proceeds to step S177. In step S177, the visualization unit 127 selects the iv-th vertex ivert of the cell icell. The visualization unit 127 determines whether the element corresponding to the vertex ivert is 1 among the elements included in the array lvert. If this condition is met, the process proceeds to step S178; otherwise, the process returns to step S175.

[0144] In step S178, the visualization unit 127 increments cnt. The visualization unit 127 sets the cnt-th element of the array v to the vertex ivert, and sets the element included in the array lvert that corresponds to the vertex ivert to 0. Then, the process returns to step S175.

[0145] In step S179, the visualization unit 127 adds, as a vertex nv1, the midpoint between the vertex indicated by the first element of array v and the vertex indicated by the second element of array v. The visualization unit 127 also adds, as a vertex nv2, the midpoint between the vertex indicated by the first element of array v and the vertex indicated by the third element of array v.

[0146] In step S180, the visualization unit 127 adds a small area surrounded by the second element of array v, the third element of array v, vertex nv1, and vertex nv2 as cell nc1. The visualization unit 127 also adds a small area surrounded by the first element of array v, vertex nv1, and vertex nv2 as cell nc2. In step S181, the visualization unit 127 sets the predicted water level of cell nc1 to the predicted water level of cell icell. The visualization unit 127 also sets the predicted water level of cell nc2 to havg.

[0147] In step S182, the visualization unit 127 performs the same processes as in steps S156 to S181 on the wet cells included in the list lwet. At this time, the visualization unit 127 uses wcnt instead of dcnt in step S158. The visualization unit 127 also uses the list lwet instead of the list ldry in step S159.

[0148] 24 is a flowchart (continued 8) showing an example of a visualization procedure. In step S183, the visualization unit 127 defines a matrix lvert having N rows and 2 columns. The visualization unit 127 initializes each element of the matrix lvert to 0 and initializes a variable icnt to 0. In step S184, the visualization unit 127 increments icnt.

[0149] In step S185, the visualization unit 127 determines whether icnt is equal to dcnt. If icnt is equal to dcnt, the process proceeds to step S234; otherwise, the process proceeds to step S186. In step S186, the visualization unit 127 selects the icnt-th element of the list ldry as the cell icell.

[0150] In step S187, the visualization unit 127 refers to the array FE and determines whether the number of front edges of the cell icell is 1. If the number of front edges is 1, the process proceeds to step S188; otherwise, the process returns to step S184. In step S188, the visualization unit 127 initializes the variable jc to 0, the variable num to 0, the variable havgw to 0, and the variable havgd to 0.

[0151] In step S189, the visualization unit 127 increments jc. In step S190, the visualization unit 127 determines whether jc is greater than 3. If jc is greater than 3, the process proceeds to step S194; otherwise, the process proceeds to step S191. In step S191, the visualization unit 127 selects an adjacent cell jcell that shares the jc-th edge of cell icell.

[0152] In step S192, the visualization unit 127 determines whether the number of front edges of the cell icell is the same as the number of front edges of the adjacent cell jcell. If the numbers of front edges are the same, the process proceeds to step S193; otherwise, the process returns to step S189. In step S193, the visualization unit 127 increments num and sets the variable cellone to the adjacent cell jcell. Then, the process returns to step S189. In step S194, the visualization unit 127 determines whether num is 1. If num is 1, the process proceeds to step S195; otherwise, the process returns to step S184.

[0153] 25 is a flowchart (continued 9) showing an example of a visualization procedure. In step S195, the visualization unit 127 selects, from among the elements included in matrix CFE, the element in the first column of the row corresponding to cell icell as the first adjacent cell jcell. The visualization unit 127 also initializes variable jv to 0. In step S196, the visualization unit 127 increments jv. In step S197, the visualization unit 127 determines whether jv is greater than 3. If jv is greater than 3, the process proceeds to step S200; otherwise, the process proceeds to step S198.

[0154] In step S198, the visualization unit 127 selects the jv-th vertex of the first neighboring cell jcell. The visualization unit 127 increments the element in the first column of the row corresponding to the selected vertex among the elements included in the matrix lvert. In step S199, the visualization unit 127 adds the predicted water level of the first neighboring cell jcell to havgw. Then, the process returns to step S196.

[0155] In step S200, the visualization unit 127 selects, from among the elements included in the matrix CFE, the element in the first column of the row corresponding to cellone as the second adjacent cell jcell. The visualization unit 127 also initializes a variable jv to 0. In step S201, the visualization unit 127 increments jv. In step S202, the visualization unit 127 determines whether jv is greater than 3. If jv is greater than 3, the process proceeds to step S205; otherwise, the process proceeds to step S203.

[0156] In step S203, the visualization unit 127 selects the jv-th vertex of the second neighboring cell jcell. The visualization unit 127 increments the element in the first column of the row corresponding to the selected vertex among the elements included in the matrix lvert. In step S204, the visualization unit 127 adds the predicted water level of the second neighboring cell jcell to havgw. Then, the process returns to step S201.

[0157] 26 is a flowchart (continued 10) showing an example of a visualization procedure. In step S205, the visualization unit 127 initializes a variable jv to 0. In step S206, the visualization unit 127 increments jv. In step S207, the visualization unit 127 determines whether jv is greater than 3. If jv is greater than 3, the process proceeds to step S210; otherwise, the process proceeds to step S208.

[0158] In step S208, the visualization unit 127 selects the jv-th vertex of the cell icell. The visualization unit 127 increments the element in the second column of the row corresponding to the selected vertex among the elements included in the matrix lvert. In step S209, the visualization unit 127 adds the predicted water level of the cell icell to havgd. Then, the process returns to step S206. In step S210, the visualization unit 127 sets the partner cell jcell to cellone and initializes the variable jv to 0.

[0159] In step S211, the visualization unit 127 increments jv. In step S212, the visualization unit 127 determines whether jv is greater than 3. If jv is greater than 3, the process proceeds to step S215; otherwise, the process proceeds to step S213. In step S213, the visualization unit 127 selects the jv-th vertex of the partner cell jcell. The visualization unit 127 increments the element in the second column of the row corresponding to the selected vertex, among the elements included in the matrix lvert.

[0160] In step S214, the visualization unit 127 adds the predicted water level of the partner cell jcell to havgd. Then, the process returns to step S211. FIG. 27 is a flowchart (continued 11) showing an example of a visualization procedure. In step S215, the visualization unit 127 divides havgw and havgd by 2. The visualization unit 127 also defines an array v of length 4. The visualization unit 127 initializes each element of the array v to 0, initializes the variable cnt to 0, and initializes the variable ivert to 0.

[0161] In step S216, the visualization unit 127 increments ivert. In step S217, the visualization unit 127 determines whether ivert is greater than Nvert. If ivert is greater than Nvert, the process proceeds to step S220; otherwise, the process proceeds to step S218.

[0162] In step S218, the visualization unit 127 reads the element in the ivert row and the first column and the element in the ivert row and the second column from the matrix lvert. The visualization unit 127 determines whether the product of these two elements is 4. If the product is 4, the process proceeds to step S219; otherwise, the process returns to step S216.

[0163] In step S219, the visualization unit 127 increments cnt. The visualization unit 127 sets the cnt-th element of the array v to ivert, and sets the ivert-th row element of the matrix lvert to 0. Then, the process returns to step S216. In step S220, the visualization unit 127 initializes the variable ivert to 0.

[0164] In step S221, the visualization unit 127 increments ivert. In step S222, the visualization unit 127 determines whether ivert is greater than Nvert. If ivert is greater than Nvert, the process proceeds to step S225; otherwise, the process proceeds to step S223.

[0165] In step S223, the visualization unit 127 reads the element in the ivert row and the first column and the element in the ivert row and the second column from the matrix lvert. The visualization unit 127 determines whether the product of these two elements is 1. If the product is 1, the process proceeds to step S224; otherwise, the process returns to step S221.

[0166] In step S224, the visualization unit 127 increments cnt. The visualization unit 127 sets the cnt-th element of the array v to ivert, and sets the ivert-th row element of the matrix lvert to 0. Then, the process returns to step S221.

[0167] 28 is a flowchart (continued 12) showing an example of a visualization procedure. In step S225, the visualization unit 127 initializes the variable ivert to 0. In step S226, the visualization unit 127 increments ivert.

[0168] In step S227, the visualization unit 127 determines whether ivert is greater than Nvert. If ivert is greater than Nvert, the process proceeds to step S230; otherwise, the process proceeds to step S228. In step S228, the visualization unit 127 reads the element in the first column of the ivert row and the element in the second column of the ivert row from the matrix lvert. The visualization unit 127 determines whether the product of these two elements is 0 and the latter element is 2. If this condition is met, the process proceeds to step S229; otherwise, the process returns to step S226.

[0169] In step S229, the visualization unit 127 increments cnt. The visualization unit 127 sets the cnt-th element of the array v to ivert, and sets the ivert-th row element of the matrix lvert to 0. Then, the process returns to step S226.

[0170] In step S230, the visualization unit 127 adds, as a vertex nv1, the midpoint between the vertex indicated by the first element of array v and the vertex indicated by the second element of array v. The visualization unit 127 also adds, as a vertex nv2, the midpoint between the vertex indicated by the first element of array v and the vertex indicated by the third element of array v.

[0171] In step S231, the visualization unit 127 adds a small area surrounded by the second element of array v, the fourth element of array v, the third element of array v, vertex nv2, and vertex nv1 as cell nc1. The visualization unit 127 also adds a small area surrounded by the first element of array v, vertex nv1, and vertex nv2 as cell nc2. In step S232, the visualization unit 127 sets the predicted water level of cell nc1 to havgd. The visualization unit 127 also sets the predicted water level of cell nc2 to havgw.

[0172] In step S233, the visualization unit 127 performs the same processing as in steps S183 to S232 on the wet cells included in the list lwet. At this time, the visualization unit 127 uses wcnt instead of dcnt in step S185. The visualization unit 127 also uses the list lwet instead of the list ldry in step S186. The visualization unit 127 also uses the variable havegd instead of the variable havgw in steps S199 and S204. The visualization unit 127 also uses the variable havegw instead of the variable havegd in steps S209 and S214.

[0173] 29 is a flowchart (continued 13) showing an example of a visualization procedure. In step S234, the visualization unit 127 initializes the variable icnt to 0. In step S235, the visualization unit 127 increments icnt.

[0174] In step S236, the visualization unit 127 determines whether icnt is greater than dcnt. If icnt is greater than dcnt, the process proceeds to step S239; otherwise, the process proceeds to step S237. In step S237, the visualization unit 127 selects the icnt-th element included in the list ldry as the cell icell.

[0175] In step S238, the visualization unit 127 changes the predicted water level of the cell icell to 0. As a result, the cell before division is hidden. Then, the process returns to step S235. In step S239, the visualization unit 127 initializes the variable icnt to 0. In step S240, the visualization unit 127 increments icnt.

[0176] In step S241, the visualization unit 127 determines whether icnt is greater than wcnt. If icnt is greater than wcnt, visualization ends; otherwise, the process proceeds to step S242. In step S242, the visualization unit 127 selects the icnt-th element included in the list lwet as the cell icell. In step S243, the visualization unit 127 changes the predicted water level of the cell icell to 0. This hides the cell before division. Then, the process returns to step S240.

[0177] As described above, the information processing device 100 of the second embodiment performs a flood simulation that predicts changes in flooding over time using a digital twin that recreates the topography of real space in a virtual space. The information processing device 100 then maps and visualizes the flooded area on the digital twin. This enables a detailed flood simulation that is close to reality, and outputs useful simulation results that make it easier to understand the flooding situation.

[0178] Furthermore, the information processing device 100 performs data assimilation during the flood simulation, referring to observation data to sequentially correct the prediction results for each time. This reduces the risk that the flood situation prediction will deviate significantly from the observation data, and generates realistic prediction results. The information processing device 100 also uses the ensemble Kalman filter method for data assimilation. This allows for improved data assimilation accuracy even when calculating water flow using nonlinear fundamental equations such as shallow water equations.

[0179] The information processing device 100 also uses multiple flood simulators in combination. During data assimilation, the information processing device 100 determines a common prior distribution and posterior distribution from all samples from the multiple flood simulators. This averages out the bias in the prediction results from each individual flood simulator, improving the accuracy of the simulation results. The information processing device 100 also evaluates the prediction error between the observed water level and the predicted water level using a spatial weighting function that reduces the weight of observation points near the boundary of the flooded area. This reduces the impact of boundary uncertainty on the prediction error, improving the accuracy of data assimilation.

[0180] Furthermore, when visualizing the simulation results, the information processing device 100 divides the triangular cells on the boundary of the flooded area and calculates a boundary line with fewer notches, thereby displaying a realistic boundary line and improving the ease of understanding of the simulation results.

[0181] The foregoing merely illustrates the principles of the present invention. Further, since numerous modifications and changes will be apparent to those skilled in the art, the present invention is not limited to the exact construction and application shown and described above, and all corresponding modifications and equivalents are deemed to be within the scope of the present invention as defined by the appended claims and their equivalents.

[0182] REFERENCE SIGNS LIST 10 Information processing device 11 Memory unit 12 Processing unit 13 Digital twin 14 Observation data 15 Probability distribution 15a, 15b, 15c Prediction result

Claims

1. A flood simulation program that causes a computer to perform the following processes: generate a digital twin that reproduces the shape of a real space in a virtual space; perform a data assimilation process in the digital twin to correct the prediction results using observation data indicating flooding observed in the real space and a probability distribution of prediction results with different flooded areas; perform a simulation to predict changes in flooding over time using the results of the executed data assimilation process; and display result data generated from the predicted changes in flooding over time on a display screen.

2. The flood simulation program according to claim 1, wherein the result data includes image data that maps the predicted flooded area onto a three-dimensional terrain model represented by the digital twin.

3. A flood simulation program as described in claim 1, wherein the data assimilation process includes a process for evaluating the error between the observed water level indicated by the observation data and the predicted water level indicated by the prediction result using a weighting function in which the weight is smaller for points closer to the boundary of the flooded area indicated by the prediction result.

4. The flood simulation program according to claim 1, wherein the data assimilation process uses the prediction results of a plurality of flood simulators.

5. A flood simulation program as described in claim 4, wherein the data assimilation process includes a process of determining a common probability distribution from the prediction results of the multiple flood simulators, and correcting the prediction results of each of the multiple flood simulators using the observation data and the common probability distribution.

6. A flood simulation program as described in claim 1, wherein the result data includes the flooding status of each of a plurality of cells divided into terrain, and the display process includes a process of detecting, from among the plurality of cells, boundary cells whose flooding status differs from that of adjacent cells, and displaying boundary lines with smoothed edges of the boundary cells.

7. The flood simulation program according to claim 6, wherein each of the plurality of cells is a triangle, and the displaying process includes a process of dividing the boundary cells.

8. A flood simulation program as described in claim 1, further causing the computer to execute a process of extracting a plurality of points from the digital twin, calculating the elevation gradient at each of the plurality of points by referring to the digital twin, and assigning a variable indicating the state of flooding to each of the plurality of points, wherein the simulation includes a process of calculating the value of the variable at a second time after the first time from the gradient and the value of the variable at a first time.

9. A flood simulation method in which a computer performs the following processes: generating a digital twin that reproduces the shape of a real space in a virtual space; performing a data assimilation process in the digital twin to correct the prediction results using observation data indicating flooding observed in the real space and a probability distribution of prediction results with different flooded areas; performing a simulation to predict changes in flooding over time using the results of the executed data assimilation process; and displaying result data generated from the predicted changes in flooding over time on a display screen.

10. An information processing device having: a memory unit that stores a digital twin that reproduces the shape of a real space in a virtual space and observation data indicating flooding observed in the real space; and a processing unit that executes a data assimilation process in the digital twin to correct the prediction results using the observation data and a probability distribution of prediction results with different flooded areas, executes a simulation to predict changes in flooding over time using the results of the executed data assimilation process, and displays result data generated from the predicted changes in flooding over time on a display screen.

Citation Information

Patent Citations

  • Mountain torrent forecasting and early warning method and system based on digital twinning

    CN113222283A

  • Flood risk assessment method and device, storage medium and computer equipment

    CN116720737A

  • Surface temperature display device

    JP1991015986A

  • Flood depth estimation device and method

    JP2022041049A

  • Local information assimilation device, method and program for real-time flood hazard mapping

    WO2018116958A1