コード例 #1
0
class proc_FitTable(Base, BaseMixin):
    history_id = foreignkey('proc_FitHistoryTable')
    isotope_id = foreignkey('meas_IsotopeTable')

    fit = stringcolumn()
    error_type = stringcolumn(default='SD')
    filter_outliers = Column(Boolean)
    filter_outlier_iterations = Column(Integer, default=1)
    filter_outlier_std_devs = Column(Integer, default=1)
    include_baseline_error = Column(Boolean)
    time_zero_offset = Column(Float)
    use_standard_deviation_filtering = False
    truncate = False

    @property
    def isotope_label(self):
        name = self.isotope.molecular_weight.name
        if self.isotope.kind == 'baseline':
            name = '{}bs'.format(name)
        return name

    def make_summary(self):
        f = self.fit[:1].upper()
        name = self.isotope_label
        s = '{}{}'.format(name, f)
        return s
コード例 #2
0
ファイル: meas.py プロジェクト: sgallet/pychron
class meas_ExtractionTable(Base, BaseMixin):
    #    position = Column(Integer)
    extract_value = Column(Float)
    extract_duration = Column(Float)
    cleanup_duration = Column(Float)

    extract_units = stringcolumn(5)

    #    experiment_blob = Column(BLOB)
    weight = Column(Float)
    sensitivity_multiplier = Column(Float)
    is_degas = Column(Boolean)

    beam_diameter = Column(Float)
    pattern = stringcolumn(100)
    ramp_rate = Column(Float)
    ramp_duration = Column(Float)

    mask_position = Column(Float)
    mask_name = stringcolumn(100)
    attenuator = Column(Float)
    reprate = Column(Float)

    sensitivity_id = foreignkey('gen_SensitivityTable')
    extract_device_id = foreignkey('gen_ExtractionDeviceTable')
    script_id = foreignkey('meas_ScriptTable')
    experiment_blob_id = foreignkey('meas_ScriptTable')
    image_id = foreignkey('med_ImageTable')

    analyses = relationship('meas_AnalysisTable', backref='extraction')
    positions = relationship('meas_PositionTable', backref='extraction')
    snapshots = relationship('med_SnapshotTable', backref='extraction')
コード例 #3
0
ファイル: proc.py プロジェクト: sgallet/pychron
class proc_DetectorIntercalibrationTable(Base, BaseMixin):
    history_id = foreignkey('proc_DetectorIntercalibrationHistoryTable')
    detector_id = foreignkey('gen_DetectorTable')
    user_value = Column(Float)
    user_error = Column(Float)
    fit = stringcolumn()
    error_type = stringcolumn(default='SD')
    set_id = Column(Integer)
コード例 #4
0
ファイル: proc.py プロジェクト: sgallet/pychron
class proc_BackgroundsTable(Base, BaseMixin):
    history_id = foreignkey('proc_BackgroundsHistoryTable')
    user_value = Column(Float)
    user_error = Column(Float)
    use_set = Column(Boolean)
    isotope = stringcolumn()
    fit = stringcolumn()
    error_type = stringcolumn(default='SD')
    set_id = Column(Integer)
コード例 #5
0
ファイル: meas.py プロジェクト: stephen-e-cox/pychron
class meas_MonitorTable(Base, NameMixin):
    data = Column(BLOB)

    parameter = stringcolumn()
    criterion = stringcolumn()
    comparator = stringcolumn()
    action = stringcolumn()
    tripped = Column(Boolean)

    analysis_id = foreignkey('meas_AnalysisTable')
コード例 #6
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_InterpretedAgeHistoryTable(Base, BaseMixin):
    create_date = Column(DateTime, default=func.now())
    user = stringcolumn()

    interpreted_age = relationship('proc_InterpretedAgeTable', backref='history', uselist=False)
    identifier = stringcolumn(80)
    selected = relationship('gen_LabTable',
                            backref='selected_interpreted_age',
                            uselist=False)

    group_sets = relationship('proc_InterpretedAgeGroupSetTable', backref='history')
