csb_processing module

Module principal pour le traitement des données des capteurs CSB.

Ce module expose processing_workflow(), le workflow end-to-end de traitement des données de bathymétrie crowdsourcée (ingestion → nettoyage → géoréférencement → export). Les helpers privés décomposent chaque étape en unités de ~20 lignes.

class csb_processing.WorkflowSetup(export_data_path, export_tide_path, log_path, processing_config, apply_water_level)[source]

Bases: object

Résultat de l’initialisation du workflow (répertoires, config, flags).

Parameters:
  • export_data_path (Path) – Répertoire Data/ de sortie.

  • export_tide_path (Path) – Répertoire Tide/ de sortie.

  • log_path (Path) – Répertoire Log/ de sortie.

  • processing_config (config.CSBprocessingConfig) – Configuration de traitement chargée et validée.

  • apply_water_level (bool) – Flag de réduction marégraphique (potentiellement forcé à False si already_at_chart_datum).

apply_water_level: bool
export_data_path: Path
export_tide_path: Path
log_path: Path
processing_config: CSBprocessingConfig
csb_processing._get_caris_api_config(processing_config, config_path)[source]

Charge la configuration Caris si le format CSAR est demandé.

Lève config.CarisConfigError (après log) si CSAR est demandé mais la configuration est invalide — le caller retourne alors None.

Parameters:
  • processing_config (config.CSBprocessingConfig) – Configuration de traitement.

  • config_path (Optional[Path]) – Chemin du fichier de configuration TOML.

Returns:

Configuration Caris ou None si CSAR non demandé.

Return type:

Optional[config.CarisAPIConfig]

Raises:

config.CarisConfigError – Si CSAR est demandé mais la config Caris est invalide.

csb_processing._get_vessel_config(vessel, processing_config)[source]

Valide le gestionnaire de navires et retourne la configuration du navire.

Parameters:
Returns:

Configuration du navire.

Return type:

vessel_manager.VesselConfig

Raises:

vessel_manager.VesselConfigManagerError – Si l’identifiant est une chaîne mais que le gestionnaire de navires est absent ou incomplet.

csb_processing._process_with_water_level(data, waterline, sounder, ctx, setup, vessel_config, caris_api_config, vessel_name, water_level_stations, excluded_stations, config_path, output_file_name=None)[source]

Exécute la boucle de réduction marégraphique IWLS, puis exporte les données.

Parameters:
  • data (gpd.GeoDataFrame[schema.DataLoggerWithTideZoneSchema]) – Données nettoyées.

  • waterline – Configuration de la ligne d’eau.

  • sounder – Configuration du sondeur.

  • ctx (ProcessingContext) – Contexte de traitement.

  • setup (WorkflowSetup) – Contexte d’exécution du workflow.

  • vessel_config (vessel_manager.VesselConfig) – Configuration du navire.

  • caris_api_config (Optional[config.CarisAPIConfig]) – Configuration Caris.

  • vessel_name (Optional[str]) – Nom du navire pour l’export.

  • water_level_stations (Optional[Collection[str]]) – Stations forcées (None → Voronoi automatique).

  • excluded_stations (Optional[Collection[str]]) – Codes de stations à exclure dès le départ.

  • config_path (Optional[Path]) – Chemin du fichier de configuration TOML.

  • output_file_name (Optional[str]) – Nom de fichier forcé (mode split). None → nom calculé.

Return type:

None

csb_processing._process_without_water_level(data, waterline, sounder, ctx, setup, vessel_config, caris_api_config, vessel_name, output_file_name=None)[source]

Géoréférence sans réduction marégraphique et exporte les données.

