//============================================================================================
        // METHODS
        // ===============================================================================================

        ///-------------------------------------------------------------------------------------------------
        /// <summary>   Default constructor. </summary>
        ///
        /// <exception cref="WaterSim_Exception">   Thrown when watersim_. </exception>
        ///-------------------------------------------------------------------------------------------------

        public WaterSimManagerClass(string DataDirectoryName, string TempDirectoryName)
        {
            // Some Basic Tests
            if (_isWaterSimInstatiated)
            {
                throw new WaterSim_Exception(WS_Strings.wsOnlyOneObject);
            }

            // Good to go, set initiated to true;
            _isWaterSimInstatiated = true;

            // Set the Version string
            Assembly asm       = Assembly.GetExecutingAssembly();
            FileInfo fi        = new FileInfo(asm.Location);
            DateTime LastWrite = fi.LastWriteTime;

            FAPIVersion = _APIVersion + ":" + LastWrite.ToString("M/d/y H:mm");

            _StartYear = DefaultStartYear();
            _EndYear   = DefaultStopYear();

            // Setup Parameter Manager and Model Paramters

            // Create a ParameterManager
            _pm = new ParameterManagerClass(API_Version, Model_Version);
            // Ok create Process Manager
            _ProcessManager = new ProcessManager();
            // OK create a Process Registry
            _ProcessRegistry = new ProcessRegistry();

            _TempDirectoryName = TempDirectoryName;
            _DataDirectoryName = DataDirectoryName;
            //initialize_ModelParameters();
        }
Exemplo n.º 2
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary> Constructor. </summary>
        ///
        /// <remarks> Ray, 12/7/2011. </remarks>
        ///
        /// <param name="pm">  The Paramerter Manager  </param>
        /// <param name="modelparam">    The emodelparam value </param>
        /// <param name="DefaultValues"> The default values. </param>
        ///-------------------------------------------------------------------------------------------------

        public ShadowProviderArrayProperty(ParameterManagerClass pm, int modelparam, ProviderIntArray DefaultValues)
        {
            Fpm      = pm;
            Femp     = modelparam;
            Defaults = DefaultValues;
            Values   = Defaults;
        }
        public ParameterTreeView(ParameterManagerClass ParamManager)
        {
            InitializeComponent();
            treeViewParameters.ImageList        = imageListTreeNodes;
            treeViewParameters.ShowNodeToolTips = true;

            FParamManager = ParamManager;
            InitializeComponent();
            BuildParmList();
            BuildTree();
        }
Exemplo n.º 4
0
 public ParmTreeNode(ModelParameterGroupClass aGroup, ParameterManagerClass aPM) : base(aGroup.Name)
 {
     FPM                = aPM;
     ThisGroup          = aGroup;
     ImageIndex         = 4;
     SelectedImageIndex = 5;
     foreach (ModelParameterGroupClass groupitem in aGroup.Groups())
     {
         Add(groupitem);
     }
     foreach (int parmcode in aGroup.ModelParameters())
     {
         Add(parmcode);
     }
 }
Exemplo n.º 5
0
        public ParmTreeNode(int ParmCode, ParameterManagerClass aPM)
        {
            FPM = aPM;
            try
            {
                ModelParameterClass MP = aPM.Model_Parameter(ParmCode);
                ThisParamItem = new ModelParamItem(MP);
                Name          = ThisParamItem.Fieldname;
                Text          = ThisParamItem.Label;
                ToolTipText   = ThisParamItem.Description;
                switch (ThisParamItem.ParameterType)
                {
                case modelParamtype.mptInputBase:
                    ImageIndex         = 0;
                    SelectedImageIndex = 0;
                    break;

                case modelParamtype.mptInputProvider:
                    ImageIndex         = 1;
                    SelectedImageIndex = 1;
                    break;

                case modelParamtype.mptOutputBase:
                    ImageIndex         = 2;
                    SelectedImageIndex = 2;
                    break;

                case modelParamtype.mptOutputProvider:
                    ImageIndex         = 3;
                    SelectedImageIndex = 3;
                    break;

                default:
                    ImageIndex         = 4;
                    SelectedImageIndex = 4;
                    break;
                }
            }
            catch
            {
                ModelParamItem temp = new ModelParamItem();
                temp.SetUndefined(ParmCode);
                ThisParamItem = temp;
                Name          = ThisParamItem.Fieldname;
                Text          = ThisParamItem.Label;
                ImageIndex    = SelectedImageIndex = 6;
            }
        }
