Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion alembic/pfsa-db01-gb/alembic/README

This file was deleted.

25 changes: 25 additions & 0 deletions alembic/pfsa-db01-gb/alembic/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generic single-database configuration.

## Basic workflow

Reference: https://alembic.sqlalchemy.org/en/latest/tutorial.html

### Modify code of targetdb


### Run alembic

Create a new revision file.

```bash
alembic -c <config file> revision --autogenerate -m "Add columns"
```

Check the output file under the `versions` directory.

Upgrade to the new revision.

```bash
alembic -c <config file> upgrade head
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""Add columns for photometric errors in the fluxstd table

Revision ID: 99f7f6b4c0d1
Revises: 9c71ca3a4254
Create Date: 2022-10-20 17:27:24.541747

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '99f7f6b4c0d1'
down_revision = '9c71ca3a4254'
branch_labels = None
depends_on = None


def upgrade():
pass


def downgrade():
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""Add columns for photometric errors in the fluxstd table

Revision ID: a63ff2b68f44
Revises: 99f7f6b4c0d1
Create Date: 2022-10-20 17:34:36.681006

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'a63ff2b68f44'
down_revision = '99f7f6b4c0d1'
branch_labels = None
depends_on = None


def upgrade():
pass


def downgrade():
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
"""Add columns for photometric errors in the fluxstd table

Revision ID: c4e16db3e7e1
Revises: a63ff2b68f44
Create Date: 2022-10-20 17:45:27.991776

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'c4e16db3e7e1'
down_revision = 'a63ff2b68f44'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('fluxstd', sa.Column('psf_mag_error_g', sa.Float(), nullable=True, comment='Error in g-band PSF magnitude (AB mag)'))
op.add_column('fluxstd', sa.Column('psf_mag_error_r', sa.Float(), nullable=True, comment='Error in r-band PSF magnitude (AB mag)'))
op.add_column('fluxstd', sa.Column('psf_mag_error_i', sa.Float(), nullable=True, comment='Error in i-band PSF magnitude (AB mag)'))
op.add_column('fluxstd', sa.Column('psf_mag_error_z', sa.Float(), nullable=True, comment='Error in z-band PSF magnitude (AB mag)'))
op.add_column('fluxstd', sa.Column('psf_mag_error_y', sa.Float(), nullable=True, comment='Error in y-band PSF magnitude (AB mag)'))
op.add_column('fluxstd', sa.Column('psf_mag_error_j', sa.Float(), nullable=True, comment='Error in J band PSF magnitude (AB mag)'))
op.add_column('fluxstd', sa.Column('psf_flux_error_g', sa.Float(), nullable=True, comment='Error in g-band PSF flux (nJy)'))
op.add_column('fluxstd', sa.Column('psf_flux_error_r', sa.Float(), nullable=True, comment='Error in r-band PSF flux (nJy)'))
op.add_column('fluxstd', sa.Column('psf_flux_error_i', sa.Float(), nullable=True, comment='Error in i-band PSF flux (nJy)'))
op.add_column('fluxstd', sa.Column('psf_flux_error_z', sa.Float(), nullable=True, comment='Error in z-band PSF flux (nJy)'))
op.add_column('fluxstd', sa.Column('psf_flux_error_y', sa.Float(), nullable=True, comment='Error in y-band PSF flux (nJy)'))
op.add_column('fluxstd', sa.Column('psf_flux_error_j', sa.Float(), nullable=True, comment='Error in J band PSF flux (nJy)'))
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('fluxstd', 'psf_flux_error_j')
op.drop_column('fluxstd', 'psf_flux_error_y')
op.drop_column('fluxstd', 'psf_flux_error_z')
op.drop_column('fluxstd', 'psf_flux_error_i')
op.drop_column('fluxstd', 'psf_flux_error_r')
op.drop_column('fluxstd', 'psf_flux_error_g')
op.drop_column('fluxstd', 'psf_mag_error_j')
op.drop_column('fluxstd', 'psf_mag_error_y')
op.drop_column('fluxstd', 'psf_mag_error_z')
op.drop_column('fluxstd', 'psf_mag_error_i')
op.drop_column('fluxstd', 'psf_mag_error_r')
op.drop_column('fluxstd', 'psf_mag_error_g')
# ### end Alembic commands ###
Binary file not shown.
Binary file not shown.
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@
#
# For an analysis of "install_requires" vs pip's requirements files see:
# https://packaging.python.org/en/latest/requirements.html
install_requires=["sqlalchemy", "pandas", "tabulate"], # Optional
install_requires=["sqlalchemy", "pandas", "tabulate", "toml"], # Optional
#
#
# List additional groups of dependencies here (e.g. development
Expand Down Expand Up @@ -204,6 +204,7 @@
"pfs_targetdb_drop_database=targetdb.cli.pfs_targetdb_database_helpers:main_drop_database",
"pfs_targetdb_create_schema=targetdb.cli.pfs_targetdb_create_schema:main",
"pfs_targetdb_generate_mdtable=targetdb.cli.pfs_targetdb_generate_mdtable:main",
"pfs_targetdb_draw_diagram=targetdb.cli.pfs_targetdb_draw_diagram:main",
],
},
#
Expand Down
1 change: 1 addition & 0 deletions src/targetdb/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python

from .manage import create_schema
from .utils import draw_diagram
from .utils import generate_schema_markdown
83 changes: 83 additions & 0 deletions src/targetdb/cli/pfs_targetdb_draw_diagram.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#!/usr/bin/env python3

import argparse

import logzero
from logzero import logger

from .. import draw_diagram


def get_arguments():
parser = argparse.ArgumentParser(
description="Create the ER diagram of the database in PDF"
)

parser.add_argument(
"conf",
type=str,
default="config.toml",
help="Config file for the script to run. Must be a .toml file (default: config.toml)",
)

parser.add_argument(
"--sc_info_level",
type=str,
default="maximum",
help="SchemaCrawler's info level (default: maximum)",
)
parser.add_argument(
"--sc_log_level",
type=str,
default="SEVERE",
help="SchemaCrawler's log level (default: SEVERE)",
)
parser.add_argument(
"--sc_outdir",
type=str,
default=".",
help="Output directory (default: .)",
)
parser.add_argument(
"--sc_outprefix",
type=str,
default="erdiagram_targetdb",
help="Prefix for the output file (default: erdiagram_targetdb)",
)
parser.add_argument(
"--sc_title",
type=str,
default="PFS Target Database",
help="Title of the output ER diagram (default: PFS Target Database)",
)
parser.add_argument("--debug", action="store_true", help=argparse.SUPPRESS)

args = parser.parse_args()

return args


def main():

args = get_arguments()

if args.debug:
logzero.loglevel(logzero.DEBUG)
else:
logzero.loglevel(logzero.INFO)

logger.info(args)

draw_diagram(
args.conf,
sc_info_level=args.sc_info_level,
sc_log_level=args.sc_log_level,
sc_outdir=args.sc_outdir,
sc_outprefix=args.sc_outprefix,
sc_title=args.sc_title,
logger=logger,
)


if __name__ == "__main__":
main()
42 changes: 40 additions & 2 deletions src/targetdb/models/fluxstd.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3

from sqlalchemy import BigInteger
from sqlalchemy import Boolean
Expand All @@ -13,9 +13,9 @@
from sqlalchemy.orm import backref
from sqlalchemy.orm import relation

# from . import proposal
from . import Base
from . import input_catalog
from . import proposal
from . import target_type


Expand Down Expand Up @@ -74,13 +74,27 @@ class fluxstd(Base):
psf_mag_y = Column(Float, comment="y-band PSF magnitude (AB mag)")
psf_mag_j = Column(Float, comment="J band PSF magnitude (AB mag)")

psf_mag_error_g = Column(Float, comment="Error in g-band PSF magnitude (AB mag)")
psf_mag_error_r = Column(Float, comment="Error in r-band PSF magnitude (AB mag)")
psf_mag_error_i = Column(Float, comment="Error in i-band PSF magnitude (AB mag)")
psf_mag_error_z = Column(Float, comment="Error in z-band PSF magnitude (AB mag)")
psf_mag_error_y = Column(Float, comment="Error in y-band PSF magnitude (AB mag)")
psf_mag_error_j = Column(Float, comment="Error in J band PSF magnitude (AB mag)")

psf_flux_g = Column(Float, comment="g-band PSF flux (nJy)")
psf_flux_r = Column(Float, comment="r-band PSF flux (nJy)")
psf_flux_i = Column(Float, comment="i-band PSF flux (nJy)")
psf_flux_z = Column(Float, comment="z-band PSF flux (nJy)")
psf_flux_y = Column(Float, comment="y-band PSF flux (nJy)")
psf_flux_j = Column(Float, comment="J band PSF flux (nJy)")

psf_flux_error_g = Column(Float, comment="Error in g-band PSF flux (nJy)")
psf_flux_error_r = Column(Float, comment="Error in r-band PSF flux (nJy)")
psf_flux_error_i = Column(Float, comment="Error in i-band PSF flux (nJy)")
psf_flux_error_z = Column(Float, comment="Error in z-band PSF flux (nJy)")
psf_flux_error_y = Column(Float, comment="Error in y-band PSF flux (nJy)")
psf_flux_error_j = Column(Float, comment="Error in J band PSF flux (nJy)")

filter_g = Column(String, comment="g-band filter (g_hsc, g_ps1, g_sdss, etc.)")
filter_r = Column(String, comment="r-band filter (r_hsc, r_ps1, r_sdss, etc.)")
filter_i = Column(String, comment="i-band filter (i_hsc, i_ps1, i_sdss, etc.)")
Expand Down Expand Up @@ -131,12 +145,24 @@ def __init__(
psf_mag_z,
psf_mag_y,
psf_mag_j,
psf_mag_error_g,
psf_mag_error_r,
psf_mag_error_i,
psf_mag_error_z,
psf_mag_error_y,
psf_mag_error_j,
psf_flux_g,
psf_flux_r,
psf_flux_i,
psf_flux_z,
psf_flux_y,
psf_flux_j,
psf_flux_error_g,
psf_flux_error_r,
psf_flux_error_i,
psf_flux_error_z,
psf_flux_error_y,
psf_flux_error_j,
filter_g,
filter_r,
filter_i,
Expand Down Expand Up @@ -170,12 +196,24 @@ def __init__(
self.psf_mag_z = psf_mag_z
self.psf_mag_y = psf_mag_y
self.psf_mag_j = psf_mag_j
self.psf_mag_error_g = psf_mag_error_g
self.psf_mag_error_r = psf_mag_error_r
self.psf_mag_error_i = psf_mag_error_i
self.psf_mag_error_z = psf_mag_error_z
self.psf_mag_error_y = psf_mag_error_y
self.psf_mag_error_j = psf_mag_error_j
self.psf_flux_g = psf_flux_g
self.psf_flux_r = psf_flux_r
self.psf_flux_i = psf_flux_i
self.psf_flux_z = psf_flux_z
self.psf_flux_y = psf_flux_y
self.psf_flux_j = psf_flux_j
self.psf_flux_error_g = psf_flux_error_g
self.psf_flux_error_r = psf_flux_error_r
self.psf_flux_error_i = psf_flux_error_i
self.psf_flux_error_z = psf_flux_error_z
self.psf_flux_error_y = psf_flux_error_y
self.psf_flux_error_j = psf_flux_error_j
self.filter_g = filter_g
self.filter_r = filter_r
self.filter_i = filter_i
Expand Down
Loading