Skip to content

aimbat.cli

Modules:

Name Description
common

Common parameters and functions for the AIMBAT CLI.

data

Manage seismogram files in an AIMBAT project.

event

View and manage events in the AIMBAT project.

iccs

ICCS processing tools.

project

Manage AIMBAT projects.

seismogram

View and manage seismograms in the AIMBAT project.

snapshot

View and manage snapshots.

station

View and manage stations.

utils

Utilities for AIMBAT.

common

Common parameters and functions for the AIMBAT CLI.

Classes:

Name Description
GlobalParameters
TableParameters

Functions:

Name Description
simple_exception

Decorator to handle exceptions and print them to the console.

GlobalParameters dataclass

Attributes:

Name Type Description
debug bool

Run in debugging mode.

use_qt bool

Use pyqtgraph instead of matplotlib for plots (where applicable).

Source code in src/aimbat/cli/common.py
@Parameter(name="*")
@dataclass
class GlobalParameters:
    debug: bool = False
    "Run in debugging mode."

    use_qt: bool = False
    "Use pyqtgraph instead of matplotlib for plots (where applicable)."

    def __post_init__(self) -> None:
        if self.debug:
            settings.debug = True

debug class-attribute instance-attribute

debug: bool = False

Run in debugging mode.

use_qt class-attribute instance-attribute

use_qt: bool = False

Use pyqtgraph instead of matplotlib for plots (where applicable).

TableParameters dataclass

Attributes:

Name Type Description
short bool

Shorten UUIDs and format data.

Source code in src/aimbat/cli/common.py
@Parameter(name="*")
@dataclass
class TableParameters:
    short: bool = True
    "Shorten UUIDs and format data."

short class-attribute instance-attribute

short: bool = True

Shorten UUIDs and format data.

simple_exception

simple_exception(func: F) -> F

Decorator to handle exceptions and print them to the console.

Using this decorator prints only the exception to the console without traceback, and then exits. In debugging mode this decorator returns the callable unchanged.

Source code in src/aimbat/cli/common.py
def simple_exception[F: Callable[..., Any]](func: F) -> F:
    """Decorator to handle exceptions and print them to the console.

    Using this decorator prints only the exception to the console without
    traceback, and then exits. In debugging mode this decorator returns the
    callable unchanged.
    """
    from functools import wraps
    from rich.console import Console
    from rich.panel import Panel
    import sys

    @wraps(func)
    def wrapper(*args: Any, **kwargs: Any) -> Any:
        if settings.debug:
            return func(*args, **kwargs)
        try:
            return func(*args, **kwargs)
        except Exception as e:
            console = Console()
            panel = Panel(
                f"{e}",
                title="Error",
                title_align="left",
                border_style="red",
                expand=True,
            )
            console.print(panel)
            sys.exit(1)

    return wrapper  # type: ignore

data

Manage seismogram files in an AIMBAT project.

Functions:

Name Description
cli_data_add

Add or update data files in the AIMBAT project.

cli_data_dump

Dump the contents of the AIMBAT data table to json.

cli_data_list

Print information on the data stored in AIMBAT.

cli_data_add

cli_data_add(
    seismogram_files: Annotated[
        list[Path],
        Parameter(
            name=files,
            consume_multiple=True,
            validator=Path(exists=True),
        ),
    ],
    *,
    filetype: DataType = SAC,
    show_progress_bar: Annotated[
        bool, Parameter(name=progress)
    ] = True,
    global_parameters: GlobalParameters | None = None
) -> None

Add or update data files in the AIMBAT project.

Parameters:

Name Type Description Default
seismogram_files Annotated[list[Path], Parameter(name=files, consume_multiple=True, validator=Path(exists=True))]

Seismogram files to be added.

required
filetype DataType

Specify type of seismogram file.

SAC
show_progress_bar Annotated[bool, Parameter(name=progress)]

Display progress bar.

