[Nexus] proposed additions to NXdata for non-linear scaling - to aid cbf interoperability

Benjamin Watts benjamin.watts at psi.ch
Thu Feb 20 16:30:28 GMT 2014


Hi Jonathan,
    I think this is too big an issue (as in possibly creating a lot of 
implementation and maintenance work) to jump into like that. I don't 
think the NIAC is ready to committing itself to integral use of this 
NXformula. We need to better understand how the details would work and 
how much machinery would be required in total. Pete Jemian specifically 
said that he was opposed to forcing all NeXus-reading libraries to 
implement something so general as this sounds - and I have to agree. If 
you want to volunteer to further develop and demonstrate the idea so 
that we can know that NXformula won't extend the scope of NeXus beyond 
what we can implement/support, then that's great, but be mindful of 
creating something that may only be supported by half the community (and 
thus breaking the NeXus standard).

Cheers,
Ben

On 20/02/14 17:05, jonathan.sloan at diamond.ac.uk wrote:
> Hi,
>
> I've looked at muParser in a bit more detail now, it appears that while it isn't a completely general solution with full support for tensor operations (like MATLAB, for example) it does have a 'bulk' mode which would allow expressions to be defined per-frame and data to be extracted with per-frame scaling factors and even per-frame expressions. Limiting expressions to applying a uniform expression to an entire frame will still allow it to cover everything that the cbf-nexus conversions might use.
>
> This would mean that (in the case of rank-3 data) 'NXforumla' could contain a rank-1 tensor of expressions, which would be passed a set of rank-1 parameters. The actual values of the data could be extracted by calculating 'value[j,k] = f(data[i,j,k],var[i]...)' for each frame 'i' of dimensions 'j,k'. Higher dimensional data could be converted by extending this to 'value[k,l] = f(data[i,j,k,l],var[i,j]...)' for each frame 'i,j' of dimensions 'k,l', and so on for higher dimensions. I think it should largely be a matter of plumbing to implement this, rather than adding any functionality which doesn't currently exist.
>
> Since everything required should already be implemented in the muParser library, could we start using this when converting cbf data and refine the implementation later on once an 'NXforumla' class definition has been standardised?
>
> Thanks.
>



More information about the NeXus mailing list