コード例 #7
0
ファイル: meas.py プロジェクト: sgallet/pychron
class meas_AnalysisTable(Base, BaseMixin):
    lab_id = foreignkey('gen_LabTable')
    extraction_id = foreignkey('meas_ExtractionTable')
    measurement_id = foreignkey('meas_MeasurementTable')
    experiment_id = foreignkey('meas_ExperimentTable')
    import_id = foreignkey('gen_ImportTable')
    user_id = foreignkey('gen_UserTable')

    uuid = stringcolumn(40, default=lambda: str(uuid.uuid4()))
    analysis_timestamp = Column(DateTime, default=func.now())
    endtime = Column(Time)
    status = Column(Integer, default=0)
    aliquot = Column(Integer)
    step = stringcolumn(10)
    comment = Column(BLOB)

    tag = Column(String(40), ForeignKey('proc_TagTable.name'), default='ok')

    # meas relationships
    isotopes = relationship('meas_IsotopeTable', backref='analysis')
    peak_center = relationship('meas_PeakCenterTable',
                               backref='analysis',
                               uselist=False)

    # proc relationships
    blanks_histories = relationship('proc_BlanksHistoryTable',
                                    backref='analysis')
    blanks_sets = relationship('proc_BlanksSetTable', backref='analysis')
    interpreted_age_sets = relationship('proc_InterpretedAgeSetTable',
                                        backref='analysis')

    backgrounds_histories = relationship('proc_BackgroundsHistoryTable',
                                         backref='analysis')
    backgrounds_sets = relationship('proc_BackgroundsSetTable',
                                    backref='analysis')

    detector_intercalibration_histories = relationship(
        'proc_DetectorIntercalibrationHistoryTable', backref='analysis')
    detector_intercalibration_sets = relationship(
        'proc_DetectorIntercalibrationSetTable', backref='analysis')

    detector_param_histories = relationship('proc_DetectorParamHistoryTable',
                                            backref='analysis')

    fit_histories = relationship('proc_FitHistoryTable', backref='analysis')

    selected_histories = relationship('proc_SelectedHistoriesTable',
                                      backref='analysis',
                                      uselist=False)
    arar_histories = relationship('proc_ArArHistoryTable', backref='analysis')
    #     figure_analyses = relationship('proc_FigureAnalysisTable', backref='analysis')
    notes = relationship('proc_NotesTable', backref='analysis')
    monitors = relationship('meas_MonitorTable', backref='analysis')
コード例 #8
0
class gen_LabTable(Base, BaseMixin):
    identifier = stringcolumn()
    #    aliquot = Column(Integer)
    sample_id = foreignkey('gen_SampleTable')

    irradiation_id = foreignkey('irrad_PositionTable')
    selected_flux_id = foreignkey('flux_HistoryTable')
    selected_interpreted_age_id = foreignkey('proc_InterpretedAgeHistoryTable')
    note = stringcolumn(140)

    analyses = relationship('meas_AnalysisTable', backref='labnumber')

    figures = relationship('proc_FigureLabTable', backref='labnumber')
コード例 #9
0
class gen_UserTable(Base, NameMixin):
    analyses = relationship('meas_AnalysisTable', backref='user')
    #    project_id = foreignkey('gen_ProjectTable')
    projects = relationship('gen_ProjectTable', secondary=association_table)

    password = stringcolumn(80)
    salt = stringcolumn(80)

    #===========================================================================
    # permissions
    #===========================================================================
    max_allowable_runs = Column(Integer, default=25)
    can_edit_scripts = Column(Boolean, default=False)
コード例 #10
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_BackgroundsTable(Base, BaseMixin):
    history_id = foreignkey('proc_BackgroundsHistoryTable')
    user_value = Column(Float)
    user_error = Column(Float)
    use_set = Column(Boolean)
    isotope = stringcolumn()
    fit = stringcolumn()
    error_type = stringcolumn(default='SD')
    set_id = Column(String(40), ForeignKey('proc_BackgroundsSetTable.set_id'))
    # set_id = Column(Integer)
    analysis_set = relationship('proc_BackgroundsSetTable',
                                primaryjoin='proc_BackgroundsTable.set_id==proc_BackgroundsSetTable.set_id',
                                uselist=True)
