Exemplo n.º 1
0
        public static void Save(string directory, Madingley.Common.Configuration c)
        {
            CreateDirectories(directory);

            var convertTimeSteps = 12;

            var parameters = new Tuple <string, string>[]
            {
                Tuple.Create("Parameter", "Value"),
                Tuple.Create("Timestep Units", c.GlobalModelTimeStepUnit),
                Tuple.Create("Length of simulation (years)", (c.NumTimeSteps / convertTimeSteps).ToString()),
                Tuple.Create("Burn-in (years)", (c.BurninTimeSteps / convertTimeSteps).ToString()),
                Tuple.Create("Impact duration (years)", (c.ImpactTimeSteps / convertTimeSteps).ToString()),
                Tuple.Create("Recovery duration (years)", (c.RecoveryTimeSteps / convertTimeSteps).ToString()),
                Tuple.Create("Plankton size threshold", c.PlanktonDispersalThreshold.ToString()),
                Tuple.Create("Draw Randomly", c.DrawRandomly ? "yes" : "no"),
                Tuple.Create("Extinction Threshold", c.ExtinctionThreshold.ToString()),
                Tuple.Create("Maximum Number Of Cohorts", c.MaxNumberOfCohorts.ToString()),
                Tuple.Create("Run Cells In Parallel", c.RunCellsInParallel ? "yes" : "no"),
                Tuple.Create("Run Simulations In Parallel", c.RunSimulationsInParallel ? "yes" : "no"),
                Tuple.Create("Run Single Realm", c.RunRealm),
                Tuple.Create("Impact Cell Index", System.String.Join(";", c.ImpactCellIndices)),
                // Tuple.Create("ImpactAll", if c.ImpactAll then "yes" else "no"),
                Tuple.Create("Dispersal only", c.DispersalOnly ? "yes" : "no"),
                Tuple.Create("Dispersal only type", c.DispersalOnlyType)
            };

            using (var writer = new StreamWriter(Path.Combine(directory, "SimulationControlParameters.csv")))
            {
                parameters.ToList().ForEach(kv => writer.WriteLine(String.Format("{0},{1}", kv.Item1, kv.Item2)));
            }

            var fileLocationParameters = new Tuple <string, string>[]
            {
                Tuple.Create("Parameter", "Value"),
                Tuple.Create("Mass Bin Filename", "MassBinDefinitions.csv"),
                Tuple.Create("Environmental Data File", "EnvironmentalDataLayers.csv"),
                Tuple.Create("Cohort Functional Group Definitions File", "CohortFunctionalGroupDefinitions.csv"),
                Tuple.Create("Stock Functional Group Definitions File", "StockFunctionalGroupDefinitions.csv"),
                Tuple.Create("Ecological parameters file", "EcologicalParameters.csv")
            };

            using (var writer = new StreamWriter(Path.Combine(directory, "FileLocationParameters.csv")))
            {
                fileLocationParameters.ToList().ForEach(kv => writer.WriteLine(String.Format("{0},{1}", kv.Item1, kv.Item2)));
            }

            EcologicalParameters.Save(c.EcologicalParameters, Path.Combine(directory, "Ecological Definition Files", "EcologicalParameters.csv"));

            FunctionalGroupDefinitions.Save(c.CohortFunctionalGroupDefinitions, Path.Combine(directory, "Ecological Definition Files", "CohortFunctionalGroupDefinitions.csv"));
            FunctionalGroupDefinitions.Save(c.StockFunctionalGroupDefinitions, Path.Combine(directory, "Ecological Definition Files", "StockFunctionalGroupDefinitions.csv"));

            ScenarioParameters.SaveScenarios(c.ScenarioParameters, Path.Combine(directory, "Initial Model State Setup", "Scenarios.csv"));
        }
Exemplo n.º 2
0
 public static Madingley.Common.ScenarioParameters[] RandomScenarioParameters(Random rnd, int length1, int length2)
 {
     return(Enumerable.Range(0, length2).Select(i => ScenarioParameters.RandomScenarioParameters(rnd, length1)).ToArray());
 }