Mediterranean hydrographic processing and visualization workflows used for the analysis of accelerating Mediterranean warming and salinification (Terzić & Vilibić, Geophysical Research Letters).
This repository is organized around the tracked analysis scripts used to preprocess source datasets, build basin-based climatologies and time series, fit trends, and generate manuscript figures. Large source data files and most generated products are intentionally excluded from version control.
environment.ymllists the Python packages, pinned to the versions the manuscript products were made with (conda env create -f environment.yml). It also installs the two packages that are not on PyPI,Basins(basin polygons) andMapPlotter(satellite basemaps), from GitHub.- Every script resolves its input and output locations through
Scripts/paths.py. The repository root is taken from that file's own location, and the data treesData/,Stats/,Plots/,Results/andDiagnostics/live under the repository unless the environment variableMEDCLIM_DATApoints somewhere else. TheBasinspackage'smanca.pyand the JADMON 2024 delivery are the only inputs outside the repository;Scripts/paths.pysays where they are expected and which variables (MEDCLIM_BASINS,MEDCLIM_JADMON_2024) override that. run_all.shruns the stages of the main workflow below in order, or a named selection of them (./run_all.sh --list).- Each script starts with two comment lines,
ReadsandWrites, naming its inputs and outputs relative to the repository. CITATION.cffgives the citation for the code (Zenodo concept DOI 10.5281/zenodo.20410480) and for the article.
Scripts/Seadatanet/preprocessing/clean_seadatanet_odv_export.pycleans the SeaDataNet export and prepares basin-tagged profile files.Scripts/Argo/acquisition/andScripts/Argo/preprocessing/download, quality-control, and basin-tag Mediterranean Argo profiles.Scripts/Adriatic/preprocessing/ingests the Adriatic regional datasets and exports harmonized long-format tables. These four readers are the provenance for the cleaned Adriatic datasets deposited in the accompanying Zenodo data record.Scripts/Adriatic/diagnostics/fix_adriatic_outliers_per_basin.pythen reassigns the casts the readers left outside the three Adriatic basins (BASIN_3ADR == 'out') to DJ1/DJ2/DJ3 by nearest centroid and writes the*_long_fixed.csvtables inData/Adriatic/Processed/that the later stages read.Scripts/MultiPlatform/filtering_qc/remove_coastline_data.pyapplies the coastal and estuarine exclusion masks used before pooled analysis.Scripts/Seadatanet/preprocessing/identify_argo_copies_in_seadatanet.pylists the SeaDataNet casts that are Argo float profiles already held by the Argo set (the SeaDataNet aggregation archives float cycles as casts of its own), andScripts/Seadatanet/preprocessing/remove_argo_copies_from_seadatanet.pywrites the SeaDataNet master file without them (*_no_argo_copies.csv), which every downstream script reads. The list of the 21,926 affected casts is tracked asScripts/Seadatanet/preprocessing/sdn_argo_copies_pids.txt. SeeCHANGELOG.md.Scripts/MultiPlatform/core/multi_source_seasonal_climatology.pybuilds the seasonal climatology products.Scripts/MultiPlatform/core/build_monthly_timeseries_all_bins.pyandScripts/MultiPlatform/core/build_monthly_timeseries_composed_from_atomic.pycreate monthly basin-by-depth series.Scripts/MultiPlatform/core/fit_trends_all_bins.pyfits the linear and quadratic trend products used in the manuscript.Scripts/MultiPlatform/core/save_metadata.pyrebuilds map-support metadata tables.
- Figure 1:
Scripts/Publication_Papers/dataset_coverage.py - Figure 2:
Scripts/Publication_Papers/century_differences_composite.py - Figure 3:
Scripts/Publication_Papers/maps_trends.py - Figure 4:
Scripts/Publication_Papers/vertical_trends_heatmaps.py - Supplementary vertical-structure figures:
Scripts/Publication_Papers/supplement_vertical_trend_bars_other_basins.py - Robustness checks:
Scripts/Additional/robustness_model_comparison.pyandScripts/Additional/sensitivity_test_trends.py
- The tracked repository is script-focused. Large raw inputs and most derived data files are ignored to keep the repository lightweight.
- The data layout is the one used during manuscript production, described in
Scripts/paths.py. The workflow documentation inScripts/*/README.mdidentifies which scripts were used for each stage. - The mapping scripts parse basin rectangles from the
Basinspackage's ownmanca.py, located byScripts/paths.py(installed package first, or a checkout named byMEDCLIM_BASINS).
Argo and SeaDataNet source data are publicly available from their original repositories and
are cited in the manuscript; they are not redistributed here. The cleaned regional Adriatic
in situ datasets are deposited in a separate Zenodo record, produced by the readers in
Scripts/Adriatic/preprocessing/.
Distributed under the Creative Commons Attribution 4.0 International license (CC BY 4.0).