Exemplo n.º 6
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary> Constructor. </summary>
        ///
        /// <remarks> Ray, 8/25/2011. </remarks>
        ///
        /// <param name="PM"> The pm. </param>
        ///-------------------------------------------------------------------------------------------------

        public ShadowParameterManager(ParameterManagerClass PM) : base()
        {
            //foreach (ModelParameterClass mp in PM.AllModelParameters())
            //{
            //    ShadowModelParameter smp = new ShadowModelParameter(mp, mp.Value);
            //    smp.ParameterManagerForFriends = this;
            foreach (int emp in PM.eModelParameters())
            {
                ModelParameterClass  mp  = PM.Model_Parameter(emp);
                ShadowModelParameter smp = new ShadowModelParameter(mp);
                smp.ParameterManagerForFriends = this;
                this.AddParameter(smp);
                //FModelParameters.Add(smp);
            }
            FAPIVersion   = PM.APIVersion;
            FModelVersion = PM.ModelVersion;
        }
Exemplo n.º 7
0
 static void AddGroupToParameterTopics(ParameterManagerClass PM, ModelParameterGroupClass TheGroup)
 {
     foreach (int eModCode in TheGroup.ModelParameters())
     {
         try
         {
             ModelParameterClass MP = PM.Model_Parameter(eModCode);
             if (MP != null)
             {
                 MP.TopicGroups.Add(TheGroup);
             }
         }
         finally
         {
         }
     }
 }
        //------------------------------------------------------------

        public ParmTreeNode(int ParmCode, ParameterManagerClass aPM)
        {
            FPM = aPM;
            try
            {
                ModelParameterClass MP = aPM.Model_Parameter(ParmCode);
                ThisParamItem = new ModelParamItem(MP);
                SetUpItem(ThisParamItem);
            }
            catch
            {
                ModelParamItem temp = new ModelParamItem();
                temp.SetUndefined(ParmCode);
                ThisParamItem = temp;
                Name          = ThisParamItem.Fieldname;
                Text          = ThisParamItem.Label;
                ImageIndex    = SelectedImageIndex = 6;
            }
        }
