Example following docs page fails to execute

Hi all,

I was trying to simulate my own ET MDC data following the examples page to see if the setup works fine and if the docs are clear for new users.

The documentation page gives me the impression that I can run, from any directory, the following command

gwsim simulate ET_Triangle_EMR_noise_config.yaml

and that gwsim would somehow recognize this default YAML file and load it in, but that is not the case. Note that the different YAML files are hyperlinks on the docs page, but each of them points to the examples page: perhaps it was meant to point to the desired location inside the Git repo?

Afterwards, the command I tried giving full path to this file:

gwsim simulate /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/examples/noise/uncorrelated_gaussian_noise_simulator/ET_Triangle_EMR_noise_config.yaml

However, this attempts 4 times to generate the data but ends up with the following error:

12:07 ERROR    All 4 attempts failed for batch: Number of channels in chunk must match number of channels in segment.                                             simulate_utils.py:86
12:07 ERROR    Failed to execute batch 0 for simulator noise after 3 retries: Number of channels in chunk must match number of channels in segment.              simulate_utils.py:585
Executing simulation plan:   0%|                                                                                                                                | 0/1 [00:25<?, ?it/s]
12:07 ERROR    Simulation failed: Number of channels in chunk must match number of channels in segment.                                                                simulate.py:160
               ╭───────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────╮
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/cli/simulate.py:149 in _simulate_impl                           │
               │                                                                                                                                                     │
               │   146 │   │   validate_plan(plan)
               │   147 │   │   logger.info("Simulation plan validation passed")
               │   148 │   │                                                                                                                                         │
               │ ❱ 149 │   │   execute_plan(
               │   150 │   │   │   plan=plan,                                                                                                                        │
               │   151 │   │   │   output_directory=final_output_dir,                                                                                                │
               │   152 │   │   │   metadata_directory=final_metadata_dir or Path("metadata"),                                                                        │
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/cli/simulate_utils.py:561 in execute_plan                       │
               │                                                                                                                                                     │
               │   558 │   │   │   │   │   │   _simulator.state = copy.deepcopy(_pre_batch_state)
               │   559 │   │   │   │   │                                                                                                                             │
               │   560 │   │   │   │   │   # Execute batch with retry mechanism that restores state on failure                                                       │
               │ ❱ 561 │   │   │   │   │   retry_with_backoff(
               │   562 │   │   │   │   │   │   execute_batch,                                                                                                        │
               │   563 │   │   │   │   │   │   max_retries=max_retries,                                                                                              │
               │   564 │   │   │   │   │   │   state_restore_func=restore_state_for_retry,                                                                           │
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/cli/simulate_utils.py:89 in retry_with_backoff                  │
               │                                                                                                                                                     │
               │    86 │   │   │   │   logger.error("All %d attempts failed for batch: %s", max_retries + 1,                                                         │
               │       str(e))
               │    87 │                                                                                                                                             │
               │    88 │   if last_exception is not None:                                                                                                            │
               │ ❱  89 │   │   raise last_exception                                                                                                                  │
               │    90 │   raise RuntimeError("Unexpected retry failure")
               │    91                                                                                                                                               │
               │    92                                                                                                                                               │
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/cli/simulate_utils.py:62 in retry_with_backoff                  │
               │                                                                                                                                                     │
               │    59 │                                                                                                                                             │
               │    60 │   for attempt in range(max_retries + 1):                                                                                                    │
               │    61 │   │   try:                                                                                                                                  │
               │ ❱  62 │   │   │   return func()
               │    63 │   │   except Exception as e:  # pylint: disable=broad-exception-caught                                                                      │
               │    64 │   │   │   last_exception = e                                                                                                                │
               │    65 │   │   │   if attempt < max_retries:                                                                                                         │
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/cli/simulate_utils.py:532 in execute_batch                      │
               │                                                                                                                                                     │
               │   529 │   │   │   │   │   │   """Execute a single batch with state management."""
               │   530 │   │   │   │   │   │   # Generate data by calling next() - this advances simulator                                                           │
               │       state                                                                                                                                         │
               │   531 │   │   │   │   │   │   logger.debug("[BATCH] %s: Before next() - counter=%s",                                                                │
               │       _batch.batch_index, _simulator.counter)
               │ ❱ 532 │   │   │   │   │   │   batch_data = _simulator.simulate()
               │   533 │   │   │   │   │   │   logger.debug("[BATCH] %s: After next() - counter=%s",                                                                 │
               │       _batch.batch_index, _simulator.counter)
               │   534 │   │   │   │   │   │                                                                                                                         │
               │   535 │   │   │   │   │   │   # Save the generated data and get all output file paths                                                               │
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/mixin/time_series.py:206 in simulate                            │
               │                                                                                                                                                     │
               │   203 │   │   new_chunks = self._simulate(*args, **kwargs)
               │   204 │   │                                                                                                                                         │
               │   205 │   │   # Add the new chunks to the segment                                                                                                   │
               │ ❱ 206 │   │   remaining_chunks = segment.inject_from_list(new_chunks)
               │   207 │   │                                                                                                                                         │
               │   208 │   │   # Add the remaining chunks to the cache                                                                                               │
               │   209 │   │   self.cached_data_chunks.extend(remaining_chunks)
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/data/time_series/time_series.py:320 in inject_from_list         │
               │                                                                                                                                                     │
               │   317 │   │                                                                                                                                         │
               │   318 │   │   remaining_ts: list[TimeSeries] = []
               │   319 │   │   for ts in ts_iterable:                                                                                                                │
               │ ❱ 320 │   │   │   remaining_chunk = self.inject(ts)
               │   321 │   │   │   if remaining_chunk is not None:                                                                                                   │
               │   322 │   │   │   │   remaining_ts.append(remaining_chunk)
               │   323 │   │   return TimeSeriesList(remaining_ts)
               │                                                                                                                                                     │
               │ /Users/Woute029/Documents/Code/projects/ET_populations/source_codes/gwsim/src/gwsim/data/time_series/time_series.py:247 in inject                   │
               │                                                                                                                                                     │
               │   244 │   │   │   TimeSeries end time, otherwise None.                                                                                              │
               │   245 │   │   """                                                                                                                                   │
               │   246 │   │   if len(other) != len(self):                                                                                                           │
               │ ❱ 247 │   │   │   raise ValueError("Number of channels in chunk must match number of channels                                                       │
in segment.")                                                                                                                                 │
               │   248 │   │                                                                                                                                         │
               │   249 │   │   # Enforce that other has the same sampling frequency as self                                                                          │
               │   250 │   │   if not other.sampling_frequency == self.sampling_frequency:                                                                           │
               ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
               ValueError: Number of channels in chunk must match number of channels in segment.