コード例 #11
0
ファイル: proc.py プロジェクト: sgallet/pychron
class proc_FitTable(Base, BaseMixin):
    history_id = foreignkey('proc_FitHistoryTable')
    isotope_id = foreignkey('meas_IsotopeTable')

    fit = stringcolumn()
    error_type=stringcolumn(default='SD')
    filter_outliers = Column(Boolean)
    filter_outlier_iterations = Column(Integer, default=1)
    filter_outlier_std_devs = Column(Integer, default=1)


    def make_summary(self):
        f = self.fit[:1].upper()
        s = '{}{}'.format(self.isotope.molecular_weight.name, f)
        return s
コード例 #12
0
class gen_SampleTable(Base, NameMixin):
    material_id = foreignkey('gen_MaterialTable')
    project_id = foreignkey('gen_ProjectTable')
    labnumbers = relationship('gen_LabTable', backref='sample')
    monitors = relationship('flux_MonitorTable', backref='sample')

    igsn = Column(CHAR(9))
    location = stringcolumn(80)
    lat = Column(Float)
    long = Column(Float)
    elevation = Column(Float)
    note = Column(BLOB)

    alt_name = stringcolumn(80)
    lithology = stringcolumn(80)
コード例 #13
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_ActionTable(Base, BaseMixin):
    create_date = Column(DateTime, default=func.now())
    session = stringcolumn()
    user_id = foreignkey('gen_UserTable')
    action = Column(BLOB)
    blank_histories = relationship('proc_BlanksHistoryTable', backref='action')
    fit_histories = relationship('proc_FitHistoryTable', backref='action')
コード例 #14
0
ファイル: proc.py プロジェクト: stephen-e-cox/pychron
class proc_InterpretedAgeGroupHistoryTable(Base, BaseMixin):
    project_id = foreignkey('gen_ProjectTable')
    name = stringcolumn(80)
    create_date = Column(DateTime, default=func.now())

    interpreted_ages = relationship('proc_InterpretedAgeGroupSetTable',
                                    backref='group')
コード例 #15
0
class gen_DetectorTable(Base, NameMixin):
    kind = stringcolumn()
    isotopes = relationship('meas_IsotopeTable', backref='detector')
    deflections = relationship('meas_SpectrometerDeflectionsTable', backref='detector')
    intercalibrations = relationship('proc_DetectorIntercalibrationTable', backref='detector')
    detector_parameters = relationship('proc_DetectorParamTable', backref='detector')
    gains = relationship('meas_GainTable', backref='detector')
コード例 #16
0
ファイル: meas.py プロジェクト: stephen-e-cox/pychron
class meas_GainHistoryTable(Base, UserMixin):
    create_date = Column(DateTime, default=func.now())
    applied_date = Column(DateTime, default=func.now())
    hash = stringcolumn(32)
    gains = relationship('meas_GainTable')
    analyses = relationship('meas_AnalysisTable', backref='gain_history')
    save_type = Column(String(20), default=1)
コード例 #17
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class History(object):
    @declared_attr
    def analysis_id(self):
        return foreignkey('meas_AnalysisTable')

    create_date = Column(DateTime, default=func.now())
    user = stringcolumn()
コード例 #18
0
ファイル: gen.py プロジェクト: stephen-e-cox/pychron
class gen_SensitivityTable(Base, BaseMixin):
    mass_spectrometer_id = foreignkey('gen_MassSpectrometerTable')
    sensitivity = Column(Float(32))
    create_date = Column(DateTime, default=func.now())
    user = stringcolumn()
    note = Column(BLOB)

    extractions = relationship('meas_ExtractionTable', backref='sensitivity')
コード例 #19
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_DataReductionTagTable(Base, BaseMixin):
    name = stringcolumn(140)
    create_date = Column(TIMESTAMP, default=func.now())
    comment = Column(BLOB)
    user_id = foreignkey('gen_UserTable')

    analyses = relationship('proc_DataReductionTagSetTable', backref='tag')
    analysis = relationship('meas_AnalysisTable', backref='data_reduction_tag')
コード例 #20
0
ファイル: proc.py プロジェクト: sgallet/pychron
class proc_InterpretedAgeTable(Base, BaseMixin):
    history_id = foreignkey('proc_InterpretedAgeHistoryTable')
    age_kind = stringcolumn(32)
    age = Column(Float)
    age_err = Column(Float)
    wtd_kca = Column(Float)
    wtd_kca_err = Column(Float)
    mswd = Column(Float)
    sets = relationship('proc_InterpretedAgeSetTable', backref='analyses')
