Пример #1
0
        public Time(TimeDomain domain, int year)
        {
            // Set the time domain.
            this.Domain = domain;

            // Initialize the value array to the corect number of elements for the time domain.
            if (domain == TimeDomain.None)
            {
                this.Value = new int[0];
            }
            else if (domain == TimeDomain.Year)
            {
                this.Value = new int[1];
                this.Value[0] = year;
            }
            else if (domain == TimeDomain.Month || domain == TimeDomain.Quarter)
            {
                this.Value = new int[2];
                this.Value[0] = year;
                this.Value[1] = 1;
            }
            else // Day
            {
                this.Value = new int[3];
                this.Value[0] = year;
                this.Value[1] = 1;
                this.Value[2] = 1;
            }
        }
Пример #2
0
        public static string GetOutputFileHeaderFromTimeDomain(TimeDomain timeDomain)
        {
            string header = string.Empty;

            switch (timeDomain)
            {
            case TimeDomain.Year:
                header = "id\tyear\tpm25";
                break;

            case TimeDomain.YearMonth:
                header = "id\tyear\tmonth\tpm25";
                break;

            case TimeDomain.YearMonthDay:
                header = "id\tyear\tmonth\tday\tpm25";
                break;

            case TimeDomain.YearQuarter:
                header = "id\tyear\tquarter\tpm25";
                break;
            }

            return(header);
        }
Пример #3
0
        public static TimeDomainContainer DecodeTime(TimeDomain timeDomain, double encodedTime, double timeEncodingFactor)
        {
            TimeDomainContainer container = null;

            switch (timeDomain)
            {
            case TimeDomain.Year:
                container = new TimeDomainContainer(Convert.ToInt32(encodedTime * timeEncodingFactor));
                break;

            case TimeDomain.YearMonth:
                container = new TimeDomainContainer(Convert.ToInt32(encodedTime * timeEncodingFactor));
                break;

            case TimeDomain.YearMonthDay:
                int decodedTime = Convert.ToInt32((encodedTime * timeEncodingFactor));

                break;

            case TimeDomain.YearQuarter:
                container = new TimeDomainContainer(Convert.ToInt32(encodedTime * timeEncodingFactor));
                break;
            }

            return(container);
        }
Пример #4
0
        public static List <int> GetTimesToInterpolate(TimeDomain timeDomain)
        {
            List <int> times = new List <int>();

            int endValue = 0;

            switch (timeDomain)
            {
            case TimeDomain.Year:
                endValue = YEAR_TIME_DOMAIN_SPECIAL_CASE;
                break;

            case TimeDomain.YearMonth:
                endValue = 12;
                break;

            case TimeDomain.YearMonthDay:
                endValue = 365;
                break;

            case TimeDomain.YearQuarter:
                endValue = 4;
                break;
            }

            for (int indx = 1; indx <= endValue; indx++)
            {
                times.Add(indx);
            }

            return(times);
        }
Пример #5
0
        //TODO:  TEST this one.
        public static List <int> GetTimesToInterpolate(TimeDomain timeDomain, int yearRangeStart, int yearRangeEnd)
        {
            List <int> times = new List <int>();

            for (int indx = yearRangeStart; indx <= yearRangeEnd; indx++)
            {
                times.Add(indx);
            }


            return(times);
        }
Пример #6
0
        public static List <double> GetEncodedTimesToInterpolate(TimeDomain timeDomain, double timeEncodingFactor)
        {
            List <double> times = new List <double>();

            List <int> unEncodedTimes = GetTimesToInterpolate(timeDomain);

            foreach (int unEncodedTime in unEncodedTimes)
            {
                times.Add(unEncodedTime / timeEncodingFactor);
            }

            return(times);
        }
        public IPIDBaseController SetSampleTime(double sampleTime)
        {
            _TimeDomain = TimeDomain.DiscreteTime;

            if (sampleTime < 0 && sampleTime != -1)
            {
                throw new SimulinkModelGeneratorException("SampleTime can not be negative, besides -1 for inherited types");
            }

            _SampleTime = sampleTime.ToString();

            return(this);
        }
