First of all, we will declare the folder where the shape and csv files are located. More data will be found in this same folder so we will be using this variable along the tutorial.
Declare paths
rootPath = r"D:\Workshop\data"
Then, we start creating the very basic network (made of branches and nodes). This information can be found in the GIS shape file network_Branches.shp. The required importer can be found in the library called SOBEKTutorialLibrary in the Libraries folder of the toolbox. This is done by adding the following line (and running it).
Import "SOBEKTutorialLibrary" library
from Libraries.SOBEKTutorialLibrary import *
This will make all the functions (because of the *) in the "SOBEKTutorialLibrary" library available for use. All these functions will now also appear in the code completion dialog (when you use ctrl + space).
In this library we have a function called "CreateNetworkFromBranchShapeFile" which we will use to create the basic network.
After running this line the network will be created using the shape file and added to the variable "network" (if you to see how the network is created in more detail you can look at the CreateNetworkFromBranchShapeFile function in the SOBEKTutorialLibrary.py file in the libraries folder).
Now that we have a network with branches and nodes we can continue with the import of the cross-sections. This is done with the function "AddCrossSectionsToNetwork"
Now that we have finished adding the structures to the network (for this tutorial), we can create a new waterflow model and add this network to it.
First we need to import two more libraries (SobekWaterFlowFunctions to be able to create a WaterFlowModel1D and StandardFunctions for adding the model to the project )
Create waterflow model and add network
from Libraries.SobekWaterFlowFunctions import *
from Libraries.StandardFunctions import *
flowModel = WaterFlowModel1D()
flowModel.Network = network
flowModel.Name = "Flow model"
AddToProject(flowModel)
Now we can see our model by opening a view for it using the "OpenModelMapViewWithBackground" call :