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