scikit-vector-fields 1.0__tar.gz → 1.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scikit_vector_fields-1.0/src/scikit_vector_fields.egg-info → scikit_vector_fields-1.0.4}/PKG-INFO +1 -4
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/pyproject.toml +3 -3
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4/src/scikit_vector_fields.egg-info}/PKG-INFO +1 -4
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/scikit_vector_fields.egg-info/requires.txt +0 -3
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/skvf/__init__.py +1 -1
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/skvf/data.py +4 -4
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/skvf/entities.py +12 -7
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/skvf/plot.py +113 -67
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/LICENSE +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/README.md +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/setup.cfg +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/scikit_vector_fields.egg-info/SOURCES.txt +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/scikit_vector_fields.egg-info/dependency_links.txt +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/scikit_vector_fields.egg-info/top_level.txt +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/src/skvf/operations.py +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/tests/test_1.py +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/tests/test_2.py +0 -0
- {scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4}/tests/test_3.py +0 -0
{scikit_vector_fields-1.0/src/scikit_vector_fields.egg-info → scikit_vector_fields-1.0.4}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: scikit-vector-fields
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: A package to perform vector field computations
|
|
5
5
|
Author-email: Sarang Pendharker <sarang@ece.iitkgp.ac.in>
|
|
6
6
|
Project-URL: Homepage, https://github.com/sarang-IITKgp/scikit-vector-fields
|
|
@@ -15,11 +15,8 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
License-File: LICENSE
|
|
16
16
|
Requires-Dist: numpy
|
|
17
17
|
Requires-Dist: matplotlib
|
|
18
|
-
Requires-Dist: mayavi
|
|
19
|
-
Requires-Dist: PyQt5
|
|
20
18
|
Requires-Dist: pandas
|
|
21
19
|
Requires-Dist: regex
|
|
22
|
-
Requires-Dist: os-sys
|
|
23
20
|
Dynamic: license-file
|
|
24
21
|
|
|
25
22
|
# scikit-vector-fields
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools>=40.8.0","numpy","matplotlib","
|
|
2
|
+
requires = ["setuptools>=40.8.0","numpy","matplotlib","pandas","regex"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[project]
|
|
7
7
|
name = "scikit-vector-fields"
|
|
8
|
-
version = "1.0"
|
|
8
|
+
version = "1.0.4"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name="Sarang Pendharker", email="sarang@ece.iitkgp.ac.in" },
|
|
11
11
|
]
|
|
@@ -20,7 +20,7 @@ classifiers = [
|
|
|
20
20
|
"Topic :: Scientific/Engineering"
|
|
21
21
|
]
|
|
22
22
|
|
|
23
|
-
dependencies = ["numpy","matplotlib","
|
|
23
|
+
dependencies = ["numpy","matplotlib","pandas","regex"]
|
|
24
24
|
|
|
25
25
|
[project.urls]
|
|
26
26
|
"Homepage" = "https://github.com/sarang-IITKgp/scikit-vector-fields"
|
{scikit_vector_fields-1.0 → scikit_vector_fields-1.0.4/src/scikit_vector_fields.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: scikit-vector-fields
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: A package to perform vector field computations
|
|
5
5
|
Author-email: Sarang Pendharker <sarang@ece.iitkgp.ac.in>
|
|
6
6
|
Project-URL: Homepage, https://github.com/sarang-IITKgp/scikit-vector-fields
|
|
@@ -15,11 +15,8 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
License-File: LICENSE
|
|
16
16
|
Requires-Dist: numpy
|
|
17
17
|
Requires-Dist: matplotlib
|
|
18
|
-
Requires-Dist: mayavi
|
|
19
|
-
Requires-Dist: PyQt5
|
|
20
18
|
Requires-Dist: pandas
|
|
21
19
|
Requires-Dist: regex
|
|
22
|
-
Requires-Dist: os-sys
|
|
23
20
|
Dynamic: license-file
|
|
24
21
|
|
|
25
22
|
# scikit-vector-fields
|
|
@@ -12,7 +12,7 @@ import mayavi.mlab as mlab
|
|
|
12
12
|
|
|
13
13
|
# import sys as sys
|
|
14
14
|
|
|
15
|
-
from os.path import dirname, realpath
|
|
15
|
+
# from os.path import dirname, realpath
|
|
16
16
|
import sys
|
|
17
17
|
|
|
18
18
|
|
|
@@ -35,11 +35,11 @@ def get_text_between_strings_regex(main_string, start_pattern, end_pattern=None)
|
|
|
35
35
|
return match.group(1)
|
|
36
36
|
return None
|
|
37
37
|
|
|
38
|
-
def load_HFSS_field_file(
|
|
38
|
+
def load_HFSS_field_file(fullname,text_tag=None):
|
|
39
39
|
'''Exported file contains following data columns:
|
|
40
40
|
Z, Y, Freq, X, F_total, Fx, Fy, Fz'''
|
|
41
|
-
path=dirname(realpath(sys.argv[0])) ## get path of the current directory.
|
|
42
|
-
fullname = path+'/'+filename
|
|
41
|
+
# path=dirname(realpath(sys.argv[0])) ## get path of the current directory.
|
|
42
|
+
# fullname = path+'/'+filename
|
|
43
43
|
|
|
44
44
|
df = pd.read_csv(fullname)
|
|
45
45
|
print('Loading file: ',fullname, 'as data frame')
|
|
@@ -483,13 +483,18 @@ class field():
|
|
|
483
483
|
|
|
484
484
|
def TH_at_t(self,omega,t):
|
|
485
485
|
'''Return the field after harmonically evolving for 't' time with 'omega' frequency'''
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
486
|
+
|
|
487
|
+
if self.field_type == 'vector':
|
|
488
|
+
Fx = self.field.x*np.exp(1j*omega*t)
|
|
489
|
+
Fy = self.field.y*np.exp(1j*omega*t)
|
|
490
|
+
Fz = self.field.z*np.exp(1j*omega*t)
|
|
489
491
|
|
|
490
|
-
|
|
492
|
+
F_vec_t = vector(Fx,Fy,Fz)
|
|
491
493
|
|
|
492
|
-
|
|
494
|
+
return field(F_vec_t,self.space,text_tag=self.text_tag+'*exp(j '+str(omega)+'*'+str(t)+')')
|
|
495
|
+
if self.field_type == 'scalar':
|
|
496
|
+
F_scalar_t = self.field*np.exp(1j*omega*t)
|
|
497
|
+
return field(F_scalar_t,self.space,text_tag=self.text_tag+'*exp(j '+str(omega)+'*'+str(t)+')')
|
|
493
498
|
|
|
494
499
|
|
|
495
500
|
|
|
@@ -609,7 +614,7 @@ class field():
|
|
|
609
614
|
return ax, Fig
|
|
610
615
|
|
|
611
616
|
|
|
612
|
-
def plot_quiver3d(self,Fig=None,arrow_density = 0.7,text_tag=None,scale_mode='none',
|
|
617
|
+
def plot_quiver3d(self,Fig=None,arrow_density = 0.7,text_tag=None,scale_mode='none',cmap='jet'):
|
|
613
618
|
|
|
614
619
|
if text_tag == None:
|
|
615
620
|
text_tag = self.text_tag
|
|
@@ -618,7 +623,7 @@ class field():
|
|
|
618
623
|
|
|
619
624
|
|
|
620
625
|
print('Plotting 3D quiver plot of: '+text_tag)
|
|
621
|
-
handle_s, Fig = plot.quiver3d(self.space,self.field,arrow_density=arrow_density,text_tag=text_tag,scale_mode=scale_mode,Fig=Fig,
|
|
626
|
+
handle_s, Fig = plot.quiver3d(self.space,self.field,arrow_density=arrow_density,text_tag=text_tag,scale_mode=scale_mode,Fig=Fig,cmap=cmap)
|
|
622
627
|
|
|
623
628
|
return handle_s, Fig
|
|
624
629
|
|
|
@@ -2,7 +2,7 @@ import numpy as np
|
|
|
2
2
|
"""Plot commands"""
|
|
3
3
|
import matplotlib.pyplot as plt
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
import sys as sys
|
|
7
7
|
|
|
8
8
|
|
|
@@ -296,125 +296,171 @@ def contourf(space,scalar,plane=None,loc=0,ax=None,Fig=None,color=True,cmap='jet
|
|
|
296
296
|
return ax, Fig
|
|
297
297
|
|
|
298
298
|
|
|
299
|
-
def quiver3d(space,vector,arrow_density = 0.
|
|
299
|
+
def quiver3d(space,vector,arrow_density = 0.5,text_tag=None,scale_mode=True,ax=None,Fig=None,color=True,cmap='jet',vmax=None,vmin=None,flag_colorbar=True):
|
|
300
300
|
|
|
301
301
|
if text_tag == None:
|
|
302
302
|
text_tag = vector.text_tag
|
|
303
303
|
|
|
304
|
-
if
|
|
305
|
-
Fig
|
|
306
|
-
|
|
307
|
-
|
|
304
|
+
if ax == None:
|
|
305
|
+
if Fig == None:
|
|
306
|
+
Fig = plt.figure(text_tag)
|
|
307
|
+
|
|
308
|
+
ax = Fig.add_subplot(111,projection='3d')
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
# mask_points=int(max([pts_x,pts_y,pts_z])*(1.1-arrow_density))
|
|
312
|
+
|
|
313
|
+
|
|
308
314
|
|
|
309
315
|
|
|
310
316
|
if space.plane == 'x-y-z-3D':
|
|
311
317
|
pts_y,pts_x,pts_z = space.shape
|
|
312
318
|
|
|
313
|
-
print('Plotting 3D quiver plot of '+text_tag+'
|
|
319
|
+
print('Plotting 3D quiver plot of '+text_tag+' Matplotlib')
|
|
320
|
+
|
|
321
|
+
mask_points = int(1/arrow_density)
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
x_grid_masked = space.x_grid[0:pts_y:mask_points,0:pts_x:mask_points,0:pts_z:mask_points]
|
|
326
|
+
y_grid_masked = space.y_grid[0:pts_y:mask_points,0:pts_x:mask_points,0:pts_z:mask_points]
|
|
327
|
+
z_grid_masked = space.z_grid[0:pts_y:mask_points,0:pts_x:mask_points,0:pts_z:mask_points]
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
vectror_x_grid_masked = vector.x[0:pts_y:mask_points,0:pts_x:mask_points,0:pts_z:mask_points]
|
|
331
|
+
vectror_y_grid_masked = vector.y[0:pts_y:mask_points,0:pts_x:mask_points,0:pts_z:mask_points]
|
|
332
|
+
vectror_z_grid_masked = vector.z[0:pts_y:mask_points,0:pts_x:mask_points,0:pts_z:mask_points]
|
|
333
|
+
|
|
314
334
|
|
|
315
|
-
|
|
335
|
+
|
|
336
|
+
if color == True:
|
|
337
|
+
ax.quiver(x_grid_masked, y_grid_masked, z_grid_masked, vectror_x_grid_masked, vectror_y_grid_masked, vectror_y_grid_masked, length=0.1, normalize=True,cmap=cmap)
|
|
338
|
+
else:
|
|
339
|
+
ax.quiver(x_grid_masked, y_grid_masked, z_grid_masked, vectror_x_grid_masked, vectror_y_grid_masked, vectror_y_grid_masked, length=0.1, normalize=True)
|
|
340
|
+
# ax.quiver(var1,var2,data1,data2,pivot='mid')
|
|
341
|
+
# ax.set_aspect('equal')
|
|
342
|
+
# ax.set_xlabel(xlabel)
|
|
343
|
+
# ax.set_ylabel(ylabel)
|
|
344
|
+
|
|
345
|
+
# ax.quiver(space.x_grid, space.y_grid, space.z_grid, vector.x, vector.y, vector.z, length=0.1, normalize=True)
|
|
346
|
+
# handle_s = mlab.quiver3d(space.x_grid,space.y_grid,space.z_grid, vector.x,vector.y,vector.z,scale_mode=scale_mode,mask_points=int(max([pts_x,pts_y,pts_z])*(1.1-arrow_density)),figure=Fig,colormap=colormap)
|
|
316
347
|
|
|
317
|
-
mlab.outline()
|
|
318
|
-
mlab.orientation_axes()
|
|
319
|
-
mlab.axes()
|
|
348
|
+
# mlab.outline()
|
|
349
|
+
# mlab.orientation_axes()
|
|
350
|
+
# mlab.axes()
|
|
320
351
|
|
|
321
352
|
else:
|
|
322
353
|
sys.exit('only 3D vector fields can be plotted using this command.')
|
|
323
|
-
return handle_s, mlab.gcf()
|
|
354
|
+
# return handle_s, mlab.gcf()
|
|
355
|
+
return ax, Fig
|
|
324
356
|
|
|
325
357
|
def volume_slice_scalar(scalar,Fig=None,colormap='jet',text_tag='scalar field'):
|
|
326
358
|
|
|
327
359
|
|
|
328
|
-
if Fig == None:
|
|
329
|
-
Fig = mlab.figure('Mayavi volume slice plot:'+text_tag)
|
|
330
|
-
else:
|
|
331
|
-
mlab.figure(Fig)
|
|
360
|
+
# if Fig == None:
|
|
361
|
+
# Fig = mlab.figure('Mayavi volume slice plot:'+text_tag)
|
|
362
|
+
# else:
|
|
363
|
+
# mlab.figure(Fig)
|
|
332
364
|
|
|
333
|
-
mlab.volume_slice(np.transpose(scalar,axes=[1,0,2]),figure=Fig,plane_orientation='x_axes')
|
|
334
|
-
mlab.volume_slice(np.transpose(scalar,axes=[1,0,2]),figure=Fig,plane_orientation='y_axes')
|
|
335
|
-
mlab.volume_slice(np.transpose(scalar,axes=[1,0,2]),figure=Fig,plane_orientation='z_axes')
|
|
365
|
+
# mlab.volume_slice(np.transpose(scalar,axes=[1,0,2]),figure=Fig,plane_orientation='x_axes')
|
|
366
|
+
# mlab.volume_slice(np.transpose(scalar,axes=[1,0,2]),figure=Fig,plane_orientation='y_axes')
|
|
367
|
+
# mlab.volume_slice(np.transpose(scalar,axes=[1,0,2]),figure=Fig,plane_orientation='z_axes')
|
|
336
368
|
|
|
337
|
-
mlab.contour3d(np.transpose(scalar,axes=[1,0,2]),figure=Fig)
|
|
369
|
+
# mlab.contour3d(np.transpose(scalar,axes=[1,0,2]),figure=Fig)
|
|
338
370
|
|
|
339
|
-
mlab.outline()
|
|
340
|
-
mlab.orientation_axes()
|
|
341
|
-
mlab.axes()
|
|
371
|
+
# mlab.outline()
|
|
372
|
+
# mlab.orientation_axes()
|
|
373
|
+
# mlab.axes()
|
|
342
374
|
|
|
343
|
-
|
|
375
|
+
print('VERSION UPDATE WARNING: VOLUME SLICE 3D PLOT BASED ON MAYAVI LIBRARY AS BEEN DISCONTINUED. PLEASE USE ALTERNATE PLOT COMMAND.')
|
|
376
|
+
|
|
377
|
+
return Fig
|
|
344
378
|
|
|
345
379
|
|
|
346
380
|
def volume_slice_vector(vector,Fig=None,colormap='jet',text_tag='vector field',arrow_density = 0.7,normal_plot=False):
|
|
347
381
|
|
|
348
|
-
pts_y,pts_x,pts_z = vector.x.shape
|
|
382
|
+
# pts_y,pts_x,pts_z = vector.x.shape
|
|
349
383
|
|
|
350
|
-
if Fig == None:
|
|
351
|
-
Fig = mlab.figure('Mayavi volume slice plot:'+text_tag)
|
|
352
|
-
else:
|
|
353
|
-
mlab.figure(Fig)
|
|
384
|
+
# if Fig == None:
|
|
385
|
+
# Fig = mlab.figure('Mayavi volume slice plot:'+text_tag)
|
|
386
|
+
# else:
|
|
387
|
+
# mlab.figure(Fig)
|
|
354
388
|
|
|
355
389
|
|
|
356
390
|
|
|
357
391
|
|
|
358
|
-
if normal_plot == True:
|
|
359
|
-
scalar_x_axes = vector.x #np.sqrt(vector.y**2 + vector.z**2)
|
|
360
|
-
scalar_y_axes = vector.y #np.sqrt(vector.x**2 + vector.z**2)
|
|
361
|
-
scalar_z_axes = vector.z #np.sqrt(vector.x**2 + vector.y**2)
|
|
362
|
-
print('Control here')
|
|
363
|
-
else:
|
|
392
|
+
# if normal_plot == True:
|
|
393
|
+
# scalar_x_axes = vector.x #np.sqrt(vector.y**2 + vector.z**2)
|
|
394
|
+
# scalar_y_axes = vector.y #np.sqrt(vector.x**2 + vector.z**2)
|
|
395
|
+
# scalar_z_axes = vector.z #np.sqrt(vector.x**2 + vector.y**2)
|
|
396
|
+
# print('Control here')
|
|
397
|
+
# else:
|
|
364
398
|
|
|
365
|
-
scalar_x_axes = np.sqrt(vector.y**2 + vector.z**2)
|
|
366
|
-
scalar_y_axes = np.sqrt(vector.x**2 + vector.z**2)
|
|
367
|
-
scalar_z_axes = np.sqrt(vector.x**2 + vector.y**2)
|
|
399
|
+
# scalar_x_axes = np.sqrt(vector.y**2 + vector.z**2)
|
|
400
|
+
# scalar_y_axes = np.sqrt(vector.x**2 + vector.z**2)
|
|
401
|
+
# scalar_z_axes = np.sqrt(vector.x**2 + vector.y**2)
|
|
368
402
|
|
|
369
|
-
mlab.volume_slice(np.transpose(scalar_x_axes,axes=[1,0,2]), plane_orientation='x_axes',colormap=colormap)
|
|
370
|
-
mlab.volume_slice(np.transpose(scalar_y_axes,axes=[1,0,2]), plane_orientation='y_axes',colormap=colormap)
|
|
371
|
-
mlab.volume_slice(np.transpose(scalar_z_axes,axes=[1,0,2]), plane_orientation='z_axes',colormap=colormap)
|
|
403
|
+
# mlab.volume_slice(np.transpose(scalar_x_axes,axes=[1,0,2]), plane_orientation='x_axes',colormap=colormap)
|
|
404
|
+
# mlab.volume_slice(np.transpose(scalar_y_axes,axes=[1,0,2]), plane_orientation='y_axes',colormap=colormap)
|
|
405
|
+
# mlab.volume_slice(np.transpose(scalar_z_axes,axes=[1,0,2]), plane_orientation='z_axes',colormap=colormap)
|
|
372
406
|
|
|
373
|
-
obj = mlab.quiver3d(np.transpose(vector.x,axes=[1,0,2]),np.transpose(vector.y,axes=[1,0,2]),np.transpose(vector.z,axes=[1,0,2]),scale_mode='none',mask_points=int(max([pts_x,pts_y,pts_z])*(1.1-arrow_density)))
|
|
407
|
+
# obj = mlab.quiver3d(np.transpose(vector.x,axes=[1,0,2]),np.transpose(vector.y,axes=[1,0,2]),np.transpose(vector.z,axes=[1,0,2]),scale_mode='none',mask_points=int(max([pts_x,pts_y,pts_z])*(1.1-arrow_density)))
|
|
374
408
|
|
|
375
|
-
mlab.outline()
|
|
376
|
-
mlab.orientation_axes()
|
|
377
|
-
mlab.axes()
|
|
409
|
+
# mlab.outline()
|
|
410
|
+
# mlab.orientation_axes()
|
|
411
|
+
# mlab.axes()
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
print('VERSION UPDATE WARNING: VOLUME SLICE 3D PLOT BASED ON MAYAVI LIBRARY AS BEEN DISCONTINUED. PLEASE USE ALTERNATE PLOT COMMAND.')
|
|
415
|
+
|
|
378
416
|
|
|
379
|
-
return
|
|
417
|
+
return Fig
|
|
380
418
|
|
|
381
419
|
|
|
382
420
|
def contour3d(space,scalar,Fig=None,colormap='jet',text_tag='field',contours=None):
|
|
383
|
-
if Fig == None:
|
|
384
|
-
Fig = mlab.figure('Mayavi contour3d plot:'+text_tag)
|
|
385
|
-
else:
|
|
386
|
-
mlab.figure(Fig)
|
|
421
|
+
# if Fig == None:
|
|
422
|
+
# Fig = mlab.figure('Mayavi contour3d plot:'+text_tag)
|
|
423
|
+
# else:
|
|
424
|
+
# mlab.figure(Fig)
|
|
387
425
|
|
|
388
426
|
|
|
389
|
-
if contours == None:
|
|
390
|
-
mlab.contour3d(np.transpose(space.x_grid,axes=[1,0,2]),np.transpose(space.y_grid,axes=[1,0,2]),np.transpose(space.z_grid,axes=[1,0,2]),np.transpose(scalar,axes=[1,0,2]),figure=Fig)
|
|
391
|
-
else:
|
|
392
|
-
mlab.contour3d(np.transpose(space.x_grid,axes=[1,0,2]),np.transpose(space.y_grid,axes=[1,0,2]),np.transpose(space.z_grid,axes=[1,0,2]),np.transpose(scalar,axes=[1,0,2]),figure=Fig,contours=contours)
|
|
393
|
-
mlab.outline()
|
|
394
|
-
mlab.orientation_axes()
|
|
395
|
-
mlab.axes()
|
|
427
|
+
# if contours == None:
|
|
428
|
+
# mlab.contour3d(np.transpose(space.x_grid,axes=[1,0,2]),np.transpose(space.y_grid,axes=[1,0,2]),np.transpose(space.z_grid,axes=[1,0,2]),np.transpose(scalar,axes=[1,0,2]),figure=Fig)
|
|
429
|
+
# else:
|
|
430
|
+
# mlab.contour3d(np.transpose(space.x_grid,axes=[1,0,2]),np.transpose(space.y_grid,axes=[1,0,2]),np.transpose(space.z_grid,axes=[1,0,2]),np.transpose(scalar,axes=[1,0,2]),figure=Fig,contours=contours)
|
|
431
|
+
# mlab.outline()
|
|
432
|
+
# mlab.orientation_axes()
|
|
433
|
+
# mlab.axes()
|
|
434
|
+
|
|
396
435
|
|
|
397
|
-
|
|
436
|
+
print('VERSION UPDATE WARNING: Contour3D PLOT BASED ON MAYAVI LIBRARY AS BEEN DISCONTINUED. PLEASE USE ALTERNATE PLOT COMMAND.')
|
|
437
|
+
|
|
438
|
+
return Fig
|
|
398
439
|
|
|
399
440
|
|
|
400
441
|
|
|
401
442
|
def plot_mayavi_quiver(F_field,figure,scale_mode='none',arrow_density=0.7,colormap='jet',line_width=2):
|
|
402
443
|
|
|
403
|
-
pts_y,pts_x,pts_z = F_field.space.x_grid.shape
|
|
444
|
+
# pts_y,pts_x,pts_z = F_field.space.x_grid.shape
|
|
445
|
+
|
|
446
|
+
# sq = mlab.quiver3d(F_field.space.x_grid,F_field.space.y_grid,F_field.space.z_grid, F_field.field.x,F_field.field.y,F_field.field.z,scale_mode=scale_mode,mask_points=int(max([pts_x,pts_y,pts_z])*(1.1-arrow_density)),figure=figure,colormap=colormap,line_width=line_width)
|
|
404
447
|
|
|
405
|
-
|
|
406
|
-
|
|
448
|
+
print('VERSION UPDATE WARNING: Quiver 3D PLOT BASED ON MAYAVI LIBRARY AS BEEN DISCONTINUED. PLEASE USE ALTERNATE PLOT COMMAND.')
|
|
449
|
+
|
|
450
|
+
return figure
|
|
407
451
|
|
|
408
452
|
|
|
409
453
|
def plot_mayavi_points3d(F_field,figure,scale_mode='scalar',point_density=1,colormap='jet',opacity=0.2,vmax=None,vmin=None):
|
|
410
|
-
if vmax == None:
|
|
411
|
-
vmax = np.max(F_field.real().field)
|
|
454
|
+
# if vmax == None:
|
|
455
|
+
# vmax = np.max(F_field.real().field)
|
|
412
456
|
|
|
413
|
-
if vmin == None:
|
|
414
|
-
vmin = np.min(F_field.real().field)
|
|
457
|
+
# if vmin == None:
|
|
458
|
+
# vmin = np.min(F_field.real().field)
|
|
415
459
|
|
|
416
|
-
pts_y,pts_x,pts_z = F_field.space.x_grid.shape
|
|
460
|
+
# pts_y,pts_x,pts_z = F_field.space.x_grid.shape
|
|
461
|
+
|
|
462
|
+
# s = mlab.points3d(F_field.space.x_grid,F_field.space.y_grid,F_field.space.z_grid, F_field.field,scale_mode=scale_mode,mask_points=int(max([pts_x,pts_y,pts_z])*(1.1-point_density)),figure=figure,colormap=colormap,vmax=vmax,vmin=vmin,opacity=opacity,scale_factor=0.05)
|
|
417
463
|
|
|
418
|
-
|
|
464
|
+
print('VERSION UPDATE WARNING: 3D Point PLOT BASED ON MAYAVI LIBRARY AS BEEN DISCONTINUED. PLEASE USE ALTERNATE PLOT COMMAND.')
|
|
419
465
|
|
|
420
466
|
return s
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|