[16134] | 1 | Index: ../trunk-jpl/src/m/classes/snowpack.m
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/m/classes/snowpack.m (revision 15930)
|
---|
| 4 | +++ ../trunk-jpl/src/m/classes/snowpack.m (revision 15931)
|
---|
| 5 | @@ -68,6 +68,10 @@
|
---|
| 6 | interpolations1d_vw_args = '';
|
---|
| 7 | %}}}
|
---|
| 8 | %filters {{{
|
---|
| 9 | + filters={'TA::filter1',{'soft',[-20 10]}};
|
---|
| 10 | + filters=NaN;
|
---|
| 11 | + filter_values=NaN;
|
---|
| 12 | +
|
---|
| 13 | filters_ta_filter1 = '';
|
---|
| 14 | filters_ta_arg1 = NaN;
|
---|
| 15 | filters_rh_filter1 = '';
|
---|
| 16 | @@ -274,6 +278,8 @@
|
---|
| 17 | %}}}
|
---|
| 18 | %filters {{{
|
---|
| 19 | filter_values={'MIN_MAX','RATE_FILTER1','RATE_FILTER2','UNHEATED_RAIN_GAUGE_FILTER','WMO_UNDERCATCH_FILTER','WMO_UNDERCATCH_FILTER-SIMPLIFIED','UNVENTILLATED_TEMPERATURE_SENSOR','ADD_AN_OFFSET'};
|
---|
| 20 | +
|
---|
| 21 | +
|
---|
| 22 | md=checkfield(md,'snowpack.filters_ta_filter1','values',{filter_values});
|
---|
| 23 | if strcmpi(md.snowpack.filters_ta_filter1,'MIN_MAX'), md=checkfield(md,'snowpack.filters_ta_filter1','size',[1 NaN]); end
|
---|
| 24 | md=checkfield(md,'snowpack.filters_ta_arg1','values',{filter_values});
|
---|
| 25 | @@ -335,64 +341,83 @@
|
---|
| 26 |
|
---|
| 27 | disp(sprintf(' Snowpack solution parameters:'));
|
---|
| 28 | disp(sprintf('\n %s','Snowpack parameters:')); % {{{
|
---|
| 29 | - fielddisplay(obj,'snowpack_meas_tss',' ');
|
---|
| 30 | - fielddisplay(obj,'snowpack_enforce_measured_snow_heights',' ');
|
---|
| 31 | - fielddisplay(obj,'snowpack_sw_mode',' ');
|
---|
| 32 | - fielddisplay(obj,'snowpack_incoming_longwave',' ');
|
---|
| 33 | - fielddisplay(obj,'snowpack_height_of_wind_value',' ');
|
---|
| 34 | - fielddisplay(obj,'snowpack_height_of_meteo_values',' ');
|
---|
| 35 | - fielddisplay(obj,'snowpack_neutral',' ');
|
---|
| 36 | - fielddisplay(obj,'snowpack_roughness_length',' ');
|
---|
| 37 | - fielddisplay(obj,'snowpack_number_slopes',' ');
|
---|
| 38 | - fielddisplay(obj,'snowpack_snow_redistribution',' ');
|
---|
| 39 | - fielddisplay(obj,'snowpack_calculation_step_length',' ');
|
---|
| 40 | - fielddisplay(obj,'snowpack_change_bc',' ');
|
---|
| 41 | - fielddisplay(obj,'snowpack_thresh_change_bc',' ');
|
---|
| 42 | - fielddisplay(obj,'snowpack_snp_soil',' ');
|
---|
| 43 | - fielddisplay(obj,'snowpack_soil_flux',' ');
|
---|
| 44 | - fielddisplay(obj,'snowpack_geo_heat',' ');
|
---|
| 45 | - fielddisplay(obj,'snowpack_canopy',' ');
|
---|
| 46 | + fielddisplay(obj,'snowpack_meas_tss',{'A measured surface temperature is available and can be reliably ','used for various consistency tests (it needs to be set to true if enabling CHANGE_BC) (0 or 1)'});
|
---|
| 47 | + fielddisplay(obj,'snowpack_enforce_measured_snow_heights','Input mode by which a measurement of snow depth is used to drive the snow cover mass balance (0 or 1)');
|
---|
| 48 | + fielddisplay(obj,'snowpack_sw_mode',{'Define the shortwave radiation input:',...
|
---|
| 49 | + '0 Incoming shortwave radiation is measured and albedo estimated by the model',...
|
---|
| 50 | + '1 Reflected shortwave radiation is available as input and albedo is estimated by the model (IMIS standard)',...
|
---|
| 51 | + '2 Incoming and reflected shortwave radiation are both measured and the albedo is estimated from both measurements subject to plausibility checks.'});
|
---|
| 52 | + fielddisplay(obj,'snowpack_incoming_longwave','Use the provided incoming long wave on the virtual slopes? (0 or 1)');
|
---|
| 53 | + fielddisplay(obj,'snowpack_height_of_wind_value',{'The instrument height (or model layer height) for wind input data; note that height ',...
|
---|
| 54 | + 'is above ground for a standard SNOWPACK application but above surface (snow or ground) for Alpine3D applications '});
|
---|
| 55 | + fielddisplay(obj,'snowpack_height_of_meteo_values',{'The instrument height (or model layer height) for meteorological input data except for wind,',...
|
---|
| 56 | + 'which may be at a different height; note that height is above ground for a standard SNOWPACK ',...
|
---|
| 57 | + 'application but above surface (snow or ground) for Alpine3D applications. '});
|
---|
| 58 | + fielddisplay(obj,'snowpack_neutral',{'Select the atmospheric stability correction model:',...
|
---|
| 59 | + '-1 use a simplified Richardson number stability correction',...
|
---|
| 60 | + '0 assume standard Monin-Obukhov bulk formulation for surface exchange iteration with Paulson, Stearns and Weidner (can be used with BC_CHANGE=0)',...
|
---|
| 61 | + '1 force Monin-Obukhov formulation to assume neutral conditions regardless of the actual stratification; it has been shown to work well in ',...
|
---|
| 62 | + 'complex terrain settings. It should be used with BC_CHANGE=1, i.e., Dirichlet /* but also is recommended with Neumann b.c., i.e., BC_CHANGE=0.'});
|
---|
| 63 | + fielddisplay(obj,'snowpack_roughness_length',{'Aerodynamic roughness length as a parameter for the Monin-Obukhov bulk formulation;',...
|
---|
| 64 | + 'A typical value for complex terrain is 0.01 m and for snow covered flat sites 0.001 m. '});
|
---|
| 65 | + fielddisplay(obj,'snowpack_number_slopes',{'Based on meteorological input from a (flat field) automatic station or numerical weather model,',...
|
---|
| 66 | + 'up to 8 expositions can be calculated in addition to the flat field if the corresponding *.sno files are provided. For example,',...
|
---|
| 67 | + 'if you provide a flat field *.snow file (mandatory), which is named KLO3.sno and you want 4 slopes to be calculated the corresponding',...
|
---|
| 68 | + 'slope files should be named KLO21.sno, ...,KLO24.sno '});
|
---|
| 69 | + fielddisplay(obj,'snowpack_snow_redistribution',{'Specifies if redistribution of snow is allowed from (upwind) expositions to lee slopes.',...
|
---|
| 70 | + 'In case just the flat field is calculated, snow erosion is enabled but only for "ENFORCE_MEASURED_SNOW_HEIGHTS".'});
|
---|
| 71 | + fielddisplay(obj,'snowpack_calculation_step_length',{'Internal time step (in minutes) used for model simulation. Please note that this MUST ',...
|
---|
| 72 | + 'be the same as HNW::accumulate (the latter being in seconds) if re-acumulating precipitation, otherwise it would lead to wrong results.'});
|
---|
| 73 | + fielddisplay(obj,'snowpack_change_bc',{'Use measured surface temperature as Dirichlet temperature BC for sub-freezing snowpacks and switch to ',...
|
---|
| 74 | + 'Neumann only for melting snowpacks. If set to false, assumes Neumann boundary conditions.'});
|
---|
| 75 | + fielddisplay(obj,'snowpack_thresh_change_bc','Threshold value (small number below freezing), which switches from Dirichlet to Neumann BCs if CHANGE_BC is selected');
|
---|
| 76 | + fielddisplay(obj,'snowpack_snp_soil','Soil layers as defined by the *.sno files are included in the simulation');
|
---|
| 77 | + fielddisplay(obj,'snowpack_soil_flux','Assume that the lower temperature boundary condition is given by GEO_HEAT (Neumann) and not by a measured temperature');
|
---|
| 78 | + fielddisplay(obj,'snowpack_geo_heat','Constant geothermal heat flux at great) depth W m-2): Lower flux boundary condition for temperature equation if BC is Neumann');
|
---|
| 79 | + fielddisplay(obj,'snowpack_canopy','Switch to tell the model that canopy is present (note that Canopy parameters should then be provided in the *.sno file)');
|
---|
| 80 | % }}}
|
---|
| 81 | disp(sprintf('\n %s','Snowpackadvanced parameters:')); % {{{
|
---|
| 82 | - fielddisplay(obj,'snowpackadvanced_variant',''); % use 320 kg m-3 for fixed density
|
---|
| 83 | - fielddisplay(obj,'snowpackadvanced_hn_density','');
|
---|
| 84 | + fielddisplay(obj,'snowpackadvanced_variant','variant selection (includes a choice of specific models, DEFAULT, ANTARCTICA and JAPAN )'); % use 320 kg m-3 for fixed density
|
---|
| 85 | + fielddisplay(obj,'snowpackadvanced_hn_density',{'Fixed value to be used as new snow density if a constant density model is chosen, otherwise the choices are "PARAMETERIZED" "EVENT" "MEASURED"'});
|
---|
| 86 | % }}}
|
---|
| 87 | disp(sprintf('\n %s','General parameters:')); % {{{
|
---|
| 88 | fielddisplay(obj,'general_pluginpath','');
|
---|
| 89 | - fielddisplay(obj,'general_buff_chunk_size',' ');
|
---|
| 90 | - fielddisplay(obj,'general_buff_before',' ');
|
---|
| 91 | + fielddisplay(obj,'general_buff_chunk_size','Size in days of a chunk of data to read at once.');
|
---|
| 92 | + fielddisplay(obj,'general_buff_before','Alternate way of buffer centering: When rebuffering, the new date will be located BUFF_BEFORE days from the beginning of the buffer (therefore, it takes a value in days). ');
|
---|
| 93 | % }}}
|
---|
| 94 | disp(sprintf('\n %s','Input parameter:')); % {{{
|
---|
| 95 | - fielddisplay(obj,'input_coordsys','');
|
---|
| 96 | + fielddisplay(obj,'input_coordsys','coordinates in the Swiss Grid (http://geomatics.ladetto.ch/ch1903_wgs84_de.pdf). One of CH1903,UTM,UPS,PROJ4 or LOCAL');
|
---|
| 97 | fielddisplay(obj,'input_coordparam',' ');
|
---|
| 98 | fielddisplay(obj,'input_time_zone',' ');
|
---|
| 99 | - fielddisplay(obj,'input_meteo',' ');
|
---|
| 100 | - fielddisplay(obj,'input_meteopath',' ');
|
---|
| 101 | - fielddisplay(obj,'input_station1',' ');
|
---|
| 102 | - fielddisplay(obj,'input_snowfile1',' ');
|
---|
| 103 | + fielddisplay(obj,'input_meteo','plugin for METEO data (one of BORMA,COSMO,GEOTOP,GRIB,GS,IMIS,SMET,SNOWPACK');
|
---|
| 104 | + fielddisplay(obj,'input_meteopath','string containing the path to the xml files.');
|
---|
| 105 | + fielddisplay(obj,'input_station1','Meteorology file for station number #');
|
---|
| 106 | + fielddisplay(obj,'input_snowfile1','File name for the initial snow profile for station number #');
|
---|
| 107 | % }}}
|
---|
| 108 | disp(sprintf('\n %s','Output parameters:')); % {{{
|
---|
| 109 | - fielddisplay(obj,'output_coordsys',' ');
|
---|
| 110 | - fielddisplay(obj,'output_coordparam',' ');
|
---|
| 111 | - fielddisplay(obj,'output_time_zone',' ');
|
---|
| 112 | - fielddisplay(obj,'output_meteopath',' ');
|
---|
| 113 | - fielddisplay(obj,'output_experiment',' ');
|
---|
| 114 | - fielddisplay(obj,'output_ts_write',' ');
|
---|
| 115 | - fielddisplay(obj,'output_ts_start',' ');
|
---|
| 116 | - fielddisplay(obj,'output_ts_days_between',' ');
|
---|
| 117 | - fielddisplay(obj,'output_profile',' ');
|
---|
| 118 | - fielddisplay(obj,'output_prof_write',' ');
|
---|
| 119 | - fielddisplay(obj,'output_prof_start',' ');
|
---|
| 120 | - fielddisplay(obj,'output_prof_days_between',' ');
|
---|
| 121 | + fielddisplay(obj,'output_coordsys','Coordinates in the Swiss Grid http://geomatics.ladetto.ch/ch1903_wgs84_de.pdf. One of CH1903,UTM,UPS,PROJ4 or LOCAL ');
|
---|
| 122 | + fielddisplay(obj,'output_coordparam','');
|
---|
| 123 | + fielddisplay(obj,'output_time_zone','');
|
---|
| 124 | + fielddisplay(obj,'output_meteopath','Path to the outputs (this path MUST exist, it won''t be created)');
|
---|
| 125 | + fielddisplay(obj,'output_experiment','Option to give an additional simulation specific output name to the run in addition to "STATION_NAME"');
|
---|
| 126 | + fielddisplay(obj,'output_ts_write','Write meteo data out? (0 or 1)');
|
---|
| 127 | + fielddisplay(obj,'output_ts_start','When to start writing meteo data out (offset, in days)');
|
---|
| 128 | + fielddisplay(obj,'output_ts_days_between','How often to write meteo data out (in days: 3 hours=.125, 1 hour=4.1666e-2)');
|
---|
| 129 | + fielddisplay(obj,'output_profile','How to write the profiles (default: ASCII, choice is ASCII,IMIS or ASCII IMIS)');
|
---|
| 130 | +)');
|
---|
| 131 | + fielddisplay(obj,'output_prof_write','Write profile data out? (0 or 1) ');
|
---|
| 132 | + fielddisplay(obj,'output_prof_start','When to start writing profile data out (offset, in days)');
|
---|
| 133 | + fielddisplay(obj,'output_prof_days_between','How often to write profile data out (in days: 3 hours=.125, 1 hour=4.1666e-2)');
|
---|
| 134 | % }}}
|
---|
| 135 | disp(sprintf('\n %s','Interpolations1d parameters:')); % {{{
|
---|
| 136 | - fielddisplay(obj,'interpolations1d_window_size',' '); %that is 5 d and 2 h; 1 d = 86400
|
---|
| 137 | - fielddisplay(obj,'interpolations1d_hnw_resample',' ');
|
---|
| 138 | - fielddisplay(obj,'interpolations1d_hs_resample',' ');
|
---|
| 139 | - fielddisplay(obj,'interpolations1d_tsg_resample',' ');
|
---|
| 140 | - fielddisplay(obj,'interpolations1d_rho_hn_resample',' ');
|
---|
| 141 | - fielddisplay(obj,'interpolations1d_vw_resample',' ');
|
---|
| 142 | - fielddisplay(obj,'interpolations1d_vw_args',' ');
|
---|
| 143 | + fielddisplay(obj,'interpolations1d_window_size','Affects resampling: expresses (in seconds) how far a valid point can be searched for when re-interpolating a missing value');
|
---|
| 144 | + fielddisplay(obj,'interpolations1d_hnw_resample','NONE, NEAREST_NEIGHBOUR, ACCUMULATE or LINEAR');
|
---|
| 145 | + ');
|
---|
| 146 | + fielddisplay(obj,'interpolations1d_hs_resample','Mean average processing. The mean average filter returns the mean value of all values within a user given time window. (NONE, NEAREST_NEIGHBOUR, ACCUMULATE or LINEAR)');
|
---|
| 147 | + fielddisplay(obj,'interpolations1d_tsg_resample','Mean average processing. The mean average filter returns the mean value of all values within a user given time window.(NONE, NEAREST_NEIGHBOUR, ACCUMULATE or LINEAR)');
|
---|
| 148 | + fielddisplay(obj,'interpolations1d_rho_hn_resample','(NONE, NEAREST_NEIGHBOUR, ACCUMULATE or LINEAR)');
|
---|
| 149 | + fielddisplay(obj,'interpolations1d_vw_resample','(NONE, NEAREST_NEIGHBOUR, ACCUMULATE or LINEAR)');
|
---|
| 150 | + fielddisplay(obj,'interpolations1d_vw_args','default nothing, otherwise, ''extrapolcate''');
|
---|
| 151 | % }}}
|
---|
| 152 | disp(sprintf('\n %s','Filters parameters:')); % {{{
|
---|
| 153 | fielddisplay(obj,'filters_ta_filter1',' ');
|
---|