<div dir="ltr">Hi Roland,<div>indeed changing the names of the files I&#39;m creating with my Python script to foo.file_&lt;n&gt;.h5 solved the issue and I can correctly visualize the data with Visit.</div><div><br></div><div>Thanks a lot again,</div><div>Lorenzo</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno lun 27 giu 2022 alle ore 17:15 Roland Haas &lt;<a href="mailto:rhaas@illinois.edu">rhaas@illinois.edu</a>&gt; ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Lorenzo,<br>
<br>
Python can be tricky. niprocs must be a 32bit integer and Python&#39;s int<br>
type by default is 64bit and it tends to re-create the attribute rather<br>
than change it. So depending on how you copied the attributes group<br>
this may affect you.<br>
<br>
My own nioprocs.py script thus looks like this (note the int32 cast):<br>
<br>
--8&lt;--<br>
#!/usr/bin/python<br>
<br>
import h5py<br>
import sys<br>
import numpy<br>
<br>
cfh = h5py.File(sys.argv[1], &quot;r+&quot;)<br>
cfh.require_group(&quot;Parameters and Global Attributes&quot;)<br>
cfh[&quot;Parameters and Global Attributes&quot;].attrs[&quot;nioprocs&quot;] = numpy.int32(1)<br>
--8&lt;--<br>
<br>
Or it could be somthing with the file names not quite matching the form<br>
the VisIt reader expects (must be either foo.file_X.h5 or foo.h5 if<br>
there is a single ioproc).<br>
<br>
Anyway, glad that this worked for you.<br>
<br>
Yours,<br>
Roland<br>
<br>
&gt; Hi Roland,<br>
&gt; thank you very much for your answer, I made it using hdf5_slicer. I&#39;m<br>
&gt; puzzled though, because in my Python script I copied each dataset into a<br>
&gt; separate file, so I was expecting nioprocs = 160 to be correct (there are<br>
&gt; 160 files). Anyway, hdf5_slicer worked perfectly.<br>
&gt; <br>
&gt; Thank you again,<br>
&gt; Lorenzo<br>
&gt; <br>
&gt; Il giorno lun 27 giu 2022 alle ore 15:20 Roland Haas &lt;<a href="mailto:rhaas@illinois.edu" target="_blank">rhaas@illinois.edu</a>&gt;<br>
&gt; ha scritto:<br>
&gt; <br>
&gt; &gt; Hello Lorenzo,<br>
&gt; &gt;<br>
&gt; &gt; There&#39;s a metadata nioprocs or so that is rhe number of files. If you<br>
&gt; &gt; copied all datasets into a single file you must set it to 1. You can use a<br>
&gt; &gt; tiny Python script to do so, or (I think) hdf5_slicer --out3d_box, or (I<br>
&gt; &gt; think) hdf5_merge with its --ioprocs option.<br>
&gt; &gt;<br>
&gt; &gt; In fact you can use hdf5_slicer to do the extraction for you. There&#39;s some<br>
&gt; &gt; details about this in the response to an earlier question by Maria about<br>
&gt; &gt; merging files I think.<br>
&gt; &gt;<br>
&gt; &gt; Yours,<br>
&gt; &gt; Roland<br>
&gt; &gt;<br>
&gt; &gt; ----- Original Message -----<br>
&gt; &gt; From: Lorenzo Ennoggi &lt;<a href="mailto:lorenzo.ennoggi@gmail.com" target="_blank">lorenzo.ennoggi@gmail.com</a>&gt;<br>
&gt; &gt; Sent: 2022-06-27 - 07:01<br>
&gt; &gt; To: Einstein Toolkit Users &lt;<a href="mailto:users@einsteintoolkit.org" target="_blank">users@einsteintoolkit.org</a>&gt;<br>
&gt; &gt; Subject: [Users] Extracting the last iteration from 3D CarpetIOHDF5 output<br>
&gt; &gt; files<br>
&gt; &gt;  <br>
&gt; &gt; &gt; Hello,<br>
&gt; &gt; &gt; I have a set of 3D output files from CarpetIOHDF5 (rho.xyz_file&lt;n&gt;.h5),<br>
&gt; &gt; &gt; each containing many iterations, and I want to create a set of new<br>
&gt; &gt; &gt; CarpetIOHDF5 files containing the data related to the last iteration. I<br>
&gt; &gt; &gt; have tried something, but I couldn&#39;t get anything to work, so I am asking<br>
&gt; &gt; &gt; for help here.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; For each file rho.xyz_file&lt;n&gt;.h5, I used the hdf5_extract utility to  <br>
&gt; &gt; create  <br>
&gt; &gt; &gt; a new file containing the dataset related to the last iteration<br>
&gt; &gt; &gt; (&quot;HYDROBASE::rho<br>
&gt; &gt; &gt; it=1067600 tl=0 rl=0 c=&lt;n&gt;&quot;) and the group &quot;Parameters and Global<br>
&gt; &gt; &gt; Attributes&quot;. However, when I try to open the set of new files with VisIt  <br>
&gt; &gt; I  <br>
&gt; &gt; &gt; get the following error:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; VisIt could not read from the file  <br>
&gt; &gt; &gt;&gt;  <br>
&gt; &gt; &quot;/home/lorenzo/CBD_prod_WZ9_400_140_280_output-0014/Output/rho.xyz_it1067600_tl0_rl0_c*  <br>
&gt; &gt; &gt;&gt; database&quot;.  <br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The generated error message was:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; There was an error opening  <br>
&gt; &gt; &gt;&gt;  <br>
&gt; &gt; /home/lorenzo/CBD_prod_WZ9_400_140_280_output-0014/Output/rho.xyz_it1067600_tl0_rl0_c*  <br>
&gt; &gt; &gt;&gt; database. It may be an invalid file.  VisIt tried using the following  <br>
&gt; &gt; file  <br>
&gt; &gt; &gt;&gt; format readers to open the file: CarpetHDF5  <br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The following error(s) may be helpful in identifying the problem:  <br>
&gt; &gt; &gt;&gt; *Tried to access an invalid index 1 (Maximum = 0).*  <br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I thought that maybe some metadata in the new files are telling VisIt  <br>
&gt; &gt; that  <br>
&gt; &gt; &gt; there are multiple iterations available, which is not true; I&#39;m not<br>
&gt; &gt; &gt; completely sure this is really the issue, though.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; In the new files, the attributes &quot;GH$iteration&quot; and &quot;carpet_global_time&quot;<br>
&gt; &gt; &gt; from the group &quot;Parameters and Global Attributes&quot; are still respectively<br>
&gt; &gt; &gt; set to the first iteration (992800) and the first time (148920) available<br>
&gt; &gt; &gt; in the original files, while I am extracting the last iteration (1067600,<br>
&gt; &gt; &gt; time 160140). Also, in the new files, the dataset &quot;Grid Structure v5&quot; (a<br>
&gt; &gt; &gt; string) still contains<br>
&gt; &gt; &gt; &quot;grid_times:[[[148920,148919.85000000001,148919.69999999998]]]&quot;, which  <br>
&gt; &gt; also  <br>
&gt; &gt; &gt; looks wrong. Therefore, I used h5py to generate new files in which I  <br>
&gt; &gt; fixed  <br>
&gt; &gt; &gt; &quot;GH$iteration&quot;, &quot;carpet_global_time&quot; and &quot;Grid Structure v5&quot;, but I still<br>
&gt; &gt; &gt; get the same error from VisIt.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I have also thought about re-running the simulation that produced the<br>
&gt; &gt; &gt; original files from the last checkpoint and just dump the last iteration,<br>
&gt; &gt; &gt; but that simulation was run some time ago and the code I am using has<br>
&gt; &gt; &gt; evolved quite a bit in the meantime, to the point that some parameters  <br>
&gt; &gt; are  <br>
&gt; &gt; &gt; not even defined anymore.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Is there any other attribute/dataset I should edit in order to fix the  <br>
&gt; &gt; new  <br>
&gt; &gt; &gt; files? Are there smarter ways to extract an iteration from a set of 3D<br>
&gt; &gt; &gt; CarpetHDF5 output files? Please let me know if you need additional<br>
&gt; &gt; &gt; information from my end.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thank you very much,<br>
&gt; &gt; &gt; Lorenzo Ennoggi<br>
&gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; Users mailing list<br>
&gt; &gt; &gt; <a href="mailto:Users@einsteintoolkit.org" target="_blank">Users@einsteintoolkit.org</a><br>
&gt; &gt; &gt;  <br>
&gt; &gt; <a href="https://urldefense.com/v3/__http://lists.einsteintoolkit.org/mailman/listinfo/users__;!!DZ3fjg!8ek7C4tvxIysQIy8c3UhecmG8i6HaqZW_HTD-WMedhlEHkX7_FBP7ORbQoGjMqNr2SXd2ekz8pJr7kHksP2S8ShBJg$" rel="noreferrer" target="_blank">https://urldefense.com/v3/__http://lists.einsteintoolkit.org/mailman/listinfo/users__;!!DZ3fjg!8ek7C4tvxIysQIy8c3UhecmG8i6HaqZW_HTD-WMedhlEHkX7_FBP7ORbQoGjMqNr2SXd2ekz8pJr7kHksP2S8ShBJg$</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;  <br>
<br>
-- <br>
My email is as private as my paper mail. I therefore support encrypting<br>
and signing email messages. Get my PGP key from <a href="http://pgp.mit.edu" rel="noreferrer" target="_blank">http://pgp.mit.edu</a> .<br>
</blockquote></div>