-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate Model Ensembles #156
Comments
Dear @KumaGIS , Thanks for your enquiry. The MonteCarlo module is not currently used within our operational workflow. Therefore, we cannot guarantee systematic assistance on such type of investigations. Nevertheless, we will do our best to provide support and we hope that, by joining our forces, we will succeed in the analysis! If our understanding is correct, discharge values in each output folder are bit identical, despite the edits that you added to the source code. Generally speaking, prerun and run must always use the same meteorological forcings, static maps, and parameters. The prerun computes the initial conditions for the run: https://ec-jrc.github.io/lisflood-code/3_step5_model-initialisation/. We read in your message that you verified the expected changes in the precipitation. How was this verification done? We would like to recommend activating the following output flags in the lisflood xml settings file.
You will then find in each output folder the precipitation data used within the simulation: total precipitation, and the segregated components rain and snow. You might need to check whether the options above are already implemented in your .xml settings: you can find an example in https://github.com/ec-jrc/lisflood-code/blob/master/src/lisfloodSettings_reference.xml LINES 100 and 3544. Please do not hesitate to let us know whether you need help with this task. Furthermore, could you please let us know at which line of the readmeteo.py you added your edits? This information will allow us to try to reproduce your issue. Finally, are you running the python package or the source code (python src/lisf1.py settings.xml)? Kind regards, |
Dear @StefaniaGrimaldi ,
File "/home/kumudu/LISFLOOD/lisflood-code/src/lisflood/global_modules/output.py", line 298, in write When I checked the output folders, I noticed that the output rainfall maps and discharge time series data were generated only in the first folder.
def dynamic(self):
I understand that you might not be able to provide full support for this, as it is not currently in use. However, if you modify the readmeteo.py file as described above, you could potentially check the output files on your end. |
Dear developers, I would greatly appreciate any help or suggestions you can offer to resolve this issue. |
Dear @KumaGIS Can you please provide us your settings XML file and your full output messages on screen when you try to run Lisflood enabling MonteCarlo option? Thanks |
Dear @doc78, I currently have the following questions regarding the Monte Carlo simulation: The Monte Carlo simulation is now working. Initially, I ran the simulation with 10 ensemble members without applying any perturbations, and I enabled additional options such as repSnowMaps and repRainMaps. The time series data files ‘dis_run.tss’ and ‘chanqWin.tss’ were successfully created within each sample folder. However, the rain.nc and snow.nc maps were only created in the first sample folder. Why are these maps not being created in the other sample folders? In the research paper https://doi.org/10.1016/j.jhydrol.2016.10.041, the LISFLOOD model was successfully used to generate open-loop deterministic simulations by applying random sampling perturbations to the precipitation inputs to obtain probabilistic LISFLOOD simulations with 24 ensembles. Specifically, the precipitation forcing was scaled between 0 and 100 and perturbed with white noise with a mean of 1 and a standard deviation of 0.15 to prevent ensemble deterioration. Could you please advise on how to implement something similar? I understand you might not be able to provide the entire solution, but could you at least outline the main steps? I would greatly appreciate any help or suggestions you can offer to resolve this issue. |
dear @doc78, @StefaniaGrimaldi, I would greatly appreciate any help or suggestions you can offer to resolve this issue. |
Dear @KumaGIS
Hope it helps to continue your experiments. |
Dear @doc78, |
Dear @KumaGIS, |
Dear @StefaniaGrimaldi, @doc78 I have one final question: What was the last version of the Lisflood model that supported the data assimilation framework? |
Dear @KumaGIS, the work on data assimilation with LISFLOOD has been performed quite some time ago: before the introduction of the versioning of the source code and before its open source publication. We do not have the source code that supported the data assimilation framework. We only have the part of the code that is still included in this repository (and which is not supported in the current version due to time and resources constraints). Your willingness to develop your own data assimilation routine and to share your developments is highly appreciated! Thank you! Kind regards, |
Dear @doc78 @StefaniaGrimaldi @domeniconappo I don't have a team to work with and have to do everything alone. If I face some difficulties, I will ask for your assistance, and if possible, please try to help me however you can. Thank you for your understanding and support |
Dear @doc78 @StefaniaGrimaldi @domeniconappo, I appreciate your support until now. I have one thing to clarify. When it comes to assimilating streamflow data (discharge data), which state variable should I choose: DischargeMaps (ChanQAvg), ChanQState (ChanQ), or another state variable? I would greatly appreciate any help or suggestions you can offer regarding this matter. Thank you |
Dear @doc78 @StefaniaGrimaldi @domeniconappo, I appreciate your support until now. I have one thing to clarify. When it comes to assimilating streamflow data (discharge data), which state variable should I choose: DischargeMaps (ChanQAvg), ChanQState (ChanQ), or another state variable? I would greatly appreciate any help or suggestions you can offer regarding this matter. Thank you |
Dear @KumaGIS, DischargeMaps (ChanQAvg) is the average discharge value in the time interval DtSec. As an example, if your model use daily time steps (DtSec = 86400), and 6hourly computational steps for the routing module (DtSeChannel = 21600), DischargeMaps (ChanQAvg) represent the modelled daily average discharge values. We hope that our answer helps, |
Dear @StefaniaGrimaldi , @doc78 , Thank you for the quick response. That makes sense. However, I noticed that "ChanQAvg," which I should update as the state variable, does not appear among the relevant state variables in the stateVar.py module. In your user documentation, both ChanQ and ChanQAvg are listed as state variables. Yet, the stateVar.py module only includes ChanQ. Since we are assimilating streamflow data using ChanQAvg/DischargeMaps as the state variable, shouldn't it be included in the stateVar.py module? Or can we simply add the ChanQAvg statevariable into the statVar.py module? I would greatly appreciate any assistance or suggestions you can provide on this matter. I look forward to your response. Thank you. |
Dear @StefaniaGrimaldi , @doc78 I have a question regarding the final state update process. I developed a sample Lisflood_EnKF.py script and within the resume() method in the EnKF.py module, we update the model state (discharge) based on the estimated model state (calculated using EnKF). After updating, we need to replace the old model state with the updated one right? In this context, I am updating the model state (ChanQAvg), which is indicated by "dis". How can I replace the old "dis" state map with the updated "dis" state map when the stateVar.py module does not include the ChanQAvg state variable? I hope my question is clear. I would greatly appreciate any assistance or suggestions you can provide on this matter. I look forward to your response. Thank you. |
Dear Developers,
I am currently using the LISFLOOD model to assess discharge uncertainty for my study area. I have been working with the test dataset that you previously provided and attempting to perform stochastic modeling.
To begin, I wanted to evaluate the uncertainty related to the forcing data. Specifically, I tried to add random Gaussian noise to the precipitation data by modifying the readmeteo.py module's source code. Despite adding the random noise to the precipitation variable, the resultant discharge values do not show any variation.
I have updated the settings.xml file to enable the Monte Carlo Simulation option. Additionally, I explicitly initialized the constructor of the Lisflood_MonteCarlo.py within the LisfloodModel() in main.py.
The sample directories were created as specified in the EnsMembers section of the settings.xml file, and dis_run.tss files were generated within each folder. However, when I plot these files, there is no variation in the discharge values.
The following code was added to the readmeteo.py module to perturb the precipitation data
After applying some random noise as above I checked whether the precipitation values were changed or not. They were successfully perturbed.
I executed only the run_lat_lon.xml file with the perturbed precipitation data. Was that the reason for getting similar discharge output time series values, since it uses the same initial conditions (lzavin.map and avgdis.map) which were created by the pre_run_lat_lon.xml ? Or Do I have to execute pre_run_lat_lon.xml with the Monte Carlo Simulation?
Could you please tell me, what can be the possible issue here and how to solve this? I would greatly appreciate any help or suggestions you can offer to resolve this issue.
Looking forward to hearing from you soon.
Best Regards
The text was updated successfully, but these errors were encountered: