Unify config files to expedition.yaml#217
Conversation
…pedition.yaml content
|
Thanks for the comments @erikvansebille, changes now implemented. In summary:
The expedition.yaml structure now looks something like: schedule:
space_time_region:
...
waypoints:
...
instruments_config:
adcp_config:
...
ship_speed_knots: ... |
|
Very nice improvement! One small suggestion left: you could move |
|
Ah yes I thought about to leave room for more easily expanding the configuration options down the line. I didn't in the end for the sake of reducing the number of layers in the YAML, but I will now do that restructuring given there's agreement it could be useful! |
|
|
Are you happy for me to merge into v1-dev @erikvansebille? |
|
Yep, go for it! |
Introduces substantial refactoring, new features, and documentation updates to VirtualShip. Overall, the changes aim to unify configuration, centralise instrument logic and overhaul data ingestion. ----- * Unify config files to expedition.yaml (#217) Consolidates/unifies the old dual ship_config.yaml and schedule.yaml config files into one expedition.yaml file, in line with v1 dev objectives. * Update link to website (#215) * first refactoring step, parent instrument classes * ignore refactoring notes in gitignore * add note to remove upon completing v1 dev * scratch inputdataset objects integration to _fetch * add call to download_data() * Add new instrument classes and update InputDataset to include depth parameters * Refactor instrument handling in _fetch and update imports for consistency * Refactor instrument classes and re-add (temporary) simulation functions across multiple files * improve/clarify comments and notes * Refactor ArgoFloat and XBT classes to include depth parameters and remove outdated comments * avoid circular import issues * make tests for InputDataset base class * refactor instrument handling in _fetch.py and update expedition model to include get_instruments method * refactor instrument error handling in Expedition model and remove Schedule and ShipConfig classes * add is_underway property to InstrumentType and filter instruments in plan UI * enhance CLI output for fetching * general fixes and new error class * refactor test cases to use Expedition object * move instruments base classes out of models/ dir * update base class imports * make get_instruments_registry more robust with testing * update mock reanalysis period and refactor tests to use expedition fixture * refactor: reorganize instrument classes and update imports for clarity * implement instrument registration and input dataset retrieval * refactor: reorganize imports in instrument test files for consistency * further refactoring: instrument classes to use a unified InputDataset and Instrument structure * evaporate simulate_measurements.py; centralise run logic * draft up check land using bathymetry * small bug fixes * patch copernicus product id search logic to new instrument classes, plus more debugging; verbose INFO is outstanding * adding U and V to instruments where missing * enhanced error messaging for XBT in too shallow regions * bug fixes * version U and V downloaded * dummy U and V * Neaten up logging output * small bug fixes * tidy up * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Refactor type hints and improve test coverage for instruments and utils * Remove TODO comments and tidy up imports in test files * Refactor bathymetry error handling, update verification methods and remove unused function * move product id selection logic to utils * update * first draft direct ingestion via copernicusmarine (CTD only) * refactor bathymetry data handling and add (temporary) timing for performance evaluation * update instrument constructors for Copernicus Marine ingestion * move expedition/do_expedition.py to cli/_run.py, rename Instrument.run() to Instrument.execute() * move checkpoint class to models, move expedition_cost() to utils.py * update imports for expedition_cost * working with drifters (bodge), CTD_BGC not yet working * remove fetch and all associated logic * update docstrings/--help info * add buffers to drifters and argos, plus depth limits for drifters * remove _creds.py * CTD_BGC fieldset bug fix * fixing bugs associated with BGC data access * update dependencies * logic for handling copernicus credentials * add support for taking local pre-downloaded data with --from-data optional flag in virtualship run * update drifter to be at -1m depth, to avoid out of bounds at surface * tidy up * bug fixes for unnecessary copernicusmarine call when using pre-downloaded data * remove redundant tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update tests (not yet instrument subclasses) * update instrument tests * test is on land tests in schedule.verify() * Run pre-commit * update pre-download ingestion methods to take files split by time * fix bug * fix bug in ingesting bgc data from disk * tidy up * add test for data directory structure compliance * update docs * edits to docs * add more checks to docs compliance testing * TODO in readme * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update docs/user-guide/documentation/pre_download_data.md Co-authored-by: Erik van Sebille <erikvansebille@gmail.com> * Apply suggestions from code review Co-authored-by: Erik van Sebille <erikvansebille@gmail.com> * Set t_min to first day of month for monthly resolution Adjust t_min to the first day of the month based on schedule start date. * remove redundant parameters from instrument classes * change variable name * make _find_files_in_timerange standalone from Instrument base class * Update error docstring * update plan UI logic to update space-time region dynamically * fix xbt bug * add warnings to ADCP max depth config if exceeds authentic limits * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * error messaging for case where measurements cause schedule to be missed * revert to using ScheduleProblem class * add more informative messaging on ScheduleProblem * change test to mock using data from disk to avoid copernicus calls * remove accidental breakpoint --------- Co-authored-by: Nick Hodgskin <36369090+VeckoTheGecko@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Erik van Sebille <erikvansebille@gmail.com>
This PR consolidates the old dual
ship_config.yamlandschedule.yamlconfig files into oneexpedition.yamlfile, as outlined as an objective in the VirtualShip design doc for v1-dev.