<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class="">I’m not in a position to state what the official policy is - I don’t think it was officially discussed as part of the last NIAC agenda, but I was sure I heard the idea of a ‘NAPI Light’ mentioned. My impression at the time was that this had been
 agreed earlier, perhaps in one of the telco meetings, but I may have misunderstood what was said. It wouldn’t be the first time.</div>
<div class=""><br class="">
</div>
<div class="">I don’t want to prescribe what people use to write NeXus files - if you are comfortable using the HDF5 libraries and are careful to follow the NeXus guidelines, then that’s great. However, I do think that the simplification of the NAPI was a great
 help to people like me, i.e., people who do some programming in their spare time. I am a little concerned that the governance of NeXus now only caters to those whose main responsibility is software development rather than to less “professional” scientist/programmers.
 That was the reason I protested so vociferously about the unnecessary complications introduced at the last NIAC in the NXdata axis definitions. If you program all the time, this extra complexity is no big deal, but if you are trying to write a program to do
 a quick and dirty piece of data analysis, as scientists often do, then it becomes a problem. I think NeXus should cater to both.</div>
<div class=""><br class="">
</div>
<div class="">On the other hand, scientists probably prefer to use Python anyway, so perhaps the NAPI doesn’t matter any more. As to whether to use h5py or the nexusformat package (which is written using h5py), that’s just a matter of taste.  Personally, I
 prefer to write something like:</div>
<div class=""><br class="">
</div>
<div class="">>>> NXdata(z, (y,x)).save('data.h5')</div>
<div class=""><br class="">
</div>
<div class="">rather than:</div>
<div class=""><br class="">
</div>
<div class="">>>> f = h5py.File('data.h5','r+')</div>
<div class="">
<div class="">>>> f.create_group('entry')</div>
<div class="">>>> f['entry'].attrs['NX_class'] = 'NXentry'</div>
<div class="">>>> f['entry'].create_group('data')</div>
<div class="">>>> f['entry/data'].attrs['NX_class'] = 'NXdata'</div>
<div class="">>>> f['entry/data'].attrs['signal'] = 'z'</div>
<div class="">>>> f['entry/data'].attrs['axes'] = ['y', 'x']</div>
<div class="">>>> f['entry/data'].attrs['y_indices'] = 0</div>
<div class="">>>> f['entry/data'].attrs['x_indices'] = 1</div>
<div class="">>>> f['entry/data'].create_dataset('x', data=x)</div>
<div class="">>>> f['entry/data'].create_dataset('y', data=y)</div>
<div class="">>>> f['entry/data'].create_dataset('z', data=z)</div>
<div class="">>>> f.close()</div>
</div>
<div class=""><br class="">
</div>
<div class="">but both produce the same result.</div>
<div class=""><br class="">
</div>
<div class="">Ray </div>
<div class=""><br class="">
</div>
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Jun 21, 2015, at 3:37 PM, Andy Gotz <<a href="mailto:andy.gotz@esrf.fr" class="">andy.gotz@esrf.fr</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div text="#000000" bgcolor="#FFFFFF" class="">Ray,<br class="">
<br class="">
does this mean the the goal is still to propose NAPI as the official way to write Nexus files? Developing and maintaining an API is a lot of work. I wonder if a community like Nexus which has very limited resources should take on more work. I remember issues
 in the past with multi-threading and bugs which make the NAPI difficult to use. Without adequate resources these problems will come back.
<br class="">
<br class="">
Our preference is to use the HDF5 libraries directly even for Python (h5py). <br class="">
<br class="">
Andy<br class="">
<br class="">
<div class="moz-cite-prefix">On 21/06/2015 22:23, Osborn, Raymond wrote:<br class="">
</div>
<blockquote cite="mid:871134E1-76C7-4085-B630-386A7B686BAD@anl.gov" type="cite" class="">
I had understood that there were plans to create a light version of the NAPI, which was only dependent on HDF5. I am slightly concerned about encouraging people only to use HDF5 directly, because that makes it entirely dependent on them to ensure compliance
 with the NeXus rules - e.g., by adding a group attribute, NX_class, to each group. 
<div class=""><br class="">
</div>
<div class="">Ironically, NAPI was written to remove much of the complexity in writing files by having a reduced set of functions. HDF5 is better written than HDF4 in this respect, but the additional flexibility still makes it quite daunting to learn. The NeXus
 API is a model of simplicity so a lightweight API would still make sense.</div>
