Skip to content
Open
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
242 changes: 242 additions & 0 deletions mapcat/alembic/versions/b809eded6421_add_planet_map_tables.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
"""add planet map tables

Revision ID: b809eded6421
Revises: 0762b3c7694d
Create Date: 2026-10-07 11:21:13.132297

"""
from collections.abc import Sequence

import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision: str = 'b809eded6421'
down_revision: str | None = '0762b3c7694d'
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
# ------------------------------------------------------------------
# planet_map
# ------------------------------------------------------------------
op.create_table(
"planet_map",
sa.Column("obs_id", sa.String(), nullable=False),
sa.Column("telescope", sa.String(), nullable=False),
sa.Column("freq_channel", sa.String(), nullable=False),
sa.Column("wafer", sa.String(), nullable=False),
sa.Column("source", sa.String(), nullable=False),

sa.Column("ctime", sa.DateTime(), nullable=False),

sa.Column("hit_path", sa.String(), nullable=True),
sa.Column("map_path", sa.String(), nullable=True),
sa.Column("weight_path", sa.String(), nullable=True),
sa.Column("weighted_map_path", sa.String(), nullable=True),

sa.Column("elevation", sa.Float(), nullable=True),
sa.Column("duration", sa.Float(), nullable=True),
sa.Column("azimuth", sa.Float(), nullable=True),

sa.Column("pwv", sa.Float(), nullable=True),
sa.Column("pwv_std", sa.Float(), nullable=True),
sa.Column("pwv_p2p", sa.Float(), nullable=True),

sa.Column("pwv_apex", sa.Float(), nullable=True),
sa.Column("pwv_apex_std", sa.Float(), nullable=True),
sa.Column("pwv_apex_p2p", sa.Float(), nullable=True),

sa.Column("f_hwp", sa.Float(), nullable=True),
sa.Column("roll_angle", sa.Float(), nullable=True),
sa.Column("scan_speed", sa.Float(), nullable=True),
sa.Column("scan_acc", sa.Float(), nullable=True),

sa.Column("sun_distance", sa.Float(), nullable=True),
sa.Column("moon_distance", sa.Float(), nullable=True),

sa.Column("wind_speed", sa.Float(), nullable=True),
sa.Column("wind_direction", sa.Float(), nullable=True),
sa.Column("ambient_temperature", sa.Float(), nullable=True),
sa.Column("uv", sa.Float(), nullable=True),

sa.Column(
"detnum_before_fitselection",
sa.Integer(),
nullable=True,
),
sa.Column(
"total_detnum",
sa.Integer(),
nullable=True,
),
sa.Column(
"recenter",
sa.Boolean(),
nullable=True,
),

sa.Column("yc", sa.Float(), nullable=True),
sa.Column("xc", sa.Float(), nullable=True),

sa.Column(
"Tmap_variance",
sa.Float(),
nullable=True,
),
sa.Column(
"Qmap_variance",
sa.Float(),
nullable=True,
),
sa.Column(
"Umap_variance",
sa.Float(),
nullable=True,
),

sa.Column(
"proc",
sa.JSON(),
nullable=True,
),
sa.Column(
"detnum",
sa.JSON(),
nullable=True,
),
sa.Column(
"detid",
sa.JSON(),
nullable=True,
),

sa.PrimaryKeyConstraint(
"obs_id",
"telescope",
"freq_channel",
"wafer",
"source",
),
)