Пример #8
0
        public static Dictionary <int, TimeDomainContainer> GetTimesToInterpolateAsDictionary(int dataYear, TimeDomain timeDomain)
        {
            Dictionary <int, TimeDomainContainer> dictionary = new Dictionary <int, TimeDomainContainer>();

            int endValue = 0;

            switch (timeDomain)
            {
            case TimeDomain.Year:
                endValue = YEAR_TIME_DOMAIN_SPECIAL_CASE;

                break;

            case TimeDomain.YearMonth:
                endValue   = 12;
                dictionary = GetTimesToInterporlateDictionaryForMonthOrQuarter(dataYear, endValue, true);
                break;

            case TimeDomain.YearMonthDay:
                endValue   = 365;
                dictionary = GetTimesToInterporlateDictionaryForDay(dataYear);
                break;

            case TimeDomain.YearQuarter:
                endValue   = 4;
                dictionary = GetTimesToInterporlateDictionaryForMonthOrQuarter(dataYear, endValue, false);
                break;
            }


            return(dictionary);
        }
Пример #9
0
        public static Dictionary <double, TimeDomainContainer> GetEncodedTimesToInterpolateForYearDictionary(int dataStartYear, int dataEndYear, TimeDomain timeDomain, double timeEncodingFactor)
        {
            Dictionary <double, TimeDomainContainer> lookupDictionary = new Dictionary <double, TimeDomainContainer>();
            Dictionary <int, TimeDomainContainer>    dictionary       = GetTimesToInterpolateForYearAsDictionary(dataStartYear, dataEndYear);

            foreach (int key in dictionary.Keys)
            {
                lookupDictionary.Add(key / timeEncodingFactor, dictionary[key]);
            }

            return(lookupDictionary);
        }
Пример #10
0
        public static Dictionary <double, TimeDomain> GetTimesToInterpolateAsDictionary(TimeDomain timeDomain, int yearRangeStart, int yearRangeEnd)
        {
            Dictionary <double, TimeDomain> dictionary = new Dictionary <double, TimeDomain>();

            for (int indx = yearRangeStart; indx <= yearRangeEnd; indx++)
            {
                dictionary.Add(indx, timeDomain);
            }

            return(dictionary);
        }
Пример #11
0
        public static Dictionary <double, TimeDomain> GetEncodedTimesToInterpolateDictionary(TimeDomain timeDomain, double timeEncodingFactor, int yearStartRange, int yearEndRange)
        {
            Dictionary <double, TimeDomain> dictionary = new Dictionary <double, TimeDomain>();

            foreach (double key in GetTimesToInterpolateAsDictionary(timeDomain, yearStartRange, yearEndRange).Keys)
            {
                dictionary.Add(key / timeEncodingFactor, timeDomain);
            }

            return(dictionary);
        }
 public IPIDSampleTime SetTimeDomain(TimeDomain timeDomain)
 {
     _TimeDomain = timeDomain;
     return(this);
 }
Пример #13
0
 public AirCondition(string name, double windSpeedGround, double windDirection, TimeDomain timeDomain, Cloudage cloudage, double envTem)
 {
     this.Name            = name;
     this.WindDirection   = windDirection;
     this.WindSpeedGround = windSpeedGround;
     this.TimeDomain      = timeDomain;
     this.Cloudage        = cloudage;
     this.EnvTem          = envTem;
 }
Пример #14
0
 public AirCondition(string name, double windSpeedGround, double windDirection, TimeDomain timeDomain, SolarRadiation solarRadiation, double envTem)
 {
     this.Name            = name;
     this.WindDirection   = windDirection;
     this.WindSpeedGround = windSpeedGround;
     this.TimeDomain      = timeDomain;
     this.SolarRadiation  = solarRadiation;
     this.EnvTem          = envTem;
 }