Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
223a433
moved bin-directory to corect place
nilsvanvelzen Jul 16, 2019
d837492
Add windows exe-files to black box course example not ideal....
nilsvanvelzen Jul 16, 2019
cc5e76c
remved obsolete scripts to prepare student/teacher versions
nilsvanvelzen Jul 16, 2019
9ae5194
Test with blit=False for plotting movies in python. Less efficient, b…
robot144 Jul 19, 2019
38629db
set blit=False in python scripts of exercise_black_box_enkf_polution
nilsvanvelzen Jul 19, 2019
baa12a7
removed unused file in exercise_black_box_enkf_polution
nilsvanvelzen Jul 19, 2019
d24a757
Replace xi_f_<number> copies with pattern xi_f_* in doublePendulum co…
robot144 Jul 19, 2019
83493b7
Update course documentation: minor edits and include pdf.
robot144 Jul 19, 2019
26c20fd
plot_obs_seq.py script in course/exercise_black_box_enkf_polution was…
robot144 Jul 19, 2019
7911fb8
Add pdf of OpenDA documentation.
robot144 Jul 19, 2019
076a58c
Merge branch 'summerschool2019' of github.com:OpenDA-Association/Open…
nilsvanvelzen Jul 19, 2019
53a01bd
already add the ensemble members to the simulation-oda files such tha…
nilsvanvelzen Jul 23, 2019
4ee629a
Remove dependency on unused ArrayUtils.
robot144 Jul 23, 2019
5cbd869
Remove duplicate function definition.
robot144 Jul 23, 2019
35ad888
First setup to fix black_box_calibration_polution after rewrite of model
nilsvanvelzen Jul 23, 2019
3a75cfa
Initial fix of exercise_black_box_calibration_polution
nilsvanvelzen Jul 23, 2019
68596d1
removed some output files in truthmodel
nilsvanvelzen Jul 23, 2019
b55caf2
removed some output files in truthmodel
nilsvanvelzen Jul 23, 2019
2a95af9
renamed exercise_black_box_calibration_polution_NOT_WORKING to exerci…
nilsvanvelzen Jul 23, 2019
e22d93c
Merge branch 'summerschool2019' of github.com:OpenDA-Association/Open…
nilsvanvelzen Jul 23, 2019
3286378
Added code to write movies to file in exercise_black_box_enkf_polution
nilsvanvelzen Jul 24, 2019
f92cfa0
Merge branch 'master' into summerschool2019
nilsvanvelzen Dec 31, 2019
7f28774
removed trailing whitespace
nilsvanvelzen Jan 31, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added core/doc/OpenDA_documentation.pdf
Binary file not shown.
78 changes: 0 additions & 78 deletions course/create_for_student.sh

This file was deleted.

33 changes: 0 additions & 33 deletions course/create_for_teacher.sh

This file was deleted.

6 changes: 3 additions & 3 deletions course/doc/latex/exercise_5.tex
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ \subsection{Sequential ensemble simulation}
\end{itemize}

\subsection{parallel computing}
Running the ensembles takes a lot of time, especially starting the model takes quite some time compared to the actual computation time. Most computers have multiple cores which we can use to propage multiple ensemble members foreward in time simultaniously.
Running the ensembles takes a lot of time, especially starting the model takes quite some time compared to the actual computation time. Most computers have multiple cores and the reactive pollution model only uses one core, so we can use our cores to propage multiple ensemble members foreward in time simultaniously.
\begin{itemize}
\item compare the configurations {\tt SequentialEnsembleSimulation.oda} and\\
{\tt enkf.oda} which uses parallel propagation of ensemble members. Set the number of simultanious models that corresponds to the number of cores on your computer (maxThreads).
Expand All @@ -46,8 +46,8 @@ \subsection{ensemble kalman filter}
These time series (with some noise added) have been copied to the {\tt stochObserver} directory to
serve as observations for the filtering run.