Exemplo n.º 9
0
        // =========================================
        //
        protected override void initialize_ModelParameters()
        {
            WaterSimManager WSim = (this as WaterSimManager);

            //  WSim.ProcessManager.AddProcess(WM);
            base.initialize_ModelParameters();
            ParameterManagerClass            FPM       = ParamManager;
            Extended_Parameter_Documentation ExtendDoc = FPM.Extended;

            // =======================================================

            // Provider parameters
            // Inputs/Outputs
            //
            // Template(s)
            // ExtendDoc.Add(new WaterSimDescripItem(eModelParam.ep, "", "", "", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            // _pm.AddParameter(new ModelParameterClass(eModelParam.ep,"", "", rangeChecktype.rctCheckRange, 0, 0, geti_, seti_, RangeCheck.NoSpecialBase));
            //
            // NEW STUFF - State
            _pm.AddParameter(new ModelParameterClass(eModelParam.epState, "State Code", "ST", rangeChecktype.rctCheckRange, 0, 14, WSmith.geti_StateIndex, WSmith.seti_StateIndex, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epState, "The State Currently being Examined: one of five (Florida, Idaho, Illinois, Minnesota, Wyoming, Arizona,Colorado,Nevada,California,Utah,New Mexic, Alabama,Kansas, Tennessee, Virginia) in the initial work.", "", "The State Examined", "State", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            // Drivers
            _pm.AddParameter(new ModelParameterClass(eModelParam.epPopulation, "Population Served", "POP", geti_Pop));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epPopulation, "State Population People in any given year- we use an estimate of slope to project out to 2065", "ppl", "State Population (ppl)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            // Outputs
            _pm.AddParameter(new ModelParameterClass(eModelParam.epGPCD_urban, "Urban GPCD", "UGPCD", WSmith.geti_gpcd));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epGPCD_urban, "The GPCD (Gallons per Capita per Day) for delivered water for the Urban water sector.", "GPCD", "Gallons per Capita per Day (GPCD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epGPCD_ag, "Agricultural GPCD", "AGPCD", WSmith.geti_gpcdAg));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epGPCD_ag, "The GPCD (Gallons per Capita per Day) for delivered water for Agricultural Uses.", "GPCD", "Gallons per Capita per Day (GPCD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epGPCD_other, "Other GPCD: Power and Industry", "OGPCD", WSmith.geti_gpcdOther));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epGPCD_other, "The GPCD (Gallons per Capita per Day) for delivered water for Industrial Uses and Power Combined.", "GPCD", "Gallons per Capita per Day (GPCD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            //

            // Resources
            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceFresh, "Surface Water (Fresh)", "SUR", rangeChecktype.rctCheckRange, 0, 20000 /* 50000000 */, WSmith.geti_SurfaceWaterFresh, WSmith.seti_SurfaceWaterFresh, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epSurfaceFresh, "Fresh Water Deliveries from Surface Sources; this is total fresh water withdrawals.", "MGD", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceFreshNet, "Surface Water (Fresh) Net", "SURN", WSmith.geti_SurfaceWaterFreshNet));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceSaline, "Surface Water (Saline)", "SAL", rangeChecktype.rctCheckRange, 0, 20000 /* 50000000 */, WSmith.geti_SurfaceWaterSaline, WSmith.seti_SurfaceWaterSaline, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epSurfaceSaline, "Saline Water Deliveries from Surface Sources; this is total saline water withdrawals.", "MGD", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceSalineNet, "Surface Water (Saline) Net", "SALN", WSmith.geti_SurfaceWaterSalineNet));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epGroundwater, "Groundwater (Fresh)", "GW", rangeChecktype.rctCheckRange, 0, 20000 /* 500000008*/, WSmith.geti_Groundwater, WSmith.seti_Groundwater, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epGroundwater, "Fresh Water Deliveries from Pumped Groundwater; this is total water withdrawals.", "MGD", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epGroundwaterNet, "Groundwater (Fresh) Net", "GWN", WSmith.geti_GroundwaterNet));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epEffluent, "Effluent (Reclaimed)", "REC", rangeChecktype.rctCheckRange, 0, 20000 /*50000000*/, WSmith.geti_Effluent, WSmith.seti_Effluent, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epEffluent, "Effluent (reclaimed) Water Deliveries from Waste Water Treatment Plants; total withdrawals.", "MGD", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epEffluentNet, "Effluent (Reclaimed) Net", "RECN", WSmith.geti_EffluentNet));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceLake, "Surface Lake Water", "SURL", rangeChecktype.rctCheckRange, 0, 20000, WSmith.geti_SurfaceLake, WSmith.seti_SurfaceLake, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epSurfaceLake, "Surface Lake Water", "mgd", "Million Gallons Per Day", "Surface Lake Water", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceLakeNet, "Surface Lake Water Net", "SURLN", WSmith.geti_SurfaceLakeNet));

            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epTotalSupplies, "Total Supplies", "TS", WSmith.geti_TotalSupplies));


            // CONSUMERS
            _pm.AddParameter(new ModelParameterClass(eModelParam.epUrban, "Urban Demand", "UD", rangeChecktype.rctCheckRange, 0, 30000 /*50000000*/, WSmith.geti_Urban, WSmith.seti_Urban, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epUrban, "Urban Water Demand", "MGD ", "Million Gallons per Day", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epUrbanNet, "Urban Demand (Net)", "UDN", WSmith.geti_Urban_Net));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epUrbanNet, "Urban (residential) Net Water Balance; the difference between source withdrawals and demand.", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAgriculture, "Agriculture Demand", "AD", rangeChecktype.rctCheckRange, 0, 30000 /*50000000*/, WSmith.geti_Agriculture, WSmith.seti_Agriculture, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epAgriculture, "Agriculture Water Demand; total withdrawals.", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAgricultureNet, "Agriculture Demand (Net)", "ADN", WSmith.geti_Agriculture_Net));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epAgricultureNet, "Agricultural Net Water Balance; the difference between source withdrawals and demand.", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epIndustrial, "Industrial Demand", "ID", rangeChecktype.rctCheckRange, 0, 30000 /* 50000000*/, WSmith.geti_Industrial, WSmith.seti_Industrial, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epIndustrial, "Industrial Water Demand; total withdrawals. Water used for industries such as steel, chemical, paper, and petroleum refining. ", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epIndustrialNet, "Industrial Demand (Net)", "IDN", WSmith.geti_Industrial_Net));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epIndustrialNet, "Industrial Net Water Balance; the difference between source withdrawals and demand.", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epPower, "Power Demand", "PD", rangeChecktype.rctCheckRange, 0, 30000 /*50000000*/, WSmith.geti_PowerWater, WSmith.seti_PowerWater, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epPower, "Water Use by Power: total withdrawals. Water used in the process of generating electricity with steam-driven turbine generators [Thermoelectric power, subcategories by cooling-system type (once-through, closed-loop/recirculation)].", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epPowerNet, "Power Demand (Net)", "PDN", WSmith.geti_PowerWater_Net));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epPowerNet, "Power Net Water Balance; the difference between source withdrawals and demand.", "MGD ", "Million Gallons per Day (MGD)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epPowerEnergy, "Power Produced", "PE", WSmith.geti_PowerEnergy));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epNetDemandDifference, "Net Demand Difference", "DDIF", rangeChecktype.rctCheckRange, 0, 100 /*50000000*/, WSmith.geti_NetDemandDifference, null, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epNetDemandDifference, "The ratio of net demand to total demand for all consumers; ", "% ", "Percent (%)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));


            //
            // Controls - Policy

            _pm.AddParameter(new ModelParameterClass(eModelParam.epUrbanWaterConservation, "Water Conservation (urban & rural)", "UCON", rangeChecktype.rctCheckRange, 50, 100, WSmith.geti_UrbanConservation, WSmith.seti_UrbanConservation, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epUrbanWaterConservation, "Urban Water Conservation: reduction in annual water use.", "", "Percent reduction in water use", "", new string[4] {
                "None", "Low", "Med", "High"
            }, new int[4] {
                100, 80, 65, 50
            }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAgWaterConservation, "Ag Water Conservation", "ACON", rangeChecktype.rctCheckRange, 50, 100, WSmith.geti_AgConservation, WSmith.seti_AgConservation, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epAgWaterConservation, "Agricultural Water Conservation: reduction in annual water used by the Ag sector.", "", "Percent reduction in water use", "", new string[4] {
                "None", "Low", "Med", "High"
            }, new int[4] {
                100, 80, 65, 50
            }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epPowerWaterConservation, "Power Water Conservation", "PCON", rangeChecktype.rctCheckRange, 50, 100, WSmith.geti_PowerConservation, WSmith.seti_PowerConservation, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epPowerWaterConservation, "Power Water Conservation: reduction in annual water use for Thermoelectric power generation.", "", "Percent reduction in water use", "", new string[4] {
                "None", "Low", "Med", "High"
            }, new int[4] {
                100, 80, 65, 50
            }, new ModelParameterGroupClass[] { }));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epIndustrialWaterConservation, "Industrial Water Conservation", "ICON", rangeChecktype.rctCheckRange, 50, 100, WSmith.geti_IndustryConservation, WSmith.seti_IndustryConservation, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epIndustrialWaterConservation, "Industrial Water Conservation: reduction in annual water use for Industry.", "", "Percent reduction in water use", "", new string[4] {
                "None", "Low", "Med", "High"
            }, new int[4] {
                100, 80, 65, 50
            }, new ModelParameterGroupClass[] { }));


            // Index Values
            _pm.AddParameter(new ModelParameterClass(eModelParam.epSurfaceWaterManagement, "Use More Surface Water", "SWM", rangeChecktype.rctCheckRange, 80, 150, WSmith.geti_SurfaceWaterControl, WSmith.seti_SurfaceWaterControl, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epSurfaceWaterManagement, "Controls Scenario Chosen for alteration in surface water supply: increased surface water withdrawals.", "", "Alteration in Available Surface Water", "", new string[4] {
                "Less", "None", "Med", "High"
            }, new int[4] {
                80, 100, 120, 140
            }, new ModelParameterGroupClass[] { }));
            // 0=20% decrease, 1=contenporary, 2=20% increase, 3 = 40% increase in river water
            _pm.AddParameter(new ModelParameterClass(eModelParam.epGroundwaterManagement, "Change Groundwater Use", "GWM", rangeChecktype.rctCheckRange, 80, 150, WSmith.geti_GroundwaterControl, WSmith.seti_GroundwaterControl, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epGroundwaterManagement, "Controls Scenario Chosen for alteration in groundwater supplies: increased or decreased groundwater withdrawals.", "", "Alteration in Groundwater Used", "", new string[4] {
                "Less", "None", "More", "Most"
            }, new int[4] {
                80, 100, 120, 140
            }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epReclainedWaterUse, "Use Reclaimed Water", "RECM", rangeChecktype.rctNoRangeCheck, 0, 100, WSmith.geti_ReclaimedWaterManagement, WSmith.seti_ReclaimedWaterManagement, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epReclainedWaterUse, "Alteration in reclaimed (effluent) supplies: increased effluent withdrawals.", "", "% of indoor water use", "", new string[4] {
                "None", "Low", "Med", "High"
            }, new int[4] {
                0, 33, 66, 100
            }, new ModelParameterGroupClass[] { }));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epLakeWaterManagement, "Increase Lake Water use", "LWM", rangeChecktype.rctCheckRange, 80, 150, WSmith.geti_LakeWaterManagement, WSmith.seti_LakeWaterManagement, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epLakeWaterManagement, "Controls Lake Water Management: increased or decreased groundwater withdrawals.", "", "Scenario changes in lake later withdrawals", "", new string[4] {
                "Less", "None", "More", "Most"
            }, new int[4] {
                80, 100, 120, 140
            }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAugmented, "Augmented Desal", "DESAL", rangeChecktype.rctCheckRange, 0, 200, WSmith.geti_Desalinization, WSmith.seti_Desalinization, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epAugmented, "Adds a percent of desalinaiton: increased surface saline withdrawals.", "", "Scenario changes in lake later withdrawals", "", new string[4] {
                "None", "Low", "Med", "High"
            }, new int[4] {
                0, 100, 150, 200
            }, new ModelParameterGroupClass[] { }));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epPolicyStartYear, "Policy Start Year", "PST", rangeChecktype.rctCheckRange, 2016, 2060, geti_PolicyStartYear, seti_PolicyStartYear, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epPolicyStartYear, "Year that the Policies are implemented", "yr", "Year", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            //
            // Controls - External Forcings
            _pm.AddParameter(new ModelParameterClass(eModelParam.epPopGrowthAdjustment, "Population Growth Projected", "POPGR", rangeChecktype.rctCheckRange, 0, 150, WSmith.geti_PopGrowthRate, WSmith.seti_PopGrowthRate, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epPopGrowthAdjustment, "Adjustment in the Projected Population Growth Rate.", "%", "Population Growth", "", new string[4] {
                "Low", "Some", "Planned", "High"
            }, new int[4] {
                60, 80, 100, 120
            }, new ModelParameterGroupClass[] { }));

            //_pm.AddParameter(new ModelParameterClass(eModelParam.epClimateDrought, "Drought Impacts on Rivers/Lakes ", "CLIM", rangeChecktype.rctCheckRange, 0, 4, WSmith.geti_DroughtImpacts, WSmith.seti_DroughtImpacts, RangeCheck.NoSpecialBase));
            //   ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epClimateDrought, "Alteration in Fresh Water Withdrawals as a result of drought on supplies.", "Scenario-driven", "Drought Reductions in Surface Water", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epDroughtControl, "Drought Impacts Control- controls rate", "DC", rangeChecktype.rctCheckRange, 50, 150, WSmith.geti_DroughtControl, WSmith.seti_DroughtControl, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epDroughtControl, "Percent reduction in Surface flows due to drought", "%", "Percent (%)", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAgricultureProduction, "Agriculture Net $", "ANP", WSmith.geti_AgricutureProduction));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epAgricultureProduction, "Agriculture Net Annual Farm Income.", "M$", "Million Dollars ", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAgriculturalGrowth, "Agriculture Growth", "AGGR", rangeChecktype.rctCheckRange, 50, 150, WSmith.geti_AgGrowthRate, WSmith.seti_AgGrowthRate, RangeCheck.NoSpecialBase));
            ExtendDoc.Add(new WaterSimDescripItem(eModelParam.epAgriculturalGrowth, "Agriculture Growth Rate Applied.", "%", "Percent of current growth", "", new string[] { }, new int[] { }, new ModelParameterGroupClass[] { }));

            // -----------------------------
            // Initialize Other
            WSmith.startYear   = _StartYear;
            WSmith.endYear     = _EndYear;
            WSmith.currentYear = _StartYear;
            // =============================
            //
            defaultSettings();
            //
            // 12.14.16 added
            WSmith.policyStartYear = geti_PolicyStartYear();
        }
