Data Tools Models Data, modellen en tools: Voor het oplossen van elk complex waterbouwkundig vraagstuk gebruik je in meer of mindere mate: data, modellen en tools.
Wat is het probleem? Kwaliteit, snelle beschikbaarheid en toegankelijkheid van data voor analyse is onvoldoende Modellen en door engineers ontwikkelde tools zijn niet goed gedocumenteerd en staan niet onder versie beheer Kan veel beter! Data: data niet onder versie beheer, altijd verschillende file formaten, metadata vaak niet beschikbaar bij de data. Modellen en tools: verschillende tools-versies op PC’s gebruikers, onduidelijkheid welke versie van tool is gebruikt bij bepaalde berekeningen.
Gedetailleerd Versimpeld Gebruiker OPeNDAP Server SubVersion Server Raw Data Tools OpenEarth (BwN) biedt een infrastructuur voor dit probleem. Basis elementen: SubVersion server & OPeNDAP server. Uitgangspunt: Vaste structuur – flexibele toegang. Models Toeleverancier
Wat is NetCDF? Een matrix gebaseerde datastructuur voor het opslaan van multidimensionele data N-dimensionale coordinatensystemen X coordinaat (e.g. longitude) Y coordinaat (e.g. latitude) Z coordinaat (e.g. altitude) Tijd dimensie … andere dimensies Variabelen – maximale flexibiliteit voor het definieren van alle datatypen Temperatuur, druk, zoutgehalte, korreldiameter, etc Geometrie – impliciet of expliciet Regelmatig grid (implicit – opslag efficientie) Onregelmatig grid (expliciet) Punten X Z T Y NetCDF: NASA's Earth Science Data Systems Standards Process Group raadt NetCDF aan als te hanteren dataopslagstandaard. Voordelen: grote data uitwisselbaarheid, platform onafhankelijk, robuust in gebruik en toch eenvoudig te begrijpen.
X Y Z X Y Z Q 32 getallen 14 getallen 0.5 2 0.3 0.6 0.1 0.4 0.2 0.9 1 2 1 2 0.5 0.4 0.6 0.9 0.3 0.2 0.1 32 getallen 14 getallen Efficiente data opslag: Binair NetCDF formaat maakt complete definitie van variabelen mogelijk met gebruik van minimaal aantal getallen (zie voorbeeld) en minimale herhaling metadata. Resultaat: minimale opslagruimte, zeer grote datasets snel te bevragen.
x = nc_varget(transect.nc, 'crossshore_distance'); y = nc_varget(transect.nc, 'time'); z = nc_varget(transect.nc, 'height'); surface(x, y, z); Voorbeeld: transect.nc netcdf transect.nc { dimensions: crossshore = 198 ; time = 3 ; variables: float crossshore_distance(crossshore), shape = [198] crossshore_distance:unit = "meter" float year(time), shape = [3] year:unit = "year" float height(time,crossshore), shape = [3 198] height:unit = "meter" data: coastward_distance = (-65:5:920); year = (2006:2008); height = [ 7.62 7.49 8.26 7.91 7.72 6.03 5.41 … -7.62 -7.705 -7.79 -7.845 -7.9 -7.99 -8.08 7.64 7.49 7.95 8.54 8.34 7.54 6.62 … -7.54 -7.635 -7.73 -7.8 -7.87 -7.945 -8.02 7.56 7.43 7.95 8.84 8.42 7.7 6.77 … -7.46 -7.535 -7.61 -7.695 -7.78 -7.865 -7.95]; } Voorbeeld NetCDF file: 198 kustdwarse punten, 3 tijdsopnames, 3 x 198 hoogtes. Metadata in één file samen met de data. NB: transect.nc is een binaire file. Eenvoudige Matlab routines beschikbaar: nc_varput, nc_addvar, nc_varget (zie inzet)
SubVersion: open source versiebeheer systeem SubVersion: open source versiebeheer systeem. Gebruikers ‘committen’ hun files in één centrale database (regelmatig updaten lokale kopie). Iedere commit krijgt een eigen uniek revisienummer. Per commit kun je in een comment aangeven wat er is gewijzigd.
Blame functionaliteit: van elke regel code is bekend door wie, wanneer en als onderdeel van welk revisie nummer deze is gewijzigd. Kleuren geven de ouderdom van de code aan (blauwer = ouwer). Elke wijziging kan achteraf altijd worden teruggedraaid.
Merge tool: Verschillen tussen verschillende versies van een tool zijn eenvoudig inzichtelijk te maken. Wanneer meerdere users aan de zelfde code werken helpt de merge tool eventuele conflicten op te lossen.
Version control: elke routine/datafile kan automatisch een comment block meekrijgen met daarin info over: datum en auteur laatste wijziging, revisie nummer etc. Sla bij een project het revisienummer van de gebruikte code op en je weet welke versie is gebruikt.
Statistieken: Per project of tool kun je een aparte ‘repository’ aanmaken. Herbruikbare tools combineren in één centrale repository heeft grote voordelen (delen, samenwerken, leren). OpenEarth tools, oa gebruikt in Building with Nature, is open source en freeware.
OpenEarthRawData OpenEarth OPeNDAP OpenEarthTools Extract Transform Load Provide Raw data Scripts Database Charts & Maps Store raw data in subversion to keep track of history Add meta information Script to convert raw data into netcdf Stored files (netcdf) accessible through the web Tools and websites OpenEarthRawData OpenEarth OPeNDAP OpenEarthTools Data workflow: OpenEarth heeft de volgende afspraken voor het beschikbaar maken van data: 1. ruwe data in SubVersion, 2. scriptgewijze verrijking met meta data naar NetCDF, 3. automatisch uploaden *.nc files naar OpenDap, en 4. flexibele toegang
Community of practice: De OpenEarth opzet heeft een brede kring gebruikers (Building with Nature, EU FP7 MICORE, Delft Cluster etc.). Vanuit Building with Nature worden trainingen verzorgd (SubVersion gebruik, programmeerstandaarden, etc.).