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

Compare with Current View Page History

« Previous Version 13 Next »

 

Now that the model has run, we can access the generated output. We start by getting the waterlevel timeseries for the observation point, by using the GetFlowFlexibleMeshTimeSeries function and passing the model, name of the output and the feature (observation point) to it.

Get timeseries for observation point
waterlevelSeries = GetFlowFlexibleMeshTimeSeries(fmModel, "Water level (waterlevel)", observationPoint)

 

Now we have a list of [datetime, value] that we can plot. To create a chart, we start by import the ChartFunctions library and creating an area series for our timeseries.

Create area series
from Libraries.ChartFunctions import *

areaSeries = CreateAreaSeries(waterlevelSeries)

 

With the areaSeries we create the chart and open a view for the chart.

Create chart and open view
chart = CreateChart([areaSeries])
chart.Name = "Waterlevel at observation point"

OpenView(chart)

 

 

The chart is still a bit basic and missing some information, so we are going to edit the chart.

Improve chart layout
areaSeries.Color = Color.CadetBlue
areaSeries.Title = observationPoint.Name
areaSeries.LineVisible = False
areaSeries.PointerVisible = False

chart.Legend.Visible = True
chart.Legend.Alignment = LegendAlignment.Bottom

chart.LeftAxis.Title = "Waterlevel (m)"
chart.LeftAxis.Automatic = False
chart.LeftAxis.Minimum = -4
chart.LeftAxis.Maximum = 5

chart.BottomAxis.Title = "Time"

 

Now we have the chart we want :

 

Now, we also want to export the timeseries so we can use it outside Deltashell. For this, we have two options : export the chart as image or export the timeseries to a .csv (Comma separated values) file.

Export data
chart.ExportAsImage("D:\\testImage.jpg", 1000,1000)

ExportListToCsvFile("D:\\test.csv", waterlevelSeries)

 

We can also create a map for a certain quantity (waterlevel) at a certain time. For this, we need to import the mapfunctions.

Using the map functions, we create a map, waterlevel layer and a satellite image layer. Then, we add the layers to the map.Layers and open the view. To set the time selection of the view to a certain date we use "SetViewTimeSelection"

Create map for output
from Libraries.MapFunctions import *

map = Map()
outputLayer = mf.CreateLayerForObject(fmModel.OutputWaterLevel)
satLayer = CreateSatelliteImageLayer()
map.Layers.AddRange([outputLayer, satLayer])

view = OpenView(map)
SetViewTimeSelection(view, datetime(2014,1,4, 12,0,0))

 

We should get a map showing the water level at our selected time step like the image below:

 

We can export this map as an image by calling the "ExportImage" function and using the image property of the map

Export map image
ExportImage(map.Image, "D:\\FMOutputMap.png", ImageType.PNG)

 

This is the end of the Delft3D Flexible Mesh scripting tutorial.

 

  • No labels