コード例 #21
0
class flux_HistoryTable(Base, BaseMixin):
    irradiation_position_id = foreignkey('irrad_PositionTable')
    note = Column(BLOB)
    create_date = Column(DateTime, default=func.now())
    source = stringcolumn(140)
    selected = relationship('gen_LabTable',
                            backref='selected_flux_history',
                            uselist=False)
    flux = relationship('flux_FluxTable', backref='history', uselist=False)
コード例 #22
0
ファイル: gen.py プロジェクト: stephen-e-cox/pychron
class gen_UserTable(Base, NameMixin):
    analyses = relationship('meas_AnalysisTable', backref='user')
    dr_tags = relationship('proc_DataReductionTagTable', backref='user')
    gain_histories = relationship('meas_GainHistoryTable', backref='user')
    #    project_id = foreignkey('gen_ProjectTable')

    password = stringcolumn(80)
    salt = stringcolumn(80)

    email = stringcolumn(140)
    affiliation = stringcolumn(140)
    category = Column(Integer, default=0)

    # ===========================================================================
    # permissions
    # ===========================================================================
    max_allowable_runs = Column(Integer, default=25)
    can_edit_scripts = Column(Boolean, default=False)
コード例 #23
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_FigureTable(Base, NameMixin):
    create_date = Column(DateTime, default=func.now())
    user = stringcolumn()
    project_id = foreignkey('gen_ProjectTable')

    labnumbers = relationship('proc_FigureLabTable', backref='figure')
    analyses = relationship('proc_FigureAnalysisTable', backref='figure')
    preference = relationship('proc_FigurePrefTable', backref='figure',
                              uselist=False)
コード例 #24
0
ファイル: meas.py プロジェクト: sgallet/pychron
class meas_IsotopeTable(Base, BaseMixin):
    molecular_weight_id = foreignkey('gen_MolecularWeightTable')
    analysis_id = foreignkey('meas_AnalysisTable')
    detector_id = foreignkey('gen_DetectorTable')
    kind = stringcolumn()

    signal = relationship('meas_SignalTable', backref='isotope', uselist=False)

    fits = relationship('proc_FitTable', backref='isotope')
    results = relationship('proc_IsotopeResultsTable', backref='isotope')
コード例 #25
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_TagTable(Base):
    __tablename__ = 'proc_TagTable'
    name = Column(String(40), primary_key=True)
    create_date = Column(DateTime, default=func.now())
    user = stringcolumn()

    omit_ideo = Column(Boolean)
    omit_spec = Column(Boolean)
    omit_iso = Column(Boolean)
    omit_series = Column(Boolean)

    analyses = relationship('meas_AnalysisTable', backref='tag_item')
コード例 #26
0
ファイル: proc.py プロジェクト: stephen-e-cox/pychron
class proc_BlanksTable(Base, BaseMixin):
    history_id = foreignkey('proc_BlanksHistoryTable')
    user_value = Column(Float)
    user_error = Column(Float)
    use_set = Column(Boolean)
    isotope = stringcolumn()

    fit = stringcolumn()
    error_type = stringcolumn(default='SD')

    set_id = Column(String(40), ForeignKey('proc_BlanksSetTable.set_id'))
    # set_id = Column(Integer, ForeignKey('proc_BlanksSetTable.set_id'))
    # set_id = Column(Integer)
    # set_id = foreignkey('proc_BlanksSetTable')
    preceding_id = foreignkey('meas_AnalysisTable')

    analysis_set = relationship(
        'proc_BlanksSetTable',
        primaryjoin='proc_BlanksTable.set_id==proc_BlanksSetTable.set_id',
        backref='blanks',
        uselist=True)

    # analysis_set = relationship('proc_BlanksSetTable')
    value_set = relationship('proc_BlanksSetValueTable', backref='blank')

    def make_summary(self):
        s = 'Pr'
        f = self.fit
        if f:
            if not f in INTERPOLATE_TYPES:
                f = f[:1].upper()

            s = '{}{}'.format(self.isotope, f)

        if self.preceding_id:
            p = self.preceding_analysis
            rid = make_runid(p.labnumber.identifier, p.aliquot, p.step)
            s = '{} ({})'.format(s, rid)

        return s
