Download - DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Transcript
Page 1: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

18 June 2014

Python scripten binnen Delta Shell

Hidde Elzinga

David Rodríguez Aguilera

Page 2: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

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?

Page 3: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Hoe?

Inleiding:

• DS + Plugins

• Doel scripting (voordelen)

Editor:

• Code completion

• Regions

• Syntax highlighting

• Debug

• etc

Toolbox:

• Management scripts

Documentatie:

• Online

• Ironpython

18 June 2014

Page 4: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Delta Shell

18 June 2014

Sta

t

• SOBEK • D Flow – FM • WAVE • MorphAn • KRW – Verkenner • Habitat • XBeach

Page 5: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Delta Shell: zonder scripting

18 June 2014

Page 6: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Delta Shell: scripting is alleen maar sneller?

18 June 2014

Page 7: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Delta Shell: scripting is alleen maar sneller?

18 June 2014

Page 8: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Delta Shell: scripting is snel én doeltreffend

18 June 2014

Page 9: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Delta Shell: scripting is snel én doeltreffend

18 June 2014

Page 10: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Maar… PAS OP!!

18 June 2014

Page 11: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

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

Page 12: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Toolbox

• Script beheer

• Bibliotheek scripts aanmaken

• Snel folders browsen (explorer acties)

18 June 2014

Page 13: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

Documentatie

• Online

• Ironpython

18 June 2014

Page 14: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

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

Page 15: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

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

Page 16: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

18 June 2014

Scripten draaien kan ook vanaf command line

Page 17: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

18 June 2014

En nu?

Page 18: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

• 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

Page 19: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

• 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

Page 20: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

• 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

Page 21: DSD-NL 2014 - NGHS Scripting in Delta Shell - Python scripten, Hidde Elzinga, Deltares

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