GR4J adjusting X2 and X3 for subbasins
Posted: Tue Mar 23, 2021 11:30 am
Is it possible to vary the X2 and X3 parameters for the GR4J model across subbasins in Raven?
I see there are GR4J_X2 and GR4J_X3 options under :SoilParameterList, but because of the way Raven is mimics the GR4J model, it seems these options manually change X2 and X3 at the soil unit level (clay, loam, etc..), not at the lumped soil profile level.
It appears possible to adjust X1, via the SOIL_PROD at the profile level, and X4, by making dummy land use classes and then manually adjusting via LandUseParameterList .
I quickly modified the GR4J Salmon tutorial example:
# - Soil classes ---------------------------------------------
:SoilClasses
:Attributes
:Units
SOIL_PROD
SOIL_ROUT
SOIL_TEMP
SOIL_GW
:EndSoilClasses
# ----Soil Profiles--------------------------------------------
# name,#horizons,{soiltype,thickness}x{#horizons}
# GR4J_X1 is thickness of first layer (SOIL_PROD), here 0.529
:SoilProfiles
DEFAULT_P, 4, SOIL_PROD , 0.529, SOIL_ROUT , 0.300, SOIL_TEMP , 1.000, SOIL_GW , 1.000,
soil1, 4, SOIL_PROD , 0.700, SOIL_ROUT , 0.300, SOIL_TEMP , 1.000, SOIL_GW , 1.000,
soil2, 4, SOIL_PROD , 0.200, SOIL_ROUT , 0.300, SOIL_TEMP , 1.000, SOIL_GW , 1.000,
:EndSoilProfiles
# ----Vegetation Classes---------------------------------------
:VegetationClasses
:Attributes, MAX_HT, MAX_LAI, MAX_LEAF_COND
:Units, m, none, mm_per_s
VEG_ALL, 0.0, 0.0, 0.0
:EndVegetationClasses
# --Land Use Classes------------------------------------------
:LandUseClasses
:Attributes, IMPERM, FOREST_COV
:Units , frac, frac
LU_ALL, 0.0, 0.0
lu1, 0.0, 0.0
lu2, 0.0, 0.0
:EndLandUseClasses
# -Global Parameters -----------------------------------------
:GlobalParameter RAINSNOW_TEMP 0.0
:GlobalParameter RAINSNOW_DELTA 1.0
:GlobalParameter AIRSNOW_COEFF 0.053 # [1/d] = 1.0 - CEMANEIGE_X2 = 1.0 - x6
:GlobalParameter AVG_ANNUAL_SNOW 16.9 # [mm] = CEMANEIGE_X1 = x5
:GlobalParameter PRECIP_LAPSE 0.0004
:GlobalParameter ADIABATIC_LAPSE 0.0065
:GlobalParameter AVG_ANNUAL_RUNOFF 50
:SoilParameterList
:Parameters, POROSITY , GR4J_X3, GR4J_X2
:Units , none , mm, mm/d
[DEFAULT], 1.0 , 407.29, -3.396
soil1, 1.0 , 200, 3.396
soil2, 1.0 , 600, -3.396
:EndSoilParameterList
:LandUseParameterList
:Parameters, GR4J_X4, MELT_FACTOR
:Units , d, mm/d/C
[DEFAULT], 1.072, 7.73
lu1, 1, 7.73
lu2, 2, 7.73
:EndLandUseParameterList
Any help would be appreciated. For now I'm just runnning gr4j outside raven and dumping flows, but it would be nice to have everything running internally - thanks!
I see there are GR4J_X2 and GR4J_X3 options under :SoilParameterList, but because of the way Raven is mimics the GR4J model, it seems these options manually change X2 and X3 at the soil unit level (clay, loam, etc..), not at the lumped soil profile level.
It appears possible to adjust X1, via the SOIL_PROD at the profile level, and X4, by making dummy land use classes and then manually adjusting via LandUseParameterList .
I quickly modified the GR4J Salmon tutorial example:
# - Soil classes ---------------------------------------------
:SoilClasses
:Attributes
:Units
SOIL_PROD
SOIL_ROUT
SOIL_TEMP
SOIL_GW
:EndSoilClasses
# ----Soil Profiles--------------------------------------------
# name,#horizons,{soiltype,thickness}x{#horizons}
# GR4J_X1 is thickness of first layer (SOIL_PROD), here 0.529
:SoilProfiles
DEFAULT_P, 4, SOIL_PROD , 0.529, SOIL_ROUT , 0.300, SOIL_TEMP , 1.000, SOIL_GW , 1.000,
soil1, 4, SOIL_PROD , 0.700, SOIL_ROUT , 0.300, SOIL_TEMP , 1.000, SOIL_GW , 1.000,
soil2, 4, SOIL_PROD , 0.200, SOIL_ROUT , 0.300, SOIL_TEMP , 1.000, SOIL_GW , 1.000,
:EndSoilProfiles
# ----Vegetation Classes---------------------------------------
:VegetationClasses
:Attributes, MAX_HT, MAX_LAI, MAX_LEAF_COND
:Units, m, none, mm_per_s
VEG_ALL, 0.0, 0.0, 0.0
:EndVegetationClasses
# --Land Use Classes------------------------------------------
:LandUseClasses
:Attributes, IMPERM, FOREST_COV
:Units , frac, frac
LU_ALL, 0.0, 0.0
lu1, 0.0, 0.0
lu2, 0.0, 0.0
:EndLandUseClasses
# -Global Parameters -----------------------------------------
:GlobalParameter RAINSNOW_TEMP 0.0
:GlobalParameter RAINSNOW_DELTA 1.0
:GlobalParameter AIRSNOW_COEFF 0.053 # [1/d] = 1.0 - CEMANEIGE_X2 = 1.0 - x6
:GlobalParameter AVG_ANNUAL_SNOW 16.9 # [mm] = CEMANEIGE_X1 = x5
:GlobalParameter PRECIP_LAPSE 0.0004
:GlobalParameter ADIABATIC_LAPSE 0.0065
:GlobalParameter AVG_ANNUAL_RUNOFF 50
:SoilParameterList
:Parameters, POROSITY , GR4J_X3, GR4J_X2
:Units , none , mm, mm/d
[DEFAULT], 1.0 , 407.29, -3.396
soil1, 1.0 , 200, 3.396
soil2, 1.0 , 600, -3.396
:EndSoilParameterList
:LandUseParameterList
:Parameters, GR4J_X4, MELT_FACTOR
:Units , d, mm/d/C
[DEFAULT], 1.072, 7.73
lu1, 1, 7.73
lu2, 2, 7.73
:EndLandUseParameterList
Any help would be appreciated. For now I'm just runnning gr4j outside raven and dumping flows, but it would be nice to have everything running internally - thanks!