Exemplo n.º 10
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary> Constructor. </summary>
        ///
        /// <remarks> Ray, 12/7/2011. </remarks>
        ///
        /// <param name="pm">  The Paramerter Manager  </param>
        /// <param name="pap"> The ProviderArrayProperty to Mimick. </param>
        ///-------------------------------------------------------------------------------------------------

        public ShadowProviderArrayProperty(ParameterManagerClass pm, providerArrayProperty pap) : this(pm, pap.ModelParam, pap.getvalues())
        {
            FAggregateMode = pap.AggregateMode;
        }
Exemplo n.º 11
0
 public WaterSimDCDC_Controls_ParameterTreeView(ParameterManagerClass ParamManager)
 {
     FParamManager = ParamManager;
     InitializeComponent();
     BuildParmList();
 }
Exemplo n.º 12
0
//      List<ParmNode> Children = new List<ParmNode>();
//      List<ModelParamItem> ParmList = new List<ModelParamItem>();

        public ParmTreeNode(string aName, ParameterManagerClass aPM) : base(aName)
        {
            FPM = aPM;
        }
Exemplo n.º 13
0
 public WSimTreeSelectV1(ParameterManagerClass ParamManager)
 {
     FParamManager = ParamManager;
     InitializeComponent();
     BuildParmList();
 }
 public ParmTreeNode(ModelParamItem MPI, ParameterManagerClass aPM)
 {
     FPM           = aPM;
     ThisParamItem = MPI;
     SetUpItem(MPI);
 }
