- Created by Hidde Elzinga, last modified by David Rodriguez Aguilera on 07-06-2015
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 18 Current »
When adding boundary conditions to a model, you must first declare their type. In the example of this tutorial, we will add a time series of water levels to each boundary. Each of the added boundary conditions is also kept inside a separate variable for later use.
flowLeftBoundaryCondition = AddFlowBoundaryCondition(fmModel, leftBoundary.Name, FlowBoundaryQuantityType.WaterLevel, BoundaryConditionDataType.TimeSeries) flowTopBoundaryCondition = AddFlowBoundaryCondition(fmModel, topBoundary.Name, FlowBoundaryQuantityType.WaterLevel, BoundaryConditionDataType.TimeSeries) flowBottomBoundaryCondition = AddFlowBoundaryCondition(fmModel, bottomBoundary.Name, FlowBoundaryQuantityType.WaterLevel, BoundaryConditionDataType.TimeSeries) flowRightBoundaryCondition = AddFlowBoundaryCondition(fmModel, rightBoundary.Name, FlowBoundaryQuantityType.WaterLevel, BoundaryConditionDataType.TimeSeries)
This is reflected in the map, with a different icon for the boundary conditions:
We continue by assigning the start time and the end time of each series. These same times will be used later on for the model as well as start and end simulation time. Additionally, a list containing the set of couples of boundary objects,and their respective specifications is also created.
from datetime import datetime, time, timedelta startTime = datetime(2014,1,1, 12,0,0) endTime = datetime(2014,1,12, 12,0,0) boundaryConditionSets = [[leftBoundary,flowLeftBoundaryCondition], [topBoundary,flowTopBoundaryCondition], [bottomBoundary, flowBottomBoundaryCondition], [rightBoundary, flowRightBoundaryCondition]]
Now, we will use a WPS server to retrieve the time series for the support points of the boundaries. We start by importing the WPS library. This may take some time and ends up with some error messages which can be ignored.
import Libraries.Wps as wps
We go through the previously created list boundaryConditionSets and, for each pair, we call GetTidalPredictForLineString to retrieve every boundary from the WPS server. This will provide us a time series for each support point on each boundary, with the provided start time, stop time and frequency. This may take some time depending on the number of support points, the length of the time series and the speed of your internet connection.
Once retrieved, we add these time series to the model by using AddTimeSeriesToSupportPoint for each support point.
for boundaryConditionSet in boundaryConditionSets: # get timeseries for each support point using wps service timeSeries = wps.GetTidalPredictForLineString(boundaryConditionSet[0].Geometry, EPSGCode, startTime, endTime, wps.Frequency.Hourly) # add resultTimeSeries to support points for supportPointIndex in range(len(timeSeries)): resultTimeSeries = timeSeries[supportPointIndex] AddTimeSeriesToSupportPoint(fmModel, boundaryConditionSet[1], supportPointIndex, resultTimeSeries)
The result can be viewed double clicking any boundary on the map and looking at the boundary conditions editor:
In the figure above, a water level time series has been assigned to all the support points of the left boundary condition.
- No labels