1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from sqlalchemy import Column, Integer, Float, ForeignKeyConstraint
- from app.database import Base
- from app.models import FluxCdInputData
- class FluxCdOutputData(Base):
- """
- 通量镉预测模型输出数据模型
- @param {int} id - 主键ID(自增)
- @param {int} farmland_id - 区域农业用地矢量点编号(关联Farmland_data表)
- @param {int} sample_id - 采样点ID(关联Farmland_data表)
- @param {float} in_cd - Cd输入总通量(g/ha/a)
- @param {float} out_cd - Cd输出总通量(g/ha/a)
- @param {float} net_cd - Cd净通量(g/ha/a)
- @param {float} end_cd - 当年Cd浓度(mg/kg)
- """
- __tablename__ = 'FluxCd_output_data'
- id = Column('ID', Integer, primary_key=True, autoincrement=True)
- farmland_id = Column('Farmland_ID', Integer)
- sample_id = Column('Sample_ID', Integer)
- in_cd = Column('In_Cd', Float, nullable=True)
- out_cd = Column('Out_Cd', Float, nullable=True)
- net_cd = Column('Net_Cd', Float, nullable=True)
- end_cd = Column('End_Cd', Float, nullable=True)
- # 定义复合外键,关联到Farmland_data表
- __table_args__ = (
- ForeignKeyConstraint(
- ['Farmland_ID', 'Sample_ID'],
- ['Farmland_data.Farmland_ID', 'Farmland_data.Sample_ID']
- ),
- {'comment': '通量镉预测模型输出数据'}
- )
- def calculate_fluxes(self, input_data: FluxCdInputData):
- """根据输入数据计算通量"""
- self.in_cd = input_data.input_flux()
- self.out_cd = input_data.output_flux() # 使用输出通量方法
- self.net_cd = self.in_cd - self.out_cd
|