コード例 #27
0
ファイル: meas.py プロジェクト: stephen-e-cox/pychron
class meas_ExtractionTable(Base, BaseMixin):
    # extract_value = deferred(Column(Float))
    # extract_duration = deferred(Column(Float))
    # cleanup_duration = deferred(Column(Float))

    # extract_units = deferred(stringcolumn(5))

    extract_value = Column(Float)
    extract_duration = Column(Float)
    cleanup_duration = Column(Float)

    extract_units = stringcolumn(5)

    weight = deferred(Column(Float))
    sensitivity_multiplier = deferred(Column(Float))
    is_degas = deferred(Column(Boolean))

    beam_diameter = Column(Float)
    pattern = stringcolumn(100)
    ramp_rate = Column(Float)
    ramp_duration = Column(Float)

    mask_position = deferred(Column(Float))
    mask_name = deferred(stringcolumn(100))
    attenuator = deferred(Column(Float))
    reprate = deferred(Column(Float))
    response_blob = deferred(Column(BLOB))
    output_blob = deferred(Column(BLOB))

    sensitivity_id = foreignkey('gen_SensitivityTable')
    extract_device_id = foreignkey('gen_ExtractionDeviceTable')
    script_id = foreignkey('meas_ScriptTable')
    experiment_blob_id = foreignkey('meas_ScriptTable')
    image_id = foreignkey('med_ImageTable')

    analysis = relationship('meas_AnalysisTable',
                            uselist=False,
                            backref='extraction')
    positions = relationship('meas_PositionTable', backref='extraction')
    snapshots = relationship('med_SnapshotTable', backref='extraction')
コード例 #28
0
ファイル: gen.py プロジェクト: stephen-e-cox/pychron
class gen_SampleTable(Base, NameMixin):
    material_id = foreignkey('gen_MaterialTable')
    project_id = foreignkey('gen_ProjectTable')
    labnumbers = relationship('gen_LabTable', backref='sample')
    monitors = relationship('flux_MonitorTable', backref='sample')
    images = relationship('med_SampleImageTable', backref='sample')

    igsn = Column(CHAR(9))
    location = stringcolumn(80)
    lat = Column(Float)
    long = Column(Float)
    elevation = Column(Float)
    note = Column(BLOB)

    alt_name = stringcolumn(80)
    lithology = stringcolumn(80)
    environment = stringcolumn(140)
    rock_type = stringcolumn(80)

    sio2 = Column(Float(32))
    na2o = Column(Float(32))
    k2o = Column(Float(32))
コード例 #29
0
ファイル: proc.py プロジェクト: waffle-iron/pychron
class proc_InterpretedAgeTable(Base, BaseMixin):
    history_id = foreignkey('proc_InterpretedAgeHistoryTable')
    age_kind = stringcolumn(32)
    kca_kind = stringcolumn(32)

    age = Column(Float)
    age_err = Column(Float)
    display_age_units = stringcolumn(2)

    kca = Column(Float)
    kca_err = Column(Float)
    # wtd_kca = Column(Float)
    # wtd_kca_err = Column(Float)

    # arith_kca = Column(Float)
    # arith_kca_err = Column(Float)
    mswd = Column(Float)

    age_error_kind = stringcolumn(80)
    include_j_error_in_mean = Column(Boolean)
    include_j_error_in_plateau = Column(Boolean)
    include_j_error_in_individual_analyses = Column(Boolean)

    sets = relationship('proc_InterpretedAgeSetTable', backref='analyses')
コード例 #30
0
class proc_TagTable(Base):
    __tablename__ = 'proc_TagTable'
    name = Column(String(40), primary_key=True)
    create_date = Column(DateTime, default=func.now())
    user = stringcolumn()

    omit_ideo = Column(Boolean)
    omit_spec = Column(Boolean)
    omit_iso = Column(Boolean)
    omit_series = Column(Boolean)

    analyses = relationship('meas_AnalysisTable', backref='tag_item')

    def to_dict(self):
        return {k: getattr(self, k) for k in ('name', 'omit_ideo', 'omit_series',
                                              'omit_spec', 'omit_iso')}