<span id="index-0"></span><div id="data-acquisition-solution"> <span id="data-acquisition-soln"></span> <p>Here is the one possible answer:</p> <div ><div ><pre><span >#!/usr/bin/env python2.5</span> <span >import</span> <span >os</span> <span >import</span> <span >ecflow</span> <span >defs</span> <span >=</span> <span >ecflow</span><span >.</span><span >Defs</span><span >()</span> <span >suite</span> <span >=</span> <span >defs</span><span >.</span><span >add_suite</span><span >(</span><span >"data_aquisition"</span><span >)</span> <span >suite</span><span >.</span><span >add_repeat</span><span >(</span> <span >ecflow</span><span >.</span><span >RepeatDay</span><span >(</span><span >1</span><span >)</span> <span >)</span> <span >suite</span><span >.</span><span >add_variable</span><span >(</span><span >"ECF_HOME"</span><span >,</span><span >os</span><span >.</span><span >getenv</span><span >(</span><span >"HOME"</span><span >)</span> <span >+</span> <span >"/course"</span><span >)</span> <span >suite</span><span >.</span><span >add_variable</span><span >(</span><span >"ECF_INCLUDE"</span><span >,</span><span >os</span><span >.</span><span >getenv</span><span >(</span><span >"HOME"</span><span >)</span> <span >+</span> <span >"/course"</span><span >)</span> <span >suite</span><span >.</span><span >add_variable</span><span >(</span><span >"ECF_FILES"</span><span >,</span><span >os</span><span >.</span><span >getenv</span><span >(</span><span >"HOME"</span><span >)</span> <span >+</span> <span >"/course/data"</span><span >)</span> <span >suite</span><span >.</span><span >add_variable</span><span >(</span><span >"SLEEP"</span><span >,</span><span >"2"</span><span >)</span> <span >for</span> <span >city</span> <span >in</span> <span >(</span> <span >"exeter"</span><span >,</span> <span >"toulouse"</span><span >,</span> <span >"offenbach"</span><span >,</span> <span >"washington"</span><span >,</span> <span >"tokyo"</span><span >,</span> <span >"melbourne"</span><span >,</span> <span >"montreal"</span> <span >)</span> <span >:</span> <span >fcity</span> <span >=</span> <span >suite</span><span >.</span><span >add_family</span><span >(</span><span >city</span><span >)</span> <span >fcity</span><span >.</span><span >add_task</span><span >(</span><span >"archive"</span><span >)</span> <span >for</span> <span >type</span> <span >in</span> <span >(</span> <span >"observations"</span><span >,</span> <span >"fields"</span><span >,</span> <span >"images"</span> <span >):</span> <span >type_fam</span> <span >=</span> <span >fcity</span><span >.</span><span >add_family</span><span >(</span><span >type</span><span >)</span> <span >if</span> <span >city</span> <span >in</span> <span >(</span><span >"exeter"</span><span >,</span> <span >"toulouse"</span><span >,</span> <span >"offenbach"</span><span >):</span> <span >type_fam</span><span >.</span><span >add_time</span><span >(</span><span >"00:00 23:00 01:00"</span><span >)</span> <span >if</span> <span >city</span> <span >in</span> <span >(</span><span >"washington"</span><span >)</span> <span >:</span> <span >type_fam</span><span >.</span><span >add_time</span><span >(</span><span >"00:00 23:00 03:00"</span><span >)</span> <span >if</span> <span >city</span> <span >in</span> <span >(</span><span >"tokyo"</span><span >)</span> <span >:</span> <span >type_fam</span><span >.</span><span >add_time</span><span >(</span><span >"12:00"</span><span >)</span> <span >if</span> <span >city</span> <span >in</span> <span >(</span><span >"melbourne"</span><span >)</span> <span >:</span> <span >type_fam</span><span >.</span><span >add_day</span><span >(</span> <span >"monday"</span> <span >)</span> <span >if</span> <span >city</span> <span >in</span> <span >(</span><span >"montreal"</span><span >)</span> <span >:</span> <span >type_fam</span><span >.</span><span >add_date</span><span >(</span><span >1</span><span >,</span><span >0</span><span >,</span><span >0</span><span >)</span> <span >type_fam</span><span >.</span><span >add_task</span><span >(</span><span >"get"</span><span >)</span> <span >type_fam</span><span >.</span><span >add_task</span><span >(</span><span >"process"</span><span >)</span><span >.</span><span >add_trigger</span><span >(</span><span >"get eq complete"</span><span >)</span> <span >type_fam</span><span >.</span><span >add_task</span><span >(</span><span >"store"</span><span >)</span><span >.</span><span >add_trigger</span><span >(</span><span >"get eq complete"</span><span >)</span> </pre></div> </div> <p>It is also possible to automatically generate the <a href="/wiki/display/ECFLOW/Glossary#term-ecf-script"><em >ecf script</em></a> using the python api:</p> <div ><div ><pre><span >defs</span><span >.</span><span >generate_scripts</span><span >()</span> </pre></div> </div> <p>This enables testing of the <a href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em >suite definition</em></a>, with out worrying about the <a href="/wiki/display/ECFLOW/Glossary#term-ecf-script"><em >ecf script</em></a>‘s.</p> <div > <p >Note</p> <p >When there are no <a href="/wiki/display/ECFLOW/Glossary#term-event"><em >event</em></a>‘s, <a href="/wiki/display/ECFLOW/Glossary#term-meter"><em >meter</em></a>‘s or <a href="/wiki/display/ECFLOW/Glossary#term-label"><em >label</em></a>‘s in the <a href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em >suite definition</em></a>, the content of the generated scripts are identical. Hence this functionality should <strong>only</strong> be used as <strong>debug</strong> aid for the definition</p> </div> </div> |