# ------------------------------------------------------------------
# planet_map_fits
# ------------------------------------------------------------------
op.create_table(
"planet_map_fits",
sa.Column("obs_id", sa.String(), nullable=False),
sa.Column("telescope", sa.String(), nullable=False),
sa.Column("freq_channel", sa.String(), nullable=False),
sa.Column("wafer", sa.String(), nullable=False),
sa.Column("source", sa.String(), nullable=False),

# Main-beam fit result (T map)
sa.Column("peak", sa.Float(), nullable=True),
sa.Column("amplitude", sa.Float(), nullable=True),
sa.Column("xo", sa.Float(), nullable=True),
sa.Column("yo", sa.Float(), nullable=True),
sa.Column("sigmax", sa.Float(), nullable=True),
sa.Column("sigmay", sa.Float(), nullable=True),
sa.Column("theta", sa.Float(), nullable=True),
sa.Column("redchit", sa.Float(), nullable=True),

# Leakage-beam fit result (Q map)
sa.Column("mq", sa.Float(), nullable=True),
sa.Column("d0q", sa.Float(), nullable=True),
sa.Column("d1q", sa.Float(), nullable=True),
sa.Column("sigmaq", sa.Float(), nullable=True),
sa.Column("redchiq", sa.Float(), nullable=True),

# Leakage-beam fit result (U map)
sa.Column("mu", sa.Float(), nullable=True),
sa.Column("d0u", sa.Float(), nullable=True),
sa.Column("d1u", sa.Float(), nullable=True),
sa.Column("sigmau", sa.Float(), nullable=True),
sa.Column("redchiu", sa.Float(), nullable=True),

sa.ForeignKeyConstraint(
[
"obs_id",
"telescope",
"freq_channel",
"wafer",
"source",
],
[
"planet_map.obs_id",
"planet_map.telescope",
"planet_map.freq_channel",
"planet_map.wafer",
"planet_map.source",
],
ondelete="CASCADE",
),

sa.PrimaryKeyConstraint(
"obs_id",
"telescope",
"freq_channel",
"wafer",
"source",
),
)

# ------------------------------------------------------------------
# planet_todfit
# ------------------------------------------------------------------
op.create_table(
"planet_todfit",
sa.Column("obs_id", sa.String(), nullable=False),
sa.Column("telescope", sa.String(), nullable=False),
sa.Column("freq_channel", sa.String(), nullable=False),
sa.Column("wafer", sa.String(), nullable=False),
sa.Column("source", sa.String(), nullable=False),
sa.Column("detid", sa.String(), nullable=False),

sa.Column("ctime", sa.DateTime(), nullable=False),

sa.Column("amplitude", sa.Float(), nullable=True),
sa.Column("xo", sa.Float(), nullable=True),
sa.Column("yo", sa.Float(), nullable=True),
sa.Column("sigmax", sa.Float(), nullable=True),
sa.Column("sigmay", sa.Float(), nullable=True),
sa.Column("theta", sa.Float(), nullable=True),

sa.Column("defla", sa.Float(), nullable=True),
sa.Column("deflp", sa.Float(), nullable=True),

sa.Column("amplitude_err", sa.Float(), nullable=True),
sa.Column("xo_err", sa.Float(), nullable=True),
sa.Column("yo_err", sa.Float(), nullable=True),
sa.Column("sigmax_err", sa.Float(), nullable=True),
sa.Column("sigmay_err", sa.Float(), nullable=True),
sa.Column("theta_err", sa.Float(), nullable=True),

sa.Column("defla_err", sa.Float(), nullable=True),
sa.Column("deflp_err", sa.Float(), nullable=True),

sa.Column("chisq", sa.Float(), nullable=True),
sa.Column("dof", sa.Integer(), nullable=True),

sa.Column("xi", sa.Float(), nullable=True),
sa.Column("eta", sa.Float(), nullable=True),
sa.Column("gamma", sa.Float(), nullable=True),

sa.PrimaryKeyConstraint(
"obs_id",
"telescope",
"freq_channel",
"wafer",
"source",
"detid",
),
)



def downgrade() -> None:
op.drop_table("planet_map_fits")
op.drop_table("planet_todfit")
op.drop_table("planet_map")
8 changes: 8 additions & 0 deletions mapcat/database/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from .depth_one_coadd import DepthOneCoaddTable
from .depth_one_map import DepthOneMapTable
from .pipeline_information import PipelineInformationTable
from .planet_map import PlanetMapFitTable, PlanetMapTable
from .planet_todfit import PlanetTodFitTable
from .pointing_residual import PointingResidualTable
from .sky_coverage import SkyCoverageTable
from .time_domain_processing import TimeDomainProcessingTable
Expand All @@ -18,6 +20,9 @@
"DepthOneCoaddTable",
"DepthOneMapTable",
"PipelineInformationTable",
"PlanetMapFitTable",
"PlanetMapTable",
"PlanetTodFitTable",
"PointingResidualTable",
"SkyCoverageTable",
"TODDepthOneTable",
Expand All @@ -34,4 +39,7 @@
TODDepthOneTable,
PipelineInformationTable,
SkyCoverageTable,
PlanetMapTable,
PlanetMapFitTable,
PlanetTodFitTable,
]
Loading
Loading