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);
        }