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

Reply via email to