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
7 changes: 7 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,10 @@ ignore = [

[tool.ruff.lint.per-file-ignores]
"src/data/dorado_info.py" = ["E501"]
# Legacy module names that don't follow PEP 8 naming convention
"src/data/AUV.py" = ["N999"]
"src/data/BLFilter.py" = ["N999"]
"src/data/lopcMEP.py" = ["N999"]
"src/data/lopcToNetCDF.py" = ["N999"]
"src/data/process_Dorado389.py" = ["N999"]
"src/data/usblToNetCDF.py" = ["N999"]
Empty file added src/data/__init__.py
Empty file.
64 changes: 10 additions & 54 deletions src/data/align.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,25 @@
__author__ = "Mike McCann"
__copyright__ = "Copyright 2021, Monterey Bay Aquarium Research Institute"

import argparse
import json
import json # noqa: I001
import logging
import os
import re
import sys
import time
from argparse import RawTextHelpFormatter
from datetime import UTC, datetime
from pathlib import Path
from socket import gethostname

import git
import numpy as np
import pandas as pd
from scipy.interpolate import interp1d
import xarray as xr
from logs2netcdfs import (
BASE_PATH,
MISSIONNETCDFS,
SUMMARY_SOURCE,
TIME,
TIME60HZ,
AUV_NetCDF,
)

from common_args import get_standard_lrauv_parser
from logs2netcdfs import AUV_NetCDF, MISSIONNETCDFS, SUMMARY_SOURCE, TIME, TIME60HZ
from nc42netcdfs import BASE_LRAUV_PATH
from scipy.interpolate import interp1d


class InvalidCalFile(Exception):
Expand Down Expand Up @@ -679,6 +672,7 @@ def write_netcdf(self, netcdfs_dir, vehicle: str = "", name: str = "") -> None:
)

def process_command_line(self):
"""Process command line arguments using shared parser infrastructure."""
examples = "Examples:" + "\n\n"
examples += " Align calibrated data for some missions:\n"
examples += " " + sys.argv[0] + " --mission 2020.064.10\n"
Expand All @@ -691,57 +685,19 @@ def process_command_line(self):
+ "202509140809_202509150109.nc4\n"
)

parser = argparse.ArgumentParser(
formatter_class=RawTextHelpFormatter,
# Use shared LRAUV parser since align handles both Dorado and LRAUV
parser = get_standard_lrauv_parser(
description=__doc__,
epilog=examples,
)

parser.add_argument(
"--base_path",
action="store",
default=BASE_PATH,
help=f"Base directory for missionlogs and missionnetcdfs, default: {BASE_PATH}",
)
parser.add_argument(
"--auv_name",
action="store",
default="Dorado389",
help="Dorado389 (default), i2MAP, or Multibeam",
)
parser.add_argument(
"--mission",
action="store",
help="Mission directory, e.g.: 2020.064.10",
)
parser.add_argument(
"--log_file",
action="store",
help=(
"Path to the log file of original LRAUV data, e.g.: "
"brizo/missionlogs/2025/20250903_20250909/"
"20250905T072042/202509050720_202509051653.nc4"
),
)
# Add align-specific arguments
parser.add_argument(
"--plot",
action="store_true",
help="Create intermediate plots to validate data operations.",
)
parser.add_argument(
"-v",
"--verbose",
type=int,
choices=range(3),
action="store",
default=0,
const=1,
nargs="?",
help="verbosity level: "
+ ", ".join(
[f"{i}: {v}" for i, v in enumerate(("WARN", "INFO", "DEBUG"))],
),
)

self.args = parser.parse_args()
self.logger.setLevel(self._log_levels[self.args.verbose])
self.commandline = " ".join(sys.argv)
Expand Down
59 changes: 12 additions & 47 deletions src/data/archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,22 @@
__author__ = "Mike McCann"
__copyright__ = "Copyright 2022, Monterey Bay Aquarium Research Institute"

import argparse
import logging
import logging # noqa: I001
import os
import shutil
import sys
import time
from pathlib import Path

from common_args import DEFAULT_BASE_PATH, get_standard_dorado_parser
from create_products import MISSIONIMAGES, MISSIONODVS
from logs2netcdfs import BASE_PATH, LOG_FILES, MISSIONNETCDFS, AUV_NetCDF
from logs2netcdfs import AUV_NetCDF, LOG_FILES, MISSIONNETCDFS
from nc42netcdfs import BASE_LRAUV_PATH, GROUP
from resample import FREQ

# Define BASE_PATH for backward compatibility
BASE_PATH = DEFAULT_BASE_PATH

LOG_NAME = "processing.log"
AUVCTD_VOL = "/Volumes/AUVCTD"
LRAUV_VOL = "/Volumes/LRAUV"
Expand Down Expand Up @@ -226,33 +229,13 @@ def copy_to_LRAUV(self, log_file: str, freq: str = FREQ) -> None: # noqa: C901,
)

