source: issm/trunk-jpl/src/py3/contrib/defleurian/netCDF/ClassTry.py@ 23677

Last change on this file since 23677 was 23677, checked in by bdef, 6 years ago

CHG: adding missing directories and cleaning code

File size: 7.3 KB
Line 
1#module imports {{{
2from netCDF4 import Dataset
3import time
4import collections
5from os import path, remove
6#}}}
7
8
9class truc(object):
10 #properties
11 def __init__(self,*filename):#{{{
12
13 def netCDFread(filename):
14 def walktree(data):
15 keys = list(data.groups.keys())
16 yield keys
17 for key in keys:
18 for children in walktree(data.groups[str(key)]):
19 yield children
20
21 if path.exists(filename):
22 print(('Opening {} for reading '.format(filename)))
23 NCData=Dataset(filename, 'r')
24 class_dict={}
25
26 for children in walktree(NCData):
27 for child in children:
28 class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype'))
29
30 return class_dict
31
32 if filename:
33 classtype=netCDFread(filename[0])
34 else:
35 classtype=self.default_prop()
36
37 module=list(map(__import__,dict.values(classtype)))
38
39 for i,mod in enumerate(dict.keys(classtype)):
40 self.__dict__[mod] = getattr(module[i],str(classtype[str(mod)]))()
41
42 #}}}
43 def default_prop(self): # {{{
44 # ordered list of properties since vars(self) is random
45 return {'mesh':'mesh2d',\
46 'mask':'mask',\
47 'geometry':'geometry',\
48 'constants':'constants',\
49 'smb':'SMB',\
50 'basalforcings':'basalforcings',\
51 'materials':'matice',\
52 'damage':'damage',\
53 'friction':'friction',\
54 'flowequation':'flowequation',\
55 'timestepping':'timestepping',\
56 'initialization':'initialization',\
57 'rifts':'rifts',\
58 'debug':'debug',\
59 'verbose':'verbose',\
60 'settings':'settings',\
61 'toolkits':'toolkits',\
62 'cluster':'generic',\
63 'balancethickness':'balancethickness',\
64 'stressbalance':'stressbalance',\
65 'groundingline':'groundingline',\
66 'hydrology':'hydrologyshreve',\
67 'masstransport':'masstransport',\
68 'thermal':'thermal',\
69 'steadystate':'steadystate',\
70 'transient':'transient',\
71 'calving':'calving',\
72 'giaivins':'giaivins',\
73 'autodiff':'autodiff',\
74 'inversion':'inversion',\
75 'qmu':'qmu',\
76 'outputdefinition':'outputdefinition',\
77 'results':'results',\
78 'radaroverlay':'radaroverlay',\
79 'miscellaneous':'miscellaneous',\
80 'private':'private'}
81 # }}}
82
83 def __repr__(obj): #{{{
84 #print "Here %s the number: %d" % ("is", 37)
85 string="%19s: %-22s -- %s" % ("mesh","[%s,%s]" % ("1x1",obj.mesh.__class__.__name__),"mesh properties")
86 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("mask","[%s,%s]" % ("1x1",obj.mask.__class__.__name__),"defines grounded and floating elements"))
87 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
88 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
89 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface forcings"))
90 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
91 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
92 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("damage","[%s,%s]" % ("1x1",obj.damage.__class__.__name__),"damage propagation laws"))
93 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("friction","[%s,%s]" % ("1x1",obj.friction.__class__.__name__),"basal friction/drag properties"))
94 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flowequation","[%s,%s]" % ("1x1",obj.flowequation.__class__.__name__),"flow equations"))
95 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("timestepping","[%s,%s]" % ("1x1",obj.timestepping.__class__.__name__),"time stepping for transient models"))
96 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("initialization","[%s,%s]" % ("1x1",obj.initialization.__class__.__name__),"initial guess/state"))
97 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("rifts","[%s,%s]" % ("1x1",obj.rifts.__class__.__name__),"rifts properties"))
98 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("debug","[%s,%s]" % ("1x1",obj.debug.__class__.__name__),"debugging tools (valgrind, gprof)"))
99 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("verbose","[%s,%s]" % ("1x1",obj.verbose.__class__.__name__),"verbosity level in solve"))
100 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("settings","[%s,%s]" % ("1x1",obj.settings.__class__.__name__),"settings properties"))
101 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("toolkits","[%s,%s]" % ("1x1",obj.toolkits.__class__.__name__),"PETSc options for each solution"))
102 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("cluster","[%s,%s]" % ("1x1",obj.cluster.__class__.__name__),"cluster parameters (number of cpus...)"))
103 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("balancethickness","[%s,%s]" % ("1x1",obj.balancethickness.__class__.__name__),"parameters for balancethickness solution"))
104 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("stressbalance","[%s,%s]" % ("1x1",obj.stressbalance.__class__.__name__),"parameters for stressbalance solution"))
105 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("groundingline","[%s,%s]" % ("1x1",obj.groundingline.__class__.__name__),"parameters for groundingline solution"))
106 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("hydrology","[%s,%s]" % ("1x1",obj.hydrology.__class__.__name__),"parameters for hydrology solution"))
107 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("masstransport","[%s,%s]" % ("1x1",obj.masstransport.__class__.__name__),"parameters for masstransport solution"))
108 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("thermal","[%s,%s]" % ("1x1",obj.thermal.__class__.__name__),"parameters for thermal solution"))
109 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("steadystate","[%s,%s]" % ("1x1",obj.steadystate.__class__.__name__),"parameters for steadystate solution"))
110 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("transient","[%s,%s]" % ("1x1",obj.transient.__class__.__name__),"parameters for transient solution"))
111 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving"))
112 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters"))
113 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("inversion","[%s,%s]" % ("1x1",obj.inversion.__class__.__name__),"parameters for inverse methods"))
114 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("qmu","[%s,%s]" % ("1x1",obj.qmu.__class__.__name__),"dakota properties"))
115 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("outputdefinition","[%s,%s]" % ("1x1",obj.outputdefinition.__class__.__name__),"output definition"))
116 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("results","[%s,%s]" % ("1x1",obj.results.__class__.__name__),"model results"))
117 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("radaroverlay","[%s,%s]" % ("1x1",obj.radaroverlay.__class__.__name__),"radar image for plot overlay"))
118 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("miscellaneous","[%s,%s]" % ("1x1",obj.miscellaneous.__class__.__name__),"miscellaneous fields"))
119 return string
120 # }}}
Note: See TracBrowser for help on using the repository browser.