Upload
deltaressoftwaredagen
View
173
Download
2
Embed Size (px)
Citation preview
18 June 2014
Python scripten binnen Delta Shell
Hidde Elzinga
David Rodríguez Aguilera
18 June 2014
Doelen van deze workshop
• Waarom zou je scripting willen gebruiken?
• Wat kan (beter) met scripting?
• Welke tools zijn tot je beschikking om te scripten?
• Hoe heb ik tot nu toe zonder scripting kunnen leven?
Hoe?
Inleiding:
• DS + Plugins
• Doel scripting (voordelen)
Editor:
• Code completion
• Regions
• Syntax highlighting
• Debug
• etc
Toolbox:
• Management scripts
Documentatie:
• Online
• Ironpython
18 June 2014
Delta Shell
18 June 2014
Sta
t
• SOBEK • D Flow – FM • WAVE • MorphAn • KRW – Verkenner • Habitat • XBeach
Delta Shell: zonder scripting
18 June 2014
Delta Shell: scripting is alleen maar sneller?
18 June 2014
Delta Shell: scripting is alleen maar sneller?
18 June 2014
Delta Shell: scripting is snel én doeltreffend
18 June 2014
Delta Shell: scripting is snel én doeltreffend
18 June 2014
Maar… PAS OP!!
18 June 2014
Scripting editor binnen Delta Shell
• Code voltooiing (built-in functies én zelf gedefineerde objecten en
hun attributen)
• Tooltips met informatie over methodes / functies
• Debug (breakpoints, script stap voor stap draaien)
18 June 2014
• Automatisch saven vóór het runnen instelbaar
• Syntax kleurmarkering
• Onzichtbare characters weergeven (TAB, spatie, end-of-line)
• Automatische indentatie
• Toetsenbord shortcuts
• Variabelen wissen
• Context menu’s
• Verdeling in Regio’s
• Hulp met klasses en objecten altijd bij de hand
Toolbox
• Script beheer
• Bibliotheek scripts aanmaken
• Snel folders browsen (explorer acties)
18 June 2014
Documentatie
• Online
• Ironpython
18 June 2014
Even opwarmen: mijn eerste script
• Haal de naam van het huidige project op.
• Bewaar hem in een variabele.
• Print de waarde van die variabele.
• Ken een nieuwe naam aan een andere
variabele toe.
• Wijzig de naam van het huidige project naar die
nieuwe naam.
• Maak een functie van deze code.
• Laat spaties en tabs zien.
• Roep die functie om de naam in een klap aan
te passen.
18 June 2014
def ChangeProjectName(newName):
oldName = CurrentProject.Name
CurrentProject.Name = newName
print "Project name changed from" + oldName + " to "+ newName
ChangeProjectName("Nieuw project")
18 June 2014
def ChangeProjectName(newName):
CurrentProject.Name = newName
ChangeProjectName("Nieuw project")
Even opwarmen: mijn eerste script
18 June 2014
Scripten draaien kan ook vanaf command line
18 June 2014
En nu?
• Sobek 2.12 model importeren
• Tijdsreeks vanaf csv file importeren en manipuleren
• Coördinaatsysteem aanpassen
• Satellietbeeld/Kaart als achtergrondsmap weergeven
• Model (flow, waq, rr, rtc) draaien
• Tijdsreeks ophalen van een willekeurig rekennode
• Randvoorwaarden pakken en aanpassen
• Ruwheid pakken en aanpassen
• Model calibreren
• Tijdsreeksen vergelijken
• Tijdsreeksen naar csv exporteren
Traject 1: SOBEK
18 June 2014
• FM model importeren
• NetCDF data uit OPeNDAP server inlezen
• Coördinaatsysteemtransformatie
• Getijgegevens uit een meetstation weergeven
• Meetpunten toevoegen
• Model draaien
• Modelsignal en meetgegevens plotten
Traject 2: D-Flow Flexible Mesh (FM)
18 June 2014
• Werk binnen Delta Shell GUI
• (Iron)Python syntax
• Scripten binnen de Delta Shell editor view
• Online hulp gebruiken
• Scripting toolbox gebruiken (scriptsbibliotheek
aanmaken en gebruiken)
Beide trajecten
18 June 2014
Aan de slag!
18 June 2014
TRAJECT 2
TRAJECT 1
FLEXIBLE
MESH
SOBEK
SOBEK
FLEXIBLE
MESH
Autocomplete: CTRL + SPATIE
Selectie draaien: CTRL + ENTER
Region draaien: CTRL + SHIFT + ENTER
Alles wissen: caché weggooien
Code voor alle tussenstappen beschikbaar in folder answers
https://publicwiki.deltares.nl/display/TOOLS/Scripting+tutorial