Source code for femagtools.jhb
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
import sys
import os
import femagtools.mcv as mcv
import logging
logger = logging.getLogger(__name__)
[docs]class Reader(object):
def __init__(self, filename):
self.mc1_type = mcv.MAGCRV
with open(filename) as f:
self.name = os.path.splitext(
os.path.basename(f.readline().strip()))[0]
r = f.readline().split()
self.angle = [float(a) for a in r[1:]]
self.curve = [dict(hi=[], bi=[])
for i in range(int(r[0])-1)]
for l in f:
r = l.split()
if len(r) > 1:
bh = [float(x.replace(',', '.')) for x in r]
if bh[1] > 0:
b = bh[0]
for i, h in enumerate(bh[1:]):
self.curve[i]['hi'].append(h)
self.curve[i]['bi'].append(b)
if len(self.curve) > 1:
self.mc1_type = mcv.ORIENT_CRV
logger.info("JHB %s size %d", self.name, self.curve[0]['bi'])
def __getitem__(self, index):
return self.__getattribute__(index)
[docs] def getValues(self):
"""return values as mcv dict"""
return {
'name': self.name,
'ctype': self.mc1_type,
'curve': self.curve}
[docs]def read(filename):
"""read JHB File and return mc dict"""
jhb = Reader(filename)
return jhb.getValues()
if __name__ == "__main__":
if len(sys.argv) == 2:
filename = sys.argv[1]
else:
filename = sys.stdin.readline().strip()
jhb = Reader(filename)
print(jhb.getValues())