Parameters:
  • data (gpd.GeoDataFrame[schema.DataLoggerWithTideZoneSchema]) – Données nettoyées.

  • waterline – Configuration de la ligne d’eau.

  • sounder – Configuration du sondeur.

  • ctx (ProcessingContext) – Contexte de traitement.

  • setup (WorkflowSetup) – Contexte d’exécution du workflow.

  • vessel_config (vessel_manager.VesselConfig) – Configuration du navire.

  • caris_api_config (Optional[config.CarisAPIConfig]) – Configuration Caris (None si CSAR non demandé).

  • vessel_name (Optional[str]) – Nom du navire pour l’export.

  • output_file_name (Optional[str]) – Nom de fichier forcé (mode split). None → nom calculé.

Return type:

None

csb_processing._setup_run(output, config_path, processing_config, extra_logger, apply_water_level, already_at_chart_datum)[source]

Crée les répertoires, charge la configuration et configure le logger.

Force apply_water_level=False si already_at_chart_datum=True.

Parameters:
  • output (Path) – Racine du répertoire de sortie.

  • config_path (Optional[Path]) – Chemin du fichier de configuration TOML.

  • processing_config (Optional[config.CSBprocessingConfig]) – Config pré-chargée (remplace config_path si fournie).

  • extra_logger (Optional[Iterable[dict]]) – Sinks loguru supplémentaires.

  • apply_water_level (Optional[bool]) – Flag d’entrée (peut être None).

  • already_at_chart_datum (bool) – Si True, force apply_water_level=False.

Returns:

Contexte d’exécution initialisé.

Return type:

WorkflowSetup

csb_processing.log_sounding_results(data, iterations)[source]

Vérifie et journalise les résultats du traitement des sondes.

Parameters:
  • data (gpd.GeoDataFrame) – Données géoréférencées.

  • iterations (int) – Nombre d’itérations effectuées.

Returns:

True si au moins une sonde a été réduite au zéro des cartes.

Return type:

bool

csb_processing.processing_workflow(files, vessel, output, config_path=PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/chs-csb-processing-en/checkouts/latest/src/CONFIG_csb-processing.toml'), apply_water_level=True, extra_logger=None, water_level_stations=None, excluded_stations=None, processing_config=None, vessel_name=None, already_at_chart_datum=False, output_file_name=None)[source]

Workflow de traitement des données CSB end-to-end.

Parameters:
  • files (Collection[Path]) – Fichiers bruts à traiter.

  • vessel (str | vessel_manager.VesselConfig) – Identifiant navire ou objet VesselConfig.

  • output (Path) – Répertoire racine de sortie.

  • config_path (Optional[Path]) – Chemin du fichier de configuration TOML.

  • apply_water_level (Optional[bool]) – Appliquer la réduction marégraphique.

  • extra_logger (Optional[Iterable[dict]]) – Sinks loguru supplémentaires (ex. NiceGUI).

  • water_level_stations (Optional[Collection[str]]) – Codes de stations forcées (None → Voronoi auto).

  • excluded_stations (Optional[Collection[str]]) – Codes de stations à exclure dès le départ.

  • processing_config (Optional[config.CSBprocessingConfig]) – Config pré-chargée (remplace config_path si fournie).

  • vessel_name (Optional[str]) – Nom du navire pour l’export (surcharge vessel_config.name).

  • already_at_chart_datum (bool) – True si les données sont déjà réduites au zéro des cartes — force apply_water_level=False.

  • output_file_name (Optional[str]) – Nom de fichier de sortie forcé (surcharge le nom calculé automatiquement). Utilisé en mode split (merge_files=False) pour conserver le nom du fichier d’entrée.

Return type:

None

csb_processing.run_processing_workflow(files, merge_files=True, **kwargs)[source]

Dispatche le traitement en mode fusion ou mode split selon merge_files.

En mode fusion (défaut), tous les fichiers sont traités ensemble en un seul fichier de sortie nommé automatiquement. En mode split, chaque fichier est traité individuellement et le nom de sortie correspond au stem du fichier d’entrée.

Parameters:
  • files (Collection[Path]) – Fichiers bruts à traiter.

  • merge_files (bool) – Si True, fusionne tous les fichiers en un seul traitement. Si False, traite chaque fichier séparément.

  • kwargs – Arguments transmis directement à processing_workflow().

Return type:

None