예제 #1
0
    def train(self):
        dvc = DVC(bind=False,
                  organization='NMGRLData')
        dvc.db.trait_set(name='pychronmeta1',
                         username=os.environ.get('ARGONSERVER_DB_USER'),
                         password=os.environ.get('ARGONSERVER_DB_PWD'),
                         kind='mysql',
                         host=os.environ.get('ARGONSERVER_HOST'))
        dvc.connect()
        isos = []
        klasses = []
        uuids = UUIDS
        with dvc.session_ctx():
            for uuid in uuids:
                broke = False
                dbai = dvc.get_analysis_uuid(uuid)
                ai = dvc.make_analyses((dbai,))[0]
                ai.load_raw_data()
                for iso in ai.isotopes.values():

                    klass = self._get_klass(iso)
                    if klass is not None:
                        isos.append(iso)
                        klasses.append(klass)
                    else:
                        broke = True
                        break

                if broke:
                    break

        if isos:
            clf = IsotopeClassifier()
            clf.add_isotopes(isos, klasses)
            clf.dump()
예제 #2
0
class IsotopeHealth(Loggable):
    def __init__(self, *args, **kw):
        super(IsotopeHealth, self).__init__(*args, **kw)
        self._clf = IsotopeClassifier()

    def check(self, iso, tol=0.5):
        k, p = self._clf.predict(make_sample(iso))
        self.debug('check {} {} {}'.format(iso.name, k, p))
        if k is not None:
            if not k and p > tol:
                self.info('Isotope {} classified bad: {}<{}'.format(iso.name, p, tol))
                return True
예제 #3
0
    def train(self):
        dvc = DVC(bind=False, organization='NMGRLData')
        dvc.db.trait_set(name='pychronmeta1',
                         username=os.environ.get('ARGONSERVER_DB_USER'),
                         password=os.environ.get('ARGONSERVER_DB_PWD'),
                         kind='mysql',
                         host=os.environ.get('ARGONSERVER_HOST'))
        dvc.connect()
        isos = []
        klasses = []
        uuids = UUIDS
        with dvc.session_ctx():
            for uuid in uuids:
                broke = False
                dbai = dvc.get_analysis_uuid(uuid)
                ai = dvc.make_analyses((dbai, ))[0]
                ai.load_raw_data()
                for iso in ai.isotopes.values():

                    klass = self._get_klass(iso)
                    if klass is not None:
                        isos.append(iso)
                        klasses.append(klass)
                    else:
                        broke = True
                        break

                if broke:
                    break

        if isos:
            clf = IsotopeClassifier()
            clf.add_isotopes(isos, klasses)
            clf.dump()
예제 #4
0
 def __init__(self, *args, **kw):
     super(IsotopeHealth, self).__init__(*args, **kw)
     self._clf = IsotopeClassifier()