def process_command_line(self):
parser = argparse.ArgumentParser(
formatter_class=argparse.RawTextHelpFormatter,
"""Process command line arguments using shared parser infrastructure."""
# Use shared parser with archive-specific additions
parser = get_standard_dorado_parser(
description=__doc__,
)
parser.add_argument(
"--base_path",
action="store",
default=BASE_PATH,
help="Base directory for missionlogs and missionnetcdfs, default: auv_data",
)
parser.add_argument(
"--auv_name",
action="store",
default="Dorado389",
help="Dorado389 (default), i2map, or Multibeam",
)
parser.add_argument(
"--mission",
action="store",
help="Mission directory, e.g.: 2020.064.10",
)
parser.add_argument(
"--freq",
action="store",
default=FREQ,
help="Resample freq",
)

# Add archive-specific arguments
parser.add_argument(
"--M3",
action="store_true",
Expand All @@ -263,11 +246,6 @@ def process_command_line(self):
action="store_true",
help="Copy reampled netCDF file(s) to appropriate place on AUVCTD",
)
parser.add_argument(
"--clobber",
action="store_true",
help="Remove existing netCDF files before copying to the AUVCTD directory",
)
parser.add_argument(
"--archive_only_products",
action="store_true",
Expand All @@ -278,20 +256,7 @@ def process_command_line(self):
action="store_true",
help="Create products from the resampled netCDF file(s)",
)
parser.add_argument(
"-v",
"--verbose",
type=int,
choices=range(3),
action="store",
default=0,
const=1,
nargs="?",
help="verbosity level: "
+ ", ".join(
[f"{i}: {v}" for i, v in enumerate(("WARN", "INFO", "DEBUG"))],
),
)

self.args = parser.parse_args()
self.logger.setLevel(self._log_levels[self.args.verbose])
self.commandline = " ".join(sys.argv)
Expand Down
58 changes: 11 additions & 47 deletions src/data/calibrate.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,13 @@
__author__ = "Mike McCann"
__copyright__ = "Copyright 2020, Monterey Bay Aquarium Research Institute"

import argparse # noqa: I001
import logging
import logging # noqa: I001
import os
import shlex
import shutil
import subprocess
import sys
import time
from argparse import RawTextHelpFormatter
from collections import OrderedDict
from datetime import UTC, datetime
from pathlib import Path
Expand All @@ -46,16 +44,17 @@
import defusedxml.ElementTree as ET # noqa: N817
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import pyproj
import xarray as xr
from scipy import signal
from scipy.interpolate import interp1d
from seawater import eos80

import pandas as pd
import pyproj
from AUV import monotonic_increasing_time_indices, nudge_positions
from common_args import get_standard_dorado_parser
from hs2_proc import compute_backscatter, hs2_calc_bb, hs2_read_cal_file
from logs2netcdfs import BASE_PATH, MISSIONLOGS, MISSIONNETCDFS, TIME, TIME60HZ, AUV_NetCDF
from scipy import signal
from logs2netcdfs import AUV_NetCDF, MISSIONLOGS, MISSIONNETCDFS, TIME, TIME60HZ
from seawater import eos80

AVG_SALINITY = 33.6 # Typical value for upper 100m of Monterey Bay

Expand Down Expand Up @@ -3282,64 +3281,29 @@ def process_logs(self, vehicle: str = "", name: str = "", process_gps: bool = Tr
return netcdfs_dir

def process_command_line(self):
"""Process command line arguments using shared parser infrastructure."""
examples = "Examples:" + "\n\n"
examples += " Calibrate original data for some missions:\n"
examples += " " + sys.argv[0] + " --mission 2020.064.10\n"
examples += " " + sys.argv[0] + " --auv_name i2map --mission 2020.055.01\n"

parser = argparse.ArgumentParser(
formatter_class=RawTextHelpFormatter,
# Use shared parser with calibrate-specific additions
parser = get_standard_dorado_parser(
description=__doc__,
epilog=examples,
)

parser.add_argument(
"--base_path",
action="store",
default=BASE_PATH,
help=f"Base directory for missionlogs and missionnetcdfs, default: {BASE_PATH}",
)
parser.add_argument(
"--auv_name",
action="store",
default="Dorado389",
help="Dorado389 (default), i2MAP, or Multibeam",
)
parser.add_argument(
"--mission",
action="store",
help="Mission directory, e.g.: 2020.064.10",
)
parser.add_argument(
"--noinput",
action="store_true",
help="Execute without asking for a response, e.g. to not ask to re-download file",
)
# Add calibrate-specific arguments
parser.add_argument(
"--plot",
action="store",
help="Create intermediate plots"
" to validate data operations. Use first<n> to plot <n>"
" points, e.g. first2000. Program blocks upon show.",
)
parser.add_argument(
"-v",
"--verbose",
type=int,
choices=range(3),
action="store",
default=0,
const=1,
nargs="?",
help="verbosity level: "
+ ", ".join(
[f"{i}: {v}" for i, v in enumerate(("WARN", "INFO", "DEBUG"))],
),
)

self.args = parser.parse_args()
self.logger.setLevel(self._log_levels[self.args.verbose])

self.commandline = " ".join(sys.argv)


Expand Down
Loading