The filter run takes the original model as input, which actually is a perturbed
version of the 'truth' model: the concentrations for substance 1 as disposed by
The filter run takes the original unperturbed model as input, while the 'truth'
uses a perturbed version of the original model: the concentrations for substance 1 as disposed by
factories have been flattened out to a constant value. The filter process
should modify these values in such a way that the results resemble the truth as
much as possible.
Expand Down
Binary file removed course/doc/latex/openda_course_summerschool2017.pdf
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2006 rel. 3 sp1 (http://www.altova.com)-->
<openDaApplication xmlns="http://www.openda.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openda.org http://schemas.openda.org/openDaApplication.xsd">
<stochObserver className="org.openda.observers.NoosTimeSeriesStochObserver">
<stochObserver className="org.openda.observers.TimeSeriesFormatterStochObserver">
<workingDirectory>./stochObserver</workingDirectory>
<configFile>noosObservations.xml</configFile>
<configFile>timeSeriesFormatter.xml</configFile>
</stochObserver>
<restartOutFilePrefix>restart_</restartOutFilePrefix>
<stochModelFactory className="org.openda.blackbox.wrapper.BBStochModelFactory">
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<blackBoxModelConfig xmlns="http://www.openda.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openda.org http://schemas.openda.org/blackBoxModelConfig.xsd">

<!-- Specify wrapper configuration for which this model is defined -->
<wrapperConfig>
<file>polluteWrapper.xml</file>
</wrapperConfig>

<!-- Specify wrapper configuration for which this model is defined -->
<aliasValues>
<alias key="templateDir" value="template" />
<alias key="instanceDir" value="../work/work" />
<alias key="binDir" value="bin" />
<alias key="inputFile" value="reactive_pollution_model.input" />
<alias key="configFile" value="config.yaml" />
<alias key="inputFileC1" value="input/concentration1.txt" />
<alias key="inputFileC2" value="input/concentration2.txt" />
<alias key="outputFile" value="reactive_pollution_model.output" />
<alias key="restartFileC1" value="restart/concentration1.txt" />
<alias key="restartFileC2" value="restart/concentration2.txt"/>
</aliasValues>

<!-- <timeInfoExchangeItems start="" end="" /> -->
<!-- <timeInfo start="1999-12-01T01:00:00" end="1999-12-01T02:00:00" timeStepInSeconds="120"/> -->
<timeInfoExchangeItems start="start_time" timeStep="time_step" end="end_time"/>

<exchangeItems>
<vector id="source.factory1.discharge" ioObjectId="forcings" elementId="source.c1_factory1.discharge" />
<vector id="source.factory2.discharge" ioObjectId="forcings" elementId="source.c1_factory2.discharge" />
<vector id="concentration1.grid" ioObjectId="state_concentration1" elementId="concentration1" />
<vector id="concentration2.grid" ioObjectId="state_concentration2" elementId="concentration2" />
<vector id="reaction_time" ioObjectId="configuration" elementId="reaction_time" />
<vector id="start_time" ioObjectId="configuration" elementId="time_control@1" />
<vector id="time_step" ioObjectId="configuration" elementId="time_control@2" />
<vector id="end_time" ioObjectId="configuration" elementId="time_control@3" />
<vector id="locA.concentration1" ioObjectId="output" elementId="model.locA.concentration1" />
<vector id="locB.concentration1" ioObjectId="output" elementId="model.locB.concentration1" />
<vector id="locC.concentration1" ioObjectId="output" elementId="model.locC.concentration1" />
<vector id="locA.concentration2" ioObjectId="output" elementId="model.locA.concentration2" />
<vector id="locB.concentration2" ioObjectId="output" elementId="model.locB.concentration2" />
<vector id="locC.concentration2" ioObjectId="output" elementId="model.locC.concentration2" />
</exchangeItems>

<doCleanUp>false</doCleanUp>

</blackBoxModelConfig>
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
<alias key="instanceDir" />
<alias key="outputFile" />
<alias key="inputFile" />
<alias key="inputFileReactionTime" />
<alias key="inputFileSimulationTime" />
<alias key="configFile" />
<alias key="inputFileC1" />
<alias key="inputFileC2" />
<alias key="restartFileC1" />
<alias key="restartFileC2" />
</aliasDefinitions>

<run>
Expand All @@ -26,27 +27,25 @@

<computeActions>
<action linuxExe="%binDir%/reactive_pollution_model.py" windowsExe="%binDir%/reactive_pollution_model.exe" workingDirectory="%instanceDir%">
<arg>--model_parameters</arg>
<arg>%inputFile%</arg>
<arg>--reaction_time</arg>
<arg>%inputFileReactionTime%</arg>
<arg>--simulation_time</arg>
<arg>%inputFileSimulationTime%</arg>
<arg>--c1</arg>
<arg>%inputFileC1%</arg>
<arg>--c2</arg>
<arg>%inputFileC2%</arg>
<arg>--logging_level</arg>
<arg>--config</arg>
<arg>%configFile%</arg>
<arg>--log_level</arg>
<arg>INFO</arg>

<!--
<checkOutput file="%outputFile%" expect="Finished Succesfully"/>
-->
<checkOutput file="%outputFile%" /> <!-- should exist -->
<checkOutput file="%restartFileC1%"/>
<checkOutput file="%restartFileC2%"/>
</action>
<!-- <action linuxExe="%binDir%/save.sh" windowsExe="save.bat" workingDirectory="%instanceDir%">
<arg>after_copy</arg>
</action> -->
<action className="org.openda.utils.io.FileCopier" workingDirectory="%instanceDir%">
<arg>%restartFileC1%</arg>
<arg>%inputFileC1%</arg>
</action>
<action className="org.openda.utils.io.FileCopier" workingDirectory="%instanceDir%">
<arg>%restartFileC2%</arg>
<arg>%inputFileC2%</arg>
</action>

</computeActions>

<additionalComputeActions></additionalComputeActions>
Expand All @@ -57,39 +56,38 @@


<inputOutput>
<!-- IF YOU COMPILE THE MODEL YOURSELF <ioObject className="org.openda.mywrapper.myWrapper"> -->
<ioObject className="org.openda.model_reactive_advection.myWrapper">
<!-- <ioObject className="org.openda.model_reactive_advection.myWrapper">
<file>%inputFile%</file>
<id>input</id>
<arg></arg>
</ioObject>

<ioObject className="org.openda.exchange.dataobjects.ASCIIVectorDataObject">
<file>%inputFileReactionTime%</file>
<id>input_reaction_time</id>
</ioObject>
</ioObject> -->

<ioObject className="org.openda.exchange.dataobjects.ASCIIVectorDataObject">
<file>%inputFileSimulationTime%</file>
<id>input_simulation_time</id>
<arg>as_separate_exchange_items</arg>
<ioObject className="org.openda.exchange.dataobjects.AsciiKeywordDataObject">
<file>%configFile%</file>
<id>configuration</id>
</ioObject>

<ioObject className="org.openda.exchange.dataobjects.ASCIIVectorDataObject">
<ioObject className="org.openda.exchange.dataobjects.AsciiVectorDataObject">
<file>%inputFileC1%</file>
<id>input_c1</id>
<id>state_concentration1</id>
</ioObject>

<ioObject className="org.openda.exchange.dataobjects.ASCIIVectorDataObject">
<ioObject className="org.openda.exchange.dataobjects.AsciiVectorDataObject">
<file>%inputFileC2%</file>
<id>input_c2</id>
<id>state_concentration2</id>
</ioObject>

<!-- IF YOU COMPILE THE MODEL YOURSELF <ioObject className="org.openda.mywrapper.myWrapper"> -->
<ioObject className="org.openda.model_reactive_advection.myWrapper">
<file>%outputFile%</file>
<ioObject className="org.openda.exchange.dataobjects.TimeSeriesFormatterDataObject">
<file>timeSeriesFormatter.xml</file>
<id>output</id>
</ioObject>

<ioObject className="org.openda.exchange.dataobjects.TimeSeriesFormatterDataObject">
<file>forcingsSeriesFormatter.xml</file>
<id>forcings</id>
</ioObject>


</inputOutput>

</blackBoxWrapperConfig>
Loading