The first thing we have to do is to declare where the model is located. More data that we will need later on is also located in the same folder. Therefore we will keep the root of the data folder and the one in which the SOBEK 2.1x flow model can be found as separate variables.

Declare paths
rootPath = r"D:\Workshop\data"
model213Path = rootPath + r"\SW_max.lit\2"

 

Next, we want to import the model using the Delta Shell SOBEK 2 importer. This method can be found in a library called Sobek2Functions in the Libraries folder of the toolbox. You can gain access to all the methods included in that library by adding (and then running) the following code.

Import Sobek2Functions library
from Libraries.Sobek2Functions import *

 The mask * (asterisk) written after the keyword import will import and make all the functions contained in the Sobek2Functions library available for use. All of them will now also appear in the code completion dialog when you hit CTRL + SPACE.

At this point, it is important to make an observation. It is a good practice to place line of code to import libraries at the top of your script in a separate region. This will help you keep your code tidy and easier to update and maintain. Therefore, place the line above completely at the top of your script, select it and then create a region for it (pressing CTRL+R). You can call it Import libraries.

The other lines of code can be integrated analogously is a different region (for example one called Import model). The rest of the main code in this section can also be placed in this same region Import model. The code corresponding to imports would then go to the first region Import libraries.

Let's now continue with the script. The function called ImportSobek2Model  will import the existing 2.1x SOBEK flow model.

Import Sobek 2.13 model
hydroModel = ImportSobek2Model(model213Path + r"\NETWORK.TP",useRR=False, useFLOW=True, useRTC=False)

When you run this line, the model will be imported and added to the variable hydroModel. However, we cannot see the model yet because it has not been added so far to the project. The function AddToProject   that we need can be found inside another library called StandardFunctions. Import all functions in that library and then add the model to the current project.

Add hydromodel to project
# Import libraries region
from Libraries.StandardFunctions import *
 
# Current scripting region
AddToProject(hydroModel)

Now, we should have the imported model in our project (see the project tool window):

Within the integrated model just added to the project, we will be using the flow model. We can assign that object to a new variable.

Choose a sub-model inside an integrated model
 flowModel = GetModelByName("Flow1D")

 

Finally, we will rename a grid point location currently called "3". Later on in this tutorial, we will import data measured at that location. In order to easily identify the location from now on, we will give it the name "Gauging Station".

Rename gridpoint location "3" to "Gauging Station"
from Libraries.SobekWaterFlowFunctions import *

dataPoint = GetComputationGridLocationByName(flowModel, "3")
dataPoint.Name = "Gauging Station"

This is the end of this section. For the next one, you can create a new region.

 

Note: The icon  indicates functions that you might find interesting to see how they have been built. You can do this by opening the corresponding library (another normal script python file on its own) in the toolbox and checking the code which defines the function or method you are interested in.

 

 

 

 

  • No labels