-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmagField.py
executable file
·67 lines (59 loc) · 2.45 KB
/
magField.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import argparse
from planetmagfields.libbfield import plotAllFields
from planetmagfields.planet import Planet
parser=argparse.ArgumentParser(
description='''Script for easy plotting of planetary magnetic field.''')
parser.add_argument('-p','--planet',type=str,default='earth',
help='Planet name (default : earth)',
dest='planet')
parser.add_argument('-r','--radius',type=float,default=1,
help='Radial level scaled to planetary radius (default : 1)',
dest='r')
parser.add_argument('-c','--cmap',type=str,default='RdBu_r',
help='Colormap of plot (default : RdBu_r)',
dest='cmap')
parser.add_argument('-l','--levels',type=int,default=20,
help='Number of contour levels (default : 20)',
dest='levels')
parser.add_argument('-m','--mapproj',type=str,default='Mollweide',
help='Type of map projection (default : Mollweide)',
dest='proj')
parser.add_argument('-o','--model',type=str,default=None,
help='Model to be used, uses the latest model by default (default : None)',
dest='model')
parser.add_argument('-u','--unit',type=str,default='muT',
help='Unit of magnetic field (default : muT)',
dest='unit')
parser.add_argument('--vmin',type=float,default=None,
help='Minimum magnitude of colorscale (default : None)',
dest='vmin')
parser.add_argument('--vmax',type=float,default=None,
help='Maximum magnitude of colorscale (default : None)',
dest='vmax')
args=parser.parse_args()
planet = args.planet
r = args.r
cmap = args.cmap
levels = args.levels
proj = args.proj
model = args.model
vmin = args.vmin
vmax = args.vmax
unit = args.unit
if planet == 'all':
plotAllFields(datDir='./planetmagfields/data/',r=r,levels=levels,cmap=cmap,
proj=proj,unit=unit,vmin=vmin,vmax=vmax)
plt.tight_layout()
plt.subplots_adjust(top=0.895,
bottom=0.035,
left=0.023,
right=0.976,
hspace=0.38,
wspace=0.109)
else:
pl = Planet(name=planet,r=r,model=model)
pl.plot(r=r,levels=levels,cmap=cmap,proj=proj)
plt.show()