v0.4.0 #3
MuellerSeb
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
FINAM v0.4
FINAM is an open-source component-based model coupling framework for environmental models.
It aims at enabling bi-directional online couplings of models for different compartments like geo-, hydro-, pedo- and biosphere.
The framework is built in Python, with well-defined interfaces for data exchange.
This approach allows for coupling of models irrespective of their internal structure, architecture or programming language.
Resources
Changelog
New scheduling algorithm
Once for the common starting time, and once for the actual component time
Data and metadata rework
compatible_unitsto check for convertibility (!105)Infoobject (!111)ConnectHelperby specifying transfer rules at initialization (!154)Infonow requires time in constructor (can beNone) (!111)IInput,IOutputandIAdapterhave new internally used propertiesneeds_pushandneeds_pull(!112)to_xarraynow checks the data shape if the data is not flat (!130)staticfor data that is only used during initialization, or that is constant (!166)staticfor constant data (!171)xarraydata has no time coordinate anymore, only a dimension without values (for performance and usability) (!223)xarraywrapping completely. Use numpy arrays in pintQuantity(!235)memory_limitand write data to disk if the limit is exceeded (!238)Components
modules.WeightedSumfor aggregation of multiple inputs (!105)modules.SimplexNoisefor generating spatio-temporal noise (!131)modules.TimeTriggerto forward data from pull-based to push-based components (!131)modules.ScheduleLoggerto visualize scheduling/module updates through ASCII charts (!160)modules.DebugPushConsumeras a push-based variant of the debug consumer (!165)modules.UserControlthat lets users control FINAM runs from the terminal (!184)modules.DebugConsumerandmodules.DebugPushConsumercan use optional callbacks for better debugging (!176)with_name()(!243)Adapters
adapters.Histogramto extract a histogram from grid values (!182)adapters.DelayFixed,adapters.DelayToPullandadapters.DelayToPushto resolve circular coupling through the use of delayed data (!187)adapters.StepTimefor step-wise interpolation (!194)adapters.IntegrateTimerenamed toadapters.AvgOverTimeadapters.SumOverTimefor sum/Area under Curve integrationfinalize()for cleanup (!226).with_name()(!243)Other
core, subpackages now underfinam(!106)IOutput.source_changed()tosource_updated(!107)LogErrortoErrorLogger(!107)AAdapteris nowAdapterAComponentis nowComponentATimeComponentis nowTimeComponentcreate_connector()(!111)required_out_infosrequired_in_datatopull_dataerrorsnow, and re-exported at top level (!116)_validate()and_finalize()in components is now mandatory (!156)comp["A"]instead ofcomp.inputs["A"](!147)staticfor constant data without time information (!166, !171)tools.inspect()to inspect components, adapters and I/O slots (!197)(see the benchmarks README)
(!222, !223, !224, !228, !229, !237).
TRACE(most verbose) andPROFILE(betweenDEBUGandINFO) (!240)This discussion was created from the release v0.4.0.
Beta Was this translation helpful? Give feedback.
All reactions