public void Constant(float ppt = 0.15f, float tmax = 15, float tmin = 5, float pet = 0.1f)
        {
            var grid             = this.Grid as MFGrid;
            DataCube <float> mat = new DataCube <float>(1, this.TimeService.NumTimeStep, grid.ActiveCellCount);

            mat.Variables             = new string[] { "hru_ppt" };
            mat.DateTimes             = this.TimeService.Timeline.ToArray();
            mat.ILArrays[0][":", ":"] = 0.1f;

            MMSDataFile data = new MMSDataFile(MasterPackage.PrecipitationFile);

            data.Save(mat);

            mat.Variables[0]          = "hru_tmax";
            mat.ILArrays[0][":", ":"] = UnitConversion.Celsius2Fahrenheit(15);
            data = new MMSDataFile(MasterPackage.TempMaxFile);
            data.Save(mat);

            mat.Variables[0]          = "hru_tmin";
            mat.ILArrays[0][":", ":"] = UnitConversion.Celsius2Fahrenheit(5);
            data = new MMSDataFile(MasterPackage.TempMinFile);
            data.Save(mat);

            mat.Variables[0]          = "hru_pet";
            mat.ILArrays[0][":", ":"] = 0.15f;
            data = new MMSDataFile(MasterPackage.PETFile);
            data.Save(mat);
        }
        public override bool Execute(DotSpatial.Data.ICancelProgressHandler cancelProgressHandler)
        {
            DataCubeStreamReader ass = new DataCubeStreamReader(InputFileName);
            DataCubeStreamWriter dcw = new DataCubeStreamWriter(OutputFileName);

            ass.Open();
            dcw.WriteHeader(ass.Variables, ass.FeatureCount);

            if (InputTemperatureUnit == TemperatureUnit.Kelvin)
            {
                for (int t = 0; t < ass.NumTimeStep; t++)
                {
                    var mat = ass.LoadStep();
                    for (int i = 0; i < mat.Size[2]; i++)
                    {
                        mat[0, 0, i] = UnitConversion.Kelvin2Fahrenheit(mat[0, 0, i]);
                    }
                    dcw.WriteStep(1, ass.FeatureCount, mat);
                }
            }
            else if (InputTemperatureUnit == TemperatureUnit.Celsius)
            {
                for (int t = 0; t < ass.NumTimeStep; t++)
                {
                    var mat = ass.LoadStep();
                    for (int i = 0; i < mat.Size[2]; i++)
                    {
                        mat[0, 0, i] = UnitConversion.Celsius2Fahrenheit(mat[0, 0, i]);
                    }
                    dcw.WriteStep(1, ass.FeatureCount, mat);
                }
            }
            ass.Close();
            dcw.Close();
            return(true);
        }