Ouranosinc / raven

WPS services related to hydrological modeling
https://pavics-raven.readthedocs.io
MIT License
37 stars 12 forks source link

Emulate MOHYSE in Raven (4) #11

Closed huard closed 5 years ago

richardarsenault commented 6 years ago

Julie will integrate MOHYSE into RAVEN with the help of James Craig.

julemai commented 6 years ago

James Craig's evaluation of MOHYSE in RAVEN:

Translation of MOHYSE model into Raven:

  :PotentialMelt     POTMELT_DEGREE_DAY
  :CatchmentRoute    ROUTE_GAMMA_CONVOLUTION2
  :EvaporationMethod PET_MOHYSE
  :DirectEvaporation DIRECT_EVAP_BASIC

  :HydrologicProcesses
     :SoilEvaporation  SOILEVAP_LINEAR  SOIL[0]      ATMOSPHERE
     :SnowBalance      SIMPLE_MELT      SNOW         PONDED_WATER
     :Precipitation    RAVEN_DEFAULT    ATMOS_PRECIP MULTIPLE
     :Infiltration     INF_HBV          PONDED_WATER SOIL[0]
     :Baseflow         BASE_LINEAR      SOIL[0]      SURFACE_WATER
     :Percolation      PERC_LINEAR      SOIL[0]      SOIL[1]
     :Baseflow         BASE_LINEAR      SOIL[1]      SURFACE_WATER
  :EndHydrologicProcesses

linear infil: equal to inf HBV with beta=1 or VIC_ARNO with b=1

TODO:

  1. Add SOILEVAP_LINEAR # should have anyhow
  2. Add PET_MOHYSE (or find literature source for better name)
  3. Support :DirectEvaporation which reduces rain & PET simultaneously prior to ponding as forcing correction [defaults to DIRECT_EVAP_NONE]
  4. Add ROUTE_GAMMA_CONVOLUTION2 to be able to override shape parameter of UH

All of these are very straightforward revisions (at least for James :) )

julemai commented 6 years ago

@huard I have a meeting with James Craig about this topic tomorrow. So, I will update you by tomorrow.

julemai commented 6 years ago

@huard The meeting with James was very fruitful. We will start with the implementations of this model (rather than HMETS). You estimate is reasonable. Probably a little too high. We will have this running for our meeting in October. :)

julemai commented 6 years ago

@richardarsenault During my meeting with James, we were wondering if you have an idea where the PET formulation in MOHYSE is originating from. This document isn't mentioning any reference for this. So, we would call the approach PET_MOHYSE in RAVEN.

@richardarsenault We want to compare our RAVEN implementations against the MATLAB codes. It would be great if we could use a parameterized model if you have one at hand. Otherwise I'd use one of our catchments but would need to find good parameter sets to get reasonable outputs. Let me know!

richardarsenault commented 6 years ago

@julemai We can certainly send you parameters and data to test the MOHYSE model on one of our catchments. I'll get that to you shortly.

@julemai The PET (ETP in french) is computed in equations 2-7 and was developed by the MOHYSE creators. It was supposed to be an equation that includes most processes that can be easily understood by students, not necessarily to perform super well.

julemai commented 6 years ago

@richardarsenault Great! I'll build up a framework then to benchmark the two versions- Raven and Matlab- against each other.

@richardarsenault Another document to improve my French. The process is going to be called PET_MOHYSE then. :)

julemai commented 6 years ago

We've got one example dataset and parameter set for MOHYSE from Richard. The MATLAB code yields an NSE of 0.732655. RAVEN with the following settings yields a NSE of -0.014518.

