static void ComputeStage(IFileSystem iFileSystem, ILogger iLogger, IProcessLauncher iProcess, IEnvironment iEnvironment, IDatabase iDatabase, WrfConfiguration config, PhysicsConfigurationProcessed physicsConfig) { DateTime runStartTime = DateTime.Now; string runId = Guid.NewGuid().ToString().Replace("-", ""); iLogger.LogLine("Updating physics parameters..."); NamelistHelper.UpdatePhysicsParameters(config, physicsConfig, iFileSystem); iLogger.LogLine("...done"); iLogger.LogLine("Changing directory to real directory..."); FileSystemHelper.SetCurrentDirectoryToWRFDirectory(config, iFileSystem); iLogger.LogLine("...done"); iLogger.LogLine("Launching real.exe..."); ProcessHelper.MpiRunRealExecutable(config, iProcess); iLogger.LogLine("...done"); iLogger.LogLine($"Launching wrf.exe against mp_physics={physicsConfig.MpPhysics}"); ProcessHelper.MpiRunWrfExecutable(config, iProcess); iLogger.LogLine("...done"); iLogger.LogLine("Locating the WrfOut file..."); string wrfOutFile = FileSystemHelper.RetrievePathToWrfOutFile(config, iFileSystem); iLogger.LogLine($"...found at {wrfOutFile}."); iLogger.LogLine("Retrieving scripts to run..."); string[] scripts = FileSystemHelper.RetrieveNclScriptsToRun(config, iFileSystem); iLogger.LogLine($"...found {scripts.Length} scripts: {string.Join(",", scripts)}"); //string wrfOutFile = @"C:\Users\Ben\Desktop\wrfout"; DateTime runEndTime = DateTime.Now; INetCDFReader netCdfReader = new NetCDFReader(wrfOutFile); DatabaseHelper.CreateRunRecord(netCdfReader, iDatabase, runStartTime, runEndTime, runId); LatLongRect latLongRect = ConfigurationHelper.ParseLatLongRect(config); DatabaseHelper.RecordVariables(netCdfReader, iDatabase, runId, latLongRect.UpperLeftLong, latLongRect.LowerRightLong, latLongRect.LowerRightLat, latLongRect.UpperLeftLat); foreach (string script in scripts) { iLogger.LogLine($"Launching NCL against {script}..."); ProcessHelper.NclRunScript(config, iProcess, script, wrfOutFile); iLogger.LogLine("...done"); ProcessHelper.MakeVideoWithFFMPEG(config, iProcess, script, runId); } }
private void OnPathChanged(string path) { if (File.Exists(path)) { var reader = NetCDFReader.Create(path); this._element.ItemsSource = from v in reader.Variables select v.Key; } else { this._element.ItemsSource = null; } }
protected virtual void OnPathChanged(string path) { if (File.Exists(path)) { try { this.Reader = NetCDFReader.Create(path); } catch { // Reader cannot be created this.Reader = null; } } else { this.Reader = null; } }