Hi Edward.

I think I will have to leave the implementation in relax.

Time goes away from pursuing the analysis, and goes into rather annoying
stuff.

The idea is simple.
Load one or two spectrum.
Plot the contour, or histogram.
Or make a correlation plot of the two spectra.

Store the data.

Storing the axis plots is a different question.
http://stackoverflow.com/questions/7290370/store-and-reload-matplotlib-pyplot-object

I cannot actually do it at the moment.
So essentially, it just storing a numpy array


2014-12-08 13:59 GMT+01:00 Edward d'Auvergne <edw...@nmr-relax.com>:

> Hi Troels,
>
> I didn't notice that the shape was not preserved.  To store the numpy
> shape, this is also not a problem as XML has attributes.  For example
> 'type' is the attribute already used to determine what we do with the
> data in relax.  We simply add a new 'shape' attribute and read this
> then reshape when loading the data.  If at any point you need help for
> implementing any of the XML stuff, just say and I can do a few things
> in your branch.
>
> Regards,
>
> Edward
>
>
> On 8 December 2014 at 13:40,  <tlin...@nmr-relax.com> wrote:
> > Author: tlinnet
> > Date: Mon Dec  8 13:40:52 2014
> > New Revision: 27012
> >
> > URL: http://svn.gna.org/viewcvs/relax?rev=27012&view=rev
> > Log:
> > Try to decode the numpy array as base64 string.
> >
> > This shows, that the shape of the data is lost after decoding.
> >
> > Task #7873 (https://gna.org/task/index.php?7873): Write wrapper
> function to nmrglue, to read .ft2 files and process them.
> > Homepage: http://www.nmrglue.com/
> > Link to nmrglue discussion:
> https://groups.google.com/forum/#!forum/nmrglue-discuss
> > The code is develop at Github: https://github.com/jjhelmus/nmrglue/
> > Google code: https://code.google.com/p/nmrglue/
> > Documentation: http://nmrglue.readthedocs.org/en/latest/index.html
> >
> > Modified:
> >     branches/nmrglue/test_suite/system_tests/nmrglue.py
> >
> > Modified: branches/nmrglue/test_suite/system_tests/nmrglue.py
> > URL:
> http://svn.gna.org/viewcvs/relax/branches/nmrglue/test_suite/system_tests/nmrglue.py?rev=27012&r1=27011&r2=27012&view=diff
> >
> ==============================================================================
> > --- branches/nmrglue/test_suite/system_tests/nmrglue.py (original)
> > +++ branches/nmrglue/test_suite/system_tests/nmrglue.py Mon Dec  8
> 13:40:52 2014
> > @@ -21,7 +21,8 @@
> >
> ###############################################################################
> >
> >  # Python module imports.
> > -from numpy import concatenate, save
> > +import base64
> > +from numpy import concatenate, float32, float64, frombuffer, save
> >  from os import path, sep
> >  from tempfile import mkdtemp
> >
> > @@ -364,6 +365,9 @@
> >          dic  = cdp.nmrglue_dic[sp_id]
> >          udic  = cdp.nmrglue_udic[sp_id]
> >          data = cdp.nmrglue_data[sp_id]
> > +        s = base64.b64encode(data)
> > +        cdp.nmrglue_data[sp_id] = s
> > +        print("Type of encoding is:", type(cdp.nmrglue_data[sp_id]))
> >
> >          # Try storing the numpy array, and print size
> >          data_numpy = ds.tmpdir + sep + 'data.npy'
> > @@ -379,6 +383,8 @@
> >          dirpath = ds.tmpdir
> >
> >          print("Shape of data is %ix%i"%(data.shape[0], data.shape[1]))
> > +        print("dtype of data is", data.dtype)
> > +        print("Type of data[0][0]: ", type(data[0][0]))
> >
> >          # Save the results.
> >          self.interpreter.state.save('state', dir=dirpath,
> compress_type=1, force=True)
> > @@ -393,6 +399,20 @@
> >          # Load the state again.
> >          self.interpreter.state.load(dirpath+sep+'state')
> >
> > +        # Decode
> > +        print("Decoding")
> > +        r = base64.decodestring(cdp.nmrglue_data[sp_id])
> > +        q = frombuffer(r,dtype=float32)
> > +        cdp.nmrglue_data[sp_id] = q
> > +        print("Type of decoded is:", type(cdp.nmrglue_data[sp_id]))
> > +        print("Shape of numpy array is:", cdp.nmrglue_data[sp_id].shape)
> > +
> > +        # Test data.
> > +        print("Testing data array.")
> > +        print("Shape of data is %ix%i, and of cdp.nmrglue_data is
> %ix%i"%(data.shape[0], data.shape[1], cdp.nmrglue_data[sp_id].shape[0],
> cdp.nmrglue_data[sp_id].shape[1]))
> > +        self.assertEqual(data, cdp.nmrglue_data[sp_id])
> > +
> > +        print("Testing dics.")
> >          # Make tests that they are the same.
> >          self.assertEqual(dic, cdp.nmrglue_dic[sp_id])
> >          for id in dic:
> >
> >
> > _______________________________________________
> > relax (http://www.nmr-relax.com)
> >
> > This is the relax-commits mailing list
> > relax-comm...@gna.org
> >
> > To unsubscribe from this list, get a password
> > reminder, or change your subscription options,
> > visit the list information page at
> > https://mail.gna.org/listinfo/relax-commits
>
> _______________________________________________
> relax (http://www.nmr-relax.com)
>
> This is the relax-devel mailing list
> relax-devel@gna.org
>
> To unsubscribe from this list, get a password
> reminder, or change your subscription options,
> visit the list information page at
> https://mail.gna.org/listinfo/relax-devel
>
_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to