<div class=""><br class="">
</div>
<div class="">Ray</div>
<div class="">P.S. Of course, I would encourage people to use the Python interface (<a moz-do-not-send="true" href="http://nexpy.github.io/nexpy/" class="">http://nexpy.github.io/nexpy/</a>), which is even simpler, and ensures compliant NXdata groups as well.</div>
<div class="">
<div class=""><br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Jun 21, 2015, at 1:04 PM, Tobias Richter <<a moz-do-not-send="true" href="mailto:Tobias.Richter@esss.se" class="">Tobias.Richter@esss.se</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">Hi Andy,<br class="">
<br class="">
The official policy just reflects the (perceived) requirements of the community. Your thoughts are correct NAPI is not recommended for new applications. And yes, the manual hasn’t been updated in all areas to reflect this. Please point us to the relevant sections
 you find unclear. Someone reading the texts with fresh eyes can really make a difference.<br class="">
<br class="">
Since we focus on HDF5 now, the NAPI backend abstraction (supporting XML and HDF4 in addition) isn’t needed for that. NAPI also provides nothing that would ensure files follow the standard and very little that would at least make conforming easier. So the only
 benefit is some slight simplification of the hdf5 interface, which denies some of the power of the underlying container format.<br class="">
<br class="">
That being said, NAPI is not disappearing any time soon, while people rely on it. We should drop support for unused bindings though.<br class="">
<br class="">
In my view in the long run, some reference application or tools would still be needed to be able to demonstrate interoperability.
<br class="">
<br class="">
Regards,<br class="">
<br class="">
Tobias<br class="">
<br class="">
<br class="">
<blockquote type="cite" class="">On 21 Jun 2015, at 17:39, Andy Gotz <<a moz-do-not-send="true" href="mailto:andy.gotz@esrf.fr" class="">andy.gotz@esrf.fr</a>> wrote:<br class="">
<br class="">
Hi Eugen + Nexus community.<br class="">
<br class="">
I have a naive question : what is the status of the NAPI? I thought it is being maintained only for legacy applications and that it is not recommended for new applications. But this is not clear from the manual. In some places the reader gets the impression
 the NAPI is the official API for accessing files conforming to Nexus. In other places the opposite is stated and the hdf5 API is considered as the right way to access files.<br class="">
<br class="">
What is the official policy on the NAPI?<br class="">
<br class="">
Andy<br class="">
_______________________________________________<br class="">
NeXus mailing list<br class="">
<a moz-do-not-send="true" href="mailto:NeXus@nexusformat.org" class="">NeXus@nexusformat.org</a><br class="">
<a class="moz-txt-link-freetext" href="http://lists.nexusformat.org/mailman/listinfo/nexus">http://lists.nexusformat.org/mailman/listinfo/nexus</a><br class="">
</blockquote>
<br class="">
<br class="">
_______________________________________________<br class="">
NeXus mailing list<br class="">
<a moz-do-not-send="true" href="mailto:NeXus@nexusformat.org" class="">NeXus@nexusformat.org</a><br class="">
<a class="moz-txt-link-freetext" href="http://lists.nexusformat.org/mailman/listinfo/nexus">http://lists.nexusformat.org/mailman/listinfo/nexus</a><br class="">
</div>
</blockquote>
</div>
<br class="">
<div apple-content-edited="true" class="">-- <br class="">
Ray Osborn, Senior Scientist<br class="">
Materials Science Division<br class="">
Argonne National Laboratory<br class="">
Argonne, IL 60439, USA<br class="">
Phone: +1 (630) 252-9011<br class="">
Email: <a moz-do-not-send="true" href="mailto:ROsborn@anl.gov" class="">ROsborn@anl.gov</a><br class="">
<br class="">
</div>
<br class="">
</div>
</div>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset> <br class="">
<pre wrap="" class="">_______________________________________________
NeXus mailing list
<a class="moz-txt-link-abbreviated" href="mailto:NeXus@nexusformat.org">NeXus@nexusformat.org</a>
<a class="moz-txt-link-freetext" href="http://lists.nexusformat.org/mailman/listinfo/nexus">http://lists.nexusformat.org/mailman/listinfo/nexus</a>
</pre>
</blockquote>
<br class="">
</div>
_______________________________________________<br class="">
NeXus mailing list<br class="">
<a href="mailto:NeXus@nexusformat.org" class="">NeXus@nexusformat.org</a><br class="">
http://lists.nexusformat.org/mailman/listinfo/nexus<br class="">
</div>
</blockquote>
</div>
<br class="">
<div class="">-- <br class="">
Ray Osborn, Senior Scientist<br class="">
Materials Science Division<br class="">
Argonne National Laboratory<br class="">
Argonne, IL 60439, USA<br class="">
Phone: +1 (630) 252-9011<br class="">
Email: <a href="mailto:ROsborn@anl.gov" class="">ROsborn@anl.gov</a><br class="">
<br class="">
</div>
<br class="">
</body>
</html>