Exemple #1
0
 public EventStore(EventStoreConfiguration configuration, IEventMigratorManager eventMigratorManager, IEventMigrationHierarchyManager eventMigrationHierarchyManager,
                             ISerializer serializer, IEventParameters eventParameters)
 {
     _eventMigratorManager = eventMigratorManager;
     _eventMigrationHierarchyManager = eventMigrationHierarchyManager;
     _serializer = serializer;
     _eventParameters = eventParameters;
     _connection = (OracleConnection)configuration.GetConnection();
 }
Exemple #2
0
 public EventStore(EventStoreConfiguration configuration, IEventMigratorManager eventMigratorManager, IEventMigrationHierarchyManager eventMigrationHierarchyManager,
                   ISerializer serializer, IEventParameters eventParameters)
 {
     _eventMigratorManager           = eventMigratorManager;
     _eventMigrationHierarchyManager = eventMigrationHierarchyManager;
     _serializer      = serializer;
     _eventParameters = eventParameters;
     _connection      = (OracleConnection)configuration.GetConnection();
 }
		//---------------------------------------------------------------------

		public Parameters(int                timestep,
		                  IEventParameters[] eventParameters,
		                  ISeverity[]        severities,
		                  string             mapNameTemplate,
		                  string             logFileName)
		{
			this.timestep = timestep;
			this.eventParameters = eventParameters;
			this.severities = severities;
			this.mapNamesTemplate = mapNameTemplate;
			this.logFileName = logFileName;
		}
        //---------------------------------------------------------------------

        public static double ComputeSizeHectares(IEventParameters eventParms)
        {
            // double sizeGenerated = PlugIn.ModelCore.GenerateExponential(eventParms.MeanSize);
            PlugIn.ModelCore.ExponentialDistribution.Lambda = 1.0 / eventParms.MeanSize;
            double sizeGenerated = PlugIn.ModelCore.ExponentialDistribution.NextDouble();

            if (sizeGenerated < eventParms.MinSize)
            {
                return(eventParms.MinSize);
            }
            else if (sizeGenerated > eventParms.MaxSize)
            {
                return(eventParms.MaxSize);
            }
            else
            {
                return(sizeGenerated);
            }
        }
        //---------------------------------------------------------------------

        public static Event Initiate(ActiveSite site,
                                     int windTimestep)
        {
            IEcoregion       ecoregion        = PlugIn.ModelCore.Ecoregion[site];
            IEventParameters eventParms       = windEventParms[ecoregion.Index];
            double           eventProbability = (windTimestep * PlugIn.ModelCore.CellArea) /
                                                (eventParms.RotationPeriod * eventParms.MeanSize);

            if (PlugIn.ModelCore.GenerateUniform() <= eventProbability)
            {
                Event windEvent = new Event(site, ComputeSizeHectares(eventParms));
                windEvent.Spread(PlugIn.ModelCore.CurrentTime);
                return(windEvent);
            }
            else
            {
                return(null);
            }
        }
        //---------------------------------------------------------------------

        public static void Initialize(IEventParameters[] eventParameters,
                                      ISeverity[]        severities)
        {
            windEventParms = eventParameters;
            Event.severities = severities;
            //Event.timestep = Model.Core.Timestep;

            cohorts = Model.Core.SuccessionCohorts as ILandscapeCohorts;
            if (cohorts == null)
                throw new System.ApplicationException("Error: Cohorts don't support age-cohort interface");


//            successionPlugIn = Model.GetSuccession<AgeCohort.ICohort>();
//            cohorts = successionPlugIn.Cohorts;
        }
        //---------------------------------------------------------------------

        public static double ComputeSizeHectares(IEventParameters eventParms)
        {
            double sizeGenerated = Random.GenerateExponential(eventParms.MeanSize);
            if (sizeGenerated < eventParms.MinSize)
                return eventParms.MinSize;
            else if (sizeGenerated > eventParms.MaxSize)
                return eventParms.MaxSize;
            else
                return sizeGenerated;
        }
		//---------------------------------------------------------------------

		public static void Initialize(IEventParameters[] eventParameters,
		                              ISeverity[]        severities,
		                              int                timestep)
		{
			windEventParms = eventParameters;
			Event.severities = severities;
			Event.timestep = timestep;
		}
		//---------------------------------------------------------------------

		public static void Initialize(IEventParameters[] eventParameters,
		                              ISeverity[]        severities)
		{
			windEventParms = eventParameters;
			Event.severities = severities;
		}
		//---------------------------------------------------------------------

		public static void Initialize(IEventParameters[] eventParameters,
		                              ISeverity[]        severities,
		                              int                timestep)
		{
			windEventParms = eventParameters;
			Event.severities = severities;
			Event.timestep = timestep;

			successionPlugIn = Model.GetSuccession<AgeCohort.ICohort>();
			cohorts = successionPlugIn.Cohorts;
		}
        //---------------------------------------------------------------------

        public static double ComputeSizeHectares(IEventParameters eventParms)
        {
            // double sizeGenerated = PlugIn.ModelCore.GenerateExponential(eventParms.MeanSize);
            PlugIn.ModelCore.ExponentialDistribution.Lambda = 1.0 / eventParms.MeanSize;
            double sizeGenerated = PlugIn.ModelCore.ExponentialDistribution.NextDouble();

            if (sizeGenerated < eventParms.MinSize)
                return eventParms.MinSize;
            else if (sizeGenerated > eventParms.MaxSize)
                return eventParms.MaxSize;
            else
                return sizeGenerated;
        }
        //---------------------------------------------------------------------

        public static void Initialize(IEventParameters[] eventParameters,
                                      List<ISeverity>        severities)
        {
            windEventParms = eventParameters;
            Event.severities = severities;

            cohorts = Model.Core.SuccessionCohorts as ILandscapeCohorts;
            if (cohorts == null)
                throw new System.ApplicationException("Error: Cohorts don't support age-cohort interface");

        }