You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

When adding boundary conditions to the model you must first declare the type of the boundary you want to add. This is done as follows for a waterlevel timeseries:

Creare timeseries boundaries
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 can be seen on the map on the boundary :

 

 

Now we declare a timeseries as a list of [datetime, value]. To do this we need to import the datetime and time classes from the python datetime library.

Create timeseries
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]]
Add WPS boundary conditions
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 the boundary on the map and looking at the boundary conditions editor :

Here you can see that for the left boundary there is a waterlevel timeseries declared on the nodes 0 (LeftBoundary_0001), 2 (LeftBoundary_0003) and 5 (LeftBoundary_0006)

 

 

  • No labels