In order to demonstrate utility, the data model codebase needs to be shown as easy to program, preferably in a scripting language like python.
Global Idea:
- show that this can be the basis for a digital watershed.
Ideas:
- show export to tabbed text (skip csv)
- show import of tabbed text (skip csv)
- show copying of series, and editing of data
- show processing to create new series (filtering or daily value statistic)
- something to demonstrate python processing
Import/Export
- SeriesRich.ExportTabText(IOStream, ListOfColumnsToExport[])
- create a list of properties, and their object path, use that to populate ListOfColumnsToExport[]
- SeriesCore.ImportData(IoStream, ColumnNumberMapping[])
- this can be short, because we only have to deal with data value attributes, since we will do series imports
Psuedocode below
New Source
New Site
New Variable
New Series (source, variable, site, QC Raw, TimeScale(hour))
Series.ImportData()
Scale =Series.EstimateTimeScale()
LogOutput(scale)
series2 =Series.Copy()
series2.DataValues.Range(time1, time2).AddQualifier(some qualifier)
series2.DataValues.Range(time1, time3).AddQualifier(some qualifier) // demo two qualifiers
series3 =New Series (source, variable, site, QC Raw, TimeScale(day))
datavalues2 = (from dv in series2.datavalues groupby datetime.day
select new datavalue( datetime.day, average(dv.value) )
series3.datavalues = datavalues2
series3.export()