@@ -337,14 +337,16 @@ def saveWSxM_3D( prefix, data, extent, slices=None ):
337
337
338
338
#================ Npy
339
339
340
- def saveNpy (fname , data , lvec , head = None ):
340
+ def saveNpy (fname , data , lvec , atoms , head = None ):
341
341
np .save (fname + '.npy' , data )
342
342
np .save (fname + '_vec.npy' ,lvec )
343
+ np .save (fname + '_atoms.npy' ,np .array (atoms ,dtype = float ))
343
344
344
345
def loadNpy (fname ):
345
346
data = np .load (fname + '.npy' )
346
347
lvec = np .load (fname + '_vec.npy' )
347
- return data .copy (), lvec ; #necessary for being 'C_CONTINUOS'
348
+ atoms = np .load (fname + '_atoms.npy' )
349
+ return data .copy (), lvec , atoms ; #necessary for being 'C_CONTINUOS'
348
350
349
351
# =============== Vector Field
350
352
@@ -371,24 +373,23 @@ def loadVecFieldNpy( fname, FF = None ):
371
373
Fy = np .load (fname + '_y.npy' )
372
374
Fz = np .load (fname + '_z.npy' )
373
375
lvec = np .load (fname + '_vec.npy' )
376
+ atoms = np .load (fname + 'atoms.npy' )
374
377
FF = packVecGrid ( Fx , Fy , Fz , FF )
375
378
del Fx ,Fy ,Fz
376
- return FF , lvec
379
+ return FF , lvec , atoms
377
380
378
381
def saveVecFieldXsf ( fname , FF , lvec , head = XSF_HEAD_DEFAULT ):
379
382
saveXSF (fname + '_x.xsf' , FF [:,:,:,0 ], lvec , head )
380
383
saveXSF (fname + '_y.xsf' , FF [:,:,:,1 ], lvec , head )
381
384
saveXSF (fname + '_z.xsf' , FF [:,:,:,2 ], lvec , head )
382
385
383
- def saveVecFieldNpy ( fname , FF , lvec , head = XSF_HEAD_DEFAULT ):
386
+ def saveVecFieldNpy ( fname , FF , lvec , atoms , head = XSF_HEAD_DEFAULT ):
384
387
np .save (fname + '_x.npy' , FF [:,:,:,0 ] )
385
388
np .save (fname + '_y.npy' , FF [:,:,:,1 ] )
386
389
np .save (fname + '_z.npy' , FF [:,:,:,2 ] )
387
390
np .save (fname + '_vec.npy' , lvec )
388
- if (head != XSF_HEAD_DEFAULT ):
389
- print ("saving atoms" )
390
- tmp0 = head [0 ]; q = np .zeros (len (tmp0 )); #head: [e,[x,y,z],lvec]
391
- np .save (fname + '_atoms.npy' ,[tmp0 ,head [1 ][0 ],head [1 ][1 ],head [1 ][2 ],q ]) #atoms: [e, x, y, z, q]
391
+ print ("saving atoms" ) # atoms: [e, x, y, z];
392
+ np .save (fname + '_atoms.npy' ,np .array (atoms ,dtype = float )) # at the moment we did not switched npz, I will do it later, maybe #
392
393
393
394
def limit_vec_field ( FF , Fmax = 100.0 ):
394
395
'''
@@ -400,14 +401,14 @@ def limit_vec_field( FF, Fmax=100.0 ):
400
401
FF [:,:,:,1 ].flat [mask ] *= Fmax / FR [mask ]
401
402
FF [:,:,:,2 ].flat [mask ] *= Fmax / FR [mask ]
402
403
403
- def save_vec_field (fname , data , lvec , data_format = "xsf" , head = XSF_HEAD_DEFAULT ):
404
+ def save_vec_field (fname , data , lvec , data_format = "xsf" , head = XSF_HEAD_DEFAULT , atoms = [[ 0. ],[ 0. ],[ 0. ],[ 0. ]] ):
404
405
'''
405
406
Saving scalar fields into xsf, or npy
406
407
'''
407
408
if (data_format == "xsf" ):
408
409
saveVecFieldXsf (fname , data , lvec , head = head )
409
410
elif (data_format == "npy" ):
410
- saveVecFieldNpy (fname , data , lvec , head = head )
411
+ saveVecFieldNpy (fname , data , lvec , atoms , head = head )
411
412
else :
412
413
print ("I cannot save this format!" )
413
414
@@ -419,7 +420,7 @@ def load_vec_field(fname, data_format="xsf"):
419
420
if (data_format == "xsf" ):
420
421
data , lvec , ndim , head = loadVecFieldXsf (fname )
421
422
elif (data_format == "npy" ):
422
- data , lvec = loadVecFieldNpy (fname )
423
+ data , lvec , atoms = loadVecFieldNpy (fname )
423
424
ndim = np .delete (data .shape ,3 )
424
425
else :
425
426
print ("I cannot load this format!" )
@@ -428,14 +429,16 @@ def load_vec_field(fname, data_format="xsf"):
428
429
429
430
# =============== Scalar Fields
430
431
431
- def save_scal_field (fname , data , lvec , data_format = "xsf" , head = XSF_HEAD_DEFAULT ):
432
+ def save_scal_field (fname , data , lvec , data_format = "xsf" , head = XSF_HEAD_DEFAULT , atoms = [[ 0. ],[ 0. ],[ 0. ],[ 0. ]] ):
432
433
'''
433
434
Saving scalar fields into xsf, or npy
434
435
'''
435
436
if (data_format == "xsf" ):
436
437
saveXSF (fname + ".xsf" , data , lvec , head = head )
437
438
elif (data_format == "npy" ):
438
439
saveNpy (fname , data , lvec , head = head )
440
+ attmp = np .array (atoms ,dtype = float );
441
+ np .save (fname + '_atoms.npy' ,attmp ) # at the moment we did not switched npz, I will do it later, maybe #
439
442
else :
440
443
print ("I cannot save this format!" )
441
444
@@ -444,10 +447,11 @@ def load_scal_field(fname, data_format="xsf"):
444
447
'''
445
448
Loading scalar fields into xsf, or npy
446
449
'''
450
+ atoms = [[0. ],[0. ],[0. ],[0. ]] #
447
451
if (data_format == "xsf" ):
448
452
data , lvec , ndim , head = loadXSF (fname + ".xsf" )
449
453
elif (data_format == "npy" ):
450
- data , lvec = loadNpy (fname )
454
+ data , lvec , atoms = loadNpy (fname )
451
455
ndim = data .shape
452
456
elif (data_format == "cube" ):
453
457
data ,lvec , ndim , head = loadCUBE (fname + ".cube" )
0 commit comments