True
Source code in src/aimbat/cli/data.py
@app.command(name="add")
def cli_data_add(
    seismogram_files: Annotated[
        list[Path],
        Parameter(
            name="files", consume_multiple=True, validator=validators.Path(exists=True)
        ),
    ],
    *,
    filetype: DataType = DataType.SAC,
    show_progress_bar: Annotated[bool, Parameter(name="progress")] = True,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Add or update data files in the AIMBAT project.

    Parameters:
        seismogram_files: Seismogram files to be added.
        filetype: Specify type of seismogram file.
        show_progress_bar: Display progress bar.
    """

    global_parameters = global_parameters or GlobalParameters()

    _add_files_to_project(seismogram_files, filetype, show_progress_bar)

cli_data_dump

cli_data_dump(
    *, global_parameters: GlobalParameters | None = None
) -> None

Dump the contents of the AIMBAT data table to json.

Source code in src/aimbat/cli/data.py
@app.command(name="dump")
def cli_data_dump(
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Dump the contents of the AIMBAT data table to json."""

    global_parameters = global_parameters or GlobalParameters()

    _dump_data_table()

cli_data_list

cli_data_list(
    *,
    all_events: Annotated[
        bool, Parameter(name=all)
    ] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Print information on the data stored in AIMBAT.

Parameters:

Name Type Description Default
all_events Annotated[bool, Parameter(name=all)]

Select data for all events.

False
Source code in src/aimbat/cli/data.py
@app.command(name="list")
def cli_data_list(
    *,
    all_events: Annotated[bool, Parameter(name="all")] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Print information on the data stored in AIMBAT.

    Parameters:
        all_events: Select data for all events.
    """

    table_parameters = table_parameters or TableParameters()
    global_parameters = global_parameters or GlobalParameters()

    _print_data_table(table_parameters.short, all_events)

event

View and manage events in the AIMBAT project.

Functions:

Name Description
cli_event_activate

Select the event to be active for Processing.

cli_event_delete

Delete existing event.

cli_event_dump

Dump the contents of the AIMBAT event table to json.

cli_event_list

Print information on the events stored in AIMBAT.

cli_event_parameter_get

Get parameter value for the active event.

cli_event_parameter_set

Set parameter value for the active event.

cli_event_activate

cli_event_activate(
    event_id: Annotated[UUID | str, Parameter(name=id)],
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Select the event to be active for Processing.

Parameters:

Name Type Description Default
event_id Annotated[UUID | str, Parameter(name=id)]

Event ID number.

required
Source code in src/aimbat/cli/event.py
@app.command(name="activate")
def cli_event_activate(
    event_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Select the event to be active for Processing.

    Parameters:
        event_id: Event ID number.
    """

    global_parameters = global_parameters or GlobalParameters()

    _set_active_event_by_id(event_id)

cli_event_delete

cli_event_delete(
    event_id: Annotated[UUID | str, Parameter(name=id)],
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Delete existing event.

Parameters:

Name Type Description Default
event_id Annotated[UUID | str, Parameter(name=id)]

Event ID.

required
Source code in src/aimbat/cli/event.py
@app.command(name="delete")
def cli_event_delete(
    event_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Delete existing event.

    Parameters:
        event_id: Event ID.
    """

    global_parameters = global_parameters or GlobalParameters()

    _delete_event(
        event_id,
    )

cli_event_dump

cli_event_dump(
    *, global_parameters: GlobalParameters | None = None
) -> None

Dump the contents of the AIMBAT event table to json.

Source code in src/aimbat/cli/event.py
@app.command(name="dump")
def cli_event_dump(
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Dump the contents of the AIMBAT event table to json."""

    global_parameters = global_parameters or GlobalParameters()

    _dump_event_table()

cli_event_list

cli_event_list(
    *,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Print information on the events stored in AIMBAT.

Source code in src/aimbat/cli/event.py
@app.command(name="list")
def cli_event_list(
    *,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Print information on the events stored in AIMBAT."""

    table_parameters = table_parameters or TableParameters()
    global_parameters = global_parameters or GlobalParameters()

    _print_event_table(table_parameters.short)

cli_event_parameter_get

cli_event_parameter_get(
    name: EventParameter,
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Get parameter value for the active event.

Parameters:

Name Type Description Default
name EventParameter

Event parameter name.

required
Source code in src/aimbat/cli/event.py
@app.command(name="get")
def cli_event_parameter_get(
    name: EventParameter,
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Get parameter value for the active event.

    Parameters:
        name: Event parameter name.
    """

    global_parameters = global_parameters or GlobalParameters()

    _get_event_parameters(name)

cli_event_parameter_set

cli_event_parameter_set(
    name: EventParameter,
    value: timedelta | str,
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Set parameter value for the active event.

Parameters:

Name Type Description Default
name EventParameter

Event parameter name.

required
value timedelta | str

Event parameter value.

required
Source code in src/aimbat/cli/event.py
@app.command(name="set")
def cli_event_parameter_set(
    name: EventParameter,
    value: timedelta | str,
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Set parameter value for the active event.

    Parameters:
        name: Event parameter name.
        value: Event parameter value.
    """

    global_parameters = global_parameters or GlobalParameters()

    _set_event_parameters(name, value)

iccs

ICCS processing tools.

Launches various processing tools related to ICCS.

Classes:

Name Description
IccsPlotParameters

Functions:

Name Description
cli_iccs_plot_seismograms

Plot the ICCS seismograms of the active event as an image.

cli_iccs_plot_stack

Plot the ICCS stack of the active event.

cli_iccs_run

Run the ICCS algorithm.

cli_iccs_update_min_ccnorm

Pick a new minimum cross-correlation norm for auto-selection.

cli_iccs_update_pick

Pick a new arrival time.

cli_iccs_update_timewindow

Pick a new time window.

IccsPlotParameters dataclass

Attributes:

Name Type Description
all bool

Include all seismograms in the plot, even if not used in stack.

context bool

Plot seismograms with extra context instead of the short tapered ones used for cross-correlation.

Source code in src/aimbat/cli/iccs.py
@Parameter(name="*")
@dataclass
class IccsPlotParameters:
    context: bool = True
    "Plot seismograms with extra context instead of the short tapered ones used for cross-correlation."
    all: bool = False
    "Include all seismograms in the plot, even if not used in stack."

all class-attribute instance-attribute

all: bool = False

Include all seismograms in the plot, even if not used in stack.

context class-attribute instance-attribute

context: bool = True

Plot seismograms with extra context instead of the short tapered ones used for cross-correlation.

cli_iccs_plot_seismograms

cli_iccs_plot_seismograms(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Plot the ICCS seismograms of the active event as an image.

Source code in src/aimbat/cli/iccs.py
@plot.command(name="image")
def cli_iccs_plot_seismograms(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Plot the ICCS seismograms of the active event as an image."""

    iccs_parameters = iccs_parameters or IccsPlotParameters()
    global_parameters = global_parameters or GlobalParameters()

    _plot_seismograms(iccs_parameters.context, iccs_parameters.all)

cli_iccs_plot_stack

cli_iccs_plot_stack(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Plot the ICCS stack of the active event.

Source code in src/aimbat/cli/iccs.py
@plot.command(name="stack")
def cli_iccs_plot_stack(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Plot the ICCS stack of the active event."""

    iccs_parameters = iccs_parameters or IccsPlotParameters()
    global_parameters = global_parameters or GlobalParameters()

    _plot_stack(iccs_parameters.context, iccs_parameters.all)

cli_iccs_run

cli_iccs_run(
    *,
    autoflip: bool = False,
    autoselect: bool = False,
    global_parameters: GlobalParameters | None = None
) -> None

Run the ICCS algorithm.

Parameters:

Name Type Description Default
autoflip bool

Whether to automatically flip seismograms (multiply data by -1).

False
autoselect bool

Whether to automatically de-select seismograms.

False
Source code in src/aimbat/cli/iccs.py
@app.command(name="run")
def cli_iccs_run(
    *,
    autoflip: bool = False,
    autoselect: bool = False,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Run the ICCS algorithm.

    Parameters:
        autoflip: Whether to automatically flip seismograms (multiply data by -1).
        autoselect: Whether to automatically de-select seismograms.
    """

    global_parameters = global_parameters or GlobalParameters()

    _run_iccs(autoflip, autoselect)

cli_iccs_update_min_ccnorm

cli_iccs_update_min_ccnorm(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Pick a new minimum cross-correlation norm for auto-selection.

Source code in src/aimbat/cli/iccs.py
@update.command(name="ccnorm")
def cli_iccs_update_min_ccnorm(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Pick a new minimum cross-correlation norm for auto-selection."""

    iccs_parameters = iccs_parameters or IccsPlotParameters()
    global_parameters = global_parameters or GlobalParameters()

    _update_min_ccnorm(iccs_parameters.context, iccs_parameters.all)

cli_iccs_update_pick

cli_iccs_update_pick(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    use_seismogram_image: Annotated[
        bool, Parameter(name=img)
    ] = False,
    global_parameters: GlobalParameters | None = None
) -> None

Pick a new arrival time.

Parameters:

Name Type Description Default
use_seismogram_image Annotated[bool, Parameter(name=img)]

Use the seismogram image to update pick.

False
Source code in src/aimbat/cli/iccs.py
@update.command(name="pick")
def cli_iccs_update_pick(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    use_seismogram_image: Annotated[bool, Parameter(name="img")] = False,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Pick a new arrival time.

    Parameters:
        use_seismogram_image: Use the seismogram image to update pick.
    """

    iccs_parameters = iccs_parameters or IccsPlotParameters()
    global_parameters = global_parameters or GlobalParameters()

    _update_pick(
        iccs_parameters.context,
        iccs_parameters.all,
        use_seismogram_image,
    )

cli_iccs_update_timewindow

cli_iccs_update_timewindow(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    use_seismogram_image: Annotated[
        bool, Parameter(name=img)
    ] = False,
    global_parameters: GlobalParameters | None = None
) -> None

Pick a new time window.

Parameters:

Name Type Description Default
use_seismogram_image Annotated[bool, Parameter(name=img)]

Use the seismogram image to pick the time window.

False
Source code in src/aimbat/cli/iccs.py
@update.command(name="window")
def cli_iccs_update_timewindow(
    *,
    iccs_parameters: IccsPlotParameters | None = None,
    use_seismogram_image: Annotated[bool, Parameter(name="img")] = False,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Pick a new time window.

    Parameters:
        use_seismogram_image: Use the seismogram image to pick the time window.
    """

    iccs_parameters = iccs_parameters or IccsPlotParameters()
    global_parameters = global_parameters or GlobalParameters()

    _update_timewindow(
        iccs_parameters.context,
        iccs_parameters.all,
        use_seismogram_image,
    )

project

Manage AIMBAT projects.

This command manages projects. By default, the project consists of a file called aimbat.db in the current working directory. All aimbat commands must be executed from the same directory. The location (and name) of the project file may also be specified by setting the AIMBAT_PROJECT environment variable to the desired filename. Alternatively, aimbat can be executed with a database url directly.

Functions:

Name Description
cli_project_create

Create new AIMBAT project.

cli_project_delete

Delete project (note: this does not delete seismogram files).

cli_project_info

Show information on an exisiting project.

cli_project_create

cli_project_create(
    *, global_parameters: GlobalParameters | None = None
) -> None

Create new AIMBAT project.

Source code in src/aimbat/cli/project.py
@app.command(name="create")
def cli_project_create(*, global_parameters: GlobalParameters | None = None) -> None:
    """Create new AIMBAT project."""

    global_parameters = global_parameters or GlobalParameters()

    _create_project()

cli_project_delete

cli_project_delete(
    *, global_parameters: GlobalParameters | None = None
) -> None

Delete project (note: this does not delete seismogram files).

Source code in src/aimbat/cli/project.py
@app.command(name="delete")
def cli_project_delete(*, global_parameters: GlobalParameters | None = None) -> None:
    """Delete project (note: this does *not* delete seismogram files)."""

    global_parameters = global_parameters or GlobalParameters()

    _delete_project()

cli_project_info

cli_project_info(
    *, global_parameters: GlobalParameters | None = None
) -> None

Show information on an exisiting project.

Source code in src/aimbat/cli/project.py
@app.command(name="info")
def cli_project_info(*, global_parameters: GlobalParameters | None = None) -> None:
    """Show information on an exisiting project."""

    global_parameters = global_parameters or GlobalParameters()

    _print_project_info()

seismogram

View and manage seismograms in the AIMBAT project.

Functions:

Name Description
cli_seismogram_delete

Delete existing seismogram.

cli_seismogram_dump

Dump the contents of the AIMBAT seismogram table to json.

cli_seismogram_get

Get the value of a processing parameter.

cli_seismogram_list

Print information on the seismograms in the active event.

cli_seismogram_plot

Plot seismograms for the active event.

cli_seismogram_set

Set value of a processing parameter.

cli_seismogram_delete

cli_seismogram_delete(
    seismogram_id: Annotated[
        UUID | str, Parameter(name=id)
    ],
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Delete existing seismogram.

Parameters:

Name Type Description Default
seismogram_id Annotated[UUID | str, Parameter(name=id)]

Seismogram ID.

required
Source code in src/aimbat/cli/seismogram.py
@app.command(name="delete")
def cli_seismogram_delete(
    seismogram_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Delete existing seismogram.

    Parameters:
        seismogram_id: Seismogram ID.
    """

    global_parameters = global_parameters or GlobalParameters()

    _delete_seismogram(
        seismogram_id=seismogram_id,
    )

cli_seismogram_dump

cli_seismogram_dump(
    *, global_parameters: GlobalParameters | None = None
) -> None

Dump the contents of the AIMBAT seismogram table to json.

Source code in src/aimbat/cli/seismogram.py
@app.command(name="dump")
def cli_seismogram_dump(
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Dump the contents of the AIMBAT seismogram table to json."""

    global_parameters = global_parameters or GlobalParameters()

    _dump_seismogram_table()

cli_seismogram_get

cli_seismogram_get(
    seismogram_id: Annotated[
        UUID | str, Parameter(name=id)
    ],
    name: SeismogramParameter,
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Get the value of a processing parameter.

Parameters:

Name Type Description Default
seismogram_id Annotated[UUID | str, Parameter(name=id)]

Seismogram ID number.

required
name SeismogramParameter

Name of the seismogram parameter.

required
Source code in src/aimbat/cli/seismogram.py
@app.command(name="get")
def cli_seismogram_get(
    seismogram_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    name: SeismogramParameter,
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Get the value of a processing parameter.

    Parameters:
        seismogram_id: Seismogram ID number.
        name: Name of the seismogram parameter.
    """

    global_parameters = global_parameters or GlobalParameters()

    _get_seismogram_parameter(
        seismogram_id=seismogram_id,
        name=name,
    )

cli_seismogram_list

cli_seismogram_list(
    *,
    all_events: Annotated[bool, Parameter(all)] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Print information on the seismograms in the active event.

Parameters:

Name Type Description Default
all_events Annotated[bool, Parameter(all)]

Select seismograms for all events.

False
Source code in src/aimbat/cli/seismogram.py
@app.command(name="list")
def cli_seismogram_list(
    *,
    all_events: Annotated[bool, Parameter("all")] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Print information on the seismograms in the active event.

    Parameters:
        all_events: Select seismograms for all events."""

    table_parameters = table_parameters or TableParameters()
    global_parameters = global_parameters or GlobalParameters()

    _print_seismogram_table(table_parameters.short, all_events)

cli_seismogram_plot

cli_seismogram_plot(
    *, global_parameters: GlobalParameters | None = None
) -> None

Plot seismograms for the active event.

Source code in src/aimbat/cli/seismogram.py
@app.command(name="plot")
def cli_seismogram_plot(*, global_parameters: GlobalParameters | None = None) -> None:
    """Plot seismograms for the active event."""

    global_parameters = global_parameters or GlobalParameters()

    _plot_seismograms(global_parameters.use_qt)

cli_seismogram_set

cli_seismogram_set(
    seismogram_id: Annotated[
        UUID | str, Parameter(name=id)
    ],
    name: SeismogramParameter,
    value: str,
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Set value of a processing parameter.

Parameters:

Name Type Description Default
seismogram_id Annotated[UUID | str, Parameter(name=id)]

Seismogram ID number.

required
name SeismogramParameter

Name of the seismogram parameter.

required
value str

Value of the seismogram parameter.

required
Source code in src/aimbat/cli/seismogram.py
@app.command(name="set")
def cli_seismogram_set(
    seismogram_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    name: SeismogramParameter,
    value: str,
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Set value of a processing parameter.

    Parameters:
        seismogram_id: Seismogram ID number.
        name: Name of the seismogram parameter.
        value: Value of the seismogram parameter.
    """

    global_parameters = global_parameters or GlobalParameters()

    _set_seismogram_parameter(
        seismogram_id=seismogram_id,
        name=name,
        value=value,
    )

snapshot

View and manage snapshots.

Functions:

Name Description
cli_snapshop_delete

Delete existing snapshot.

cli_snapshot_create

Create new snapshot.

cli_snapshot_list

Print information on the snapshots for the active event.

cli_snapshot_rollback

Rollback to snapshot.

cli_snapshop_delete

cli_snapshop_delete(
    snapshot_id: Annotated[UUID | str, Parameter(name=id)],
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Delete existing snapshot.

Parameters:

Name Type Description Default
snapshot_id Annotated[UUID | str, Parameter(name=id)]

Snapshot ID Number.

required
Source code in src/aimbat/cli/snapshot.py
@app.command(name="delete")
def cli_snapshop_delete(
    snapshot_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Delete existing snapshot.

    Parameters:
        snapshot_id: Snapshot ID Number.
    """

    global_parameters = global_parameters or GlobalParameters()

    _delete_snapshot(snapshot_id)

cli_snapshot_create

cli_snapshot_create(
    comment: str | None = None,
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Create new snapshot.

Parameters:

Name Type Description Default
comment str | None

Create snapshot with optional comment.

None
Source code in src/aimbat/cli/snapshot.py
@app.command(name="create")
def cli_snapshot_create(
    comment: str | None = None, *, global_parameters: GlobalParameters | None = None
) -> None:
    """Create new snapshot.

    Parameters:
        comment: Create snapshot with optional comment.
    """

    global_parameters = global_parameters or GlobalParameters()

    _create_snapshot(comment=comment)

cli_snapshot_list

cli_snapshot_list(
    *,
    all_events: Annotated[bool, Parameter(all)] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Print information on the snapshots for the active event.

Parameters:

Name Type Description Default
all_events Annotated[bool, Parameter(all)]

Select snapshots for all events.

False
Source code in src/aimbat/cli/snapshot.py
@app.command(name="list")
def cli_snapshot_list(
    *,
    all_events: Annotated[bool, Parameter("all")] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Print information on the snapshots for the active event.

    Parameters:
        all_events: Select snapshots for all events.
    """

    table_parameters = table_parameters or TableParameters()
    global_parameters = global_parameters or GlobalParameters()

    _print_snapshot_table(table_parameters.short, all_events)

cli_snapshot_rollback

cli_snapshot_rollback(
    snapshot_id: Annotated[UUID | str, Parameter(name=id)],
    *,
    global_paramaters: GlobalParameters | None = None
) -> None

Rollback to snapshot.

Parameters:

Name Type Description Default
snapshot_id Annotated[UUID | str, Parameter(name=id)]

Snapshot ID Number.

required
Source code in src/aimbat/cli/snapshot.py
@app.command(name="rollback")
def cli_snapshot_rollback(
    snapshot_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    *,
    global_paramaters: GlobalParameters | None = None,
) -> None:
    """Rollback to snapshot.

    Parameters:
        snapshot_id: Snapshot ID Number.
    """

    global_paramaters = global_paramaters or GlobalParameters()

    _rollback_to_snapshot(snapshot_id)

station

View and manage stations.

Functions:

Name Description
cli_station_delete

Delete existing station.

cli_station_dump

Dump the contents of the AIMBAT station table to json.

cli_station_list

Print information on the stations used in the active event.

cli_station_delete

cli_station_delete(
    station_id: Annotated[UUID | str, Parameter(name=id)],
    *,
    global_parameters: GlobalParameters | None = None
) -> None

Delete existing station.

Parameters:

Name Type Description Default
station_id Annotated[UUID | str, Parameter(name=id)]

Station ID.

required
Source code in src/aimbat/cli/station.py
@app.command(name="delete")
def cli_station_delete(
    station_id: Annotated[uuid.UUID | str, Parameter(name="id")],
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Delete existing station.

    Parameters:
        station_id: Station ID.
    """

    global_parameters = global_parameters or GlobalParameters()

    _delete_station(station_id=station_id)

cli_station_dump

cli_station_dump(
    *, global_parameters: GlobalParameters | None = None
) -> None

Dump the contents of the AIMBAT station table to json.

Source code in src/aimbat/cli/station.py
@app.command(name="dump")
def cli_station_dump(
    *,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Dump the contents of the AIMBAT station table to json."""

    global_parameters = global_parameters or GlobalParameters()

    _dump_station_table()

cli_station_list

cli_station_list(
    *,
    all_events: Annotated[
        bool, Parameter(name=all)
    ] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None
) -> None

Print information on the stations used in the active event.

Parameters:

Name Type Description Default
all_events Annotated[bool, Parameter(name=all)]

Select stations for all events.

False
Source code in src/aimbat/cli/station.py
@app.command(name="list")
def cli_station_list(
    *,
    all_events: Annotated[bool, Parameter(name="all")] = False,
    table_parameters: TableParameters | None = None,
    global_parameters: GlobalParameters | None = None,
) -> None:
    """Print information on the stations used in the active event.

    Parameters:
        all_events: Select stations for all events.
    """

    table_parameters = table_parameters or TableParameters()
    global_parameters = global_parameters or GlobalParameters()

    _print_station_table(table_parameters.short, all_events)

utils

Utilities for AIMBAT.

Modules:

Name Description
app

Utilities for AIMBAT.

sampledata

Download or delete AIMBAT sample data.

app

Utilities for AIMBAT.

The utils subcommand contains useful tools that are not strictly part of an AIMBAT workflow.

Functions:

Name Description
cli_checkdata

Check if there are any problems with SAC files before adding them to a project.

cli_checkdata

cli_checkdata(
    sacfiles: Annotated[
        list[Path],
        Parameter(name=data, consume_multiple=True),
    ],
    *,
    common: GlobalParameters | None = None
) -> None

Check if there are any problems with SAC files before adding them to a project.

Parameters:

Name Type Description Default
sacfiles Annotated[list[Path], Parameter(name=data, consume_multiple=True)]

One or more SAC files.

required
Source code in src/aimbat/cli/utils/app.py
@app.command(name="checkdata")
def cli_checkdata(
    sacfiles: Annotated[list[Path], Parameter(name="data", consume_multiple=True)],
    *,
    common: GlobalParameters | None = None,
) -> None:
    """Check if there are any problems with SAC files before adding them to a project.

    Parameters:
        sacfiles: One or more SAC files.
    """

    common = common or GlobalParameters()

    _run_checks(sacfiles)

sampledata

Download or delete AIMBAT sample data.

The sampledata subcommand manages an example dataset that can be used for testing or learning how to use AIMBAT.

The sample data source url can be viewed or changed via aimbat default <list/set> sampledata_src. Likewise the sample data destination folder be viewed or changed via aimbat default <list/set> sampledata_dir.

Functions:

Name Description
sampledata_cli_delete

Recursively delete sample data directory.

sampledata_cli_download

Download AIMBAT sample data.

sampledata_cli_delete

sampledata_cli_delete(
    *, global_parameters: GlobalParameters | None = None
) -> None

Recursively delete sample data directory.

Source code in src/aimbat/cli/utils/sampledata.py
@app.command(name="delete")
def sampledata_cli_delete(*, global_parameters: GlobalParameters | None = None) -> None:
    """Recursively delete sample data directory."""

    global_parameters = global_parameters or GlobalParameters()

    _delete_sampledata()

sampledata_cli_download

sampledata_cli_download(
    *,
    force: bool = False,
    global_parameters: GlobalParameters | None = None
) -> None

Download AIMBAT sample data.

Downloads an example dataset to the directory specified in the sampledata_dir AIMBAT default variable.

Parameters:

Name Type Description Default
force bool

Delete the download directory and re-download."

False
Source code in src/aimbat/cli/utils/sampledata.py
@app.command(name="download")
def sampledata_cli_download(
    *, force: bool = False, global_parameters: GlobalParameters | None = None
) -> None:
    """Download AIMBAT sample data.

    Downloads an example dataset to the directory specified in the
    `sampledata_dir` AIMBAT default variable.

    Parameters:
        force: Delete the download directory and re-download."
    """

    global_parameters = global_parameters or GlobalParameters()

    _download_sampledata(force)