# :Alias MOHYSE_PARA_1      1.5589    # :GlobalParameter MOHYSE_PET_COEFF
# :Alias MOHYSE_PARA_2      0.9991    # LandUseParameterList --> AET_COEFF
# :Alias MOHYSE_PARA_3      2.1511    # LandUseParameterList --> MELT_FACTOR
# :Alias MOHYSE_PARA_4     -1.6101    # TODO make FREEZING_TEMP used in EstimatePotentialMelt a parameter
# :Alias MOHYSE_PARA_5      0.5000    # SoilProfiles         --> thickness of TOPSOIL (in mm????? must be m!!!)
# :Alias MOHYSE_PARA_6      0.1050    # SoilParameterList    --> PERC_COEFF (TOPSOIL)
# :Alias MOHYSE_PARA_7      0.0533    # SoilParameterList    --> BASEFLOW_COEFF (TOPSOIL)
# :Alias MOHYSE_PARA_8      0.0132    # SoilParameterList    --> BASEFLOW_COEFF (GWSOIL)
# :Alias MOHYSE_PARA_9      1.0474    # :SubBasinProperties  --> TIME_TO_PEAK
# :Alias MOHYSE_PARA_10     7.9628    # :SubBasinProperties  --> GAMMA_SHAPE

We work on getting this closer to each other. Good news is that it runs.

richardarsenault commented 6 years ago

Thanks Julie, Tell me if you need anything else.

julemai commented 6 years ago

MOHYSE is 99.9% emulated in Raven everything. Kudos to James Craig. Raven is running with an NSE of 0.731 for the test setup. The only thing we don't want to emulate is that MOHYSE allows for negative AET/soil moisture. That's the reason for the slight difference. The new version will be pushed to the Raven trunk on Monday.

I would show all the detailed results and how to setup Raven in MOHYSE-mode when we meet beginning of October. How does that sound?

richardarsenault commented 6 years ago

Sounds good, that is great news! Say thanks to James for me!

Would it be easy for you to provide a code to run GR4J with CemaNeige ? We could start testing with that test case for now, for example with regionalization and calibration.

Thanks!

julemai commented 6 years ago

Yep. That setup should actually be in the manual of Raven. I have one example for GR4J for the York watershed. I will double-check with James on Monday if this has GR4J and Cemaneige properly setup and then I'll share it with you.

If you prefer one of your basins please send it to me and I use that one.

richardarsenault commented 6 years ago

Hi, no problem for the catchment, it's more about the logic of connecting everything in the pavics framework than actually modelling anything interesting...  Thanks a lot!  Richard 

julemai commented 6 years ago

Haha! I see. I'll get it to you as soon as I have a confirmation that Cemaneige is in there as well.

You have a great weekend ahead! Julie

richardarsenault commented 6 years ago

Thanks, you as well!

Cheers, Richard

julemai commented 6 years ago

MOHYSE documentation is added to the Wiki.

Matlab runs with NSE = 0.732655 Raven runs with NSE = 0.731842

huard commented 6 years ago

I suggest we close this issue when a new release of RAVEN includes the MOHYSE emulator.

richardarsenault commented 6 years ago

In theory, all we need is to get the dev version on the SVN. I doubt that a new release will be made available quickly enough for our needs?

julemai commented 6 years ago

I think if we kindly ask James, he might release soon. But I'm guessing he wants to release MOHYSE and HMETS together and not creating two releases.

So, I think as soon as HMETS implementation (and the PET thingy) gets resolved and confirmed, we will release.

Anyways, I think for the long-term you want to have access to the developers' code. There's this other ticket where I explained here how to get access. I also added that to the wiki.

julemai commented 6 years ago

I can also send you a copy of the current trunk in the meanwhile....

huard commented 6 years ago

One release for MOHYSE and HMETS sounds good ! No need for the trunk just yet for me. Will let you know when I'm at that point.

richardarsenault commented 6 years ago

OK great! Julie, I am looking at the HMETS code now, and it seems James is right, the version you have (and that is available on the file exchange) has the double RET calculation. No idea why it was never spotted... I have analyzed the situation and reported my opinion to François and Jean-Luc, but I suspect they will agree.

I'll get back to you shortly but I feel that this item is 99.9% of the way to being ticked.

julemai commented 6 years ago

Awesome!! Let me know and I will finish up documentation and template packaging ASAP. James is doing releases and he hasn’t committed the HMETS yet. But I’m sure he’s only waiting for your „go“.

This is exciting!

julemai commented 6 years ago

@richardarsenault @huard Done.

See Wiki for full description and template setups for both RAVEN and OSTRICH.