Commit a57d2124 authored by Andrea Giannetti's avatar Andrea Giannetti
Browse files

Updated DB keys and upsert conditions.

parent cd53f3cc
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ def populate_model_table(config_mdl: dict,
    upsert(
        table_object=ModelPars,
        row_dict=model_pars_dict,
        conflict_keys=[ModelPars.fits_cube_name],
        conflict_keys=[ModelPars.fits_cube_name, ModelPars.run_id],
        engine=engine
    )

@@ -157,7 +157,8 @@ def populate_species_and_partner_table(config_lines: dict,
            row_dict=species_partner_dict,
            conflict_keys=[SpeciesAndPartners.zipped_grid_name,
                           SpeciesAndPartners.species_to_include,
                           SpeciesAndPartners.collision_partner],
                           SpeciesAndPartners.collision_partner,
                           SpeciesAndPartners.run_id],
            engine=engine
        )

@@ -184,7 +185,7 @@ def populate_line_table(config_lines: dict,
    upsert(
        table_object=LinePars,
        row_dict=line_pars_dict,
        conflict_keys=[LinePars.zipped_grid_name],
        conflict_keys=[LinePars.zipped_grid_name, LinePars.run_id],
        engine=engine
    )

+6 −3
Original line number Diff line number Diff line
@@ -52,7 +52,8 @@ def populate_mom_zero_table(config_prs: dict,
    upsert(
        table_object=MomentZeroMaps,
        row_dict=moment_zero_dict,
        conflict_keys=[MomentZeroMaps.mom_zero_name],
        conflict_keys=[MomentZeroMaps.mom_zero_name,
                       MomentZeroMaps.run_id],
        engine=engine
    )

@@ -91,7 +92,8 @@ def populate_line_ratios_table(config_prs: dict,
    upsert(
        table_object=RatioMaps,
        row_dict=line_ratio_dict,
        conflict_keys=[RatioMaps.ratio_map_name],
        conflict_keys=[RatioMaps.ratio_map_name,
                       RatioMaps.run_id],
        engine=engine
    )

@@ -241,4 +243,5 @@ def main(cube_fits_list: List[str],
if __name__ == '__main__':
    main(cube_fits_list=['test_cube.fits', 'test_cube.fits'],
         mom0_out_cube1='test_cube_mom0.fits',
         mom0_out_cube2='test_cube_mom0_1.fits')
         mom0_out_cube2='test_cube_mom0_1.fits',
         run_id='test_run')
+36 −13
Original line number Diff line number Diff line
@@ -5,7 +5,8 @@ from sqlalchemy import (Column,
                        Integer,
                        String,
                        Float,
                        DateTime)
                        DateTime,
                        ForeignKeyConstraint)
from assets.commons import (get_pg_engine,
                            setup_logger)
from sqlalchemy.orm import declarative_base
@@ -46,7 +47,7 @@ class GridPars(Base):
    grid_shape_3 = Column(Float)
    grid_refpix_3 = Column(Float)
    created_on = Column(DateTime)
    run_id = Column(String)
    run_id = Column(String, primary_key=True)


class LinePars(Base):
@@ -54,7 +55,7 @@ class LinePars(Base):
    zipped_grid_name = Column(String(150), primary_key=True)
    lines_mode = Column(String(20))
    created_on = Column(DateTime)
    run_id = Column(String)
    run_id = Column(String, primary_key=True)


class SpeciesAndPartners(Base):
@@ -65,12 +66,18 @@ class SpeciesAndPartners(Base):
    collision_partner = Column(String(100), primary_key=True)
    molecular_abundance_collision_partner = Column(Float)
    created_on = Column(DateTime)
    run_id = Column(String)
    run_id = Column(String, primary_key=True)


class ModelPars(Base):
    __tablename__ = "model_parameters"
    zipped_grid_name = Column(String(150), ForeignKey('grid_parameters.zipped_grid_name'), nullable=False)
    __table_args__ = (
        ForeignKeyConstraint(
            ('zipped_grid_name', 'run_id'),
            ['grid_parameters.zipped_grid_name', 'grid_parameters.run_id']
        ),
    )
    zipped_grid_name = Column(String(150), nullable=False)
    fits_cube_name = Column(String(150), primary_key=True)
    mom_zero_name = relationship("MomentZeroMaps", cascade="all, delete-orphan")
    nphotons = Column(Float)
@@ -85,32 +92,48 @@ class ModelPars(Base):
    nchannels = Column(Integer)
    npix = Column(Integer)
    created_on = Column(DateTime)
    run_id = Column(String)
    run_id = Column(String, primary_key=True)


class MomentZeroMaps(Base):
    __tablename__ = "moment_zero_maps"
    __table_args__ = (
        ForeignKeyConstraint(
            ('fits_cube_name', 'run_id'),
            ['model_parameters.fits_cube_name', 'model_parameters.run_id']
        ),
    )
    mom_zero_name = Column(String(150), primary_key=True)
    fits_cube_name = Column(String(150), ForeignKey('model_parameters.fits_cube_name'), nullable=False)
    fits_cube_name = Column(String(150), nullable=False)
    integration_limit_low = Column(Float)
    integration_limit_high = Column(Float)
    aggregated_moment_zero = Column(Float)
    aggregation_function = Column(String(20))
    created_on = Column(DateTime)
    run_id = Column(String)
    run_id = Column(String, primary_key=True)


class RatioMaps(Base):
    __tablename__ = "ratio_maps"
    __table_args__ = (
        ForeignKeyConstraint(
            ('mom_zero_name_1', 'run_id'),
            ['moment_zero_maps.mom_zero_name', 'moment_zero_maps.run_id'],
        ),
        ForeignKeyConstraint(
            ('mom_zero_name_2', 'run_id'),
            ['moment_zero_maps.mom_zero_name', 'moment_zero_maps.run_id'],
        ),
    )
    ratio_map_name = Column(String(150), primary_key=True)
    mom_zero_name_1 = Column(String(150), ForeignKey('moment_zero_maps.mom_zero_name'), nullable=False)
    mom_zero_name_2 = Column(String(150), ForeignKey('moment_zero_maps.mom_zero_name'), nullable=False)
    mom_zero_map_1 = relationship("MomentZeroMaps", foreign_keys=mom_zero_name_1)
    mom_zero_map_2 = relationship("MomentZeroMaps", foreign_keys=mom_zero_name_2)
    mom_zero_name_1 = Column(String(150), nullable=False)
    mom_zero_name_2 = Column(String(150), nullable=False)
    aggregated_ratio = Column(Float)
    aggregation_function = Column(String(20))
    created_on = Column(DateTime)
    run_id = Column(String)
    run_id = Column(String, primary_key=True)
    mom_zero_map_1 = relationship("MomentZeroMaps", foreign_keys=[mom_zero_name_1, run_id])
    mom_zero_map_2 = relationship("MomentZeroMaps", foreign_keys=[mom_zero_name_2, run_id])


Base.metadata.create_all(engine)
+1 −1
Original line number Diff line number Diff line
@@ -354,7 +354,7 @@ def populate_grid_table(config: dict,
    upsert(
        table_object=GridPars,
        row_dict=remapped_row,
        conflict_keys=[GridPars.zipped_grid_name],
        conflict_keys=[GridPars.zipped_grid_name, GridPars.run_id],
        engine=engine
    )
    return output_filename
+3 −3

File changed.

Contains only whitespace changes.