Exemplo n.º 15
0
 public ParmData(string Field, int[] PData, ParameterManagerClass PM)
 {
     Data      = PData;
     Fieldname = Field;
     TheMP     = PM.Model_Parameter(Field);
 }
Exemplo n.º 16
0
        public void BuildAnnualProviderGraph(SimulationResults SimRes, ParameterManagerClass PM, List <string> ParameterFieldNames, int ProviderIndex, string aLabel)
        {
            // create a lits for data
            List <ChartPointsByYear> ChartSeriesList = new List <ChartPointsByYear>();

            int year      = 0;
            int parmvalue = 0;
            int yearCount = SimRes.Length;
            int yearIndex = 0;

            // OK, figure out the years Min Max and Count
            int MaxYear = -1;
            int MinYear = 9999;

            foreach (AnnualSimulationResults ASR in SimRes)
            {
                year = ASR.year;
                if (year > MaxYear)
                {
                    MaxYear = year;
                }
                if (year < MinYear)
                {
                    MinYear = year;
                }
            }

            // Count all the the parameter in first year of SimRes
            int ParameterCount = SimRes[0].Outputs.BaseOutput.Length + SimRes[0].Outputs.ProviderOutput.Length + SimRes[0].Inputs.BaseInput.Length + SimRes[0].Inputs.ProviderInput.Length;

            // Set up the Data array for that many parameters
            int[][] ValueData = new int[ParameterCount][];
            // now set up for array of years data
            for (int i = 0; i < ParameterCount; i++)
            {
                ValueData[i] = new int[yearCount];
            }

            // index for parms
            int ParmDataIndex = 0;

            // ok Build an list of parameter indexes and ModelParameters
            int ParamterCount = ParameterFieldNames.Count;

            int[] ParmIndexes = new int[ParameterCount];
            ModelParameterClass[] ModelParameters = new ModelParameterClass[ParameterCount];
            for (int i = 0; i < ParameterCount; i++)
            {
                ModelParameters[i] = PM.Model_Parameter(ParameterFieldNames[i]);
                if (ModelParameters[i] != null)
                {
                    ParmIndexes[i] = SimRes[0].GetParmIndex(ModelParameters[i]);
                }
                else
                {
                    ParmIndexes[i] = -1;
                }
            }

            foreach (AnnualSimulationResults ASR in SimRes)
            {
                year      = ASR.year;
                yearIndex = year - MinYear;
                for (int i = 0; i < ParameterCount; i++)
                {
                    if (ParmIndexes[i] >= 0)
                    {
                        if (ModelParameters[i].isBaseParam)
                        {
                            ValueData[i][yearIndex] = GrabParmBaseData(ASR, ModelParameters[i].ParamType, ParmIndexes[i]);
                        }
                        else
                        if (ModelParameters[i].isProviderParam)
                        {
                            ValueData[i][yearIndex] = GrabParmProviderData(ASR, ModelParameters[i].ParamType, ParmIndexes[i])[ProviderIndex];
                        }
                    }
                }
            }


            //bool iserr = false;
            //        string errMessage = "";
            //        year =
            //yearIndex = year - MinYear;

            //            // Fetch only records that match the scenario name or if "" then just the first scenario
            //            if (((ScenarioName == "") && (ScnStr == FirstScnName)) || (ScnStr == ScenarioName))
            //            {
            //                // fetch only records for the target provider
            //                pcode = DR[PrvdFldStr].ToString().Trim();
            //                if (pcode.ToUpper() == targetProvider.ToUpper())
            //                {
            //                    int pIndex = 0;
            //                    // Ok get all the fields requested
            //                    foreach (fieldinfo info in dbFields)
            //                    {
            //                        if (DT.Columns.Contains(info.Fieldname))
            //                        {
            //                            parmvalue = UniDB.Tools.ConvertToInt32(DR[info.Fieldname].ToString(), ref iserr, ref errMessage);
            //                            ValueData[pIndex][yearIndex] = parmvalue;
            //                            pIndex++;
            //                        }
            //                    }
            //                    // OK get a years worth of data, increment year count
            //                    YearCnt++;
            //                }
            //            }
            //            // OK, if we have read values for all the years, then break
            //            if (YearCnt == NumberOfYears) break; // from foreach


            //        if (iserr)
            //        {
            //            // Do What?
            //        }
            // OK create the series
            // First create a year array
            int[] allYearValues = new int[yearCount];
            for (int i = 0; i < yearCount; i++)
            {
                allYearValues[i] = MinYear + i;
            }
            for (int i = 0; i < ParameterCount; i++)
            {
                ChartPointsByYear points = new ChartPointsByYear(allYearValues, ValueData[i], ParameterFieldNames[i]);
                ChartSeriesList.Add(points);
            }
            //  Now Sort By Size
            ChartSeriesList.Sort(ChartPointsByYear.CompareForSort_UseMax);

            // ok clear up chart
            FChart.Series.Clear();
            FChart.Legends.Clear();
            FChart.ChartAreas.Clear();
            //                    ProviderPopChart.Update();

            // Setup legend

            FChart.ChartAreas.Add(FTitle);
            System.Windows.Forms.DataVisualization.Charting.Legend MyLegend = new System.Windows.Forms.DataVisualization.Charting.Legend("Default");
            FChart.Legends.Add(MyLegend);
            int index = 0;

            foreach (ChartPointsByYear points in ChartSeriesList)
            {
                Series dSeries = new Series();
                int[]  Years   = points.Years;
                int[]  Values  = points.Values;
                dSeries.LegendText   = points.SeriesLabel;
                dSeries.BorderWidth  = 2;
                dSeries.ChartType    = FChartType;
                dSeries.LabelToolTip = points.SeriesLabel;
                //dSeries.Label = points.SeriesLabel;
                for (int j = 0; j < Years.Length; j++)
                {
                    dSeries.Points.AddXY(Years[j], Values[j]);
                }
                FChart.Series.Add(dSeries);
                index++;
            }
            // Chart Label
            // First build field label
            string fldlabel = "";

            foreach (string str in ParameterFieldNames)
            {
                if (fldlabel != "")
                {
                    fldlabel += ", ";
                }
                fldlabel += str;
            }
            bool  addTitle = false;
            Title myTitle  = null;


            if (FChart.Titles.Count > 0)
            {
                myTitle = FChart.Titles.FindByName("MAIN");
            }
            if (myTitle == null)
            {
                myTitle  = new Title();
                addTitle = true;
            }
            myTitle.Name      = "MAIN";
            myTitle.Text      = aLabel.Trim() + " by " + fldlabel + " and Year";
            myTitle.Alignment = ContentAlignment.MiddleCenter;

            myTitle.Font = new Font(myTitle.Font.Name, 14.0F, FontStyle.Bold, myTitle.Font.Unit);
            if (addTitle)
            {
                FChart.Titles.Add(myTitle);
            }
            // Add Legend
            LegendCellColumn secondColumn = new LegendCellColumn();

            secondColumn.ColumnType      = LegendCellColumnType.Text;
            secondColumn.HeaderText      = "Name";
            secondColumn.Text            = "#LEGENDTEXT";
            secondColumn.HeaderBackColor = Color.WhiteSmoke;
            FChart.Legends["Default"].CellColumns.Add(secondColumn);

            // Set Min cell column attributes
            LegendCellColumn maxColumn = new LegendCellColumn();

            maxColumn.Text            = "#MAX{N1}";
            maxColumn.HeaderText      = "Max";
            maxColumn.Name            = "MaxColumn";
            maxColumn.HeaderBackColor = Color.WhiteSmoke;
            FChart.Legends["Default"].CellColumns.Add(maxColumn);
            // Add Color column
            LegendCellColumn firstColumn = new LegendCellColumn();

            firstColumn.ColumnType      = LegendCellColumnType.SeriesSymbol;
            firstColumn.HeaderText      = "Color";
            firstColumn.HeaderBackColor = Color.WhiteSmoke;
            FChart.Legends["Default"].CellColumns.Add(firstColumn);


            // OK let's see what happens
        }