Welcome to WEAP's Website WEAP
WEAP is an initiative of the Stockholm Environment Institute.


About WEAP

Home
Why WEAP?
Features
What's New?
Sample Screens
Demonstration
Publications
History and Credits

Using WEAP
Download
Licensing
User Guide
Tutorial
Videos (YouTube)

User Forum
Discussions
Members List
Edit Profile

Additional Support
Training
University Courses
Collaboration

About Us
SEI-US Water Resources Program
Please Contact Us

LEAP
Interested in Energy?
Read about LEAP: SEI's software for energy planning.

Link WEAP and LEAP for combined Water-Energy planning.
Watch a video demo!
   

Recent Changes to WEAP

8/9/2024, Version 2024.0

  • CALCULATIONS:
  • XA solver: New annual license for XA solver.
  • DATA VIEW/EXPRESSIONS:
  • Latitude and Longitude functions: New functions named X and Y to get the latitude and longitude for a schematic object in an expression: Can also use LocationX and LocationY.
  • RealWorldDay/Month/Year: New functions for use in expressions to determine the day, month or year from the computer's clock.
  • CalendarMonthToWaterMonth(RealWorldMonth): Convert calendar month to water month (will be the same if water year starts in January).
  • https://www.weap21.org/WebHelp/index.html#CalendarMonthToWaterMonth.htm
  • CalendarYearToWaterYear(RealWorldYear, RealWorldMonth): Convert calendar year to water year (will be the same if water year starts in January).
  • WaterMonthToCalendarMonth(WaterMonth): Convert water month to calendar month (will be the same if water year starts in January).
  • WaterYearToCalendarYear(WaterYear, WaterMonth): Convert water year to calendar year (will be the same if water year starts in January).
  • Improved reading data from climate NetCDF files: Handled cases where missing values are NaN (Not a Number).
  • RESULTS:
  • Modflow results: You can now refer to Zeta Surface Elevation results in expressions (when using MODFLOW's SWI2 Seawater Intrusion package), e.g., PrevTSValue(Zeta Surface Elevation[1,7,7])
  • SCRIPTING/APPLICATION PROGRAMMING INTERFACE (API):
  • WEAPApplication API:
  • WEAP.CreateCatchmentsFromBackgroundLayer(LayerName, NameColumn): Create a catchment for each polygon in the background layer LayerName. Each catchment will be named from the NameColumn in the attribute table of the background layer's shape file. LayerName is name of layer shown is list of background layers, not shapefile's filename. Will use current default settings from catchment delineation mode for resolution (3s or 15s), elevation band width, climate dataset, etc. Will not create any rivers or runoff/infiltration links. E.g., CALL WEAP.CreateCatchmentsFromBackgroundLayer("Counties", "PO_Name") will create 26 new catchments in the Weaping River Basin, one for each shape in the "Counties" background layer.
  • WEAP.AddVariable(TypeNameOrID, Category, VariableName, Comment, DefaultCurrentAccountsExpression, DefaultScenarioExpression, ScaleUnit, MinimumValue, MaximumValue, BranchLevel, IsAnnual, AllowMissing, SumBranches, IsReadOnly, IsResultVariable): Create a user-defined variable. Only the first three parameters are required; all others are optional, and if omitted will default to blank or False. If Category does not yet exist it will be created. TypeNameOrID is either the name of the type, e.g., "Demand Site" or "Reservoir," or the corresponding numeric code for each type, e.g., 1 or 4 (see the help below for BranchesOfType for ID codes). To create a variable that exists for both Demand Sites and Catchments, use "Demand Sites and Catchments" for the TypeNameOrID. For BranchLevel, which only applies to demand sites or catchments, use the following: 1 = top level only, 2 = one level below top level, 3 = two levels below top level, -1 = all levels, -2 = lowest level only.
  • WEAP.TypeIDToTypeName(TypeID): Get the name of the type, e.g., Demand Site, Reservoir, River, given the TypeID, e.g., Demand Site TypeID = 1, Reservoir TypeID = 4.
  • WEAP.CalendarYearToWaterYear(RealWorldYear, RealWorldMonth): Convert calendar year to water year (will be the same if water year starts in January).
  • WEAP.CalendarMonthToWaterMonth(RealWorldMonth): Convert calendar month to water month (will be the same if water year starts in January).
  • WEAP.WaterMonthToCalendarMonth(WaterMonth): Convert water month to calendar month (will be the same if water year starts in January).
  • WEAP.WaterYearToCalendarYear(WaterYear, WaterMonth): Convert water year to calendar year (will be the same if water year starts in January).
  • WEAP.Print: WEAP.Print and WEAP.PrintToFile can now take up to 30 parameters, separating each by comma (system ListSeparator)
  • WEAPBranch API:
  • WEAPBranch.ConnectedGroundwater: For river reaches, transmission links, return flow links and reservoirs, get or set the groundwater node that it is connected to, if any (for losses to or gains from groundwater). Get will return an empty branch (ConnectedGroundwater.ID = 0) if no connection. To set no connection, call with an empty string ("").
  • MISCELLANEOUS:
  • Added additional consistency checks when repairing an area, to ensure that everything in the Objects database is represented on the Schematic.
  • Updated all language translations
  • BUGS FIXED:
  • Monthly Average results: Fixed incorrect monthly average result values in the case where you were summing demand branches, some of which had results that were MissingValue.
  • WEAP.CreateRiver: Rivers created by WEAP.CreateRiver API could not be subsequently deleted.
  • Latitude: Catchment delineation latitude and area expressions were incorrect when Windows the decimal separator was not "."

7/26/2023, Version 2023.0

  • MAJOR ENHANCEMENTS:
  • CMIP6 global climate scenarios: These global downscaled climate scenarios come from the NASA Earth Exchange Global Daily Downscaled Projections of the Coupled Model Intercomparison Project Phase 6 (CMIP6). These include data from 27 GCM's and 4 Shared Socioeconomic Pathways (SSP 126, SSP 245, SSP 370, SSP 585), covering the period 2015-2100 at 28 km (0.25 degree) resolution. Available in catchment delineation mode. See the "Automatic Catchment Delineation" help topic for more information.
  • CMIP5 US climate scenarios: These high-resolution climate scenarios for the United State come from the Coupled Model Intercomparison Project Phase 5 (CMIP5), downscaled by the Multivariate Adaptive Constructed Analogs (MACA, Abatzoglou, 2012) statistical downscaling method with the METDATA (Abatzoglou, 2013) training dataset. These include data from 18 GCM's and 2 Representative Concentration Pathways (RCP 4.5 and RCP 8.5), covering the period 2006-2099 at 4 km (0.04 degree) resolution. Available in catchment delineation mode.
  • Princeton climate data: Version 3 now available in catchment delineation mode. These extend the Princeton version 2 Princeton climate data previously (and still) available in WEAP, by adding relative humidity and covering the period 1948-2014.
  • Satellite Maps: WEAP can automatically download and display background maps from several internet sources, such as USGS, OpenStreetMap, Google, National Geographic and ESRI. These include satellite images, street maps and topographic maps, and can be very helpful when building your WEAP model. To load a map, right click on the Schematic and choose Background Image Layer from the popup menu, then select the internet source to use, e.g., "USGS Satellite." See the "Background Maps" help topic for more information.
  • CATCHMENT DELINEATION:
  • Optimized catchment climate CSV file creation: Smart enough not to recalculate for historical or CMIP scenarios, unless the catchment boundaries or elevation bands have changed. Should greatly speed up subsequent catchment delineations.
  • Land Slope: Automatic catchment delineation now calculates average slope for each elevation band and land use, putting the value into a new Land Use variable named Slope. It is not used in WEAP's calculations, but you may choose to use it in setting the Preferred Flow Direction for the Soil Moisture Method.
  • DATA VIEW/EXPRESSIONS:
  • Key assumption values can be summed in Results View
  • New ReadFromFile aggregation function: Average of Nonzero Values: Divide the monthly total of the daily values by the number of nonzero values to get the average. You can abbreviate this as "NonZeroAverage"
  • New ReadFromFile aggregation function: CountAbove: The number of daily values in each month that are greater or equal to than the threshold given in the Method Parameter.
  • New ReadFromFile aggregation function: CountBelow: The number of daily values in each month that are less than or equal to the threshold given in the Method Parameter.
  • New ReadFromFile aggregation function: CountEqual: The number of daily values in each month that are exactly equal to the threshold given in the Method Parameter.
  • Examples:
                ReadFromFile(Climate.csv, Precip[mm], , Average Of Nonzero Values)   Read in daily precipitation data from Climate.csv  
                        and calculate the monthly average of the non-zero values -- to help understand how intense the average rainstorm was.
ReadFromFile(Climate.csv, T_Max[C], , Count Above, 32) Read in daily temperature data from Climate.csv and calculate how many days of each month the temperature exceeded 32C (90F).
ReadFromFile(Climate.csv, T_Min[C], , Count Below, 0) Read in daily temperature data from Climate.csv and calculate how many days of each month were below freezing (0C = 32F).
ReadFromFile(Climate.csv, Precip[mm], , Count Equal, 0) Read in daily precipitation data from Climate.csv and calculate how many days of each month had no precipitation.
Note: the PrevTSValue function is also able to calculate CountAbove, CountEqual and CountBelow.

  • RESULTS:
  • Added two new calibration statistics: InvNSE Inverse Nash-Sutcliffe Efficiency (inverse transformed) and SqrtNSE: Root-squared Nash-Sutcliffe Efficiency (root-squared transformed). See https://doi.org/10.1016/j.jhydrol.2017.02.004 for explanation of their use in calibrating.
  • Fixed Google Earth bug: Fixed bug in export to Google Earth format (from Schematic and Results Maps) to be compatible with latest version of Google Earth.
  • IHA: Fixed problem that was preventing display of results from Indicators of Hydrologic Alteration (IHA) calculations
  • MISCELLANEOUS:
  • Custom timestep names and abbreviations: On General, Years and Time Steps, set Time Step Name Format to "User-defined" to allow you to directly modify the time step names and abbreviations.
  • Fixed problem that was causing crashes and loss of data when trying to open up areas from much older (2019) WEAP versions:\ If you have lost data, you can revert to a version of your area that WEAP would have created immediately before trying to convert it, to have WEAP re-convert it correctly.

10/25/2022, Version 2022.0

  • MAJOR ENHANCEMENTS:
  • Calibration Statistics: WEAP can now calculate calibration statistics, such as Nash-Sutcliffe Efficiency, Percent Bias and r^2, comparing modeled results to historical data for streamflow, reservoir storage and catchment snow accumulation, to aid in model calibration.
  • Scripting: Many significant additions to WEAP's Application Programming Interface (API). See below for details.
  • OTHER ENHANCEMENTS:
  • SCHEMATIC:
  • Map coordinates: The x,y coordinates (e.g., longitude and latitude) for the current mouse position are always displayed on the status bar in the Schematic View
  • CATCHMENT DELINEATION:
  • Snow Accumulation Gauge is added to the list of soil moisture model climate variables that can be associated with a climate data source in catchment delineation mode.
  • Better organization of climate data sources in catchment delineation, to make it easier to find and select among data sources.
  • EXPRESSIONS/FUNCTIONS:
  • Merge function for ReadFromFile for multiple climate files, e.g., ReadFromFile( Merge(A.csv, B.csv, C.csv) ). All csv files must have same data columns and units.
  • Allow future result references in expressions as long as they are not used during calculations, such as when creating an indicator in Key Assumptions.
  • Improved ability to paste expressions into the Data View expression grid (it doesn't erase what was already there)
  • Expressions: In addition to True/False for logical values in expressions, you can now use On/Off and Yes/No in expressions.
  • DATA VARIABLES:
  • Relative Humidity: Changed default humidity for Soil Moisture Method to 50% (it had been 0%)
  • Cloudiness fraction upper bound: Removed upper bound for cloudiness fraction for Soil Moisture Method, to allow for corrections to shortwave radiation calculation.
  • CALCULATIONS:
  • You can tell WEAP that a CSV file might change during calculations, so that it should check it for updates each timestep: Add the following line to the CSV file: $Dynamic
  • RESULTS:
  • New gauge comparison reports with calibration statistics: Streamflow Gauge Comparison, River Water Quality Gauge Comparison, Reservoir Storage Gauge Comparison, Snow Gauge Comparison. You can select among several calibration statistics to calculate (e.g., NSE, KGE, RMSE, r^2, ...), which will be shown on the chart (under the legend) and on a separate tab named "Statistics."
  • Linking shapes to WEAP objects for mapping results: WEAP can now automatically link shapes in a GIS shapefile with WEAP objects, either by matching the name in the shapefile's attribute table, or by matching the location of the object on the schematic. When editing the background Map Layer, go to the Linkage tab and choose "Guess Linkages by Name..." or "Guess Linkages by Location..."
  • Mapping results: Flow Requirements and Wastewater Treatment Plants can now be linked to shapes in a shape file for mapping their results in the Results View
  • ExportResults and save to CSV now always includes 3 lines for title, subtitle and unit, even if they are blank (if IncludeTitles = True and ReadFromFileFormat = False)
  • CSV export and ExportResults: option to include or not row/col sums and other stats. Default is False (previously it always included, so if you have scripts that depend on total rows there, need to check)
  • Save to CSV: no spaces between terms, e.g., "3,12,4" instead of "3, 12, 4"
  • Table and export: now includes column title corresponding to legend, e.g., Scenarios, Reservoirs, etc.
  • Precipitation Result: Use "Precipitation Result" instead of "Precipitation" when referring to the precipitation results in an expression, e.g., PrevTSValue("Precipitation Result"). The same is true for temperature results: PrevTSValue("Temperature Result")
  • Albedo Result: For accessing the result value of albedo, the name to use has changed from "Albedo" to "Albedo Result," in order to distinguish it from the data variable named "Albedo." For example, PrevTSValue(Demand Sites and Catchments\Upper Basin\Elevation 0 to 500 m:Albedo Result)
  • New result variables, all of which can be referenced in expressions (the name to use in expressions is in parentheses):
  • Transmission Link Loss from Area (Loss Flow from Area), e.g., PrevTSValue(Supply and Resources\Transmission Links\to Agriculture North\from North Aquifer:Loss Flow from Area[m^3])
  • Transmission Link Loss to Groundwater (Loss Flow to Groundwater)
  • Transmission Link Outflow to Demand (Outflow to Demand)
  • Return Link Loss from Area (Loss Flow from Area)
  • Return Link Loss to Groundwater (Loss Flow to Groundwater)
  • Return Link Outflow to Destination (Outflow to Destination)
  • SCRIPTING/APPLICATION PROGRAMMING INTERFACE (API):
  • WEAPApplication API:
  • WEAP.GaugeComparisonStatistic(StatisticName): Get the named gauge comparison statistic (e.g., NSE, PBIAS, r^2). Must be in results view with a gauge comparison chart loaded (e.g., Streamflow Gauge Comparison, Reservoir Gauge Comparison, Snow Gauge Comparison). Any statistic is available, even if it is not currently shown on the chart.
  • WEAP.ExportGaugeComparisonStatistics(Filename, IncludeTitle, IncludeColTitles, ForceTranspose): Export the table of gauge comparison statistics (e.g., NSE, KGE, PBIAS) to a comma separated value (CSV) or Excel file. Will switch to Results View if necessary, calculating results as needed. Only available when a gauge comparison result chart is loaded, e.g., Streamflow Gauge Comparison, Reservoir Storage Gauge Comparison. Only currently shown statistics are exported. Optional parameters (all default to True): IncludeTitle, IncludeColTitles, ForceTranspose.
  • WEAP.ResultSetting("Statistic"): Change which calibration statistics are shown for the current gauge comparison chart, e.g., WEAP.ResultSetting("Statistic") = "All", WEAP.ResultSetting("Statistic") = "NSE", WEAP.ResultSetting("Statistic") = "N,NSE,PBIAS,r^2"
  • WEAP.UpdateCatchmentClimate(ForceUpdate): Check if climate data (on WEAP website) that catchment delineation uses has been updated since last processed for this WEAP area. If so, download and process for catchments and return True; otherwise, return False. If optional ForceUpdate parameter is true, update catchment climate csv files regardless of whether WEAP thinks they need updating or not.
  • WEAP.DownloadFile(URL, Filename, ShowProgress): Download a file from the internet. Returns TRUE if successful.
  • WEAP.FileExists(Filename): Return True if file exists, False if not.
  • WEAP.SearchFile(Filename, SearchText): Search a text file for specified text. Does not need to match entire line -- partial match is OK. Return the line number where the text first occurred, or 0 if not found.
  • WEAP.ReadLineFromFile(Filename, LineNumber): Read specified line from text file, where 1 is first line of file. Use negative LineNumbers to count from end, e.g., -1 is last line, -2 is second from last line.
  • WEAP.ModifyFile(Filename, LineNumber, NewText): Replace specified line number of text file with new text. Line number 0 means add to beginning of file; use negative LineNumbers to count from end, e.g., -1 is last line, -2 is second from last line.
  • WEAP.ReplaceInFile(Filename, SearchText, ReplaceText, ReplaceAll, IgnoreCase): Search a text file for SearchText; if found, replace it with ReplaceText. Replace all instances in file unless optional parameter ReplaceAll is FALSE. Ignore case (upper vs. lower case) unless optional parameter IgnoreCase is FALSE. Return the number of instances found and replaced (zero if none found).
  • WEAP.DisplayFile API: Use WEAP.DisplayFile(Filename, ReadOnly) to display text file named Filename. If optional ReadOnly parameter is TRUE, do not allow editing.
  • WEAP.List(ListSeparator, Value1, Value2, ...): Create a string with all the values separated by the ListSeparator. This can be a convenient method for outputting lines to a CSV file. Values can be text, number, dates, times or boolean values.
  • WEAP.FileDate(Filename): Get the date the file was last modified. Returns 1/1/1900 if file does not exist.
  • WEAP.FileDateTime(Filename): Get the date and time the file was last modified. Returns 1/1/1900 00:00:00 if file does not exist.
  • WEAPBranch API:
  • WEAPBranch.Name: Name can now be changed via API
  • WEAPBranch.MapLabel: Set or get the map label for the node on the schematic.
  • WEAPBranch.InflowNodes: Gets the WEAPBranches collection of all nodes that flow into this node, for example, for a Demand Site this will be all of its sources (river withdrawal, groundwater, local reservoir, other local supply).
  • WEAPBranch.OutflowNodes: Gets the WEAPBranches collection of all nodes that flow out of this node, for example, for a Demand Site this will be all of the destinations for its return flow links.
  • WEAPBranch.InflowLinks: Gets the WEAPBranches collection of all links that flow into this node, for example, for a Demand Site this will be all of its transmission links. For a river node, it will include its upstream reach.
  • WEAPBranch.OutflowLinks: Gets the WEAPBranches collection of all links that flow out of this node, for example, for a Demand Site this will be all of its return flow links. For a river node, it will include its downstream reach.
  • WEAPBranch.UpstreamNodes and WEAPBranch.DownstreamNodes have two new optional paramters: ForceSameRiver and MaxSteps: If ForceSameRiver is True (optional, default is False), do not show nodes on other up/downstream rivers. (If IncludeOffstreamNodes is True, offstream nodes are also included.) If MaxSteps is greater than zero (optional, default is zero), only go up/down that many steps before stopping. If IncludeLinks is true, each node and link count as separate steps.
  • WEAPBranch.RiverNodes: Get list of nodes for river, in order from upstream to downstream. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranch.RiverReaches: Get list of reaches for river, in order from upstream to downstream. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranch.RiverNodesAndReaches: Get list of nodes and reaches for river, in order from upstream to downstream. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranch.FirstNode: Get first node on the river. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranch.FirstReach: Get first reach on the river. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranch.LastNode: Get last node on the river. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranch.LastReach: Get last reach on the river. Can be called for a river branch, or any node or reach on a river.
  • WEAPBranches.Reverse: Reverse the list of branches, e.g., WEAP.Rivers("Weaping River").RiverNodes.Reverse will get the list of Weaping River nodes from downstream to upstream.
  • Some API examples:
	' List all tributaries and the rivers they flow into
	FOR EACH Br in WEAP.TributaryNodes
	  FOR EACH InflowReach IN Br.InflowLinks  ' This is the list of all reaches that flow into the trib node
	    IF InflowReach.River.ID <> Br.River.ID THEN
	      Print InflowReach.River.Name & " flows into " & Br.River.Name & " at " & Br.Name
	    END IF
	  NEXT
	NEXT

	' List all transmission links that flow into Industry North
	FOR EACH Br in WEAP.DemandSites("Industry North").InflowLinks
	  Print Br.FullName
	NEXT

	' List the supplies for each demand site
	FOR EACH Br in WEAP.DemandSites
	  FOR EACH SupplyBr in Br.InflowNodes
	    Print SupplyBr.Name & " supplies " & Br.Name
	  NEXT
	NEXT

	' List demand sites that flow into wastewater treatment plants
	FOR EACH Br IN WEAP.WastewaterTreatmentPlants
	  FOR EACH DS in Br.InflowNodes
	    Print Br.Name & " receives wastewater from " & DS.Name
	  NEXT
	NEXT

	' List all tributaries that flow into tributary node "Trib Node 5"
	SET TribNode = WEAP.Branch("Blue River Trib Node")
	FOR EACH Br IN TribNode.UpstreamNodes(False, False, False, 1)   
               ' By going just one step upstream, it gets just the reaches (from all rivers) flowing into the tributary node
	  IF Br.River.ID <> TribNode.River.ID THEN  ' Do not include main river
	    Print Br.River.Name
	  END IF
	NEXT

	' List all nodes on the Weaping River, but not the other rivers
	FOR EACH Br in WEAP.Branch("Downstream Requirement").UpstreamNodes(False, False, True)
	  Print Br.RiverOrder & ": " & Br.FullName
	NEXT


  ' Download latest snow gauge file for SNOTEL site 531 and add $DateFormat and $Columns=" 
  ' to the line with the column names for use by ReadFromFile
  ' Uses: FileDate, DownloadFile, SearchFile, ReadLineFromFile, ModifyFile

    URL = "https://wcc.sc.egov.usda.gov/reportGenerator/view_csv/customSingleStationReport/"
       + "daily/531:CO:SNTL%7Cid=%22%22%7Cname/POR_BEGIN,POR_END/WTEQ::value,PREC::value,"
       + "TMAX::value,TMIN::value,TAVG::value,PRCP::value"

    Filename = WEAP.ActiveAreaDirectory + "Data\SNOTEL\Hoosier Pass (531).csv"

    IF WEAP.FileDate(Filename) <> Date() then     ' only download if haven't already downloaded today
        IF WEAP.DownloadFile(URL, Filename) THEN
           LineNumber = WEAP.SearchFile(Filename, "Date,Snow Water Equivalent (in) Start of Day Values")
           IF LineNumber > 0 THEN
              TheLine = WEAP.ReadLineFromFile(Filename, LineNumber)
              NewLine = "$DateFormat=yyyy-mm-dd" & CHR(13) + CHR(10) + "$Columns=" + TheLine   ' Add DateFormat and Columns directives
              CALL WEAP.ModifyFile(Filename, LineNumber, NewLine)
           END IF
       END IF
    END IF 

  ' List all river nodes and reaches from downstream to upstream for each river
  ' Uses: RiverNodesAndReaches, Reverse

    FOR EACH River in WEAP.Rivers
       Print River.Name + " Nodes and Reaches:"
       FOR EACH Br in River.RiverNodesAndReaches.Reverse
          PRINT "   " & Br.RiverOrder & ": " & Br.FullName
       NEXT
    NEXT
  • MISCELLANEOUS:
  • XA Solver License: New license for linear program solver XA, expiring July 2023.
  • Plugins can now include event scripts
  • Updated language translations
  • BUGS FIXED:
  • Fixed bug in FDCWizard that was preventing exporting the table to Excel or CSV
  • Fixed bug when mapping catchment results in depth units, e.g., precipitation in mm, WEAP was summing over a catchment's branches instead of calculating the area-weighted average result of the branches.
  • Fixed bug that occurred with certain default expressions for user-defined variables: WEAP was unable to compile them, which caused problems when loading an area (the Data Tree was locked).

7/11/2022, Version 2021.02

  • Updated license for linear program solver XA

11/5/2021, Version 2021.01

  • Language Translation: Fixed problem that prevented many translated phrases from appearing.
  • Water quality results when streamflow = 0: previously, WEAP used the upstream concentration for downstream when there was zero streamflow. Now, it is MissingValue, and will show as a gap on the chart or table
  • Water quality gauge data allowed to be missing
  • RandomSample: New function available in expressions: RandomSample(Filename) or RandomSample(Filename, Seed). Choose a random value from the list of values in the text file. The format for the file is one number per line. If you want the same sequence for two or more branches or scenarios, you can use the optional "Seed" parameter. Using the same seed in two different functions will yield the same sequence.
  • MonthlyVector function: MonthlyVector(Month1Value, Month2Value, ..., MonthNValue) Specify values for all months of the water year, in order from first to last. This is a more compact form for assigning values to months than the MonthlyValues function because the month names are not included, but has no option for interpolating missing values. Note: Month1Value will be used for the first month of the water year, which is not necessarily the first month of the calendar year (January).
  • Minutes, Hours: Added functions that can be used in expressions to calculate the number of minutes or hours in a timestep.
  • Bug Fix for viewing flow rate units (e.g., CMS) for annual only data variables, e.g., Reservoir Storage Capacity
  • Bug fix for conversion from Celcius to Fahrenheit for temperature results
  • Bug fix for plugin download: was not seeing the plugins on the WEAP ftp site if they were still in the old Paradox database format
  • Updated French and Portuguese translations

7/14/2021, Version 2021.0

NOTE: THIS VERSION USES NEW FILE FORMATS -- USERS WITH OLDER VERSIONS OF WEAP WILL NOT BE ABLE TO OPEN MODELS SAVED BY THIS OR LATER VERSIONS. (MODELS FROM OLDER VERSIONS CAN BE OPENED IN THIS VERSION, BUT WILL BE CONVERTED TO THE NEW FORMAT.)
  • MAJOR ENHANCEMENTS:
  • Climate Summary Maps and Charts: WEAP creates thematic GIS layers and charts to show how average climate varies across basin and within year. For an example, see https://www.weap21.org/Downloads/ClimateSummarySacramentoBasin.png
  • Much faster: Calculate several scenarios simultaneously, up to the number of CPU cores in your computer.
  • Enhanced groundwater modeling: WEAP can now use MODFLOW modules for seawater intrusion (SWI2) and groundwater evapotranspiration (EVT, ETS).
  • High-resolution US climate data: historical data at 4 km spatial resolution (GridMET) now included with WEAP.
  • Updated, high resolution background map layers from https://www.naturalearthdata.com/
  • Extensive additions to Application Programming Interface (API).
  • New database file format: WEAP now uses the NexusDB database format for improved reliability.
  • New results file format: much smaller and faster to access for viewing results.
  • OTHER ENHANCEMENTS:
  • SCHEMATIC:
  • Show Info for background GIS layers: Right click on a layer in the list of background layers and choose "Show Info" to see detailed information for the feature under the mouse cursor. You can have multiple info windows open at the same time, even for the same layer. The Climate Summary layer shows graphs of the climate averages over the year.
  • Thematic maps: Change which variable to use for the thematic map for a layer – right click on the layer in the background layer list and choose "Thematic Map."
  • Background GIS line layers: Line layers, such as for rivers or roads, can now use thematic coloring on the Schematic to distinguish differing values.
  • Delete all points upstream or downstream of a point on the river: Right click on an existing point in the river and choose either "Delete Upstream Points" or "Delete Downstream Points" to remove all nodes and points upstream or downstream of the point clicked.
  • CATCHMENT DELINEATION:
  • Climate Summary Map Layers: WEAP will automatically create a map layer that summarizes the climate for each climate grid square in your basin and add it as a background layer on the schematic. The summary includes, for each climate variable, the annual average as well as average for each month. By displaying a summary attribute as a thematic map, e.g., Average July Temperature, you can quickly see how the climate varies across the basin. Right click on the background layer and select Thematic Map to easily change which climate variable is mapped.
  • Catchment Climate: The climate CSV file folder now is named according to the source, e.g., ClimateData\PrincetonMonthly or ClimateData\CaliforniaPrism.
  • Easier to understand how to set "Year Offset" in the catchment delineation climate source window.
  • Some operations in catchment delineation mode much faster: for large model, especially those with many rivers in the background rivers layer, it is now MUCH faster (e.g., 5 seconds instead of 30 minutes!) to delete a basin, change a basin's pour point, or change the level of River Detail for a basin.
  • Can now handle high resolution climate tiles for medium and large basins.
  • Handle climate NetCDF files that do not include leap days
  • EXPRESSIONS/FUNCTIONS:
  • Data History report: Choose the History tab in the Data View to see a customizable report of all changes made to the model, including changes to expressions and units, creating new schematic objects and branches, etc. You can filter it to show changes for one or all scenarios, branches, variables or users, or by a range of dates. The report is searchable (type search terms in the edit box below the report) and sortable (click on the column title to sort by that column), and can be saved to a file in Excel, Word, Acrobat, CSV, HTML, XML or text format. See the toolbar to the right of the report for options. Click the funnel icon to be able to filter the report for just those lines that contain the text you type in the edit box below the report.
  • New branch functions for expressions: BranchLevel, NumChildren, HasTag. These can be used in a variable's default expression to create different expressions to use depending on branch level or tag.
	HasTag example: the default expression for Demand Site Monthly Variation in Weaping River Basin could be set to this:  
		If(HasTag(Industry),    Key\Monthly Variation\Industry,  
		   HasTag(Agriculture), Key\Monthly Variation\Agricultural,  
		   HasTag(Municipal),   Key\Monthly Variation\Municipal,  
		   100 * Days / DaysInYear)
  • ReadFromFile aggregation methods: Added three new methods for aggregating data, e.g., from daily to monthly: FirstTimestep, MiddleTimestep and LastTimestep. If used, it will get the value associated with the first, middle or last timestep of the period. For example, if the CSV file is daily and the timestep is weekly, and the values for the 7 days of timestep are 2, 3, 5, 7, 11, 13, 17, then the "aggregated" values for the FirstTimestep, MiddleTimestep and LastTimestep methods would be 2, 7 and 17, respectively. If there are an even number of values, then MiddleTimestep will average the two values in the middle. Note: if some values are missing, LastTimestep will be the value from the last timestep that is not missing.
  • New expression function: FirstNonZero(Expression1, Expression2, ..., ExpressionN): Return the value from the first expression that is not zero. One use is when climate data could come from one of several CSV files -- this can get the first one that is non-zero. E.g., FirstNonZero( ReadFromFile(HistoricalClimate.CSV, "Precip"), ReadFromFile(NearRealTimeClimate.CSV, "Precip"), ReadFromFile(ForecastClimate.CSV, "Precip") )
  • New data variable: reach outflow to groundwater as volume: Previously, river losses to groundwater could only be modeled as a percent of flow. Now they can alternatively be entered as a volume.
  • Expressions for instream flow requirements and demands are now allowed to be negative.
  • Wastewater Treatment Plant Removal Rate and Outflow Concentration: These can now vary monthly.
  • Optional river reach Net Solar Radiation data for water temperature calculation
  • Paste array into Monthly Time Series Wizard: you can now paste an array of values, such as from Excel, into the Monthly Time Series Wizard screen.
  • Paste Special: WEAP can now handle pasting an unlimited array of numbers from Excel to create a new time series expression. The previous limit was 1000 characters.
  • Allow depth units in references to catchment results, e.g., Demand Sites and Catchments\Big Farm:Surface Runoff[mm]
  • TotalChildren: Improved TotalChildren function to handle some specific cases that were not handled before.
  • Expression Builder: Fixed bug that sometimes caused the Expression Builder to crash when opened.
  • Reorder user-defined variable category buttons: If you have defined new categories for user-defined variables, you can change the order of the category. Right click on the category button and choose "Move Right" or "Move Left."
  • Import Expressions from Excel: If a variable is marked as read only, you cannot change the expression by importing.
  • Improved help in Expression Builder for functions.
  • CALCULATIONS:
  • Parallel Calculation: When calculating more than one scenario, WEAP can calculate multiple scenarios simultaneously, each in their own separate "instance" of WEAP. When WEAP asks "Do you want to recalculate now," you will have the option to turn on parallel calculation, and to set how many instances to use. (Go to Help, About to see how many CPU Cores your computer has.)
  • Improvements to binary result files:
    • Optimized for speed in viewing results
    • Single precision option (uses half the space as double precision, with little loss of meaningful precision -- still has 7 significant digits). Go to General, Basic Parameters to set. Existing areas default to double precision; new (blank) areas will default to single precision.
    • Can calculate up to 2500 years (500-3000)! (previous maximum was 500 years).
    • All results for one scenario are now stored in a single binary file (.bin), even if it exceeds 1 GB
    • Results for data variables now stored in same binary results files as other results
  • Save Only Selected Results: New option: Saving only results used by a specified list of favorites. Go to Edit, Results Variables, Select Results to Save..., and select "Select Favorites to Save". Useful if you have large models but only need results for a small subset (e.g., 30 river flow points out of 3000). This has the possibility to make the results files much, much smaller.
  • River seepage losses to groundwater modeled as a demand: To handle cases where the volume of seepage from river to groundwater exceeds the streamflow at that point in the river, WEAP will now model them as demands. Previously, they were constraints in the LP, which led to infeasibility if streamflow was too small, which WEAP handled by reducing seepage from ALL river reaches until the LP was feasible, not just on those reaches at fault.
  • Reservoir water quality: "Same as Inflow" can now be used in an expression, e.g., Same as Inflow + 5 will set the reservoir's outflow concentration equal to the inflow concentration plus five.
  • New result: Flow from Surface Water to Groundwater (Constrained), Flow from Surface Water to Groundwater (Unconstrained). Unconstrained shows the estimated seepage, constrained shows how much actually seeped. These will be the same, unless the estimated amount (from MODFLOW, the wedge model or entered directly as data) exceeded the streamflow in the reach, in which case the Constrained amount will be reduced.
  • New water quality result: "Wastewater Treatment Plant Inflow Water Quality (Mixed)" is the average water quality concentration in the untreated wastewater inflow to a treatment plant, from all sources combined. To get the value using the API, use "Inflow Water Quality," e.g., WEAP.ResultValue("\Water Quality\Wastewater Treatment\West WWTP:Inflow Water Quality[mg/l, WQ Constituent=BOD]", 2010, 8, "Reference")
  • Surface water quality calculations: If the streamflow is zero, the temperature or concentration will be set to that of the node or reach upstream.
  • River temperature calculation: the lowest tier of the flow-stage-width curve will now be a rectangle instead of a triangle. The triangle was leading to numerical instability when the river stage was very small.
  • Water Quality and catchments: concentration data variable is now multiplied by all outflow from catchment: Surface Runoff + Interflow + Base Flow + Flow to Groundwater.
  • Fixed bug in calculation for Simple Mixing for reservoirs: reservoir initial condition for water quality concentration was being ignored.
  • Faster when using a custom Working directory on a different drive, such as a RAMDisk or fast SSD. Existing binary results files are copied to working directory for faster access. Parallel calculations are done in custom Working directory.
  • Increased threshold -- from 20 billion cubic meters to 100 billion -- for calculation warnings of "extremely large values that may cause problems for the linear program solver." Warn not warn if less than 100 billion.
  • RESULTS:
  • Animated GIFs: When exporting result charts or maps, there is now an option to save to an animated GIF file, to show how the results change over time. For charts, this option is available only if the chart does not have years as the X axis or legend. Examples from Weaping River Basin.: https://www.weap21.org/downloads/Flows.gif https://www.weap21.org/downloads/GroundwaterCellHead3-D.gif https://www.weap21.org/downloads/GroundwaterCellHead2-D.gif https://www.weap21.org/downloads/SupplyRequirementAnimation.gif https://www.weap21.org/downloads/GroundwaterAnimation.gif
  • Long form result export to CSV: Save results in a format more suitable to Tableau and other visualization tools, with each result value on a separate line of the CSV file. Click the CSV button to the right of the results table and select "Long format (one value per line)." (You might need to uncheck "ReadFromFile format" first.) This is also available via the WEAP.ExportResults API -- set the 6th parameter to True: WEAP.ExportResults(CSVFilename, IncludeTitle, IncludeColumnTitles, Transpose, ReadFromFileFormat, LongFormat)
  • User-defined result variable categories: You may create your own result variable categories for your user-defined result variables. Edit the user-defined variable and in the category dropdown box choose < Edit Categories > to go to the "Manage Result Categories" screen, where you can create new categories and choose where in the results hierarchy to place them.
  • New options for "Grp" (Group) button on the chart toolbar: choose how many of the largest values to show; option to not show "All Others" at all; option to show only the smallest values. This last option could be useful for focusing on indicators, such as coverage, where the smallest values are most important.
  • Two new color palettes for charts and maps: Moisture (from red to green) and Temperature (from blue to red). These are automatically used when showing the climate summary layer for precipitation and temperature.
  • Optimized display of data variables in Results View.
  • MODFLOW:
  • Seawater Intrusion (MODFLOW SWI2 Package): WEAP can now link to MODFLOW's SeaWater Intrusion (SWI2) Package, for modeling of three-dimensional vertically integrated variable-density groundwater flow and seawater intrusion in coastal multiaquifer systems. If using this package, you can see results for the Zeta Surface Elevation as a 3-dimension surface for each active surface. (Each surface separates different variable density zones.) In addition, WEAP will adjust the fluxes in the cell-by-cell flow file by the terms SWIADDTOFLF, SWIADDTOFRF, and SWIADDTOFFF (which are computed by the SWI2 package), for the lower face (LF), right face (RF), and front face (FF), respectively, as well as using the new SWIADDTOCH term to correct the CONSTANT HEAD volume.
  • MODFLOW Groundwater Evapotranspiration: WEAP can now link to MODFLOW's EVT and ETS packages. Evapotranspiration will come directly from the groundwater node, and be included in the Groundwater Inflows and Outflow results. There are also two new MODFLOW results in the Results View: MODFLOW Evapotranspiration Volume and MODFLOW Evapotranspiration Depth. Note: There is no interaction with catchments (if they exist in the WEAP model).
  • Increased consistency with MODFLOW results: For MODFLOW models that have more than one timestep per stress period, WEAP will now read and average the results over all MODFLOW timesteps. Previously, WEAP was reading the stress period results from the final timestep only. Depending on the number of MODFLOW timesteps and rate of change, flows from the final timestep might not have been representative of flows over the entire stress period.
  • The version of MODFLOW 2005 included with WEAP has been updated from version 1.11 (2013) to 1.12 (2017). Note: this version only runs on 64-bit versions of Windows, yet it is compatible with WEAP, which is 32-bit.
  • The version of MODFLOW-NWT included with WEAP has been updated from version 1.1.4 (4/1/2018) to 1.2 (3/1/2020).
  • Groundwater storage when linked to MODFLOW: Groundwater storage can be less than zero only for groundwater nodes linked to any MODFLOW cells. (Previously, if a WEAP model was linked to MODFLOW, all groundwater nodes were allowed to go negative regardless of whether they were linked to any MODFLOW cells.)
  • MODFLOW General Head Boundary Stress Period data: Option to use some or all of the stress period data in the GHB file. By default, as with all MODFLOW packages, WEAP will only use the first stress period of data from the GHB file. However, the GHB package has the option of using some or all of the subsequent stress period data. This could be useful in cases where there are measured or modeled variations in these parameters over time. To use these stress period data, insert one or more comments at the top of the GHB file, using the following syntax. (All MODFLOW comments start with # in column one, and must be the first lines in the file.)
	# WEAPOPTION:STRESSPERIOD:FIRST:
	This option tells WEAP to start with the stress period number listed. 

	# WEAPOPTION:STRESSPERIOD:LAST:
	This option tells WEAP to stop with the stress period number listed. Use -1 to indicate the last stress period in the file.

	# WEAPOPTION:STRESSPERIOD:ALL
	Use data from every stress period in the file. If there are fewer stress periods than WEAP timesteps in the full planning horizon 
	(Base Year to End Year), WEAP will default to using the last stress period's data for all subsequent WEAP timesteps (defaults to 
	REPEATLAST option). This is equivalent to FIRST:1 and LAST:-1

	# WEAPOPTION:STRESSPERIOD:ANNUAL
	Use data from the first twelve stress periods in the file (or however many WEAP timesteps are in one year), and repeat it for 
	each year (defaults to CYCLE option). This is equivalent to FIRST:1 and LAST:12 and CYCLE (for a monthly model)

	# WEAPOPTION:STRESSPERIOD:CYCLE
	This option tells WEAP to repeat the stress periods' data, in conjunction with the ALL or ANNUAL or FIRST or LAST options. 

	# WEAPOPTION:STRESSPERIOD:REPEATLAST
	This option tells WEAP to use the final stress period's data for all subsequent WEAP timesteps if there are fewer stress periods 
	of data in the file than WEAP timesteps.  This is the default setting (except if using ANNUAL). 

	The ALL and ANNUAL options are mutually exclusive, as are the CYCLE and REPEATLAST options.

	Some examples and the resulting sequences of stress period data to use (all assuming 18 stress periods of data in the GHB file, 
	and a monthly WEAP model from 2020-2023):

		No options specified. Note: this is equivalent to FIRST:1 and LAST:1
		1,1,1,1,1,1,...

		# WEAPOPTION:STRESSPERIOD:ALL
		1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,... (defaults to REPEATLAST)

		# WEAPOPTION:STRESSPERIOD:ALL
		# WEAPOPTION:STRESSPERIOD:CYCLE
		1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1,2,3,4,5,6,7,8,9,...

		# WEAPOPTION:STRESSPERIOD:ANNUAL
		1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,... (defaults to CYCLE)

		# WEAPOPTION:STRESSPERIOD:ANNUAL
		# WEAPOPTION:STRESSPERIOD:REPEATLAST
		1,2,3,4,5,6,7,8,9,10,11,12,12,12,12,12,12,...

		# WEAPOPTION:STRESSPERIOD:FIRST:7
		7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,...

		# WEAPOPTION:STRESSPERIOD:LAST:6
		1,2,3,4,5,6,6,6,6,6,6,...

		# WEAPOPTION:STRESSPERIOD:FIRST:7
		# WEAPOPTION:STRESSPERIOD:LAST:12
		7,8,9,10,11,12,12,12,12,12,12,...

		# WEAPOPTION:STRESSPERIOD:FIRST:7
		# WEAPOPTION:STRESSPERIOD:LAST:12
		# WEAPOPTION:STRESSPERIOD:CYCLE
		7,8,9,10,11,12,7,8,9,10,11,12,7,8,9,...

		# WEAPOPTION:STRESSPERIOD:FIRST:7
		# WEAPOPTION:STRESSPERIOD:LAST:-1
		# WEAPOPTION:STRESSPERIOD:CYCLE
		7,8,9,10,11,12,13,14,15,16,17,18,7,8,9,10,11,12,13,14,15,16,17,18,7,8,...
  • SCRIPTING/APPLICATION PROGRAMMING INTERFACE (API):
  • Save Area as Visual Basic Script (VBS): on the menu, go to Area, Save as Visual Basic Script... to create a script that will recreate the current area's schematic and expressions. Note: not all information in the area is saved to the script, e.g., area bounds, background layers, CSV files, user-defined variables or units, favorites, etc.
  • Before MODFLOW Calculation Event: WEAP now calls this event script (if specified) after the MODFLOW input files are created but before MODFLOW is run. This will allow the user to make modifications to the MODFLOW input files.
  • NameList: All collections now have NameList as a property, to get a comma-separated list of items: WEAP.Areas.NameList, WEAP.Favorites.NameList, WEAP.Scenarios.NameList, WEAP.TagCategories.NameList, WEAP.Tags.NameList, WEAP.Timesteps.NameList, WEAP.Versions.NameList, WEAP.WQConstituents.NameList, WEAP.Branch("South City").Variables.NameList
  • API and calculations: Several API commands are not safe to call during calculation, such as SaveArea, AddBranch, etc. WEAP now will stop with an error if an attempt is made to call them during calculations.
  • Adding tags: Much faster to add many tags via the API in a script.
  • WEAPApplication API:
  • WEAP.BranchesOfType(BranchTypeOrID): Get the WEAPBranches collection of all branches of the specified type, e.g., WEAP.BranchesOfType("Catchment"). For a given type, equivalent to each of the type-specific functions: WEAP.CatchmentInflowNode, WEAP.Catchments, WEAP.DemandSites, WEAP.DiversionNodes, WEAP.Diversions, WEAP.FlowRequirements, WEAP.Gauges, WEAP.GroundwaterNodes, WEAP.OtherSupplyNodes, WEAP.Reservoirs, WEAP.ReturnFlowLinks, WEAP.ReturnFlowNodes, WEAP.RiverReaches, WEAP.Rivers, WEAP.RunoffInfiltrationLinks, WEAP.RunoffInfiltrationNodes, WEAP.RunOfRiverHydropowerNodes, WEAP.TransmissionLinks, WEAP.TributaryNodes, WEAP.WastewaterTreatmentPlants, WEAP.WithdrawalNodes. In addition, there are function to access the subset of reservoir on and off a river: WEAP.LocalReservoirs and WEAP.RiverReservoirs. Note: only includes top-level branches for Demand Sites and Catchments, not their descendants.
  • WEAP.Choose(Title, Options, InitiallySelected, ListSeparator): Ask user to choose one or more items from a list of options. If the optional parameter InitiallySelected is given, it lists the options that are initially checked. The return value is the list of options selected. Multiple items are separated by the character specified by optional parameter ListSeparator (which defaults to comma). E.g., WEAP.Choose("Choose One", "One,Two,Three")
  • WEAP.ResultsExportPrecision: Set or get the digits of precision (from 1-15, default is 6) to use when exporting result values (WEAP.ResultValue, WEAP.ExportResults). It will not reduce precision before the decimal point. E.g., if precision is 5, then 12345678.901 becomes 12345679, 123.456789 becomes 123.46, and 0.123456789 becomes 0.12346. NOTE: Previously, WEAP.ResultValue always had 15 digits of precision and WEAP.ExportResults always had 6. Now, the default for both is 6, but can be changed.
  • WEAP.CreateLink: New optional parameter, AddMidpoint (defaults to True), to determine whether or not to add an offset midpoint to the link in case there is already a link between the two points (to make them both visible).
  • WEAP.CreateRiver: Create a river or diversion on the Schematic, e.g., WEAP.CreateRiver("River", -71, 42, -70.9, 41.8, "Yellow River", "Yellow;River")
  • WEAP.ScreenUpdating: Much faster to add many scenarios or other changes in a script if you first set WEAP.ScreenUpdating = FALSE. (Make sure to set it back to TRUE when done.)
  • WEAP.ScreenRefresh: Call ScreenRefresh to update the schematic when ScreenUpdating = FALSE
  • WEAP.ResultSetting: New ResultSetting API properties, for customizing results via a script:
	WEAP.ResultSetting("Stat") = TRUE
	WEAP.ResultSetting("Group") = TRUE
	WEAP.ResultSetting("GroupNum") = 9
	WEAP.ResultSetting("GroupLargest") = TRUE
	WEAP.ResultSetting("GroupAllOthers") = TRUE
  • WEAP.ExportResults: Now works in the Data View, as well as the Results View and Scenario Explorer View.
  • WEAP.LoadFavorite: You can now specify which scenario to load in WEAP.LoadFavorite, using either the scenario's name or index (1 to number); use "All" or 0 to change the legend to all scenarios. E.g., WEAP.LoadFavorite("Groundwater Storage", "Demand Measures") WEAP.LoadFavorite("Groundwater Storage", "All")
  • WEAP.AddResultFileToTransfer: WEAP.AddResultFileToTransfer can be used in an event script (after a scenario is calculated during parallel calculations) to add files to be transferred to Manager, e.g., a CSV file that the script has created. Can be called several times to add several files to be transferred. Add one named "$No_Binary_Results$" to prevent binary result files from being transferred. Will be reset at the start of each scenario calculation. Here's an example:
          ' Unique filename, based on the ID code for a scenario.  Pad left with 0's, so that they alphabetize
	  Filename = WEAP.TempDirectory + "Scenario" + Right(FormatNumber(1000 + WEAP.ActiveScenario.ID, 0), 3) + "GW.csv"        
	  CALL WEAP.LoadFavorite("Groundwater Storage")  	' Load GW storage chart
	  CALL WEAP.ExportResults(Filename, TRUE, TRUE)		' Export to CSV
	  CALL WEAP.AddResultFileToTransfer(Filename)		' Transfer the CSV file back to main
	  CALL WEAP.AddResultFileToTransfer("$No_Binary_Results$")	' Do not transfer the binary results files
  • WEAP.TempPath: WEAP.TempPath gets the full path of the WEAP temp directory, e.g., C:\Users\Jack\Documents\WEAP Areas\_Temp. Read only.
  • WEAPBranches API:
  • WEAPBranches.FilterByName(Names): Gets subset of branches in the collection whose name matches one of the names in Names parameter (separated by commas). To allow partial matches, prefix with "Partial:", e.g., "Partial:Corn". To find branches that do NOT match, prefix with "Not:", .e.g., "Not:Forest". Returns a WEAPBranches collection. Read only. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.Catchments.FilterByName("Partial:Fresno").FilterByScenario("Not:Current Accounts").Choose("Select Catchments to set active in Current Accounts")
  • WEAPBranches.FilterByScenario(Scenarios): Gets subset of branches in the collection that are active in any of the scenarios in Scenarios parameter (separated by commas). To find branches that are NOT active in any scenario listed, prefix with "Not:", .e.g., WEAP.Branches.FilterByScenario("Not:Current Accounts,Reference") would match branches that were not active in Current Accounts or the Reference scenario. Returns a WEAPBranches collection. Read only. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.DemandSites.FilterByTag("South").FilterByScenario("Not:Current Accounts").Choose("Select Demand Sites to set active in Current Accounts")
  • WEAPBranches.FilterByTag(Tags): Gets subset of branches in the collection that have any of the tags in Tags parameter (separated by commas). To find branches that do NOT match, prefix with "Not:", .e.g., WEAP.Branches.FilterByTag"Not:South") would match branches that did not have a "South" tag. Returns a WEAPBranches collection. Read only. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.DemandSites.FilterByTag("South").FilterByScenario("Not:Current Accounts").Choose("Select Demand Sites to set active in Current Accounts")
  • WEAPBranches.FilterByType(Types): Gets subset of branches in the collection whose type matches one of the types in Types parameter (separated by commas). To find branches that do NOT match, prefix with "Not:", .e.g., WEAP.Branches.FilterByType("Not:Reservoir"). Returns a WEAPBranches collection. Read only. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.Branch("Gauge 01").UpstreamNodes.FilterByType("Catchments").FilterByScenario("Not:Current Accounts").Choose("Select Catchments to set active in Current Accounts")
  • WEAPBranches.FullNameList: Get a list of branch names (using the full path) separated by character specified by optional parameter ListSeparator (which defaults to comma). E.g., DSToDelete = WEAP.Choose("Choose Demand Sites to delete", WEAP.DemandSites.FullNameList)
  • WEAPBranches.NameList: Get a list of branch names separated by character specified by optional parameter ListSeparator (which defaults to comma), e.g., DemandSiteArray = Split(WEAP.DemandSites.NameList, ",")
  • WEAPBranches.Choose(Title, Default, MaxChoices, UseFullPath): Ask user to choose items from the branch collection. If the optional parameter Default is given, it has the comma-separated list of items that are initially checked. If the optional parameter MaxChoices is given, it has the maximum number of choices permitted. If not given or zero, there is no maximum. If the optional parameter UseFullPath is given, the branch list shown to the user will use the full branch path (e.g., \Demand Sites\South City) instead of the short name (e.g., South City). The return value is another WEAPBrances collection containing the selected items. If none were selected, the collection will be empty. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.DemandSites.FilterByTag("South").FilterByScenario("Not:Current Accounts").Choose("Select Demand Sites to set active in Current Accounts").NameList
  • WEAPBranch API:
  • WEAPBranch.UpstreamNodes(IncludeOffstreamNodes, IncludeLinks): Gets the WEAPBranches collection of all nodes upstream of this branch, which must be a river node. If IncludeOffstreamNodes is True (optional, default is False), include Demand Sites, Catchments and Wastewater Treatment Plants that return upstream. If IncludeLinks is True (optional, default is False), include River Reaches, and, if IncludeOffstreamNodes is also True, Return Flow and Runoff/Infiltration Links. See also DownstreamNodes. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.Branch("Gauge 283401").UpstreamNodes(True).FilterByType("Catchment") will get the collection of catchments upstream of the gauge.
  • WEAPBranch.DownstreamNodes(IncludeOffstreamNodes, IncludeLinks): Gets the WEAPBranches collection of all nodes downstream of this branch, which must be a river node. If IncludeOffstreamNodes is True (optional, default is False), include Demand Sites and Catchments that withdraw from the river downstream. If IncludeLinks is True (optional, default is False), include River Reaches, and, if IncludeOffstreamNodes is also True, Transmission Links. See also UpstreamNodes. Note: because it returns a WEAPBranches collection, you can string together several in one statement, e.g., WEAP.Branch("Central Reservoir").DownstreamNodes(True).FilterByType("Demand Site") will get the list of all demand sites downstream of Central Reservoir.
  • WEAPBranch.AddChildren(NewNames): Create branches on the Data Tree under the current branch with names from the comma separated list in NewNames. Only works for branches under Demand Sites and Catchments, Key Assumptions or Other Assumptions. If a branch under the current branch with a name already exists, a new one will not be created.
  • WEAPBranch.Descendants: Get the collection of all branches at all levels underneath this branch. The list has a "depth first" ordering -- a branch's children are ordered before its siblings. Returns a WEAPBranches collection. See also WEAPBranch.Children and WEAPBranch.Leaves.
  • WEAPBranch.Leaves: Gets the WEAPBranches collection of all leaves underneath this branch. (A leaf is the lowest level, with no children of its own.) See also WEAPBranch.Children and WEAPBranch.Descendants.
  • WEAPBranch.NumChildren API: Get the number of children below the branch, if any.
  • WEAPBranch.Level: Get the level of the branch in the tree, where the top level (e.g., Key Assumptions, Demand Sites, Supply and Resources) equals one.
  • WEAPBranch.FullName: Get the full path of the current branch. Each level is separated by the "\" character. (e.g. Demand Sites\South City) Read only.
  • WEAPBranch.IsRiverNode: Returns true if the branch represents a node on a river.
  • WEAPBranch.Split: Subdivide a branch, creating a new child for each name in the comma separated list NewNames. If parameter DoCopyData is TRUE (optional, defaults to TRUE), copy all data from the current branch to the new branches (except Activity Level and Area). Activity Unit for the new branches will be set to percent. For example, WEAP.Branch("\Demand Sites\Industry North").Split("Manufacturing,Cooling")
  • WEAPBranch.HasTag: Get or set whether the branch has a tag. E.g., WEAP.Branch("\Demand Sites\South City").HasTag("Agriculture") = FALSE
	For example, here is a simple VB script to turn off all catchments that do not have a specific tag (all catchments in 
	one basin were already tagged with this tag):

	FOR EACH Br in WEAP.Branch("\Demand Sites and Catchments").Children
	  IF Br.TypeName = "Catchment" THEN
	    Br.ActiveInCurrentAccounts = Br.HasTag("San Joaquin ab Millerton")
	  END IF
	NEXT
  • WEAPBranch.HasTagCategory: Are any of the branch's tags in the category, e.g., FOR EACH Br in WEAP.Catchments Br.ActiveInCurrentAccounts = Br.HasTagCategory("Upper Watersheds") NEXT
  • WEAPBranch.AddPoint: Add a point to the line (river, diversion, transmission link, return flow link, runoff/infilltration link) at location X, Y. If optional parameter AddBefore is given, add before this point (numbered 1 to N). If not given, add at end (rivers and diversions) or just before the end (links).
  • WEAPBranch.NumPoints: Get the number of points on the line (river, diversion, transmission link, return flow link, runoff/infilltration link).
  • WEAPBranch.TailflowNode: Get or set the tailflow node for a tributary or diversion, e.g., "Supply and Resources\River\Weaping River\Tributary Inflow\Blue River Inflow". Returns a WEAPBranch object -- use WEAPBranch.IsValid to test if valid (connected) or not (not connected). When setting, the node must already exist, and you can use either a WEAPBranch object or the branch's name. Set to "" (empty string) to disconnect. As a shortcut, you can give just the name of the node, e.g., "Blue River Inflow"
  • WEAPBranch.HeadflowNode: Get or set the headflow node for a diversion, e.g., "Supply and Resources\River\Weaping River\Diversions\Grand Canal Outflow". Returns a WEAPBranch object -- use WEAPBranch.IsValid to test if valid (connected) or not (not connected). When setting, node must already exist, and you can use either a WEAPBranch object or the branch's name. Set to "" (empty string) to disconnect. As a shortcut, you can give just the name of the node, e.g., "Grand Canal Outflow"
  • WEAPBranch.Note: Set or get the note associated with the branch in plain text format. If you want to set or get the note in rich text format, which includes text formatting codes and non-text elements such as graphics, use the NoteAsRTF property instead.
  • WEAPBranch.NoteAsRTF: Set or get the note associated with the branch, in rich text format. If you want to set or get the note in plain text format, without text formatting codes and non-text elements such as graphics, use the Note property instead.
  • WEAPBranch.IsValid: Return TRUE if the WEAPBranch object is assocaited with a valid WEAP branch.
  • WEAPVariable API:
  • WEAPVariable.ResultValues(Year1, Year2, Scenario): Get array of result values for every timestep in one or more years. If Year2 is omitted, values for Year1 are returned. If Scenario is omitted, the active scenario will be used. If the result variable is daily, then 365 (or 366 for leap years if leap days are used) values per year will be returned, regardless of the area timestep. This can be a MUCH faster way to retrieve many results in a script, instead of multiple WEAP.ResultValue calls.
  • WEAPVariable.Unit: Get a string containing the units of the data value, e.g., "m^3" or "CFS".
  • WEAPVariable.Scale: Get the numerical value of the scale, e.g., if ScaleUnit = "Million m^3", Scale = 1000000
  • WEAPVariable.DataSourceType: Get or set the data source type (Enter Expression, Water Year Method, or Read from File) for the variable (only valid for the following inflow variables: river headflow, groundwater natural recharge, local reservoir inflow, other local supply inflow, surface water inflow) for the specified scenario (optional -- if blank it defaults to active scenario).
  • WEAPScenario API:
  • WEAPScenario.NeedsCalculation: You can override the setting as to whether a scenario needs calculation or not. USE WITH CAUTION -- results may be incorrect if calculations needs to be run but you mark them as calculated. For example, to set all scenarios as calculated:
	    FOR EACH Scen IN WEAP.Scenarios
	      Scen.NeedsCalculation = FALSE
	    NEXT
  • WEAPWQConstituents and WEAPWQConstituent API:
  • New API classes to manage the list of water quality constituents: WEAPWQConstituents and WEAPWQConstituent. See help for full details.
  • MISCELLANEOUS:
  • XA Solver License: New license for XA, expiring 15 July 2022.
  • Manage Scenarios: The scenario tree now has checkboxes to see and select which scenarios will be calculated.
  • User-defined result variables that are hidden in the Data View can now be calculated and displayed in the Results View.
  • Add files to Plugins: You can now add files, such as scripts (vbs), Excel spreadsheets (xlsx) and Acrobat files (.pdf), to plugins.
  • Plugins now remember if included user-defined variables were hidden.
  • Minimum and maximum years: changed the allowable range of years for an area to 500-3000, with a maximum time horizon of 2500 years.
  • Append preference/priority number to the transmission link's name in cases where multiple links exist between the source and destination. Note: Existing such links are NOT automatically renamed, but will be renamed whenever the priority changes, or source and destination's name changes.
  • Weaping River Basin: Time horizon changed from 2010-2020 to 2020-2030. Time flies!
  • Editing an event script will now trigger the need for recalculation.
  • QUAL2K: Updated to using the most recent version of QUAL2K: 2.12b See http://www.qual2k.com/ for more information.
  • NexusDB: Changed database file format from Paradox to NexusDB.
  • BUGS FIXED:
  • Automatic catchment delineation: In some cases WEAP was unable to read climate data for very small catchments (less than 4 km in either dimension) from a very large user-defined netcdf file (larger than 2 GB).
  • PEST: Fixed bug with automated PEST parameter estimation procedure that was failing when using streamflow gauges for calibration.
  • In catchment delineation mode, when deleting one basin out of several, WEAP would sometimes delete the rivers from upstream or downstream basins.
  • In catchment delineation mode, WEAP didn't always create all land use branches even though "Including Area = 0" was turned on.
  • User-defined results variables: Fixed bug that prevented removing a user-defined result variable.
  • Key Assumptions results were not displayed correctly in the Results View in models with an annual timestep.
  • Calculations could crash if a reach had data for reach length but the connected groundwater node did not use the wedge method.
  • MODFLOW DIScretization package: Fixed problem where WEAP was not writing the correct stress period length in cases where the DIS package included EXTERNAL file references.
  • Daily climate data (for Mabia and PGM) were not being graphed in the Data View.
  • In the Data View, setting a tag filter would hide all Key Assumption and Other Assumption branches.
  • Sometimes WEAP determined that calculations needed to be run when in fact they were already up to date.
  • Handle Daymet climate files that do not include December 31 in leap years.
  • Catchments with "Irrigation Demands only" method were allowed to have runoff/infiltration links, and if the irrigation fraction was less than 100%, there was some runoff or infiltration.

7/16/2020, Version 2019.202

  • Updated license for the XA solver included with WEAP.

5/29/2020, Version 2019.201

  • Fix bug that prevented WEAP from linking to LEAP 2020.

8/1/2019, Version 2019.2

  • WEAP is now much faster to calculate and display results, and results files are much smaller.
  • CALCULATIONS:
  • Much faster to calculate large models: The XA solver is now included with WEAP, and free for everyone to use until 15 July 2020. For larger models, this solver is up to 10 times faster and more robust than the other solver included with WEAP (lpsolve). To choose this solver, go to the Menu: General, Solver, XA. Keep in mind that, due to the nature of the complex numerical calculations performed by MILP solvers, each solver will yield slightly different results. This means that WEAP results can vary slightly depending on the solver used. For more information about XA, see http://www.sunsetsoft.com
  • Much smaller results files (as much as 40% smaller)
  • RESULTS VIEW:
  • Much faster to display charts and tables in the Results View, especially for very large models, up to 10 times faster.
  • Scenario comparison in results ("Relative to"): Can choose Difference (A-B), Index (A/B) or Percent (A-B)/B.
  • Result names changed: For Soil Moisture and Simplified Coefficient Methods: "Total Annual Yield[kg]" to "Annual Crop Production[kg]" and "Total Market Value" to "Annual Market Value"; for MABIA: "Crop Yield[kg]" to "Annual Crop Production[kg]" and "Market Value" to "Annual Market Value"; for PGM: "Annual Production[kg]" to "Annual Crop Production[kg]"
  • CLIMATE DATA FOR CATCHMENT DELINEATION:
  • Catchment Delineation climate: Can now handle climate NetCDF files of any size; faster reading large files.
  • Much faster processing climate data from very large (larger than 1 GB) NetCDF files, up to 100 times faster.
  • Handle Daymet climate files that do not include December 31 in leap years. The ReadFromFile expressions will fill this gap by interpolating the December 30 and January 1 values.
  • API:
  • WEAP.ZoomLevel: Set or get the zoom level of the map in the Schematic View. ZoomLevel = 1 corresponds to the full area extent; ZoomLevel = 2 is zoomed in by a factor of two, such that the width and height shown are half of the full area extent.
  • WEAP.CreateNode: Specify which river (or not) on which to place the new node. If the optional RiverName parameter is given, then the new node will be placed on that river. Use RiverName = "N/A" to force the node to not be placed on a river, e.g., to make the new reservoir a "Local" reservoir, e.g., Set WestReservoir = WEAP.CreateNode("Reservoir", -71.88, 42, "West Reservoir", "West;Reservoir", false, 99, "N/A")
  • WEAP.ScreenUpdating: WEAP.ScreenUpdating = True/False: Turn on or off updates to the screen in the Schematic or Data View. Useful when using CreateNode and CreateLink to build a large WEAP model, or changing many data expressions at once -- it will be much faster if you set - ScreenUpdating = FALSE before calling CreateNode and CreateLink. ScreenUpdating will automatically be set to TRUE when opening an area.
  • Faster: Deleting multiple objects on the Schematic, creating many objects and links via the API (WEAP.CreateNode, WEAP.CreateLink)

4/26/2019, Version 2019.1

  • MAJOR ENHANCEMENTS:
  • Enhanced results on map: Display results on the map for any polygon shapefile, including the catchment layer that WEAP's automatic catchment delineation creates.
  • Priority on Transmission Link: For demand sites and catchments, you now have the option of setting the demand priority directly on the transmission link, instead of the demand priority on the demand site and the supply preference on the transmission link. This could be useful if a demand site represents several demands which have different priorities. To select this option, right click on the demand site or catchment, choose General Info, then check the box for "Priority on Transmission Link?". You may also change the default setting for new demand sites and catchments on the Basic Parameters screen.
  • Distribution Order: To distribute differing amounts of water to branches within a demand site or catchment in case of shortage, set a distribution order for each branch. If coverage < 100%, WEAP will distribute water first to branches with distribution order 1, then second to order = 2, etc. Enter data at any level of the Data Tree. A value entered at one level will be used by all branches at lower levels, unless a value has also been entered at the lower level. Leave all blank to distribute to all branches equally. By default, this option is turned off; to turn it on, go to Basic Parameters.
  • Other Enhancements:
  • Catchment Delineation:
  • Reading land cover data from NetCDF files: Previously, the data format was required to be integer. Now, it can be integer or floating point. However, all values must be in the range 0-255.
  • WEAP is now much faster when updating complex catchments with many elevation bands and land cover branches in catchment delineation mode.
  • Fixed bug in reading climate from NetCDF files: Data was not read if it was double precision floating point values.
  • MODFLOW:
  • MODFLOW Pumping Reductions: When using MODFLOW-NWT and the UPW (Upstream Weighting) package, MODFLOW will reduce the amount that can be pumped from a cell as the cell's head approaches the bottom of the cell (according to the setting of the PHIRAMP parameter in the WEL package). If the setting (in General, Basic Parameters) for "MODFLOW Pumping if Dry or Inactive Cells" is "Do not reapportion pumping from dry or inactive cells," WEAP will reduce groundwater pumping by demand sites and catchments from these drying cells accordingly. This will result in Unmet Demands, and will be included in the MODFLOW "Pumping Reduction" reports. See https://water.usgs.gov/nrp/gwsoftware/modflow2000/MFDOC/index.html?upw_upstream_weighting_package.htm for more information.
  • Data View:
  • Bookmarks: You can bookmark up to 9 branches on the Data View tree, so that you can instantly jump to their location. To set a bookmark, select the branch on the tree and press Shift-Control-#, where # is a number from 1-9. To jump to a previously bookmarked branch, press Control-#. You can also access these functions on the Tree, Bookmarks menu, which also lets you clear all bookmarks, and copy the current list to the Windows clipboard.
  • Climate results: Expressions can now reference climate results, such as Snow Depth, in models with climate data at the sub-catchment level.
  • Calculations and Results View:
  • Results View graphs are faster to display, especially for charts with many data points.
  • Fixed bug in Runoff use for irrigation: For catchments that used "Irrigation Use of Runoff," WEAP was erroneously including a fraction of infiltration to groundwater on the "Runoff Used for Irrigation" line in the Demand Site Inflows and Outflows report. Also, WEAP wasn't handling the Runoff Used for Irrigation correctly for catchments that didn’t have any transmission links (relying only on runoff for irrigation).
  • Fixed bug in MABIA ETActual result: When WEAP reported the result for ETActual, it was not including direct evaporation from irrigation lost to evaporation. (This is different from evaporation from bare soil from irrigation.)
  • PEST: PEST can now use snow gauge data to calibrate models with climate data at the sub-catchment level.
  • Application Programming Interface (API):
  • WEAPArea.Backup(BackupFolder, IncludeResults): Backup the area to a .WEAP file in the specified BackupFolder. Optionally include results.
  • WEAPFavorite.Delete: Delete the favorite
  • WEAPFavorite.Folder: Get the name of the folder the favorite is in. If it is not in a folder, it returns an empty string. Read only.
  • WEAPFavorite.Note: Get or set the favorite's note.
  • WEAPBranch.PriorityOnTransmissionLink: Get or set whether the demand priority is entered on the transmission link. If not, the demand priority will be entered on the demand site or catchment, and the supply preference will be entered on the transmission link. Can be used only on Demand Sites, Catchments or Transmission Link branches. When used on a Transmission Link, it will set PriorityOnTransmissionLink for the Demand Site or Catchment to which the Transmission Link goes.
  • WEAP.CreateLink: You can now create multiple transmission links between the same source and destination.
  • Miscellaneous:
  • Translations: Improved translations for Portuguese and Turkish.

1/2/2019, Version 2019.0

  • MODFLOW:
  • MODFLOW pumping from inactive cells: Previously, if one of the layers of a cell was inactive, and the pump layer included that inactive layer, WEAP would erroneously try to pump from the cell in that inactive layer. In this new version of WEAP, if any of the layers are inactive, WEAP will reapportion pumping to the active cells. For example, if pumping equally from ten cells split across layers 1 and 2, and layer 1 was inactive for two of the cells, instead of 10% of the pumping directed to each of the ten cells, 12.5% would be directed to the eight active cells.
  • MODFLOW option: Choose whether or not to reapportion pumping from dry or inactive cells to other cells. Go to General, Basic Parameters, MODFLOW Pumping if Dry or Inactive Cells. In cases where some of the cells being pumped become dry or inactive, this setting determines whether WEAP will pump more from the other cells (Reapportion), or reduce pumping proportionally (Do not reapportion) . For example, if a demand site is pumping equally from 10 cells (10% of demand from each), and 2 cells become dry, WEAP will either pump 12.5% from each of the other 8 cells (Reapportion the 20% from the 2 dry cells to the other 8 cells) or pump 10% of demand from each of the other 8 cells, which would mean that at most 80% of the demand could be satisfied. Determining the correct setting for this option depends on the characteristics of your system, for example, if individual pumps have the ability to increase their pumping or not to pick up the slack for pumps that cannot pump due to dry cells.
  • MODFLOW Global Head Boundary (GHB) Package: WEAP was not requiring GHB results to be saved to the cell-to-cell flows results file, in which case the WEAP groundwater mass balance did not include them. This has been fixed.
  • MODFLOW cell to cell flow results: WEAP now checks to make sure that all required results exist, and no unexpected results exist.
  • MODFLOW-NWT: WEAP will now allow the WELL package in a MODFLOW-NWT model to include a line with the SPECIFY keyword. See https://water.usgs.gov/ogw/modflow-nwt/MODFLOW-NWT-Guide/ for more information.
  • MODFLOW-NWT: Because MODFLOW-NWT does not use the special head value HDRY to denote dry cells, WEAP will now check if the cell's head is below the bottom of the cell to determine if a cell is dry (but only when using MODFLOW-NWT).
  • Latest version of MODFLOW-NWT included (version 1.1.4, 4/1/2018). See https://water.usgs.gov/ogw/modflow-nwt/ for more information.
  • Displaying MODFLOW cell results in the Results View, Map tab: The current row, column and layer are now shown in the title for the chart below the map. Also, fixed bug that was preventing display of results using colors on map.
  • Save all MODFLOW input and output files: This option is no longer required in order to view MODFLOW results (cell head, recharge, pumping, etc.). Turning it off should save substantial disk space.
  • Delete Results: The "Delete Results" button on the Manage Areas screen now will delete MODFLOW results files even if they are in a subdirectory.
  • Calculations and Results View:
  • Reduced size for result files (up to 70% smaller)
  • Reduced number of "required" result variables: Fewer result variables are required to be saved in Edit, Result Variable, Select Variable to Save. (Turning off the saving of various result variables can save calculation time and disk space.)
  • Results View Menu: In cases where the user has turned off the saving of various result variables (to save calculation time and disk space), those inactive variables are now listed at the bottom of each list of result variables on the menu, sometimes within a nested submenu named "Inactive Results."
  • Results View Legend: As you move the mouse over the items in the legend, all items except the highlighted one will turn gray in the chart, making it easy to see the highlighted results.
  • Result variables renamed: the title of all daily result variables have been changes so that they begin with "Daily," e.g., "Daily Irrigation."
  • Fixed bug: Negative net evaporation (precip) on a reservoir had been ignored if the reservoir was full.
  • Fixed bug: In some cases, WEAP was incorrectly giving the error "The sum of reach evaporation, outflow to groundwater and flooding cannot exceed 100% of river flow," which caused calculations to halt.
  • API:
  • API: New API function to test if results exist: WEAP.ResultsExist(BranchVarName, Year, TimeStep, Scenario). For example, River Flood Inflow only exists for catchment branches if there is non-zero flooding inflow in that timestep.
  • Set scale and unit via API: The scale and unit for demand branches and key assumption branches can be set using the Variable.ScaleUnit API, e.g., WEAP.Branch("\Demand Sites\West City").Variables("Annual Activity Level").ScaleUnit = "Million Person", WEAP.Branch("\Demand Sites\West City").Variables("Annual Water Use Rate").ScaleUnit = "1000 m^3", WEAP.Branch("\Key Assumptions\Drivers\GDP").Variables("Annual Activity Level").ScaleUnit = "European Euro"
  • Set method via API: The method for Demand Sites, Catchments and Groundwater nodes can now be set via the API, e.g., WEAP.Branch("\Demand Sites\West City").Variables("Method").Expression = "Specify monthly demand", WEAP.Branch("\Demand Sites\Catchment 1").Variables("Method").Expression = "Rainfall Runoff (soil moisture method)", WEAP.Branch("\Demand Sites\Catchment 1").Variables("Method").Expression = "MABIA", or WEAP.Branch("\Supply and Resources\Groundwater\North Aquifer").Variables("Method").Expression = "Model GW-SW Flows"
  • Miscellaneous:
  • Default Water Use Rate unit: The unit for Annual Water Use Rate for new demand sites and new demand branches will be the unit as set in General, Units, Default Water Use Rate.
  • Translations: Improved translations for Portuguese, Turkish and Khmer (Cambodian)

8/23/2018, Version 2018.1

  • Organize favorites into groups: Favorites can be grouped into subfolders on the menu, which can help if you have many favorites. In the Results View, go to Favorites, Manage Favorites.
  • Injection layers for artificial recharge in MODFLOW: When using injections wells for artificial recharge, you can specify MODFLOW layer(s) into which a demand site's return flow should go. In the Data View, go to the demand site variable "Injection Layer" -- next to the "Pump Layer" variable in the "Pumping" category. Use the PumpLayer function to specify more than one layer, e.g., PumpLayer(3, 0.5, 4, 0.5).
  • Irrigation Use of Runoff: You can specify the fraction of a catchment's runoff that can be used internally for irrigation instead of flowing to the runoff link's surface water inflow point. In the Data View, go to the Irrigation / Irrigation Use of Runoff variable. See the help for more information, including calculation equations.
  • 9-digit demand priorities: You can change the Lowest Allowed Demand Priority from its default of 99 to anything up to 999,999,999. Go to General, Basic Parameters. (For example, this could be useful if you want to use water right dates, in YYYYMMDD format, as the demand priorities.) See help for more information.
  • Theoretical Irrigation Demand and Shortfall: The following two results are now available for Soil Moisture Method as well as MABIA catchments (in the Demand section):
  • Theoretical Catchment Irrigation Demand: An irrigation shortfall in one timestep will cause an increased irrigation demand in subsequent timesteps because of the holdover soil moisture deficit. "Theoretical Catchment Irrigation Demand" will reflect only the demand from the current timestep's evapotranspiration, not counting any holdover soil moisture deficit from previous timesteps. Because calculating theoretical demand requires additional calculations, it may slow down calculations somewhat. If you turn off this variable -- see Customizing Result Variables -- it will not be calculated.
  • Annual Theoretical Catchment Irrigation Shortfall: This is the annual sum of Theoretical Catchment Irrigation Demand minus the annual sum of Irrigation (Supply Delivered) to the catchment branch. This is the "actual" unmet demand, which is not based on the double counted irrigation demand that occurs in cases of irrigation shortage.
  • Tags: Key Assumption and Other Assumption branches can now have tags.
  • API: Branches can now be deleted via the API. Branch.Delete will delete the branch and any associated schematic objects. If the branch has any children, they will also be deleted.
  • Linking WEAP and LEAP: Additional improvements to make linking process more robust. Note: Both LEAP and WEAP now require the most up-to-date versions of each tool and will report an error if you try to link to an older version.
  • Linking WEAP and LEAP: Minor interface changes to better inform you via the main screen titles when LEAP and WEAP are linked (and which area you are linked to).
  • Lock branches: Any branch in the Data Tree can be locked to prevent its expressions from being edited. Also, locked branches cannot be renamed or deleted. Locked branches appear grayed out in tree.
  • Month: The Month function for expressions has been extended for use in models with any timestep length (other than weekly). If the model timestep is daily, Month will return the number of the month (1-12) that the date is in (regardless of water year start date). For example, If(Inlist(Month, April, June, August), 10, 20) will equal 10 in April, June and August, and 20 in the other months.
  • New function for expressions: Inlist(A, V1, V2, V3, ...) will be true if A equals one of the values (V1, V2, V3, etc.), false if it does not match any of the values.
  • Choose: New function for expressions: Choose(i, Choice1, Choice2, Choice3, ..., ChoiceN): chooses the i-th choice from the list. For example, Choose(Month, 10, 15, 18, 22, 25, 30, 40, 32, 27, 17, 12, 5) = 10 in January; = 15 in February; = 18 in March; etc.
  • New function for expressions: DaysInMonth. The result is the number of days in the current month. For models with a monthly timestep, this is equivalent to the Days function. E.g., For a daily model, will return 31 for every timestep in January. Works for any timestep length other than weekly.
  • User defined variable comments: Comments for user defined variables can now be longer than 256 characters. (No limit.)
  • Fixed bug in PEST setup screen: WEAP was crashing if the user tried to select a subset of observations to calibrate to (e.g., reservoirs, years, months).
  • Fixed bug with daily results reporting: Previously, results for the last day of the water year were calculated but not shown for daily catchment method results (e.g., MABIA Evaporation) in models with a monthly timestep.

5/31/2018, Version 2018.01

  • Better appearance on high resolution monitors when Windows has scaled the size of text and other items larger than 100%. WEAP will now scale correctly so that text is larger and fits well within dialog boxes and windows.
  • New option for reservoir water quality: SimpleMixing. NOTE: This method is only appropriate where complete mixing can be assumed, i.e., small reservoir, conservative constituent, monthly timestep. Choose SimpleMixing from the drop-down menu in the expression box for Reservoir Water Quality. SimpleMixing will calculate the concentration of water in storage in the reservoir, starting from its initial concentration (the initial condition for the first timestep of the simulation is given as the parameter to the SimpleMixing function, thereafter it is the concentration from the previous timestep), adding in any pollution loads from inflows to the reservoir. Evaporation will increase the concentration, because the water that evaporates carries no pollution. This function is only available for conservative constituents -- it cannot be used for temperature, BOD, DO or any constituent with first-order decay. For reservoirs with SimpleMixing, you can see the results for their concentration in the Results View report: Water Quality, Reservoir Storage Water Quality (Mixed). This report is only available for reservoirs that use SimpleMixing.
  • MODFLOW General Head Flow: WEAP will now read results from the GHB package (General Head Boundary) and include in its groundwater mass balance. New Results: MODFLOW General Head Flow Volume, MODFLOW General Head Flow Depth. General Head has been added to the list of features you can view on the Results View Map.
  • Plugins: If the user makes changes to the definition for a user-defined variable that is included in a plugin, the plugin is automatically updated to include the changes.
  • Results View: Options that are shown above the chart (dropdown boxes, checkboxes) will now automatically wrap to a second line if the WEAP window is not wide enough to accommodate them all on one line.
  • Fixed bug in Climate file creation of catchment delineation mode: If daily data was used and the Windows date format was not mm/dd/yyyy, WEAP wrote the incorrect date format to the climate csv file.
  • Expression Elaboration: Expressions that are too long were causing problems for the Expression Elaboration report (in the Data View, next to Chart and Table), so expressions longer than 1000 characters are now truncated (in the report).
  • Fixed cases where MODFLOW Recharge results were not converted to the correct unit in cases where the recharge result was very close to the value for an inactive cell (e.g., 999.99).

4/30/2018, Version 2018.0

  • Major new version of WEAP: highlights include:
  • Automatic Catchment Delineation: WEAP can delineate catchments and rivers (using digital elevation data), calculate land area (disaggregated by elevation band and land cover), and download historical climate data for each catchment (by elevation band). This will greatly simply the process of setting up and modeling catchment hydrology. WEAP will automatically download global datasets for elevation, land cover and climate as needed. WebHelp/index.html#Catchment_Delineation.htm
  • Tags: Tags allow you to create entirely new structures for organizing the data and objects in your model, and can be used for grouping, organizing, filtering, highlighting and subtotaling results. Every object on the schematic can be assigned one or more user-defined tags, and tags can be grouped into user-defined tag categories. Think of tag categories as different dimensions for your data, such as location (north, south, east, west), river basin, economic sector (industry, agriculture) or ownership (state, federal). WebHelp/index.html#ManageTags.htm
  • Plugins: Plugins can be added to your models to extend their capabilities, such as calculating reservoir evaporation, agricultural residues or energy requirements. Create your own plugins or download them from the WEAP website or from colleagues. WebHelp/index.html#Plugins.htm
  • Access to commercial LP solvers (Gurobi and XA) to greatly accelerate calculations on very large models -- up to ten times faster. WebHelp/index.html#LPFormulation.htm
  • Filtering the Schematic and Tree: You can selectively show or hide objects on the Schematic and Data View Tree based on their scenario, type and tags. For example, to show only objects that are not active in Current Accounts, set the filter to: Scenario <> Current Accounts. WebHelp/index.html#FilteringSchematic.htm
  • Link to MODFLOW 2005 and MODFLOW NWT groundwater models WebHelp/index.html#Linking_to_MODFLOW_Full.htm
  • Numerous other improvements, optimizations and bug fixes.
  • SCHEMATIC:
  • Create non-rectangular regions for group operations (move, delete, tag) on the Schematic: Alt-click and drag to create a rectangular region on the schematic; control-alt-click and drag to create an irregular shape. Click once for each point on the shape, double click to finish it. A red shape is drawn, and you can drag it to move the objects within, or right click for a menu of options, including delete, and add or remove tags.
  • Canceling operations on the Schematic: On the schematic, hitting the escape key will cancel the following: moving a label, moving a node or point, moving a group of objects (defined by Alt-drag), and restore to the Mapped position.
  • DATA AND EXPRESSIONS:
  • Moved "Pollutant Decrease in Return Links" on the tree: From under Water Quality to the Water Quality section under Supply and Resources \ Return Links
  • Improved stability of copying branches on the Data Tree.
  • Import from Excel: When importing expressions and units from Excel for variables whose units have denominators, you can now import both the numerator and the denominator unit. Previously, only the numerator was importable. For example, importing transmission link Maximum Flow Volume, which has units volume/time, such as ft^3/s or Million gallons/day.
  • The following Plant Growth Model Method (PGM) result variables can now be referenced in an expression (using PrevTSValue): Potential Biomass, Actual Biomass, Daily Yield, Yield, Actual Harvest Index
  • Import expressions from Excel: WEAP had been unable to import expressions longer than 8221 characters, but now the limit is 32,000 characters.
  • Referring to crop results in expressions: A few new result variable can now be referred to in expressions: Yield (MABIA), Market Value (MABIA), Production (PGM). You can specify a single crop, or total over all crops, e.g., PrevTSValue(Demand Sites and Catchments:Production[kg, Crop=Corn]) is total production of the PGM crop named "Corn" for all catchments, PrevTSValue(Demand Sites and Catchments\Big Farm:Production[kg]) is total production for all branches and crops under catchment "Big Farm"; PrevTSValue(Demand Sites and Catchments:Crop Yield[kg, Crop=Lettuce (Mediterranean)]) is total yield of the MABIA crop Lettuce (Mediterranean) over all catchments.
  • CALCULATIONS:
  • Improved accuracy of soil moisture method mass balance
  • Reduced memory use during calculations.
  • RESULTS:
  • New MABIA Demand result: Theoretical Catchment Irrigation Demand: An irrigation shortfall in one timestep will cause an increased irrigation demand in subsequent timesteps because of the holdover soil moisture deficit. "Theoretical Catchment Irrigation Demand" will reflect only the demand from the current timestep's evapotranspiration, not counting any holdover soil moisture deficit from previous timesteps.
  • New MABIA Demand result: Annual Theoretical Catchment Irrigation Shortfall. This is the annual sum of Theoretical Catchment Irrigation Demand minus the annual sum of Irrigation (Supply Delivered) to the catchment branch. This is the "actual" unmet demand, which is not based on the double counted irrigation demand that occurs in cases of irrigation shortage.
  • New Plant Growth Model (PGM) result: Biomass Production. This is the total annual mass of harvested biomass: Actual Biomass on Harvest Date[kg/ha] * Area[ha] = Biomass Production[ha].
  • New Plant Growth Model (PGM) result: Actual Harvest Index: the fraction of the plant mass that is harvested.
  • APPLICATION PROGRAMMING INTERFACE (API):
  • Create schematic nodes and links via the API: The two API methods are WEAP.CreateNode and WEAP.CreateLink, which each return a WEAPBranch object for the new schematic node or link. The syntax is:
	  CreateNode(TypeNameOrID, X, Y, Name, MapLabel, ActiveInBaseYear, Priority, IsIrrigated)  The first four parameters are required.
	  CreateLink(TypeNameOrID, Source, Destination, ActiveInBaseYear, Preference)  The first three parameters are required.  
	  See the help topic for the API class WEAPApplication for full information.  WebHelp/index.html#WEAPApplication.htm

	  Here is a VBS example of its use (for the Weaping River Basin area):

		Set NorthCity = WEAP.CreateNode("Demand Site", -70.88, 42, "North City", "North;City", True, 2)
		Print NorthCity.FullName & " is located at " & FormatNumber(NorthCity.X, 2) & ", " & FormatNumber(NorthCity.Y, 2)   
		    ' Demand Sites\North City is located at -70.879997253418, 42
		Set NewGWLink = WEAP.CreateLink("Transmission Link", WEAP.Branch("North Aquifer"), NorthCity)
		Print NewGWLink.FullName & " goes from (" & FormatNumber(NewGWLink.X, 2) & ", " & FormatNumber(NewGWLink.Y, 2) & "), to (" _
		     & FormatNumber(NewGWLink.X2, 2) & ", " & FormatNumber(NewGWLink.Y2, 2) & ")"
		Set NewWithdrawalNode = WEAP.CreateNode("River Withdrawal", -70.886, 41.97, "Withdrawal for North City")
		Set NewRiverLink = WEAP.CreateLink("Transmission Link", NewWithdrawalNode, NorthCity)
		Set NewRiverReturnLink = WEAP.CreateLink("Return Flow", NorthCity, NewWithdrawalNode)
  • Interactive calculations via the API: Interactive calculations make it possible to calculate a single timestep in WEAP and then perform other tasks in a script before calculating the next timestep, such as transferring WEAP results for the timestep just calculated to another model that is run and results from it are imported back into WEAP. During the pause between timestep calculations, you may change data expressions; you can change any CSV files that WEAP is reading via the ReadFromFile expression and that new file will be used for subsequent timesteps' calculations; and you can get access to result values that have been calculated in this or a previous timestep, using WEAP.ResultValue.See the help topics for the API classes WEAPApplication and WEAPScenario for more information on the following functions: WEAPApplication.InitializeInteractiveCalculations, WEAPApplication.FinalizeInteractiveCalculations, WEAPApplication.IsCalculatingInteractively, WEAPScenario.InitializeInteractiveCalculations, WEAPScenario.CalculateNextTimestep, WEAPScenario.IsCalculatingInteractively and WEAPScenario.FinalizeInteractiveCalculations.
      Here is a VBS example of its use:

	IF WEAP.InitializeInteractiveCalculations THEN
	  FOR EACH S IN WEAP.Scenarios 
	    IF WEAP.Status AND S.ResultsShown AND S.InitializeInteractiveCalculations THEN
	      KeepCalculating = TRUE   
	      WHILE KeepCalculating 
	        KeepCalculating = S.CalculateNextTimestep    ' CalculateNextTimestep = FALSE after last timestep in scenario is calculated
	        Perform some other tasks...    ' Use WEAP.CalcYear and WEAP.CalcTS to determine which timestep was just calculated
	      WEND
	      S.FinalizeInteractiveCalculations
	    END IF
	  NEXT

	  IF WEAP.Status THEN
	    WEAP.FinalizeInteractiveCalculations
	  ELSE
	    WEAP.FinalizeInteractiveCalculations "There was an error calculating."    ' Display error message to user
	  END IF
	END IF
  • WEAP.ResultSetting("Branch"): Expanded cases where this can be used, e.g., in the Groundwater Storage report, you can set which groundwater nodes are displayed, e.g., WEAP.ResultSetting("Branch")="Supply and Resources\Groundwater\West Aquifer"
  • WEAP.SaveAreaAs(NewAreaName): Save area with new name. The old area will still exist. Any unsaved changes to current area will be saved in new area, but not in the old area
  • WEAP.Branch can now use partial branch paths, e.g., WEAP.Branch("Central Reservoir") is a shorthand way to refer to WEAP.Branch("\Supply and Resources\River\Weaping River\Reservoirs\Central Reservoir"). However, if two branches have the same name, only the first one will be the one selected.
  • New API properties: WEAPScenario.FirstYear, WEAPScenario.LastYear. Get the first and last years of the scenario.
  • Improved speed for scripts that make millions of calls to WEAP.ResultValue
  • In cases where millions of API calls to WEAP.ResultValue were made, WEAP was running out of space in a temporary internal table. Further reduced the maximum size the temporary table was allowed to grow to.
  • Change the scenario displayed in Overview charts: WEAP.ResultSetting("Scenario") = "All", or = "Scenario Name", or = "From Favorite"
  • ExportResults: WEAP will now automatically overwrite an existing file when ExportResults is called from the WEAP API (if the setting for Verbose is 0 or 1, i.e., no questions are asked).
  • New API property: Branch.ShapeID
  • New API: ExportExpressions and ImportExpressions, to export and import expressions to and from Excel (in the Data View). Refer to help for more information: WebHelp/index.html#WEAPApplication.htm
  • WEAP.ResultValue can now get daily result values.
  • BUGS FIXED:
  • Fixed bug in Schematic View "Set Active in Current Accounts" screen, used for changing setting for "Active in Current Accounts?" for many objects at once.
  • Fixed bug in linkage to LEAP: WEAP's Expression Builder was unable to add references to variables in recent versions of LEAP.
  • Fixed bug: Link to LEAP screen was not working correctly -- could not select LEAP scenarios or timesteps to link
  • Fixed bug in MODFLOW: WEAP was not adding pumping to the well file from catchments that had land use branches that were not linked in the linkage shape file.
  • Fixed bug in MODFLOW calculations: Recharge was not being calculated correctly in cases where catchments had land use branches but the MODFLOW link shapefile only linked cells to catchments, not also to land use branches.
  • Fixed bug: A bug was preventing adding a default expression to any built-in variables that also had result variables with the same name, e.g., Precipitation.
  • Fixed crash in Expression Elaboration caused by extremely long expressions (e.g., more than 4000 characters).
  • Fixed bug: In cases where a reservoir had an expression for the buffer zone priority or the hydropower priority, and the expression evaluated to zero, WEAP was not clearing the previous non-zero value for the priority. For example, if the buffer zone priority was set to 5 in one run, and then set to 0 in the next run, WEAP would still be using the value of 5 in the second run.
  • Fixed bug in ReadFromFile: In ReadFromFile expressions that referred to columns by name instead of index, WEAP was getting confused by some column names (that included non-alphabetic characters, such as %, or that started with a number).
  • Improved ReadFromFile: in some cases, WEAP was thinking that the "Year" and "Month" column labels in the $Columns directive were data columns.
  • Fixed crash in expressions: If two different variables referenced each other, in some cases WEAP would crash (in an infinite loop). This is fixed.
  • Fixed bug in MABIA: In cases where the land use area went from zero in one year to greater than zero in the next year, WEAP was not calculating the soil water balance correctly.
  • Fixed bug in Plant Growth Method calculation of annual production and biomass. WEAP had be double counting annual production and biomass for irrigated branches.
  • Improved water quality calculation order: In some rare configurations, WEAP was not properly routing pollution from point to another, e.g., flow between linked local reservoirs.
  • Reformulation of the LP constraints that handle reservoir maximum hydraulic outflows (MHO), which should be more robust.
  • Changes to LP model to prevent a few rare cases of failure to solve.
  • Fixed bug: "Range check error" at the beginning of calculations for some models.
  • Fixed bug: Albedo data was not being read from the lowest-level branches when climate data was set to "Each branch within a catchment can have different climate data"
  • Fixed bug in Groundwater Inflows and Outflows report: In cases where the user has entered data for Natural Recharge that is less than zero, WEAP was erroneously reporting it as Overflow in the Groundwater Inflows and Outflows report.
  • Fixed bug in Reach Inflows and Outflows report: Outflow to downstream for the last reach on an unconnected river was mislabeled as "Evaporation."
  • Fixed bug: Eliminated some instances of the "Temporary table resource limit" error while displaying large reports in the Results View.
  • Fixed bug: In some cases, values for some of the Key Assumptions or Other Assumptions were not being displayed in the Results View.
  • Fixed bug: In the Results View, WEAP was displaying the incorrect title above the chart if you switched to the Map tab and back
  • Fixed bug: If scenario A had been calculated, then turned off, scenario B calculated, then scenario A turned back on, scenario A's results were not shown in the Results View. Fixed.
  • Fixed bug that gave an error when WEAP started in cases where the previously opened area was deleted outside of WEAP.
  • Fixed bug that in some cases caused a crash when opening an older dataset.
  • MISCELLANEOUS:
  • Updated translations for all included languages. See index.asp?action=219 for the list of volunteers who have done the translation.
  • Filtering the Schematic and Tree: You can selectively show or hide objects on the Schematic and Data View Tree based on their scenario, type and tags. For example, to show only objects that are not active in Current Accounts, set the filter to: Scenario <> Current Accounts. From the menu, go to Schematic, Filter, or, in the Data View, Tree, Filter, or use the filter box below the inset map. See the help topic Data \ Filtering, for more information.
  • DSS Export: Option to export results to HEC-DSS files after calculation. On the menu, go to Advanced, DSS Export Settings. See the help topic for full details. www.weap21.org/WebHelp/index.html#DSSExportOptions.htm
  • MODFLOW-2005: WEAP can now link to MODFLOW-2005.
  • MODFLOW-NWT: WEAP can now link to MODFLOW-NWT, which uses a Newton-Raphson formulation to improve solution of unconfined groundwater-flow problems. MODFLOW-NWT uses two new packages: Upstream Weighting (UPW) and Newton Solver (NWT). See https://water.usgs.gov/ogw/modflow-nwt/ for more information.
  • MODFLOW Linkage: Handle cases where a demand site is linked to multiple groundwater nodes.
  • WEAP will no longer allow duplicate names for objects of the same type (e.g., no two demand sites with the same name). Upon opening an area, WEAP will check for duplicate names. If any are found, they will be automatically renamed to ensure each is unique. The list of duplicate names will be shown.
  • Solver: When using an alternate LP solver, you can now choose whether or not to fall back to GLPK in case the solver has a failure to solve
  • Export expressions to Excel: Increased maximum number of rows from 65,000 to 1,000,000.
  • WEAP now checks for TMin > TMax in the MABIA climate data. If this occurs, and an error message will be added to the list of calculation errors, and a list of the bad data points will be saved to BadClimateData.csv

9/1/2016, Version 2016.01

  • New API: ExportExpressions and ImportExpressions, to export and import expressions to and from Excel (in the Data View). Refer to help for more information: WebHelp/index.html#WEAPApplication.htm
  • Import expressions from Excel: WEAP had been unable to import expressions longer than 8221 characters, but now the limit is 32,000 characters.
  • Referring to crop results in expressions: A few new result variable can now be referred to in expressions: Yield (MABIA), Market Value (MABIA), Production (PGM). You can specify a single crop, or total over all crops, e.g., PrevTSValue(Demand Sites and Catchments:Production[kg, Crop=Corn]) is total production of the PGM crop named "Corn" for all catchments, PrevTSValue(Demand Sites and Catchments\Big Farm:Production[kg]) is total production for all branches and crops under catchment "Big Farm"; PrevTSValue(Demand Sites and Catchments:Crop Yield[kg, Crop=Lettuce (Mediterranean)]) is total yield of the MABIA crop Lettuce (Meditteranean) over all catchments.
  • Fixed bug in FDCShift function: WEAP gave an error while trying to calculate FDCShift.

8/26/2016, Version 2016.0

This new version has many new and improved features, as well as several bug fixes.
  • DATA:
  • Reservoir Water Quality: Previously, the outflow water quality from a river reservoir must have been specified as data. There is now a new method -- you can choose to have the outflow water quality be the same as the inflow water quality. Use the expression drop-down menu to choose "Same as Inflow". Warning: "Same as Inflow" may not be appropriate for non-conservative constituents or large reservoirs.
  • Buffer zone filling priority: You can now set an optional priority for filling the buffer pool (Data View, Reservoir, Priority, Buffer Priority). If set, it must be higher priority than the overall reservoir-filling priority.
  • Fraction covered: New optional data variable added to MABIA method: Effective fraction of soil surface covered by vegetation. If blank, Fc will be calculated by standard equation: Fc = [ (Kcb - Kc min) / (Kc max - Kc min) ] ^ (1 + 0.5 * Crop Height[m])
  • Albedo for Soil Moisture Method: three new optional albedo data variables (Albedo, Albedo Lower Bound, Albedo Upper Bound). If Albedo expression is not blank, it will be used to calculate albedo, overriding the built-in calculation. If Albedo variable is blank, Albedo will be calculated by WEAP as a linear function of snow accumulation -- a linear interpolation between Albedo Lower Bound and Albedo Upper Bound. Albedo = Albedo Lower Bound when snow accumulation = 0; Albedo = Albedo Upper Bound when snow accumulation is at or above 10 mm * number of days in the timestep. Albedo Lower Bound and Albedo Upper Bound default to 0.15 and 0.25, but you can enter different values if desired.
  • Groundwater-Surface water interactions: A river reach is now allowed to have simultaneous flow to and from a groundwater node (with a user's consent).
  • % of flow to groundwater: A river reach can now specify a % of river flow to a groundwater node that is already set to use the "wedge" method ("Model GW-SW flows") from other reaches.
  • Daily user-defined variables: If any MABIA or PGM catchments are defined, you can choose Daily as the timestep for user-defined variables.
  • Simplified Coefficient Method catchments are now allowed to have zero surface water runoff links. Previously, at least one was required.
  • EXPRESSIONS:
  • Expression Elaboration: In addition to showing variables that the current variable references, WEAP now shows all variables that reference the current variable.
  • Deleting branches: When you delete a branch from the tree in the Data View, WEAP will warn you if there are any expressions that refer to it.
  • Use column names in ReadFromFile Expression: If you use the optional $Columns directive in your CSV files to document the contents of each data column, you can now refer to those in your ReadFromFile expression, instead of using the column number. For example, if file gauge.csv contained this line: $Columns = Gauge 101[CMS}, Gauge 312[CMS}, Gauge 505[CMS} then you could refer to the second data column (Gauge 312) with this expression: ReadFromFile(Gauge.csv, "Gauge 312[CMS]"). The column name must be enclosed in quotes in the ReadFromFile expression, whereas quotes are optional in the $Columns directive (unless any of the names themselves include commas). You can include a unit inside square brackets, but WEAP will not do any unit conversion if the unit in the ReadFromFile expression is different from that in the $Columns directive.
  • ReadFromFile can now automatically determine the appropriate ListSeparator used in the CSV file if it is not specified in the file and different from the Windows system ListSeparator.
  • CALCULATIONS:
  • Stage and velocity are now calculated for any river reaches with Flow-Stage-Width data, even if water quality is not being calculated for the river.
  • Velocity calculation: WEAP is now using trapezoids for calculating stream cross-sectional area, used by streamflow velocity calculation. Trapezoids should give a better approximation of area, and therefore a better estimate of velocity.
  • Modified MABIA runoff calculations, to accommodate rare cases where the runoff from rice area was larger than the irrigation applied (either due to declining maximum surface storage, or significant rain on a ponded surface with a flow through requirement).
  • Change in MABIA mass balance: For timesteps where the coverage < 100%, WEAP will now update the groundwater mass balance and storage with the "actual" infiltration flow to groundwater, instead of the linear approximation calculated before the allocations were made. This will result in decreased flows to groundwater than were previously calculated (but only for timesteps in which the coverage < 100%.)
  • MABIA: Fixed problem (WEAP gave an error) with perennial crops in leap years.
  • WEAP now checks for missing demand site return flow link if < 100% consumption.
  • WEAP crashed during calculations if a groundwater node had a maximum withdrawal limit set but no transmission links connected to it.
  • Improved stability of soil moisture method calculation when Z1 diverges due to bad parameters (e.g., Soil Water Capacity too small).
  • RESULTS:
  • Reservoir Inflow Water Quality (mixed) result variable/report: New result has water quality concentration on inflows to river and local reservoirs (mixed, if several inflows).
  • River Reach Inflows and Outflow result variable/report: A mass balance of all water entering and leaving each river reach. Inflows (from groundwater, other surface water inflow and the upstream node) are represented as positive amounts, outflows (to groundwater, evaporation, catchments (river flooding) and the downstream node) as negative amounts.
  • Local Reservoir Overflow result variable/report: Any water that exceeds a reservoir's Top of Conservation threshold will overflow. For a local reservoir, this overflow is lost from the system, in the same way that evaporation is lost. There is now a new result variable named "Local Reservoir Overflow" that will show how much overflowed (and was lost).
  • River Reach Total Node Outflow result (via API): This now includes evaporation.
  • Report of Priorities: WEAP creates a report of demand priorities, supply preferences and allocation orders. The file is named Result_Priorities.csv
  • Now able to refer to more MABIA result variables in expressions, e.g., Current Saturation, Maximum Saturation, Field Capacity, etc.
  • APPLICATION PROGRAMMING INTERFACE (API):
  • WaterYearStart: Use WEAP.WaterYearStart to get or set the index of the first timestep of the water year.
  • ExtractAllBinaryResultsToParadoxTables: Extract all results from binary results files into Paradox database tables -- one table for each result variable.
  • ResultSetting: WEAP.ResultSetting can make changes to settings for the currently displayed chart or table in the Results View. Some examples:
	    WEAP.ResultSetting("Variable") = "Inflows To Area"
	    WEAP.ResultSetting("Variable") = "Water Demand"
	    WEAP.ResultSetting("XAxis") = "Scenario"
	    WEAP.ResultSetting("XAxis") = "Year"
	    WEAP.ResultSetting("Legend") = "Scenario"
	    WEAP.ResultSetting("Legend") = "Branch"
	    WEAP.ResultSetting("Scenario") = "All"
	    WEAP.ResultSetting("Scenario") = "Demand Measures"
	    WEAP.ResultSetting("Scenario") = "Demand Measures, Supply Measures"
	    WEAP.ResultSetting("Scenario") = WEAP.Scenarios("Demand Measures")
	    FOR Scen IN WEAP.Scenarios
	      WEAP.ResultSetting("Scenario") = Scen 
	    WEAP.ResultSetting("Year") = "All"
	    WEAP.ResultSetting("Year") = 2015
	    WEAP.ResultSetting("Year") = "2011,2013,2015"
	    WEAP.ResultSetting("Year") = "2011,2015-2017"
	    WEAP.ResultSetting("Month") = "All"
	    WEAP.ResultSetting("Month") = 3
	    WEAP.ResultSetting("Month") = "3-6"
	    WEAP.ResultSetting("Timestep") = "1-3,7-9"
	    WEAP.ResultSetting("Branch") = "\Demand Sites\South City"
	    FOR Br IN WEAP.Branches("\Demand Sites").Children
	      WEAP.ResultSetting("Branch") = Br
	    WEAP.ResultSetting("Cost") = "All"
	    WEAP.ResultSetting("Cost/Benefit Type") = "Capital Cost,Operating Cost"
	    WEAP.ResultSetting("Pollutant") = "All"
	    WEAP.ResultSetting("WQ Constituent") = "BOD"
	    WEAP.ResultSetting("Chart Type") = "Line"
	    WEAP.ResultSetting("Chart Type") = "Bar"
	    WEAP.ResultSetting("Chart Type") = "Step"
	    WEAP.ResultSetting("Chart Type") = "Area"
	    WEAP.ResultSetting("Chart Type") = "AreaWithLines"
	    WEAP.ResultSetting("Chart Type") = "Pie"
	    WEAP.ResultSetting("Levels") = 2
	    WEAP.ResultSetting("Annual Total") = True
	    WEAP.ResultSetting("Monthly Average") = True
	    WEAP.ResultSetting("Stacked") = True
	    WEAP.ResultSetting("Group") = True    ' Turn on grouping (smallest values grouped into "All Other")
	    WEAP.ResultSetting("Y=0") = True
	    WEAP.ResultSetting("Exceedance") = False
	    WEAP.ResultSetting("Log") = False
	    WEAP.ResultSetting("Gridlines") = False
	    WEAP.ResultSetting("Patterns") = True
	    WEAP.ResultSetting("Line Symbols") = True
	    WEAP.ResultSetting("3D") = False
  • MISCELLANEOUS:
  • Emailing areas: Improved ability to send and receive an area via email. To send an area, go to Areas, Manage Areas and click the Email button. WEAP will package the area into a single .WEAP file. The recipient only needs to double-click on the .WEAP file attachment and WEAP will automatically start and load the area. You have the option to include one or more previous versions in the .WEAP file.
  • Improved: Paste a vector of annual or monthly values from Excel or other programs. It can either be a two-column (or two-row) array, with the year or month name in one column (or row), or it can be a one-column (or one-row) array.
  • Stopping calculations: You can tell WEAP to stop calculating at a specific year and timestep, and optionally a specific allocation order or allocation order iteration within that timestep. Create a text file named StopCalc and put it in the WEAP area's subdirectory, e.g., ...\Weaping River Basin\StopCalc. The file should contain a single line that specifies the year, timestep, allocation order and allocation order iteration to stop on, separated by semicolons. For example, to stop in the 7th timestep of 2015, it would have this line: 2015;7 To stop before allocation order 4 of this timestep, it would be: 2015;7;4 You can even stop at a specific iteration of an allocation order, e.g., 2015;7;4;3
  • Sped up Scenario Manager screen for areas with a large number of scenarios.
  • Sped up opening of Expression Builder: more than 100x faster for very large models.
  • Export to Excel: Fixed problem with table export to Excel when the decimal separator was a comma.
  • Export to Excel: Fixed bug when exporting daily results using a Windows System date format that is not mm/dd/yyyy. Excel was displaying incorrect dates for the first 12 days of each month.
  • Sped up calculations
  • BUGS FIXED:
  • Supply Delivered result via API: When accessed via the API (WEAP.ResultValue('BranchName:SupplyDelivered'), it was erroneously including any runoff flow from connected catchments.
  • Fixed bug in Spanish MonthlyValues expression: If your water year does not start in January, then WEAP was not correctly interpreting the month names in the MonthlyValues function. This was only a problem when entering a new expression -- if the expression had been entered in English, it would translate correctly into Spanish and gave the correct result when calculated.
  • Plant Growth Method (PGM) Soil Library: Corrected incorrect values for Theta Residual, Alpha, N and Saturated Hydraulic Conductivity. Changed unit of Theta Residual from fraction to percent.
  • ReadFromFile Column title line: Handle $Columns line that is surrounded by quotes, e.g., "$Columns=Year, Timestep, Title One, Title Two"
  • Display of data input data in Results View: Fixed bug whereby daily input data (e.g., MABIA or PGM climate data) was incorrectly displayed as monthly data in the Results View Input Data section.
  • Fixed error that occurred when referring to PrevTSValue of a daily Mabia result variable, such as Bucket 1 Current Saturation.
  • Fixed bug with PEST: Daily models that had leap days turned on were giving PEST errors.
  • Fixed bug in binary results: Fixed a few rare cases of the following error during calculations: "Error writing results to binary results files"
  • Fixed bug in Soil Profiles Wizard: WEAP gave an error when importing from a CSV file.
  • Fixed bug: Unable to save a chart favorite with selected scenarios
  • Fixed bug: Demand sites that sent wastewater for reuse by other demand site but did not have any return flow links were not always getting as much supply from their sources as they could.
  • Fixed bug: Data Expressions report was working for Current Account but not any scenarios.
  • Fixed bug: Error when using CALL to call Python or Javascript functions with any upper case letters in their names; e.g.; Call(Test.py ! MixedCaseFunctionName )
  • In some cases with very large models: WEAP is unable to show some results in the Results View, instead getting an error message, such as "operation not applicable." If you have this problem, put an empty file named FasterQuery.yes into the area subdirectory to switch to a different method of generating the result chart or table that uses less memory. Note: A limitation to this approach is that if you are showing multiple levels of branches (e.g., South City\Multifamily\Showers), WEAP will sort the list of branches only by the name of the lowest level shown.
  • Safe Yield Wizard: Fixed bug that caused the wizard to fail when the WEAP area consisted of only one year (BaseYear = EndYear)
  • Safe Yield Wizard: Results may not have been correct for areas with unirrigated Soil Moisture Method catchments.
  • Fixed issue with expression evaluation and the API: When getting data variable results via the API (WEAP.Branch("...").Variable("...").Value), WEAP had not been recalculating expressions that referred to other variables that had just been changed via the API.
  • Fixed bug that prevented WEAP in some cases from exporting transposed results tables to Excel.

8/5/2015, Version 2015

  • Major new version of WEAP released: highlights include:
  • IHA: Integration of The Nature Conservancy's Indictors of Hydrologic Alteration (IHA), to aid in understanding the ecological impacts of changes in streamflow.
  • PGM: A more detailed method for catchment hydrology, the Plant Growth Method (PGM) simulates daily plant growth, water use, and crop yields as a function of CO2 concentration, season length variability, and temperature and water stress, based on the approach taken in the SWAT and EPIC models.
  • Glaciers: Model growth and shrinkage of glaciers.
  • River Flooding: A fraction of streamflow over a threshold can flood to a catchment.
  • Linking Areas: Linking flows from one WEAP area to another.
  • Faster: Calculations are much faster (100x in some cases) and more robust.
  • Windows 10 compatible
  • Numerous other improvements, optimizations and bug fixes.
NOTE: This version has new file formats, such that once an area is converted to this new version, YOU WILL NOT BE ABLE TO OPEN IT IN ANY PREVIOUS VERSION OF WEAP WITHOUT LOSS OF DATA. Therefore, anyone with whom you want to share datasets MUST ALSO UPDATE TO THIS VERSION or later.
  • Schematic:
  • Catchment runoff and infiltration: A catchment can now runoff to any number of surface water destinations (previously, only one was allowed), and infiltrate to an unlimited number of groundwater nodes. If you have more than one link per type (surface or groundwater), you will need to specify the share of runoff or infiltration to each destination. These data variables can be found on the Data Tree in the Supply and Resources \ Runoff and Infiltration section.
  • Schematic Lock: On the menu, choose Schematic, Lock Schematic to lock or unlock the Schematic for editing. A benefit of locking the schematic is that it will prevent you from inadvertently moving a node or link. As a separate improvement, even if not locked, WEAP will not let you move an element that is hidden, e.g., if you’ve hidden groundwater nodes, you cannot intentionally or unintentionally move groundwater nodes or links to or from groundwater nodes.
  • Hiding WEAP objects on Schematic: When a node type is hidden, all links to or from those nodes are also hidden. For example, if Demand Sites are hidden, then all transmission links to and return flow links from any demand site are also hidden. If a river or diversion is hidden, all nodes on the river or diversion are also hidden (along with all links to or from the river nodes).
  • Show or hide all background layers at once: New option on Schematic menu or background layer list right click menu to show or hide all background layers at once. Much faster than checking or unchecking each layer individually.
  • Much faster to add an object (Demand Site, Reservoir, River, etc.) to a schematic that already has many objects.
  • Data:
  • Expression Elaboration: Added a new tab in the Data View, next to Chart, Table and Notes, that shows details of all variables referenced by the highlighted expression. Right click on the list of variables referenced to get the option to copy it to the Windows clipboard. Double click on a variable in the list to jump to it.
  • River bifurcation using Fraction Diverted: To divert a fixed percentage of river flow into a diversion, select the diversion on the Data Tree and select the Fraction Diverted variable tab. Enter the percent that is diverted. You can use an expression to make this fraction vary over time, but it cannot be a function of the current timestep flow in the river. It can be a function of the streamflow in the previous timestep.
  • River Flooding: A river reach can flood to a Soil Moisture Method catchment. On the Flooding section of a river reach, go to "River Flooding Threshold" and select the catchment to which floodwater will flow and the river flow threshold when the river begins to flood. Go to "River Flooding Fraction" and enter the % of flow above the River Flooding Threshold that will flow to the catchment. Go to the Flooding section of the catchment, and enter the "Maximum Depth" and "Fraction Flooding Received." When the flooded depth of a catchment exceeds Maximum Depth, all of the excess will run off, unless you fill in a value for "Flood Return Fraction" to specify the fraction that can run off each timestep. On the Land Class Inflows & Outflows report, inflows from flooding will be listed as "River Flood Inflow"
  • Reservoir Volume-Elevation curve: You can now export the list of Volume-Elevation data points to Excel.
  • MABIA: Kcb can now be 0. Default value for Kcb for fallow is 0.
  • Catchment "Ponding" is now called "Flooding"
  • Change in defaults for Minimum Depth and Target Depth for Flooding: Both will now default to 0. (Previously, if blank, Minimum Depth defaulted to Target Depth, and Target Depth defaulted to Maximum Depth.)
  • New variable for Groundwater wedge model: If modeling groundwater/surface water interactions by their head difference, setting the Maximum Head Difference will limit flow from river to groundwater in cases where the groundwater level is far below the river level. Leave blank if no maximum.
  • Increased maximum number of branches: Previous maximum was 32,000; new maximum = 2 billion.
  • Search for branch by name in Data View Tree: In the Data View, hit Control-F (or Edit, Find Branch...) to search for a branch in the tree by text. Partial words are fine, and the search is not case sensitive. If you give multiple words, WEAP will search for branches that include all words (e.g., butte creek), unless you include OR (e.g., butte OR creek). To exclude terms precede with a minus (e.g., butte -creek). Hit F3 (or Edit, Find Again) to repeat the search using the same search text. If the bottom of the tree is reached without finding a match, WEAP will wrap around to look from the top of the tree.
  • Undock Data View Inset Map: If you have two or more monitors, you can "undock" the inset map on the Data View to another monitor. This can be especially useful for very large models. In the Data View, go to the Edit menu and choose Undock Inset Map.
  • Much faster to add individual branches to the Data Tree (right click on the branch and choose Add).
  • Better names for links (return flow, runoff) to river nodes: Previously, the name included the river node name, e.g., "Return Flow from Industry East to Ag West With.". Now, the river name is used instead of the river node name, e.g., "Return Flow from Industry East to Return Flow from Industry East" Existing links WILL be automatically renamed.
  • Better names for new Return Flow Nodes, Withdrawal Nodes and Runoff Inflow nodes: Previously, the nodes would be named generically, e.g., Return Flow Node 1. Now, they will be named according to what they are linked to, e.g., South City Return. Existing nodes will NOT be renamed. (You can manually change the names if you want -- right click on the node in the Schematic and choose General Info.)
  • Groundwater Hydraulic Conductivity variable can now vary by timestep.
  • Total Reservoir Storage can now be 0.
  • Improved handling of MissingValue in expressions: Any expression that includes a MissingValue (-9999) will be equal to MissingValue. E.g., MissingValue / 12 will be MissingValue. This could happen if you are reading values from a file, such as river gauge values, and some are missing. If you were converting them from CFS to CMS by dividing by 35.315, previously WEAP would have incorrectly divided any MissingValues (-9999) by 35.315, yielding -283.14. Also, for any operation that totals or averages a group of numbers that includes at least one MissingValue, the result will be the MissingValue. For example, if you are aggregating daily streamflow values to be monthly, if even one of the daily values is missing, the aggregated value for that month will be missing. Remember, the ReadFromFile function can fill in missing values using several different functions (Interpolate, Repeat, Replace).
  • Override inherited expression with blank: To blank out an expression inherited from a parent scenario, enter MissingValue as the expression.
  • ReadFromFile changed: ReadFromFile now allows setting the YearOffset to before the first year of data. This is useful if the area Base Year is before the first year of data in the CSV file.
  • Import from Excel can now change units: The Import from Excel function can now import and change units for Demand and Key Assumption branches. See help for Import for Excel for more info.
  • Expressions:
  • Current timestep result references: WEAP allows you to make references to current timestep results because it can check (during calculations) if they valid, i.e., that the expression is evaluated AFTER the result has been saved. For example, hydropower expressions can reference demand results, and cost expressions can reference streamflow results, because Demand is calculated before Streamflow which is calculated before Costs. However, demand expressions cannot reference current timestep streamflow results, because they have not been calculated at the time the demand expression is evaluated. If WEAP finds an invalid current timestep result reference during calculations, it will offer to automatically change the reference to a PREVIOUS timestep reference, by inserting a PrevTSValue function into the expression.
  • Ability to refer to result variables that have extra "dimensions," e.g., source, water quality constituent or cost/benefit type. Specify the dimension inside the square brackets, after the unit. For example:
	    PrevTSValue(Demand Sites\South City:Pollution Generation[kg, WQ Constituent=BOD])
	    PrevTSValue(Water Quality\Wastewater Treatment\South City WWTP:Pollution Inflow at Treatment Plants
                                    [kg, WQ Constituent=BOD, Source=South City])
	    PrevTSValue(Supply and Resources\River\Weaping River\Returns\Return Flow from South City:Pollution Loads
                                    [kg, Source=South City, WQ Constituent=BOD])
	    PrevTSValue(Supply and Resources\River\Weaping River\Reaches\Below Return Flow from South City:River Water Quality
                                    [g/l, WQ Constituent=BOD])
	    PrevTSValue(Demand Sites\Agriculture West:Supply Delivered[m^3, Source=West Aquifer])
	    PrevTSValue(Demand Sites\Agriculture West:Supply Delivered[m^3, Source=Ag West With.])
	    PrevTSValue(Demand Sites\South City:Net Benefit[$, Cost/Benefit Type=Operating Cost])
  • Warning on duplicate variable names: If there are two variables for a branch with the same name (perhaps one is user defined), WEAP will stop calculations with an error message. Previously, WEAP only added a message to the list of calculation warnings and errors shown in the Results View, which could be easily overlooked. In this case, you should rename the user-defined variable and check any expressions that reference it to verify they reference the new name.
  • Better error handling when CALLing DLLs from expressions.
  • Access to Supply Delivered result values from expressions and API: For example, PrevTSValue(Demand Sites\Agriculture West:Supply Delivered[m^3]) is the sum of the supply delivered to Agriculture West from all sources.
  • Allow CSV files to use ; (semicolon) as list separator, by using: $ListSeparator = ;
  • Improved the ReadFromFile function and wizard when dealing with csv files that have entire columns of data missing.
  • Logical expressions: Improved handling of expressions with "logical" operators ("and," "or," "not"), e.g., A and B.
  • Calculations:
  • Much faster calculations
  • WEAP uses less memory (RAM) during calculations
  • Model groundwater to groundwater flow: Draw a runoff/infiltration link between two groundwater nodes, then enter an expression on the link to specify how much will flow from one node to the other. Enter a negative value for flow in the reverse direction. A groundwater node can be connected to an unlimited number of other groundwater nodes. Results are shown on "Infiltration/Runoff Flow" report, in addition to "Groundwater Inflows and Outflows" report.
  • Yield calculation for the Soil Moisture Method, including yield response to water stress: the simple crop yield model from the Simplified Coefficient Method has been extended to work with the Soil Moisture Method.
  • Yield calculations: Now include optional "Planting Date" and "Harvest Date," to restrict the timesteps considered when summing ETActual and ETPotential for yield reduction calculation. Changed in both the Soil Moisture Method and Simplified Coefficient Method. If Planting Date is blank, will default to beginning of water year (timestep = 1). If Harvest Date is blank, will default to end of water year (timestep = Num Timesteps). Planting Date and Harvest Date are used ONLY to calculate yield reduction due to water stress (NOT for irrigation or other calculations).
  • Results file format: All results will be saved to binary format files, instead of Paradox tables, which should be much faster for large models. A side benefit of the binary results is that WEAP will now detect if an expression makes a reference to a current timestep result BEFORE it has been calculated. This is an error and will be reported during calculations.
  • Catchment demand results: A zero will now be written for a land use branch's demand and supply requirement in cases where there is no irrigation, to prevent gaps in the result table in cases where the irrigation is on for some timesteps and off for others.
  • Reservoir evaporation: Prevent a reservoir from having negative evaporation when its storage capacity is zero.
  • "Smart" calculation of non-irrigated soil moisture method catchments: WEAP will not recalculate any non-irrigated soil moisture method catchments whose input data have not changed since the last calculation, instead using results from the previous calculation. In some cases, this might greatly speed up subsequent calculations. NOTE: WEAP cannot yet detect the following cases that should require recalculation of the catchment: an expression is deleted (so that it inherits from the parent scenario or uses the default value), land area unit changes (e.g., from acre to hectare), csv file is changed (that is read using ReadFromFile, although the non-smart calculations don't catch this case either), or the default expression for a variable changes. To force WEAP to recalculate all catchments, even those it thinks don't need calculation, hold down the control key when clicking the Results View button.
  • Transmission link variable revenue ("benefit"): Per unit water revenue on transmission link flows now apply to the flow OUT of a transmission link instead of the flow INTO the transmission link, to reflect the fact that customers are not charged for water lost in transmission. (Flows out equal flows in minus losses to evaporation or groundwater).
  • Change in MABIA irrigation requirements calculation: Previously, if the fraction wetted by irrigation was < 100%, WEAP would only apply irrigation to the wetted fraction of land. However, this assumption was incorrect--even if irrigation was applied to a fraction of the land, the water would go to fill up the depletion on all the land. The effect was to underestimate the supply requirement.
  • MABIA maximum infiltration rate: Now, maximum infiltration rate will constrain irrigation and ponding/flooding as well as precipitation. Anything that cannot infiltrate will run off to the river.
  • MABIA percolation: Ineffective rainfall to groundwater and inefficient irrigation to groundwater now goes to the bottom bucket (if using two buckets) instead of directly to groundwater. This means that it will not go to groundwater unless the bottom bucket exceeds field capacity. Also, it is subject to the maximum percolation rate constraint. If only one bucket, both are also now subject to the maximum percolation rate constraint. Previously, ineffective rainfall and inefficient irrigation to groundwater were not limited by max perc rate.
  • MABIA Ponding: The rice ponding model is now available for both the Soil Moisture method and the MABIA method. They function the same, although because MABIA simulates at a daily timestep, the ponding also simulates daily. Flow through requirement: Always release (surface runoff) flow through requirement. Always irrigate with at least (flow through requirement - precip), but more if ET and infiltration draws surface depth below minimum depth. Flow through requirement = Minimum[ Flow through requirement, surface depth at beginning of day ].
  • Change in rice ponding irrigation algorithm: Previously, WEAP did not irrigate unless the surface depth was LESS THAN the minimum surface depth. Now, irrigation will occur if the surface depth is less than OR EQUAL TO the minimum surface depth. For example, if the minimum surface depth is 0 and the target is greater than 0, previously WEAP would never have irrigated, because it was never less than the minimum (0). With this change, now it will irrigate in this case.
  • Turning off results to save time and space: Many result variables that were previously required are now optional and can be turned off (not saved for Results View) to save calculation time and disk space. On the menu, go to Edit, Result Variable, Select Variables to Save. However, if you refer to the PrevTSValue for a result variable in any of your expressions, you will need to have that variable turned on. WEAP will warn you if this is the case.
  • Tweaked the linear program (LP) algorithm to handle a few rare cases of "Failure to solve" caused by reservoir Maximum Hydraulic Outflow constraints.
  • QUAL2K Version: Now using QUAL2K version 2.07
  • QUAL2K Reach Climate Data: Fixed bug with writing data for reach climate data (had only been using data from first WEAP reach).
  • QUAL2K Headflow: Runoff from catchments that represent river headflow is now written to the headflow section in QUAL2K, not as a point source.
  • Split up Land Class Inflows and Outflows report: Each variable is now available as a separate report (Precipitation, Irrigation, Evapotranspiration, Surface Runoff, Interflow, Base Flow, Outflow to Groundwater, Increase in Soil Moisture, Decrease in Soil Moisture, Snow Melt, Snow Accumulation, Increase in Surface Storage, Decrease in Surface Storage), and can be independently turned on or off to save calculation time and disk space. Because each result has its own result file, calculations should be somewhat faster (even if all are turned on), and solve problems where the file was too large to generate a report (Out of memory).
  • Reading from Excel faster: Data read from Excel using Interp function are now cached so that WEAP does not need to open the file in the future unless the file has changed. This greatly speeds up calculations that read from Excel.
  • Results:
  • Changed sign of Net Present Value: Now, a positive NPV means that Benefits are larger than Costs.
  • Net Cost report: "Net Cost" report is now called "Net Benefit." The numbers reported have not changed -- they are still Benefits - Costs. A positive value represents a benefit; a negative value represents a cost.
  • Other results renamed: This might impact default expressions, but not expressions for specific branches: "Snow Accumulation" -> "Snow Depth (MWE)", "Snow Accumulations" -> "Increase in Snow", "Snow Melt" -> "Decrease in Snow (Melt)", "Reservoir Evaporation" -> "Reservoir Net Evaporation"
  • Scenario Explorer Chart "Same Scale" option: (on the toolbar on the right) -- if on, it will force all charts with the same unit to use the same scale, to facilitate comparison among them.
  • Scenario Explorer results can be displayed as Monthly Average: Also, if "From Favorite" is chosen (instead of "All Scenarios"), then the setting for Annual Total or Monthly Average will depend on its setting in each favorite, each of which can be different.
  • Results View Message tab options: You can now export the error/warning messages table to Excel, copy to the Windows clipboard, or change the font size.
  • Viewing Key Assumptions and Other Assumptions in Results View: faster for loading in models with a large number of assumption branches.
  • Groundwater Outflow to River report: Previously, this report only included surface water flows to or from groundwater that was modeled with the wedge model. Now it also includes flows for models that specify GW/SW flows.
  • Faster display of results in Results View: Optimized database queries of results to show results faster.
  • Selected items in Results View: When selecting from a large list, e.g., the list of all river nodes and reaches, the window for selecting items has a search box. As you type in search terms, WEAP will instantly filter the list to show only those items that include the search terms. As a separate improvement, if you don’t type in a search term, the scroll bar will now work as expected, showing you how far down in the list you are.
  • Added "(gauge)" to the name of gauges in the streamflow reports to distinguish them from other river nodes.
  • Zooming on results charts with mouse wheel: Use the mouse wheel to zoom in or out of a point on a chart. Hold down Shift key while wheeling to zoom only vertically; hold down Alt key while wheeling to zoom only horizontally.
  • Application Programming Interface (API):
  • Changed sign of costs and benefits when accessed via the API or expression: Costs are now shown as negative numbers; benefits as positive numbers. This is consistent with the Net Benefits report.
  • API option to log calculation errors to logfile: Set WEAP.LogCalculationErrors = true to log all "calculation" errors and warnings to WEAP.LogFile. Calculation errors are those that appear on the Messages tab in the Results View.
  • Easier filtered references in API: To refer to the flow from a river to a demand site or catchment, you can use the name of the river, e.g., WEAP.ResultValue("Demand Sites and Catchments\Agriculture West:Supply Delivered[Source=Weaping River]",2010,1,"Reference"). Previously, you needed to use the name of the river node, e.g., WEAP.ResultValue("Demand Sites and Catchments\Agriculture West:Supply Delivered[Source=Ag West With.]",2010,1,"Reference"). Note: if the demand site or catchment has inflows from multiple nodes on the same river, this will sum the inflow from all of them.
  • API: WEAP API now can get (but not set) the "Method" for Demand Sites and Groundwater Nodes via the Expression property, e.g., WEAP.BranchVariable("\Demand Sites\South City:Method").Expression should return "Specify yearly demand and monthly variation"
  • API: Fixed bug when trying to get result values the API for "Flow from Surface Water to GW Constrained" and "Flow from Surface Water to GW Unconstrained" for river reaches connected to groundwater nodes that use the wedge method to estimate groundwater-surface water flows.
  • New API WEAPBranch.AddChild(NewName): Create a new branch named NewName on the Data Tree under the current branch. Only works for branches under Demand Sites and Catchments, Key Assumptions or Other Assumptions. Returns the new branch. E.g., NewBranch = WEAP.Branch("\Demand Sites\South City").AddChild("Suburban")
  • New API WEAPBranch.Split(DoCopyData, NewName1, NewName2, ..., NewName10): Subdivide a branch into up to ten subbranches. NewName1 is required; all other names are optional. If DoCopyData is true, copy all data from the current branch to the new branches (except Activity Level and Area). Activity Unit for the new branches will be set to percent. E.g., CALL WEAP.Branch("\Demand Sites and Catchments\Agriculture North\Corn").Split(TRUE, "Sprinkler", "Drip Irrigation")
  • New API WEAPBranch.CopyData(SourceBranch): Copy all data from SourceBranch to the current branch. SourceBranch is a WEAPBranch object, not the name of a branch. E.g., WEAP.Branch("\Demand Sites and Catchments\Agriculture West\Corn").CopyData( WEAP.Branch("\Demand Sites and Catchments\Agriculture North\Corn") )
  • Expanded API WEAPBranch.NodeAbove and WEAPBranch.NodeBelow: NodeAbove and NodeBelow now work for transmission links, return flow links and catchment runoff links, identifying the source (NodeAbove) or destination (NodeBelow) of the link.
  • New API WEAPBranch.ConnectedGroundwater: For river reaches, transmission links, return flow links and reservoirs, get the groundwater node that it is connected to, if any (for losses to or gains from groundwater). Return an empty branch (Branch.ConnectedGroundwater.ID = 0) if no connection.
  • New API classes: WEAPFavorites and WEAPFavorite. Get access to the list of "favorites" (saved reports from the Results View).
  • Expanded API WEAPBranch.NodeAbove, WEAPBranch.NodeBelow, WEAPBranch.ReachAbove and WEAPBranch.ReachBelow: For the first node or reach on a diversion, NodeAbove will return the diversion node on the main river and ReachAbove will return the reach above the diversion node. For the last node or reach on a river or diversion that flows into another river or diversion, NodeBelow will return the tributary inflow node on the downstream river, ReachBelow will return the reach below the tributary inflow node.
  • New branches on the tree corresponding to return flow nodes and catchment runoff inflow nodes: These nodes are hidden on the tree (because they do not have any associated data variables), but can be referenced via the API for results. E.g., to get the streamflow at the return flow node for South City, you would use WEAP.ResultValue("Supply and Resources\River\Weaping River\Returns\Return Flow from South City:Streamflow[m^3], 2020, 7, "Reference")
  • Miscellaneous:
  • Linking flows from one WEAP area to another: Whenever WEAP calculates an area, it will now automatically create additional CSV files containing the outflow from all unconnected rivers and diversions, one for each river and scenario. The files will be named Result_S__RiverOutflow___.csv, e.g., Result_S02_Reference_RiverOutflow_Weaping-River_2010-2020_Monthly.csv. In order to link the outflow from an upstream WEAP area "A" to an inflow point in downstream WEAP area "B," you would create a river object in area B to represent the lower most river from area A, and give it the same name. Go to the headflow data variable in area B for the new river and open the ReadFromFile wizard. Browse the folder for area A and choose the CSV file with the river outflow results. Because the names are descriptive, it will be easy to choose which file is correct. The ReadFromFile wizard will read and display the CSV data, so it will be easy to verify that it has the correct years and units. Do this linkage for each scenario in B. If the timestep in A is smaller than in B, e.g., A is daily and B is monthly, WEAP will automatically aggregate the A results for use by B.
  • Choose format for time step names: Go to General, Years and Time Steps, then choose the time step name format you want from the dropdown box on the lower right (below the table of timesteps), e.g., for a weekly model, you can choose among the following: Week 40, Wk 40, Oct 1-7, Oct 1, Oct 7.
  • Managing results: The Manage Areas screen now includes a column that indicates how much space is taken by results in each area. A new button (upper right, labeled "Results") will delete all the result files in an area. In some cases this will greatly reduce how much space a WEAP area occupies; however, it will mean that WEAP will need to recalculate next time you want to view results.
  • Much faster reading from CSV files: WEAP now caches CSV files in a binary format that is much faster to read.
  • Allow Maximum Diversion variable to have as its value MissingValue, which would remove any upper bound. This is better than setting it to a very large number, which could cause LP instability (or not be large enough and inadvertently cause a restriction where none should exist). For example, if you have a key assumption that turns on and off operations ( Key Assumptions\Simulate Operations: 0 = simulate natural flows, 1 = simulate operations), then you could use the following expression for Maximum Diversion on a diversion, to turn it on or off:
	  IF( Key Assumptions\Simulate Operations = 0, 0, MissingValue)   
	  ; If not simulate operations, set maximum diversion to 0 (turn if off)
	  ; otherwise, set to MissingValue (no upper limit)
	  NOTE: This will NOT work: Key Assumptions\Simulate Operations * MissingValue, 
	  because if you add or multiply a number by MissingValue, the result will always be 
	  MissingValue, e.g., 0 * MissingValue = MissingValue.  You can think of it as MissingValue 
	  swallows up the numbers around it.
  • Improved display of languages with different character sets (e.g., Chinese, Arabic, Russian, Farsi).
  • On window for adding or editing user-defined variables, you can now decide if the variable will allow gaps (MissingData) in the data.
  • New volume unit: cubic kilometer (km^3)
  • New partial translations for: Bengali, Indonesian, German, Lithuanian and Turkish; improved translations for Arabic, Chinese, Farsi, French, Korean, Portuguese, Russian, Spanish, Thai and Vietnamese.
  • Bugs fixed:
  • Fixed bug in MABIA method: The demand and supply requirement results shown in the Results View may not be correct in cases where coverage < 100%. If the supply was less than the supply requirement, WEAP was recalculating demand and supply requirement using the actual amount of irrigation, which in some cases resulted in lower values for demand and supply requirement from the "first pass," in which it was assumed that 100% of the supply requirement would be met. All of the other results -- e.g., coverage, irrigation, runoff, ET -- were accurate. It was just demand and supply requirement that were inaccurate. (Other parts of the model that depended on supply requirement, e.g., transmission link restrictions as a % of demand, were correct, because they used the total supply requirement for the catchment that was calculated in the first pass, instead of the supply requirements of each branch, which were incorrectly calculated on the second pass.)
  • Fix rare bug in MABIA: In cases where irrigation occurred on the last day of a month, there was the possibility for overestimation of irrigation flow to groundwater in the following month. If this had occurred, there would have been a calculation error message "Runoff fraction to groundwater > 1"
  • Fixed bug in wastewater reuse: In cases where a demand site's wastewater was reused by another demand site (via a transmission link) and the first demand site's consumption was 100%, WEAP was incorrectly supplying water to the second demand site.
  • Fixed bug in variable benefit calculation for transmission links with losses to groundwater: WEAP should not have been including the volume of water lost to groundwater in calculating variable benefit of water delivered.
  • Fixed bug: WEAP crashed if rivers are linked to QUAL2K but are all turned off for water quality modeling.
  • Fixed bug: Values for Key Assumption branches were not displayed in Results View if the WEAP area was annual (one timestep per year).
  • Fixed error in hydropower revenue calculation: WEAP was incorrectly reducing hydropower revenue by the scale of the Hydropower Energy unit (General, Units, Reservoir, Hydropower Energy). For example, if the Hydropower Energy unit was thousand GJ, the result for hydropower revenue was too low by a factor of 1000.
  • Fixed bug for WTP Overflow and Capacity Utilization results: In some cases, WEAP was not calculating these results.
  • Fixed bug for rice ponding and lower bucket: For soil moisture method catchments that were not linked to a groundwater node and had a branch that used the rice/ponding module, WEAP had not been adding to the lower bucket water balance the water that percolated down from the top bucket. This resulted in the bottom bucket gradually drying out and a corresponding reduction in base flow. This bug has been fixed.
  • Fixed bug: When linking to a MODFLOW model with Constant Head Flow that is defined in IBOUND but no CHD package, WEAP was not including the constant head flow in the Groundwater Inflows and Outflows.
  • Fixed bug for reservoir maximum hydraulic outflow (MHO): WEAP was incorrectly allowing the reservoir to completely fill in some cases where the reservoir outflow was less than the MHO.
  • Fixed bug in PEST calibration: WEAP was not properly formatting the PEST files for models with daily timesteps, which caused PEST to not run.
  • Fixed a subtle bug in inheriting expressions. Previously, if you had entered a Current Accounts expression for an object (e.g., a reservoir), and then later made the object not active in the Current Accounts, there are a few places where WEAP got confused about whether there was an expression to inherit from the Current Accounts.

6/10/13, Version 3.431

  • Look for registration in Program Folder
  • Fixed bug: Results for simplified coefficient method catchments were incorrect when displayed using depth units (e.g., mm)
  • Disallow MissingDataValue (-9999) for all variables (except gauges).

5/29/13, Version 3.43

  • New API functions: Branch.NodeAbove, Branch.NodeBelow, Branch.ReachAbove, Branch.ReachBelow. Get the node or reach above or below the current branch. For example, IF WEAP.Branch("\Supply and Resources\River\Weaping River\Reaches\Below Central Reservoir").NodeAbove.TypeID = 4 THEN ...
  • New API function: Branch.River: Gets the WEAPBranch for the river this node or reach is on.
  • New API function: Branch.RiverOrder: Gets the ordering of this node or reach on the river, starting at the top, where the headflow reach has Order = 0. Returns -1 if the branch is not on a river.
  • Ability to refer to catchment Total Yield results (for simplified coefficient method) in expressions.
  • Ability to refer to catchment Soil Moisture results in expressions: For the soil moisture method (2 bucket model), you can refer to the results from the previous timestep for any catchment branch's soil moisture (%) for either bucket 1 or bucket 2. For example, from the Tutorial chapter on hydrology, you could use the following expression: PrevTSValue(Demand Sites and Catchments\Agriculture Catchment\Irrigated:Relative Soil Moisture 1[%])
  • Improved handling of corrupt data tables: WEAP can detect and offer to repair certain types of data corruption that in some cases was preventing WEAP from starting.
  • Better handle reading from Excel files (using Interp function) that have the same name but are in different folders.
  • Catchments using method "Irrigation Demands only (simplified coefficient method)" no longer require a runoff or infiltration link to surface or groundwater.
  • LossRate variable now used for monthly demand method in addition annual demand method.
  • Fixed bug (from version 3.4101) in Results View: Current Accounts year was not being shown.

4/17/13, Version 3.4101

  • Improved speed of chart creation in the Results View, especially in large models
  • Fixed bug in SoilProfile wizard

4/15/13, Version 3.41

  • Fixed crash during calculations: In a few cases, some people were getting an error during calculations: Table does not exist: Result_38.DB

3/22/13, Version 3.4

  • MODFLOW groundwater flow field vectors: The groundwater flow field can be shown both as 3-D vectors and superimposed on the Schematic, one per MODFLOW cell, with the length of the vector reflecting the magnitude of the Darcy velocity. See WebHelp/index.html#MODFLOW_Run.htm for details.
  • Display of MODFLOW cell attributes: When viewing MODFLOW results, there is now an option to display the MODFLOW cell attributes in each cell (W=Well, R=Recharge, D=Drain, V=River, H=Constant Head, F=Flooded, dry=Dry Cells). See WebHelp/index.html#MODFLOW_Run.htm for an example.
  • Pumping from dry cells: A demand site is no longer able to pump from a MODFLOW cell that is or becomes dry, which might result in unmet demand (depending on if all of the linked cells are dry, and it cannot use other supplies).
  • Link Demand Site sub-branches to specific MODFLOW cells: For even more precision in specifying pumping and recharge, you may link WEAP demand site sub-branches to individual MODFLOW cells. In this case, flows to and from these branches will go to only the cells linked to those branches. See WebHelp/index.html#MODFLOW_Link.htm for details.
  • Enhanced display of background maps: Many new options for displaying background layers, including "thematic" shading based on geographic data. See WebHelp/index.html#Map_Layer.htm for more information.
  • A Demand Site's Supply Preference can now vary over time (monthly or yearly) or by scenario.
  • Two buckets for Mabia catchment method: If your model includes any catchments that use the MABIA catchment method, you can now choose whether to use one or two vertically stratified "buckets" (compartments) to compute the water balance. The top bucket is defined by the rooting zone, and includes the surface layer (the layer that is subject to evaporation). The bottom bucket, if the two bucket method is used, is the remainder of the soil below the rooting depth down to the Total Soil Thickness. The size of the two buckets changes with the rooting depth, but the sum remains constant. Infiltration takes place at the top bucket only, groundwater recharge from the bottom bucket only. Flow from bucket one to bucket two, or from bucket two to groundwater, only occurs if the bucket's field capacity is exceeded. If using two buckets, WEAP will calculate the average soil water capacity separately for the top and bottom bucket, based on the horizons that fall within each bucket.
  • Mabia Soil Profile Wizard and Consolidated Rock: Layers below consolidated rock are ignored.
  • Mabia crops can now span a water year boundary.
  • Divide into Clusters (ReadFromFile disaggregation method): Divide the monthly value from the CSV file into a sequence of evenly spaced "events," such as rainstorms, each of which can last several days. The number of events per month is specified by the Disaggregation Method Parameter; the duration of each event is specified by the ClusterLength parameter. Useful for creating a plausible daily timeseries of rainfall from a monthly CSV file. See WebHelp/index.html#Read_From_File.htm for details.
  • Lookup function for expressions: Looks up the value of an independent variable (X), and returns a value for a corresponding dependent variable (Y). The set of N data points -- (X1, Y1), (X2, Y2), ..., (Xn, Yn) -- defines a function: f(X) = Y. Syntax: Lookup( XTitle, YTitle, InterpMethod, X, X1, Y1, X2, Y2, ..., Xn, Yn) InterpMethod is either "Linear" or "Step". E.g., Lookup( Cost[$], Demand[m^3], Linear, \Key\Water Price, 0.10, 2000, 0.50, 1000, 1.0, 100) ; X is water price and Y is water demand. As price goes up, demand goes down.
  • Wizard for Lookup function: Wizard to help constructing a Lookup expression, including pasting an array of numbers from Excel. In the Data View, click the dropdown arrow in the expression box and choose "Lookup Function Wizard."
  • New API function SaveSchematic: Save the Schematic to a jpg, png or Google Earth file. See help for details.
  • New API function ZoomSchematic: Zoom the Schematic out to show the full area boundaries.
  • Refer to groundwater overflow result in expressions: Can now refer to the previous timestep's result for groundwater overflow in an expression, e.g., PrevTSValue(North Aquifer:Overflow)
  • Line charts: The line width on charts can be changed (anywhere from 1 to 4 pixels wide). To make all vectors the same color, change "Number of colors" to 1 on the Legend Colors dialog. (Click the rainbow button on the chart toolbar.) Also, you can change the color palette (rainbow, greyscale, reds, greens, blues). Therefore, to make the lines all black, set to 1 color and gray scale. This can be useful to simplify the display of groundwater flow field results from MODFLOW.
  • Translations: Spanish translation complete; partial translations for Arabic, Chinese, Farsi, French, Greek, Korean, Lithuanian, Portuguese, Russian, Thai and Vietnamese.
  • Added global cities layer to new, blank WEAP areas.
  • Disabled old WEAP license registration codes: Registration codes from before 2008 were not secure, so they have been disabled. If you still qualify for a free license, you may re-apply online: Apply
  • Fixed bug in groundwater "wedge" model: When using the groundwater wedge model (Option: "Model groundwater-surface water interactions" WebHelp/index.html#Purkey_Wedge_Method.htm ), WEAP had been overestimating groundwater-surface water flows by a factor of 365 (both inflows and outflows). In this new version, when WEAP first opens a model that has groundwater wedges, it will warn you about the previous error, and offer to make a correction (decrease Horizontal Distance by 19.1, which is the square root of 365) so that the results will be unchanged.
  • Fixed bug in editing water quality variables: Unable to make changes to variables that represented Temperature.
  • Fixed bug in order of reaches: Newly added reaches were not being added into the correct place in the tree in the Data View.
  • Fixed bug in orphaned user-defined result variables: If a user created a new variable and marked it as a result variable, then deleted it, it was still showing up on the list of results variables in the Results View.
  • Fixed unit conversion bug in initial snow data: WEAP was incorrectly dividing the initial snow data by 1000.
  • Fixed bug in MODFLOW linkage: WEAP was not adding the newly created Recharge package to the new Name file if one didn't exist in the original MODFLOW name file.
  • Fixed bug in user-defined LP constraints: WEAP would crash if a constraint referred to a streamflow variable using a flow unit (e.g., CFS).
  • Fixed bug in Random() function: It was crashing when called with 2 or fewer parameters
  • Fixed bug that prevented WEAP from starting in Windows XP if not running as administrator.
  • Fixed bug in reservoir evaporation: If a reservoir was not active in the current accounts and had data (in the scenario) on maximum hydraulic outflow, WEAP incorrectly calculated evaporation in years before the reservoir became active.
  • Fixed bug in CSV export of daily results (all dates after the 600th day were missing).
  • Fixed bug in maximum hydraulic outflow constraint for local reservoirs.

9/12/12, Version 3.3001

  • Handle MODFLOW models without recharge packages
  • Fixed bugs in Copy and Rename functions of the Scenario Manager

9/3/12, Version 3.3

  • Major new version of WEAP released: highlights include:
  • Model the Water-Energy Nexus: Dynamic linkage to SEI's Long-range Energy Alternatives Planning (LEAP) system
  • Wizard for modeling environmental flow requirements
  • Wizard for exploring and importing time series data files (CSV)
  • Calculations are faster and more robust
  • Numerous other improvements, optimizations and bug fixes
  • Model the Water-Energy Nexus: Dynamic linkage to SEI's Long-range Energy Alternatives Planning (LEAP) system. Create dynamic, bidirectional links between a WEAP water planning model and a LEAP energy planning model. Users can now explore how individual water or energy management choices ripple through both the water and energy systems, understanding tradeoffs that might not be apparent when looking at either system alone. They can then evaluate outcomes against their policy goals and priorities: to supply enough water for all, to reduce GHG emissions, etc. If one approach leads to unacceptable results, they can then explore alternative policies and measures.
  • Modeling environmental flow requirements: There is a new function and wizard to help with specifying environmental flow requirements. Starting with streamflow gauge record, either historical or artificial (e.g., from a climate projection), WEAP can shift this "flow duration curve" by a variable amount to approximate different Environmental Management Classes (EMC). The syntax is: FDCShift( ReadFromFile(CSVFileName, other ReadFromFile parameters...), Environmental Management Class), where Environmental Management Class is a letter from A-F that indicates how far to shift the original time series. There is a FDCShift Wizard to help build this expression. See WebHelp/index.html#Read_From_File_Wizard.htm for more info.
  • ReadFromFile Wizard for exploring and importing time series data files (CSV): Use the wizard to quickly explore, compare and select individual time series from one or more CSV text files. See WebHelp/index.html#Read_From_File_Wizard.htm for more info.
  • Added FirstYear and LastYear parameters to ReadFromFile: The optional 8th and 9th parameters to ReadFromFile can be used to restrict the first and last years of data to use from a CSV file. If not specified, they will default to the first and last years of data in the file. See WebHelp/index.html#Read_From_File.htm for more info.
  • Added "Cycle" parameter to ReadFromFile: The optional 10th parameter to ReadFromFile is either "Cycle" or "No Cycle" (without the quotes). If "Cycle" is specified, WEAP will wraparound from the end of the file back to the beginning. For example, if the WEAP area time horizon is 2000-2050 and a CSV file has data from 1960-1969, WEAP would use data from 1960-1969 for years 2000-2009, then wraparound so that 2010-2019 would also use 1960-1969, and the same for all subsequent years. If the cycle parameter is not specified, it will default to "No Cycle."
  • Changed how missing values are filled in ReadFromFile: If you are aggregating daily data into monthly values, or monthly data into annual values, WEAP will now fill missing data using the Missing Value Method before aggregating. For example, if you have daily temperature data that you need to aggregate to monthly averages, you might use the Interpolate Missing Value Method to fill in gaps in the daily data, all of which will all be averaged to get the monthly average temperature.
  • Calculations:
  • Faster: Numerous optimizations to speed up calculations and display in both the Data View and Results View.
  • More robust: Make structural changes to the LP model formulated by WEAP that result in speed and stability improvements. In rare cases, typically with very complex models, WEAP's internal linear program (LP) solver had be unable to solve the allocation and flows in a few timesteps. Several changes to the LP formulation have improved its reliability. In extremely rare circumstances where it still cannot find a solution, WEAP will use the open source GLPK solver http://www.gnu.org/software/glpk/
  • Improved handling of reservoir maximum hydraulic outflow (MHO): In some cases, typically where the flow into the reservoir was much larger than the total storage capacity of the reservoir, it caused an LP failure. Now, any MHO constraints that cause an LP failure will be temporarily disabled (for that timestep only). WEAP will report which MHOs were temporarily disabled.
  • Improved allocation algorithm: WEAP now does a better job at equalizing coverage among demand sites with the same supply priority and preference. NOTE: this change may cause results from previous versions of WEAP to differ slightly from results in this new version.
  • Minimize unused outflow from diversions: WEAP will try to reduce the amount diverted into a diversion, so as to minimize how much water flows out the end of the diversion (and is lost from the system).
  • You can speed up calculations by turning off selected result variables: The more result variables you calculate, the longer calculations will take and the more disk space will be used, but the more detail you can see in the Results View. Some variables must be saved because they are used internally during calculations. Also, if you reference any result variables in Data View expressions (with the PrevTSValue function), you must also save these. On the menu, go to Edit, Result Variable, Select Variables to Calculate.
  • Warning message in calculations if you have an extremely large data value (larger than 100 billion), because very large numbers can cause problems for the LP solver.
  • Warning message in calculations if you run low of disk space during calculations (less than 50 MB free).
  • Warning message in calculations if any estimated surface water flows to groundwater (when using the "Model GW-SW Flows" method) had to be reduced (because they exceeded available river flow).
  • Disallowed using a transmission link to move water from one river or diversion to another river or diversion. Use a diversion instead.
  • Change in Interp: When using the Interp function for scenario expressions, now you can override the Base Year value with a different value. If so, WEAP will interpolate using the new Base Year value instead of the actual Base Year value from Current Accounts.
  • Allow changing value of "Model WQ?" variable for diversions not active in Current Accounts.
  • WEAP will now check for and prohibit Catchment Land Area from being less than zero.
  • New Result Reports:
  • Wastewater Treatment Plant Total Inflow. Total volume of wastewater that flows into a wastewater treatment plant (without regard to the plant's capacity). Could be useful in calculating treatment costs or energy use on a per unit basis.
  • Unconstrained and Constrained Flow from Surface Water to Groundwater: If you are using the "Model GW-SW Flows" method, in some cases it can estimate flows from surface water to groundwater that exceed available flow in the river. When this happens, the estimated flow to groundwater must be reduced. These two Supply and Resources\River reports show the original, unreduced estimated flow ("Unconstrained") and the actual amount simulated by WEAP AFTER any required reductions are made ("Constrained"). Note: The Groundwater Inflows and Outflows report shows the Constrained flows.
  • Link Water Quality: Concentrations of water quality constituents in transmission links, return flow links and infiltration/runoff links.
  • Wastewater Treatment Plant Capacity Utilization: The fraction of a Wastewater Treatment Plant's capacity that is used. (Capacity is an optional data variable--if left blank, there will be no capacity restriction.)
  • Water quality reports renamed for clarity: "Surface Water Quality" is now "River Water Quality"; "Source Water Quality (by Source)" is now "Outflow Water Quality (by Source)" (the concentration of outflows from non-river nodes); and "Source Water Quality (by Mixed)" is now "Inflow Water Quality (Mixed)" (the concentration of the mixed transmission link inflows to a demand sites).
  • API:
  • Get or set Branch.StartupYear: View or change an object's Startup Year in the active scenario using the API Branch.StartupYear property, e.g., WEAP.Branch("\Supply and Resources\River\Weaping River\Reservoirs\North Reservoir").StartupYear = 2014. Make sure the active scenario is correct first, e.g., WEAP.ActiveScenario = "Supply Measures"
  • Get or set WEAP.DiscountRate: View or change the area-wide discount rate (percent). E.g., To set the discount rate to 3%, WEAP.DiscountRate = 3 Can also be set in WEAP from the Main Menu: General, Units, Monetary.
  • GIS coordinates via Branch API: New properties (IsNode, IsLine, X, Y, X2, Y2) added to the Branch API class that exposes the GIS coordinates of any node or line from the WEAP Schematic. For example, in Weaping River Basin, WEAP.Branch("Demand Sites\South City").X will get the longitude for South City. See the help topic "WEAPBranch and WEAPBranches Classes" for details and more examples.
  • Get if WEAP is registered (licensed): WEAP.Registered
  • Bugs Fixed:
  • Expression references to variables of an object that was not active in the Base Year and only became active after the first scenario year incorrectly evaluated to 0.
  • Water quality constituents were not being calculated in flows in transmission link from supplies into reservoir or river nodes.
  • Catchment results were not correct in daily models that included leap days on March 1 in non-leap years.
  • Water was prevented from flowing from Other Local Supplies that were directly connected to a river or diversion.
  • In some cases, when viewing Data Variables in the Results View, some data variables were not being recalculated.
  • WEAP occasionally froze while the user was drawing a new river on the Schematic.
  • Deleting a river left behind orphan branches on the tree in the Data View.
  • In some cases where the maximum catchment ponding depth decreased at the same time of heavy precipitation, there was negative irrigation demands for ponding (with the Soil Moisture method).
  • Fixed discrepancy with reported groundwater outflow to river: In some cases, there was a discrepancy between results on the "Groundwater Outflow to River" report and the "Groundwater Inflows and Outflows" report.
  • Working directory management:
  • Option to automatically delete all files in the working directory when WEAP exits: Put the following line in the WEAP.ini file, which is located in the WEAP Areas folder (not the WEAP Program folder): DeleteWorkDirFilesOnExit=1 It is completely safe to do this--WEAP will copy them back to the working directory when it next starts. Note: To edit WEAP.ini, make sure WEAP is not running at the time.
  • WEAP will now automatically create a custom working directory location that is specified in WEAP.ini (using the line: WorkDir=), no matter how many directories it contains, e.g., WorkDir=B:\WEAP Files\Jack\Temp Note: to speed up WEAP's calculations, you can create a RAMDisk and place WEAP's working directory on it. See index.asp?action=9&read=1352&fID=30 for more information.
  • You can use the Windows user name to set the customized working directory using %UserName% in the WEAP.ini WorkDir line, e.g., WorkDir = B:\WEAPFiles\%UserName%
  • Miscellaneous:
  • Saving and restoring large datasets is now twice as fast
  • Ranges for variables displayed in Data view: If a data variable has a required range (e.g., Consumption must be between 0 and 100%), it will be listed below the description of that variable.
  • Set variables read only: The Edit Variable screen has a setting to make a variable (both user-defined and built-in) read only. If a variable is read only, the user cannot override the default value or expression.
  • Hide cost variables: Cost data variables (e.g., Capital Costs, Operating Costs) can be selectively hidden for different object types. For example, you could hide the cost variables for demand sites and groundwater nodes, but not for transmission links or wastewater treatment plants. (Previously, if you hid Capital Costs for Demand Sites, it would also be hidden for all other objects.)
  • Ability to rename "Other Assumptions" branch name: right click on the branch and choose Rename.
  • Remember schematic setting for priority display: When opening an area, WEAP will remember the previous setting for the display of priorities and preferences on the Schematic. (From the menu: Schematic, Change priority view)
  • Export to Excel: Export Expressions to Excel will now export the Startup Year variable
  • The "FAO Crop Requirements Method" has been renamed the "Simplified Coefficient Method."

10/31/11, Version 3.22

  • Fixed PEST problem: Fixed a problem that was preventing the PEST Calibration Wizard from working correctly.

10/21/11, Version 3.21

  • Instream water quality calculations: Fixed a problem that caused incorrect calculations for instream water quality calculations in cases where the unit for river flow and river width was not CMS and meters, respectively.
  • Groundwater nodes not active in Current Accounts: Fixed a problem that ignored the initial storage for groundwater nodes that were not active in Current Accounts.

10/13/11, Version 3.2

  • User-defined result variables: Some data variables may actually represent calculated results, especially if you provide a default expression. In this case, you might want to highlight the result by having it appear in the Results View among the built-in result variables, instead of with all the other data variables under the results category "Input Data." To do this, right click on the data variable tab and choose Edit, then check "Result Variable" and choose the results category under which it should appear (e.g., Demand, Reservoir, Groundwater).
  • New report: Reservoir Storage Volume and Zones. For a single reservoir, see how the simulated storage compares with the reservoir zones (Conservation, Buffer, Inactive). See Downloads/ReservoirZones.gif
  • Automated error reporting: In the unlikely event of a crash in WEAP, you now have the option to email the error report to ErrorReport@weap21.org. The error report will contain details of the crash, the full errorlog file (WEAP_Errors.txt), and the option to attach the current area (zipped) and/or a screen capture at the moment of impact.
  • Password-protect areas: Option to add a password to an area that would then be required to either open or save changes to the area. Add a password when creating an area. Add or change the password from the Manage Areas screen.
  • Add notes when creating an area: At the moment you create an area you can give a description of the new area. This should make it easier and therefore more likely for you to add this crucial piece of documentation to your data.
  • Semicolon (;) is now allowed as List Separator character: Previously, because ";" (semicolon) was reserved as the comment character for expressions, WEAP did not allow the Windows List Separator character to be ";"
  • Access to Net Cost and Net Present Value result values from expressions (sums across cost types) and API: For example, PrevTSValue(Supply and Resources\Transmission Links:Net Cost[$]) is the sum of the capital costs, operating costs and benefits (net cost) in all transmission links.
  • Calculations faster: Made several optimizations in the calculation code to speed up calculations. Some models will see greater speed up than others, depending on the details of the models.
  • Dynamic loading of background GIS layers: Previously, WEAP was always loading or attempting to load background layers on the Schematic map, even if they were not marked as being shown (unchecked in the list on the left). With this change, WEAP will only load a layer onto the map if it is set as visible (checked). This results in a substantial speedup in opening WEAP areas that referenced GIS layers on inaccessible network drives (e.g., 40 seconds, because WEAP had to wait for Windows to time out its network search).
  • Complete list of background GIS layers: Previously, if a GIS layer was not available (for example, if the area had come from another user who had referenced a layer in a folder outside the WEAP area folder, and therefore did not exist on the new user's computer), WEAP would not list it in the list of background layers. With this change, WEAP will list all the layers in the list on the left, even those that are not accessible, so that the user can see which ones are missing, and have the option to find the GIS files or remove the layer from the map. If a layer had been checked but is currently unavailable, it will be unchecked.
  • Hydropower result unit: Hydropower can now be reported in Power (e.g., megawatt) as well as Energy (e.g., megawatt-hour) units.
  • Improved selection of nodes on Schematic: You can now click anywhere on a node (e.g., Demand Site, Reservoir, Groundwater node) to select it, not just near the center of the node.
  • Fixed bug with wastewater routing: Previously, if wastewater was routed to a wastewater treatment plant that had not started, the pollution disappeared. With this fix, the pollution will not disappear, and a calculation message will warn that wastewater was routed to an inactive wastewater treatment plant.
  • Fixed error caused by diversions flowing out of local reservoirs.

6/4/11, Version 3.11

  • Fixed bug in Remainder: Version 3.1 had a bug in the calculation of Remainder that could cause incorrect results in some cases.
  • SaveVersion API: WEAP.SaveVersion API method has a new, optional parameter to include result in the version. SaveVersion(Comment, IncludeResults): Create a new version of the active area with the given comment. If optional IncludeResults is TRUE, include the results in the version.
  • DeleteResults API: WEAP.DeleteResults: Delete all results files for the active area. This might speed up calculations, if the results file contain previously calculated results from many scenarios, but you only want to look at results for one or a few scenarios.

5/24/11, Version 3.1

  • Export results to Google Earth: WEAP can export the area schematic and results in Google Earth format (.kmz). This provides a powerful and convenient way to package the results from a WEAP analysis to share with others--everything is saved in one file that can be sent via email or posted on a web site for others to download and open in Google Earth. See WebHelp/index.html#Google_Earth.htm for details. See a video demonstration: http://goo.gl/g1YNf
  • Maximum reservoir outflow: Option to constrain reservoir release due to a maximum hydraulic flow. If there is a hydraulic constraint, specify it on the new reservoir variable "Maximum Hydraulic Outflow" (Category: Physical). Typically this will be function of reservoir elevation at beginning of timestep, which you can access with PrevTSValue(Storage Elevation). Optional--no constraint if blank. Also, no constraint in timesteps when reservoir is completely full--water will overtop reservoir at unlimited rate. See WebHelp/index.html#Reservoir_Max_Outflow.htm
  • New LP solver: Updated to latest version (5.52) of linear program (LP) solver, which should be faster and more numerically robust. LP Solver version number now listed in Help, About.
  • Area names with international characters: Fixed bug that prevented WEAP from recognizing WEAP areas with international characters in the name.
  • Faster zooming on map: Hold down the control key while moving the mouse wheel over any map to speed up zooming in and out
  • API methods to add and delete scenarios: WEAP.Scenarios.Add("New scenario name", "Parent Scenario") will create a new scenario as a child of the named parent scenario, e.g., WEAP.Scenarios.Add("Larger reservoir", "Supply Measures"). WEAP.Scenario("Scenario name").Delete will delete the scenario, e.g., WEAP.Scenario("Larger reservoir").Delete. If it has children, you must use the optional DeleteChildren parameter set to true, e.g., WEAP.Scenario("Reference").Delete(True)
  • Trig functions: Version 3 of WEAP had inadvertently redefined the trigonometry function (cos, sin, tan, arccos, arcsin and arctan) to use radians instead of degrees. With this version, they will use degrees again.
  • Better handling of key assumptions values in Data View: In cases where different key assumptions have the same unit but different scales (e.g., AF and TAF), WEAP now displays the values correctly in Data View charts and tables. (WEAP had always been using the correctly scaled values for calculations.)
  • Different LP scaling factors: Changed LP scaling factors to fix rare instances of LP infeasibilities.
  • Fixed bug with daily models with leap days: A bug was preventing WEAP from opening areas that had a daily timestep and leap years turned on.
  • Turn off catchments: To facilitate catchment calibration, you can temporarily turn off individual catchments to speed up calculations (e.g., turn off all but the few catchments being calibrated). Just set them not active in the Current Accounts with no startup year, and they will not be calculated. The easiest way to turn them on or off: In the Schematic View, go to the menu: Schematic, Set "Active in Current Accounts?" If you want to only activate a few at a time, click "Set All NOT Active" then individually turn on the few that are active.

1/6/11, Version 3.0

  • Major new version of WEAP released: highlights include:
  • Scenario Explorer
  • Internal scripting
  • User-defined variables
  • FAO 56, dual Kc, daily catchment hydrology (MABIA)
  • Allocate water for hydropower demands
  • Calibration Wizard (PEST)
  • Groundwater particle tracking (MODPATH)
  • Safe Yield Wizard
  • Chart improvements
  • Windows 7 and 64-bit Windows compatibility
  • Many other improvements
  • Scenario Explorer: The Overviews View has been renamed the Scenario Explorer View, and it now comes with a section to create "sliders" for data variables. Move the slider to change the value of the associated data variable, and then recalculate to see the impact on results. Scenarios can be created and managed directly from the Scenario Explorer. Right click on various items for context menus, or choose the Explorer menu. See WebHelp/index.html#Scenario_Explorer.htm
  • Scripting: Build scripts (using WEAP's script editor) in VBScript, JavaScript, Python, Perl, Ruby or any other ActiveScript-enabled scripting language to create more powerful expressions and functions for a WEAP model (e.g., create a script to calculate reservoir water quality). Call these scripts from data variables expressions using the CALL function, or from certain stages in the calculations (Events). On the menu, go to Advanced, Scripting. These scripts can use any WEAP API function. See WebHelp/index.html#Script_Editor.htm
  • User-defined variables: You can create user-defined variables under the sections for Demand Sites, Supply and Resources, and Water Quality, which you can reference in expressions elsewhere in WEAP. The definition can include default expressions for Current Accounts and Scenarios, allowing for the creation of a calculated variable (vs. a data variable). This is a very powerful feature, as it allows you to easily create your own models within WEAP. Right-click on a Data View variable tab and choose Add New Variable, or from the Edit menu choose Add New Variable. See WebHelp/index.html#User_Defined_Variables.htm
  • Edit built-in data variables: In addition to user-defined variables, built-in data variables (e.g., Demand Site Consumption) can now be edited. In particular, the default expression for Current Account and Scenarios can be changed. Right click on the variable tab and choose Edit Variable.
  • Hide data variables: Built-in data variables (e.g., Demand Site Consumption) can be hidden. Right click on tab and choose "Hide," or go to Edit, Data Variables menu. To unhide, select "Show" from these menus and select the variable to unhide.
  • Data variable report: Get a report of all available data variables, along with their definitions (including unit, default expressions, min and max values). Variables for non-existent objects, e.g., catchments variables if the area has no catchments, are not shown. To view report, go to the menu Edit, Data Variables, Report. The report can be exported to a CSV, ASCII, Excel, Word, HTML or XML file, or to the Windows clipboard.
  • Customize Result Variables: You may customize WEAP's result variables (e.g., Unmet Demand or Inflows to Area) to some extent. You are allowed to edit the title of a variable or hide it entirely. In the Result View, right click on the result variable selection box at the top and choose Edit Name or Hide. (Or from the Main Menu: Edit: Result Variable) If you have changed the name of a variable and want to reset it to its original value, right click and choose Reset Name to Default. To unhide previously hidden variables, right click and choose Unhide, and then choose the variable to show, or All Variables to unhide all previously hidden variables. Hiding unused variables can be a useful way to simplify a model's appearance, perhaps for display to stakeholders. Note: result variables can still be used in calculations even when hidden (via the PrevTSValue function).
  • MABIA: New method for catchment hydrology: the MABIA method is a daily simulation of transpiration, evaporation, irrigation requirements and scheduling, crop growth and yields, and includes modules for estimating reference evapotranspiration and soil water capacity. The MABIA Method uses the "dual" Kc method, as described in FAO Irrigation and Drainage Paper No. 56, whereby the Kc value is divided into a "basal" crop coefficient, Kcb, and a separate component, Ke, representing evaporation from the soil surface. The basal crop coefficient represents actual ET conditions when the soil surface is dry but sufficient root zone moisture is present to support full transpiration. In this way, MABIA is an improvement over CROPWAT, which use a single Kc method, and hence, does not separate evaporation and transpiration. It was derived from the MABIA suite of software tools, developed at the Institut National Agronomique de Tunisie by Dr. Ali Sahli and Mohamed Jabloun. For more information about MABIA and to download standalone versions of the software, visit http://mabia-agrosoftware.co For more information about MABIA in WEAP, see WebHelp/index.html#Overview_of_Catchment_Calculation_Methods.htm
  • Hydropower priority: Hydropower energy demands can be assigned supply priorities, either for individual reservoirs and run of river hydropower, or for the system as a whole. With a priority and energy demand set, WEAP will try to release water from reservoirs in order to meet the energy demands. Many new Result View charts: see Supply and Resources \ Reservoir. See WebHelp/index.html#Reservoir_Hydropower.htm
  • Hydropower: Hydropower now calculated based on elevation at beginning of month, rather than average of begin and end of month (required for hydropower priority enhancement).
  • Removed minimum turbine flow variable
  • PEST Calibration Wizard: Can use PEST (Parameter ESTimation tool) to help calibrate one or more WEAP variables (e.g., parameters for the soil moisture hydrology method), using historical data to calibrate to (e.g., streamflow gauges, reservoir storage records, snowpack data). Go to Advanced, PEST Calibration. See WebHelp/index.html#PEST_Calibration.htm
  • Reservoir storage data: Enter observed data on reservoir storage for use in calibrating to simulated values for reservoir storage. Enter data under reservoir physical data, variable named "Observed Volume."
  • Snowpack gauge data: Enter observed data on snow accumulation for use in calibrating to simulated values for snowpack. Enter data, in melt water equivalent, for the catchment on: Climate, Snow Accumulation Gauge.
  • MODPATH Linkage: WEAP models that are linked to a MODFLOW groundwater model require only additional data on groundwater cell porosity in order to link to the USGS MODPATH groundwater particle tracking model. WEAP can display particle pathlines as 3-dimension vectors. See WebHelp/index.html#Linking_to_MODPATH.htm
  • Safe Yield Wizard: Optimize and evaluate tradeoffs among human and environmental water supply needs by finding the maximum safe yield for a given WEAP model. For example, you could explore different policies for reservoir release, instream flow requirements and demand management to see what impact they had on the maximum safe yield from the reservoir and on instream flow. See WebHelp/index.html#Yield_Wizard.htm
  • Chart improvements: see WebHelp/index.html#Chart_Toolbar.htm
  • New chart types: Step, Area with no lines
  • Pie charts: Pie charts now can be displayed in many more cases than before, including showing multiple pie charts at once (one for each item on the X-axis, such as each year or month)
  • Chart marks: Individual chart points or bars can optionally be labeled with their value or percent. Click the yellow rectangle in the chart toolbar (on the right side).
  • Line symbols: Symbols for every data point can be shown on line charts, greatly enhancing legibility for greyscale charts.
  • Line patterns: Lines on line charts can have patterns (e.g., solid, dots, dashes), to better distinguish them from each other.
  • Bar and area patterns improved: The appearance of these patterns has been improved.
  • Advanced chart options: A detailed dialog box will give access to EVERY detail of chart appearance. See the last icon (bottom) on the chart toolbar.
  • Save chart to file: Export charts to graphic format files (JPG, BMP, PNG, SVP, PDF, GIF, VML/html, EMF, PCX)
  • Manual scaling: Next to the unit dropdown box (next to chart title), the scale can be set manually. This setting can be saved in a favorite.
  • Rotate X-Axis labels: X-Axis labels can be displayed horizontally, vertically and diagonally.
  • Scrolling legend: if the chart legend is too long to fit, a scrollbar will appear
  • Scale overview charts: Click the "Axis Scale" button (to the right of the overview charts) to use the same scale for every chart's Y-axis. This makes it easy to compare values across charts, e.g., how demand compares to reservoir storage. For MODPATH particle pathline charts, this will also scale the X and Y (or Row and Column) axes.
  • Transpose tables: Transpose rows and columns in Results View tables (table toolbar icon: circular arrow).
  • API:
  • Setting and AreaSetting API functions: Set or get a text value associated with a key (text). Value is stored in file weap.ini in main WEAP directory (Setting), or in area.ini in the area subdirectory (AreaSetting). These files can be a convenient place for the user to store settings (WEAP-wide or area-specific). See WebHelp/index.html#WEAPApplication.htm
  • New API properties: The following properties have been added for WEAPBranch: ActiveInCurrentAccounts, ID, Parent, ParentID, TypeID, Order. ActiveInCurrentAccounts is read/write; the others are read only. See WebHelp/index.html#WEAPBranch.htm
  • New API properties: CalledByBranch, CalledByScenario, CalledByTimeStep, CalledByVariable, and CalledByYear. If the script containing these properties are called from an expression using the Call function, they will return, respectively: the WEAPBranch object for the branch that made the call, the WEAPScenario object for the scenario that made the call, the timestep number (from 1 to NumTimeSteps) for the timestep that made the call, the WEAPVariable object for the variable that made the call, and the year number (between BaseYear and EndYear) for the year that made the call. Read only. See WebHelp/index.html#WEAPApplication.htm
  • New API classes for Timestep, Timesteps: See help ( Advanced Topics, Automating WEAP, WEAPTimestep and WEAPTimesteps Classes ) for more information. See WebHelp/index.html#WEAPTimestep.htm
  • New API property: Variable.ScaleUnitText: Gets a string containing the scale and units of the variable (works with both data and results variables). See WebHelp/index.html#WEAPVariable.htm
  • ReadFromFile: See WebHelp/index.html#Read_From_File.htm
  • Aggregate or disaggregate: Daily data can be aggregated to match your timestep (e.g., monthly), using one of many aggregation methods (Average, Sum, Median, Minimum and Maximum). In cases where aggregate data needs to be disaggregated, such as extracting a daily time series from monthly climate data, one of many disaggregation methods can be used (Interpolate, Repeat, Divide, Divide with Gaps).
  • Missing data values: WEAP better handles missing values when reading data from a text file. See the help topic "ReadFromFile" for details. An optional fourth parameter to ReadFromFile specifies how to handle missing values. The options are: Interpolate, Repeat, Replace, Mark as Missing. Interpolate: linear interpolation from values before and after. Repeat: repeat the previous value. Replace: replace with the number specified as the 5th parameter (defaults to 0 if not given). Mark as Missing: the value will be -9999, which is the special value for missing values. A value of -9999 will not be shown on the graph or used in gauge comparisons. However, for all other calculations requiring a value, an error will occur.
  • Save to CSV options: new options to transpose rows and columns and to save in a format compatible with the ReadFromFile function (e.g., Year, Timestep, DataColumn1, DataColumn2, ...)
  • List separators in ReadFromFile: ReadFromFile will now use the Windows ListSeparator character when reading from CSV files. However, you can override this setting by using the $ListSeparator directive in your CSV file. For example, to use & as the list separator, add the following line to the beginning of the CSV file: $ListSeparator = & In this way, you will guarantee that the files can be read on any system, regardless of their setting of the Windows ListSeparator character.
  • Comments: Comment lines do not need to start with ; or # Any line that doesn't start with a number is considered a comment and is ignored.
  • ReadFromFile Date Format: Use the $DateFormat directive in a CSV file to specify the date format for daily data to be read in ReadFromFile, e.g., $DateFormat=mm/dd/yyyy This will avoid depending on the Windows system date format, which can vary from country to country.
  • CSV Export: Tables exported to CSV files can now have an unlimited number of columns (previously, the limit was 256, taken from Excel's 256 column limitation, for versions of Excel prior to 2007). The API method WEAP.ExportResults has a 4th parameter: set to true to export in ReadFromFile format. It is optional, and will default to false.
  • ReadFromFile: If you leave some parameters blank, WEAP will use the default values. E.g., for ReadFromFile(Filename , , YearOffset), WEAP will use the default value of 1 for the second parameter (DataColumn).
  • Column limit: Increased maximum number of columns that can be read from a CSV file from 1000 to 20,000.
  • Expressions/functions/constants:
  • Arccos and Arcsin: These two inverse trig functions now return an angle in degrees, not radians.
  • New function "Between": Between can be used in expressions to test if a value is between two other values. Between(x, LowerBound, UpperBound) can be used instead of And((x >= LowerBound), (x <= UpperBound)) See WebHelp/index.html#Between.htm
  • IsBlank function: The IsBlank function returns True if there is no expression entered for the named Branch:VariableName. Note: if there is an expression entered for a parent scenario (or Current Accounts), IsBlank will be false. See WebHelp/index.html#IsBlank.htm
  • Refer to Effective Precip: Can now refer to the results for effective precipitation (including effects of snow accumulation and snowmelt), e.g., PrevTSValue(Agriculture Catchment:Effective Precip for ET[m])
  • Random(LowerBound, UpperBound): Returns a different random real number, between LowerBound and UpperBound, for each timestep. If not specified, the lower and upper bounds default to 0 and 1. The value returned is a random but repeatable value for any given branch, scenario, year and month. This means that the numbers will be the same each time a scenario is calculated (for a given branch, year and timestep). See WebHelp/index.html#Random.htm
  • RandomInteger(LowerBound, UpperBound): Returns a different random integer, between LowerBound and UpperBound, for each timestep. If not specified, the lower and upper bounds default to 0 and 1. The value returned is a random but repeatable value for any given branch, scenario, year and month. This means that the numbers will be the same each time a scenario is calculated (for a given branch, year and timestep). See WebHelp/index.html#RandomInteger.htm
  • Random normal distribution: New function for use in expressions: RandomDistribution(Mean, StandardDeviation) produces random numbers with Gaussian distribution about the Mean. This is useful for simulating data with sampling errors and expected deviations from the Mean. See WebHelp/index.html#RandomDistribution.htm
  • Errors in expressions flagged: If the result of an expression is undefined (such as Log(0), which WEAP displays as NAN, or Not A Number), an entry will be made in the list of errors and warnings on the Messages tab in the Results View.
  • Check for invalid branches: During calculations, all branch references in expressions are checked for validity. (This will catch references to branches that have been deleted.)
  • Better error messages for expressions: Error messages are now more informative
  • New expression constant for missing value: MissingValue evaluates to -9999. For example, If(Catchment:Precipitation = MissingValue, 0, Catchment:Precipitation) See WebHelp/index.html#MissingValue.htm
  • Catchments:
  • Sped up ponding/rice calculations
  • Fixed bug in catchment ponding/rice: In cases when the surface storage was above the Minimum Depth (and therefore no need for irrigation), there still should have been a demand for the release requirement (if any).
  • Snow melt: Now using Latent Heat of Fusion (334 kJ/kg) instead of Latent Heat of Vaporization (2260 kJ/kg, at 100 C) for snow melt algorithm in submonthly models. For already calibrated models, you may want to continue using Latent Heat of Vaporization. To make this change, go to General, Basic Parameters. See WebHelp/index.html#BasicParameters.htm
  • Ignore irrigation data on catchments not marked as having irrigation: If a catchment had been marked as having irrigation and irrigation data had been entered for some of its branches, and then the user later turned off irrigation for the entire catchment (from the Schematic View), WEAP was still computing irrigation supply requirements and if the catchment still had a transmission link, was supplying water to meet the requirement. This bug has been fixed.
  • Error checking on upper and lower irrigation thresholds: WEAP now requires that lower threshold is less than upper threshold
  • Refer to catchment and demand site results in expressions, including sub-branches: Various catchment results (interflow, base flow, surface runoff, evapotranspiration, snow melt, snow accumulation, irrigation) and demand site results (water demand, supply requirements) can now be referenced using PrevTSValue in expressions. In the Expression Builder, drag the branch down to the expression edit box to choose from a list of all data and result variables. You can refer to results from any level of the demand tree, e.g., catchments as a whole or land class branches underneath catchments. If a referred branch has several subbranches, they will be totaled automatically.
  • Miscellaneous:
  • Windows 7 and 64-bit Windows Compatible
  • Transmission link terminology: On the Data View tree, the branch for transmission links has been renamed from "Supply and Resources\Linking Demands and Supply" to "Supply and Resources\Transmission Links"
  • Other Supply inflow to Reservoir or River: To have a supply source of type Other Supply flow into a reservoir (e.g., to model a desalination plant whose output is stored in a reservoir) or to a river, use a transmission link to connect the Other Supply to the Reservoir or River. The flow in the Other Supply will not flow along the transmission link unless there is a downstream demand that requests it, including the reservoir filling demand.
  • Sub-annual variation of priorities: Priorities for demand sites, flow requirements and reservoirs (separately for filling and for hydropower) may now vary by timestep (e.g., monthly), via the expression for the priority variables in the Data View.
  • Negative groundwater recharge: For groundwater nodes, "Natural recharge" variable is now allowed to be less than zero, for example, to model lateral outflow from an aquifer to another aquifer outside the system.
  • Improved result view display of user-defined variables: Sped it up and eliminated extraneous branches from displaying.
  • Selecting river nodes: River node and reach names, when selecting which to display in the Results View, now correspond with the names given in the chart legend.
  • Leap years: An option to add an extra day for February 29 in leap years (e.g., 2000, 2004, 2008). Go to General, Years and Time Steps and check "Add Leap Days?" If the time step is daily (365 time steps per year), there will be 366 time steps in the leap years. Otherwise, the time step that includes February 28th will have an extra day in leap years. See WebHelp/index.html#Years_and_Time_Steps.htm
  • Create MODFLOW file for all WEAP timesteps: WEAP will create one aggregate MODFLOW input file for each scenario, in which each WEAP timestep becomes a MODFLOW stress period. Data for the RIV, RCH, WEL and DRN packages will be aggregated for all timesteps. Each scenario also includes data for the Current Accounts year. Each multi-stress period MODFLOW input file (one per scenario) can be run outside of WEAP to create a MODFLOW results file that spans the entire WEAP study period. The MODFLOW file will be named with the original MODFLOW filename, with _S## appended on the end, where ## is the number of the scenario (Current Accounts = 01, the first scenario will be = 02, etc.). For example, if the original MODFLOW name file was Tutorial.NAM, the aggregate MODFLOW name file for the reference scenario would be Tutorial_S02.NAM.
  • Diversion flow from reservoirs: A diversion can now flow directly out of a reservoir. To do this when creating a diversion, drag the diversion symbol from the legend and drop it on the reservoir. If the diversion already exists, drag its headflow point and drop it on the reservoir.
  • WARNING: After you read a WEAP area with this new version, that area CANNOT be read with an older version of WEAP (prior to August 2008). Therefore, if you will be giving your datasets to other people, they must also update to at least this version of WEAP.

6/16/08, Version 2.2054

  • New background layer point symbols: For background GIS layers that have points (as opposed to lines or polygons), many symbols are now available for displaying the points. To change the symbol displayed, double click on the background layer in the legend and choose the Appearance tab of the Map Layer dialog box.
  • Greek version: The WEAP program has been translated into Greek by Spyros Michas.
  • Russian Help: The online help has been translated into Russian by Andre Savitsky.

5/31/08, Version 2.2052

  • Widespread release to all WEAP users
  • Handles OPEN/CLOSE and EXTERNAL in MODFLOW files: WEAP can now handle OPEN/CLOSE and EXTERNAL in MODFLOW input files, in any format (FREE, fixed or BINARY).

5/30/08, Version 2.2051

  • Fixed bug with display of Soil Moisture results

5/25/08, Version 2.2050

  • VolumeToElevation and ElevationToVolume: Improved error checking; documented in help file.

5/19/08, Version 2.2048

  • VolumeToElevation and ElevationToVolume functions: New functions for expressions to convert between reservoir volume and elevation, using the Volume-Elevation curve data. Here is an example that uses elevation data (in feet) to set the Top of Conservation zone data: ElevationToVolume(MonthlyValues(May, 625.0, Jun, 625.0, Jul, 610.0, Aug, 610.0, Sep, 630.0, Oct, 630.0, Nov, 625.0)) Assumes the elevation and volume units are those as set for reservoirs under General, Units, Reservoir. See WebHelp/index.html#VolumeToElevation.htm

5/15/08, Version 2.2047

  • Paste multiple values into expressions: Paste a vector of annual or monthly values from Excel or other programs. Also, paste a volume-elevation array into the Volume-Elevation Curve tab for a reservoir.

5/12/08, Version 2.2045

  • Individual result files: In order to accommodate very large models, the results file are now split into many smaller files. This should allow larger models to be calculated, as well as faster access to result tables and charts in the Results View.

4/9/08, Version 2.2039

  • Sped up calculations a bit

4/7/08, Version 2.2038

  • Terminology change: "revenue" broadened to "benefit." Benefits can include revenues, or other positive impacts, such as the value of ecosystem services.
  • Smaller results files: automatic packing of results file will save disk space and speed viewing of results.
  • Reduced memory use: WEAP now uses less memory (RAM) during calculations, especially on larger datasets.
  • API LoadOverview: Using the API, use WEAP.LoadOverview(overviewName) to load a previously saved overview.
  • API ExportResults to Excel: ExportResults can save to either a CSV or Excel file, depending on the extension for the file name you give. E.g., WEAP.ExportResults(C:\Overview.xls) or WEAP.ExportResults(C:\Groundwater.csv). Also, you can now export results from the Overview View.

4/1/08, Version 2.2037

  • Handles PARAMETERs in MODFLOW files: WEAP can now handle PARAMETERs, including time-varying parameters (with instances), for the following MODFLOW packages: WEL, DRN, RIV, RCH.
  • Handles OPEN/CLOSE in MODFLOW files: WEAP can now handle OPEN/CLOSE in MODFLOW input files. For now, it can only read in FREE format files, but soon will also be able to handle formatted and binary files, in addition to EXTERNAL files.

3/21/08, Version 2.2036

  • New reservoir evaporation report

3/14/08, Version 2.2034

  • Terminology: Renamed "Leaf Area Index (LAI)" to "Runoff Resistance Factor." Runoff Resistance Factor incorporates factors such as LAI and land slope to determine surface runoff. Higher values of Runoff Resistance Factor lead to lower values of runoff.
  • Fixed bug with startup year

3/7/08, Version 2.2033

  • Fixed bug with PrevTSValue: There was a problem with complex PrevTSValue expressions.

3/5/08, Version 2.2032

  • Fixed bug in startup year: Scenario were incorrectly inheriting the "Startup year" value from their parent scenario.

3/4/08, Version 2.2031

  • Cloudiness fraction for catchments: New variable "Cloudiness fraction" for catchments and river reaches (on which river water temperature is calculated), to help refine the calculation of net solar radiation.
  • New API property Branch.Variable: Can be used to refer to a named variable for a branch, e.g., WEAP.Branch("\Demand Sites\South City").Variable("Consumption").Expression = 30

3/2/08, Version 2.2029

  • Select branches in Results View: Choose a subset of branches to display in the Results View.

3/1/08, Version 2.2028

  • Catchment results in mm: See catchment results (e.g., Land Class Inflows and Outflows) in terms of depth, such as in mm, in addition to volume (cubic meters) and flow (cubic meters per second) units.

2/26/08, Version 2.2024

  • New API functions BranchExists and VariableExists: Test if a branch or variable exists from the API, e.g., IF WEAP.BranchExists("\Demand Sites\Big City") THEN ..., or IF WEAP.Branch("\Demand Sites and Catchments\Upper Watershed").VariableExists("Wind") THEN ...
  • Incremental calculation in the API: The API function Calculate now takes optional parameters to specify how far to calculate. E.g., WEAP.Calculate(2005, 6) will stop calculations at the 6th timestep of 2005.

2/7/08, Version 2.2019

  • Handles irregular MODFLOW grids: When creating a shape file to link the WEAP model to the MODFLOW model, WEAP will now handle irregular MODFLOW grids (where the rows or column widths vary). Also, it can handle either UTM and latitude/longitude shape files.

2/4/08, Version 2.2018

  • Display results in units of flow (e.g., CFS): For any results in the Results View that use volume units, such as cubic meters or acre feet (e.g., Streamflow, Supply Requirement), the results can now be display also in flow units (e.g., cubic meters per second or cubic feet per second).

1/29/08, Version 2.2016

  • Support of confined and multi-aquifer systems (MODFLOW): On the "Link to MODFLOW" screen, click the "Define Aquifers" button to specify which MODFLOW layers should be grouped into which aquifers. In the Results View, there are two new reports in the MODFLOW section: "Groundwater Inflows and Outflows by Layer" (available only if the MODFLOW model has more than one layer) and "Groundwater Inflows and Outflows by Aquifer" (available only if the MODFLOW model has more than one layer and you have created more than one aquifer).
  • Improved inflows and outflows reports: these reports (such as Groundwater Inflows and Outflows) now have more details on flows; choose "Selected Sources and Destinations" above the legend to choose a subset to display

12/16/07, Version 2.2014

  • Climate data can vary by land use: One can choose whether all land use branches within a catchment will have the same climate data, or whether each branch can have different climate data. This second option might be necessary if there is a large variation in the elevation among different land uses with a catchment. Alternatively, the catchment could be divided into several different catchment nodes according to elevation, so that the climate within each catchment did not vary by land use. Go to General, Basic Parameters to make the choice.

12/15/07, Version 2.2013

  • Speed up for API: Making WEAP not visible (WEAP.Visible = False) now results in faster calculations when using the API.

12/12/07, Version 2.2011

  • Create MODFLOW linkage shape file in WEAP: Using parameters from the MODFLOW discretization file and user-supplied parameters, WEAP can create a GIS shape file that can be used to link a WEAP model to a MODFLOW model. This means that separate GIS software, such as ArcMap, is not required to link MODFLOW to WEAP. Go to General, MODFLOW Link. Click button "Choose shape file that...." Choose < Create new shape file > under "Background shape file with MODFLOW linkage information"
  • Access to MODFLOW results in expressions: To access MODFLOW results for individual cells, use PrevTsValue(MODFLOWVariableName[layer, row, column], ...), for example, PrevTSValue(Cell Head[1,57,30], 1, 12, 2) will give the minimum value of the cell head elevation for layer 1, row 57, column 30 over the previous twelve months. In API, use WEAP.ResultValue(MODFLOWVariableName[layer, row, column], ...), for example, WEAP.ResultValue("Cell Head[1, 57, 30]", 2005, 1)

11/27/07, Version 2.2009

  • Individual result values in status bar: Move the mouse over any line or bar in a chart (in the Data View, Results View or Overview View) and its value will be displayed in the WEAP status bar below. (No need to click the mouse.) See a video demonstration: http://screencast.com/t/yDbr97xSTCb
  • Schematic elements named in Status bar: Move the mouse over any WEAP element (e.g., Demand Site, River, Reservoir) in the Schematic View and its name will be displayed in the WEAP status bar below. (No need to click the mouse.)
  • Zoom and pan result charts: To zoom in on charts in the Data and Results Views, hold down the control key and click and drag a rectangle on the chart. To zoom in, click and drag from upper left to lower right. To zoom back out again, click and drag from lower right to upper left. When zoomed in, hold the shift key and click and drag to pan the chart. These shortcut keys--control drag to zoom, shift drag to pan--also work on the Schematic.
  • Easily change labels for background layers: Right click on a background layer name (e.g., Country) and choose the label to use on the "Set label to" menu.
  • Edit shape file data: Double click the background layer name in the Schematic to edit the values in its attribute table. See a video demonstration: http://screencast.com/t/kMvbqgwFx
  • MODFLOW Tutorial: New chapter of Tutorial on MODFLOW with matching dataset: Tutorial

10/31/07, Version 2.2003

  • Circular reference error: Improved diagnostic error reporting for circular references
  • New expression constants: In addition to the constants (which can be used in expressions) Y, Year, PrevYear, Month, TS, and Days, new constants have been added: DaysBefore, JulianDaysBefore and TotalDaysBefore

10/25/07, Version 2.2001

  • Trig functions: Added arccos, arcsin and arctan

9/21/07, Version 2.2

  • Major new version of WEAP released: highlights include:
  • Link to MODFLOW: Link WEAP's groundwater nodes to one or more MODFLOW groundwater cells for detailed modeling of groundwater.
  • Link to QUAL2K: Calculate instream water quality using the US EPA model QUAL2K. Constituents modeled include: Ammonia, nitrate, organic and inorganic phosphorous, algae, sediment, pH and pathogens.
  • Application Programming Interface (API): Run WEAP from other programs (e.g., Excel via VBA), programming languages (e.g., Visual Basic, C) or scripts (e.g., Visual Basic Script (VB script), JavaScript, Perl, Python) can control WEAP directly--changing data values, calculating results, and exporting them to text files or Excel spreadsheets. Can be used to automatic sensitivity analysis or calibration. Compatible with Parameter Estimation tool (PEST), for automatic calibration.
  • Call DLL functions from WEAP expressions: To call a dll function, use the following syntax: Call( DllFileName ! DllFunctionName, parameter1, parameter2, ...)
  • Refer to result values in data expressions: Using PrevTSValue function, results from the previous timesteps can provide feedback for data expressions. Results include: Demand Site: Supply Requirement, Supplied, Coverage, Unmet Demand, Reliability; Transmission Link: Flow; River nodes and reaches: Streamflow; Reservoir: Storage Volume, Storage Elevation, Hydropower; Flow Requirement: Requirement, Requiremend Delivered, Requirement Coverage; Groundwater: Storage; Return Flow: Flow
  • Rice paddy module: Track requirements for and hydrological effects of ponding / flooding in rice cultivation (and wetlands).
  • Infiltration basins and retention ponds: Seepage losses from reservoirs can be significant, particularly in lakes and unlined reservoirs. To model these losses, specify the groundwater node and flow to it for each timestep. Net gains from groundwater to the reservoir should be entered as negative numbers. You can also model infiltration basins and retention ponds, which can be used for artificial recharge of aquifers.
  • Tiered water pricing: Added function BlockRate for tiered pricing structure of demand site customer water charges.
  • Combined sewer overflows (CSO): Model CSOs by routing a catchment's stormwater runoff to a wastewater treatment plant, which can overflow if its maximum treatment capacity is exceeded.
  • Key Assumptions in Results View: Display one or more user-defined variables from Key Assumptions in the Results View.
  • Return flow gain from groundwater: Infiltration from groundwater into the return flow link, typically via cracked pipes, can lead to sewer overflows and increased wastewater treatment costs.
  • Rivers can now flow into groundwater nodes: drag the endpoint of a river and drop it on top of an groundwater node to connect them. (WEAP will ask you if you want to connect them.) Once connected, any water that flows out of the last river reach will flow into the groundwater node.
  • Transmission and return flow link losses to groundwater: transmission links and return flow links have two variables for losses: "Loss from System" and "Loss to Groundwater," each entered as a percent of flow through the link. Loss from system will disappear, whereas Loss to Groundwater will flow into the named groundwater node.
  • Units shown for variable references: WEAP now shows the unit, and allows scale and unit conversions, when referring to variables in data expressions. This should greatly reduce the incidence of conversion errors.
  • Faster calculations: Calculations take less time now to complete, especially on computers with at least 512 MB RAM.
  • Scenario comparison: In Results View, see the difference between one scenario and one or more other scenarios.
  • Multiline expressions: When editing expressions in the Expression Builder, you can add line breaks to enhance readability for complex expressions.
  • Renormalize monthly data: The Monthly Time Series Wizard now has a "Renormalize" option, to proportionally change all values so that they sum to 100%.
  • Wastewater Treatment Plant Overflow Report: Overflow is defined as inflow to a wastewater treatment plant that exceeds its capacity.
  • View input data in Results View: Access all data inputs on Result View charts, tables and maps.
  • Change Y-axis origin: Whereas previously, the y-axis of all graphs always started at 0, now there is an option to use the minimum value as the origin. This will exaggerate changes on the graph--thus making it easier to see differences, but potentially misleading. Click the "Y=0" button on the toolbar to the right of the graph to toggle the Y-axis origin.
  • Language Translations: full or partial translations into Chinese, Korean, French, Spanish, Portuguese, Arabic, Farsi, Russian and Thai.

8/5/05, Version 2.0016

  • Financial planning module: Attach revenues, capital costs and operating costs to individual elements (demand sites, transmission links, return flow links, wastewater treatment plants, groundwater sources, reservoirs, etc.), either as fixed annual costs or as costs per unit of water. Other uncategorized costs can be entered as "other system costs" (capital, operating and revenue). All of these annual costs could vary by year or by scenario. Use LoanPayment function to calculate loan payments on capital costs. Results include net costs, average cost of supplied water, and net present value.
  • Water quality inflow constraints: Set optional constraints on maximum concentration of inflow to a demand site, from all sources mixed.
  • Water quality gauge data: Enter data for water quality concentrations at various points in the river. WEAP will display a report comparing these data with model results. This ability is similar to the current option for entering water flow data in streamflow gauges, for reporting.
  • Disaggregated pollution generation: Data on demand site pollution generation, either by intensity or concentration, can now be entered at any level of disaggregation under the demand site level on the tree.
  • Running count of model elements: The legend on the Schematic View shows the total number of each element defined, e.g., if 5 demand sites exist, it will read Demand Site (5).
  • Save small models in evaluation version: The unregistered evaluation version of WEAP can now save small models--up to 6 nodes and 3 rivers.

6/8/05, Version 2.0005

  • New version of WEAP released: highlights include:
  • Hydrologic models: Using data on climate and land use, WEAP can model runoff, infiltration, baseflow, evapotranspiration, irrigation requirements and crop yields from catchments.
  • Two hydrologic models are available: a simplified model using the FAO crop requirements method, and a more detailed model which tracks soil moisture in two soil layers via a lumped-parameter hydrologic representation.
  • Surface water/groundwater interactions: Simulate flows between surface water and groundwater, based on their head difference and various aquifer parameters.
  • Instream water quality: Models for water temperature, BOD, DO, conservative substances (e.g., salt) and non-conservative substances (which follow first-order exponential decay) in river reaches.
  • Wastewater reuse: Wastewater return flows from demand sites and wastewater treatment plants can be used directly by other demand sites.
  • View results on the map: Results from one or more variables (e.g., demand, streamflow, water quality, reservoir storage) can be displayed on the map, both in numerical form and as varying widths/sizes of elements (e.g., demand sites, reservoir, river reach lines).
  • Automatic data backup: WEAP maintains multiple versions of each dataset (as it changes over time), which can be useful in case of data corruption or a desire to undo many changes.
  • Multilingual: English, French and Korean, with partial translations into Chinese, Spanish and Portuguese.

4/8/05, Version 1.0435

  • Area Save As: Save open area, along with any as yet unsaved changes, to a new area. Main menu: Area, Save As...
  • Automatic versioning of areas: WEAP will automatically keep multiple versions of each area's data so that you can revert to a previous version.
  • Create milestone copy: Save a version of the area (with an optional comment). Main menu: Area, Save Version...
  • Revert to previous version: Discard the current version of an area's data and replace with a previously saved version. Can be used to easily undo all changes made since last save. Main menu: Area, Revert to Version

4/7/05, Version 1.0434

  • Exclude results: When backing up or emailing an area from Manage Areas, there is now the option to exclude the result files to save space.

3/10/05, Version 1.0418

  • Batch export and import of data expressions to/from excel: After exporting to workbook, you can modify the expressions and then import them back into WEAP. With autofilter turned on, Excel becomes an excellent way to view the expressions, perhaps better than the text Data Report.

2/3/05, Version 1.0404

  • Map multiple results: Multiple variables can be mapped at once in Results View (on the Map tab)

1/28/05, Version 1.04

  • Wastewater reuse: (transmission link from one demand site to another demand site, or from a wastewater treatment plant to a demand site) This change necessitates two new variables--Demand Site Consumption and Wastewater Treatment Plant Consumption--and a redefinition of return link routing fractions (now they are as a fraction of outflow, not a fraction of inflow)
  • Flow duration curve: aka exceedance graphs
  • View "data" variables in the results view: e.g., Reservoir top of conservation pool
  • User-defined results tables: In the Overview View, you can now see all the numbers behind the graphs
  • View results on the map: In the Results View, there is now a map tab. Move the slider below the map to animate it over time. Click the chart icon on the right to see the variable graphed below.

11/11/04, Version 1.0351

  • Catchment runoff symbol: a new symbol on the legend for catchment runoff--blue dotted line, instead of a red return flow link.
  • Specify catchment inflow: You can specify on the General Info for a catchment which river it flows into, whether that inflow represents the headflow for that river, which groundwater node (if any) receives recharge from the catchment, and whether it includes any irrigated areas.
  • Catchment runoff as headflow: If a catchment is the headflow for a river, you cannot also enter data for that river's headflow. This prevents double counting.

4/16/04, Version 1.0342

  • Read from file with dates: You may specify data dates in files to be read using ReadFromFile using mm/dd/yyyy syntax, in addition to having the year be in column 1 and the time step in column 2. (This only works if your timestep is monthly or daily.)

3/19/04, Version 1.0327

  • Turn off automatic calculation: In the Data View, go to the Main Menu: Edit, Automatic Calculation to turn on or off calculation and display of results in the Data View (does not affect Results View). If Auto Calc is off, hit F9 to do a calculation (this will not turn auto calc back on).

1/23/04, Version 1.0304

  • Graph river results according to distance downstream: In results, all river reports (e.g., streamflow, gauges, surface water quality) can display the results along the X axis spaced proportionally to their distance along the river. Choose "Nodes and Reaches" for the X axis dimension, then check off "Represent true relative distance?"

1/2/04, Version 1.031

  • River Reach Length report: in Results, choose: Supply and Resources, River, Reach Length. Reach Length is used in calculating temperature, BOD, DO, and other water quality constituents that decay

12/31/03, Version 1.0299

  • Order branches alphabetically: When sorting branches in the tree (right-click on a branch), you can choose "Sort by Name (all levels below)" or "Sort by Name (just one level below)". For example, to order the list of demand sites alphabetically, but leave each demand site's sector branches unsorted, right-click on "Demands Sites" branch and choose "Sort by Name (just one level below)".

10/28/03, Version 1.0292

  • Reservoir priorities: priorities (on order of filling and releases) can now change over time, similar to demand sites and flow requirements.

9/23/03, Version 1.0285

  • Branches flash on map: In Data View, when you click on a branch in the tree, the corresponding object in the schematic will flash on the inset map (below the tree).

8/25/03, Version 1.028

  • Reservoir Elevation report

7/22/03, Version 1.0264

  • Mouse wheel: Use mouse wheel to zoom in and out of schematic.

7/3/03, Version 1.0257

  • Help button for data variables: Click the "Help" button (next to the description of the variable) for help on current data variable.

6/27/03, Version 10255

  • Enter monthly demand: Option to enter monthly demand directly, rather than enter annual demand and monthly variation. Choose "Specify Monthly Demand" for the Method on the Advanced button in the Data View. You may use ReadFromFile function (see description below) to read in monthly demands from a file for multiple years.

5/30/03, Version 1.0234

  • Land class area report: New report that details area by catchment and land class. Choose Levels = 2 to see land class detail. Then check the "Group?" box to see subtotals by land class.

5/23/03, Version 1.0231

  • Patterned charts: charts with more than twenty items in the legend use patterns to differentiate the bars.
  • Restore area from FTP site: Go to Manage Areas, click the Restore button, then enter your ftp site in the "File Name" box to browse for a WEAP area file to restore. For example, enter ftp://exchange.tellus.org/WEAPAreas and you should be able to see Weaping River Basin.zip

4/7/03, Version 1.0224

  • New Flow Requirements reports: three new flow requirements reports have been added: Instream Flow Requirement, Instream Flow Requirement Delivered, and Unmet Instream Flow Requirement. They can be found grouped with the other Demand reports. (Previously, the Flow Requirement Coverage report was under Supply and Resources, River.)

4/3/03, Version 1.0223

  • Fixed "Table is full" error: increased the maximum size of the results file from 128MB to 1 GB.

3/31/03, Version 1.0221

  • New Manage Areas: greatly enhanced the "Manage Areas" screen.
  • Minimal diversion: Modified behavior of diversions, so that WEAP will not divert more than is requested on the diversion. (Essentially, there is now a priority 100 (i.e., last) iteration in which the flows diverted from rivers into diversions are minimized (subject to the constraints of how much needs to be diverted, based on instream flow requirements and offstream demands on the diversions).)
  • Temperature and Observed Precip reports: Results View, Land Use, Yates Runoff Method, Temperature and Observed Precipitation. Look at monthly averages to compare climate change.
  • Flow from Groundwater into River report: For flows surface water-groundwater interactions modeled, see Supply and Resources, Groundwater, Flow from Groundwater into River. (Negative values represent flows from river into groundwater.)
  • Monthly averages: When viewing result charts with time along the x-axis, click the "Monthly Average?" checkbox above the chart to see the average for each month.
  • Interrupt calculations: Calculations can be stopped via a Cancel button.
  • Changes logged: The text file Changes.txt (stored in the subdirectory for a WEAP area) has a record of every change made to data, in the order the changes were made, along with who made the change.
  • User login: Users enter their initials when WEAP starts, so that changes to data can be associated with the person who made them.

1/7/03, 1.0177

  • User-defined units: To add new units, go to the main menu and select General, Units, then click the "Units Definitions" button.
  • Statistics: When viewing tables of results in the Results View, click the "Stat" button on the right to see the minimum, maximum, average, standard deviation and root mean square.
  • Browse map data: To view the data associated with a GIS layer (*.shp files), right-click on the layer name, then select Edit to go to the Edit Layer window. Click the "Browse Data" button to see data for all map elements, or click on an element in the map to see its data in the grid to the left of the map.
  • Monthly variation of demand: Each branch within a demand site can have a different monthly variation. On the main menu, select General, Basic Parameters.
  • Streamflow gauges: Use the streamflow gauge objects to facilitate comparing calculated and observed streamflow. On the schematic, place a gauge on a river. Edit its data to specify observed flow, typically using the ReadFromFile function. In results, look at the Supply and Resources, River, Streamflow Relative to Gauge report to compare.
  • Variable Time Step: The time step can be set anywhere from one day to 365 days. Every year and scenario in an area must have the same time step. Go to the main menu and select General, Years and Time Steps.
  • Variable water year start month: The water year can start on any month. Go to the main menu and select General, Years and Time Steps.
  • Group small results into "All Others": If there are more than 12 items in the results legend, you can click the "Grp" button on the right to group the smallest items together.
  • Turn off individual scenarios: To show or hide results for individual Scenarios, go to the menu main and select Area, Manage Scenarios, then check or uncheck "Show Results for Scenario" for each scenario. If this box is unchecked, then WEAP will not calculate results for that scenario.
  • ReadFromFile function: Use the expression ReadFromFile(FileName, ColumnNumber) to import monthly or annual data. The file should be an ASCII, comma separated value file, with the year in the first column, month in the second column (for monthly data), then one or more data columns. In the ReadFromFile function, the first data column is ColumnNumber = 1.
  • Annual totals: In the Results View, you can sum monthly results to see Annual Totals--check the "Annual Total" box in the chart subtitle (Years must be selected for the X-axis).
  • Disaggregated Demand results: On the Water Demand and Supply Requirement reports, use the "Levels" button (located underneath the report title) to show more or less detail. For example, on Weaping River Basin results, choose "All Branches" for the legend. Level 1 shows demand for each demand site; Level 2 disaggregates demand by agricultural county and crop type (Agriculture West), industrial water use (Industry East), irrigation technology (Agriculture North), and single and multi family (South City). When Levels is greater than 1, a "Group?" checkbox appears, that will group together branches with the same name. Set Levels = 3 and check Group?, to see that Flood Irrigation consumes nearly 50% of the total Weaping River Basin demand in the Current Accounts.
  • Wastewater Treatment Plant capacity: Wastewater Treatment Plants can have a maximum processing daily capacity.
  • Save or print schematic as graphic: The Schematic can be copied to the Windows clipboard, for pasting into Word or other applications. In the Schematic View, go to the menu main and select Schematic, Copy Schematic to clipboard.
  • Reservoir priorities: Reservoir can be assigned supply priorities, which are used to determine the order in which they are filled. They default to 99--the lowest priority.
  • Data Report: A "Data Report" lists all data for the active scenario. In Data View, click "Data Report" button in upper right corner of screen.

  • Next NEXT: Sample Screens