I finally got the function to clone a NetCDF file:<br><br>from copy import deepcopy<br>from Scientific.IO.NetCDF import NetCDFFile<br><br>def cloneNetCDF(outfile,templatefile):<br>&nbsp;&nbsp;&nbsp; &quot;return NetCDF object based on a templatefile&quot;&quot;&quot;<br>
&nbsp;&nbsp;&nbsp; pin=NetCDFFile(templatefile, &#39;r&#39;)<br>&nbsp;&nbsp;&nbsp; pout=NetCDFFile(outfile, &#39;w&#39;)<br>&nbsp;&nbsp;&nbsp; #clone dimensions<br>&nbsp;&nbsp;&nbsp; for name,size in pin.dimensions.items(): pout.createDimension(name,size)<br>&nbsp;&nbsp;&nbsp; #clone variables<br>
&nbsp;&nbsp;&nbsp; for name,var in pin.variables.items():<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype=var.typecode()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dimensions=var.dimensions<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pout.createVariable(name, datatype, dimensions)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pout.variables[name][:]=deepcopy(pin.variables[name][:])<br>
&nbsp;&nbsp;&nbsp; #clone global attributes<br>&nbsp;&nbsp;&nbsp; for attributeName in dir(pin):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if attributeName not in dir(pout):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setattr(pout,attributeName,getattr(pin,attributeName) )<br>&nbsp;&nbsp;&nbsp; return pout<br>&nbsp;&nbsp;&nbsp; <br><br><br>
<br><div class="gmail_quote">On Thu, Nov 6, 2008 at 3:23 AM, Konrad Hinsen <span dir="ltr">&lt;<a href="mailto:hinsen@cnrs-orleans.fr" target="_blank">hinsen@cnrs-orleans.fr</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>On 06.11.2008, at 00:44, Jose Borreguero wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dear MMTK users,<br>
<br>
I want to create a fresh new NetCDF file with the same structure as some existing NetCDF file. I have trouble cloning the variables:<br>
<br>
def cloneNetCDF(outfile,template):<br>
 &nbsp; &nbsp;pin=NetCDFFile(template, &#39;r&#39;) &nbsp; #this is the existing file<br>
 &nbsp; &nbsp;pout=NetCDFFile(outfile, &#39;w&#39;) &nbsp; &nbsp;#this is the new file<br>
 &nbsp; &nbsp;for name,size in pin.dimensions: pout.createDimension(name,size)<br>
 &nbsp; &nbsp;for name,var in template.variables: I-have-no-clue()<br>
 &nbsp; return pout<br>
</blockquote>
<br></div>
for name, var in template.variables.items():<br>
 &nbsp; &nbsp; &nbsp; &nbsp;...<br>
<br>
template.variables is an ordinary Python dictionary.<br>
<br>
Konrad.<br>
--<br>
---------------------------------------------------------------------<br><font color="#888888">
Konrad Hinsen<br>
Centre de Biophysique Moléculaire, CNRS Orléans<br>
Synchrotron Soleil - Division Expériences<br>
Saint Aubin - BP 48<br>
91192 Gif sur Yvette Cedex, France<br>
Tel. +33-1 69 35 97 15<br>
E-Mail: <a href="mailto:hinsen@cnrs-orleans.fr" target="_blank">hinsen@cnrs-orleans.fr</a><br>
---------------------------------------------------------------------<br>
<br>
<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Jose M. Borreguero<br>Postdoctoral Associate<br>Oak Ridge National Laboratory<br>P.O. Box 2008, M.S. 6164<br>Oak Ridge, TN 37831<br>phone: 865-241-3071 fax: 865-576-5491<br>

Email: <a href="mailto:borreguerojm@ornl.gov" target="_blank">borreguerojm@ornl.gov</a><br>