📆 Project Period | February - June, 2026 |
👤 CIN Visiting Researcher |
Project Summary
- DepthDif developed a conditional diffusion workflow to reconstruct dense three-dimensional ocean temperature fields from sparse in situ profile observations, surface Earth observation data, and ocean reanalysis targets.
- The collaboration produced an end-to-end research codebase covering OSTIA surface-temperature ingestion, EN4/ARGO profile alignment, GLORYS depth-grid targets, pixel-space and latent diffusion model variants, validation exports, and a Cesium-based 3D globe viewer for inspecting global outputs.
- The current results show that diffusion-based reconstruction can generate coherent subsurface temperature fields from sparse profile support. At the same time, future work should focus on broader validation, reduced speckle/noise, stronger baselines, and publication-quality benchmark datasets.
Development Tools
- The project makes extensive use of diffusion models. In particular, we use 'ambient' diffusion to attempt to learn the full data distribution from corrupted samples alone.
- PyTorch and PyTorch Lightning were used for diffusion training, validation, checkpointing, and model orchestration.
- OSTIA, EN4/ARGO profiles, and GLORYS reanalysis were used as the core surface, in situ, and dense target data sources.
- GDAL, GeoTIFF, GeoJSON, and raster tiling tools support geospatial export and web visualization.
- CesiumJS is used for the 3D globe viewer that compares model predictions, GLORYS rasters, ARGO observations, and train/validation patch overlays.
- MkDocs is used for project documentation, experiment notes, API references, and hosted methodology pages.
Development Outputs
- Project repository: DepthDif on GitHub.
- Hosted documentation: DepthDif documentation.
- Experiment documentation: DepthDif experiments.
- Interactive viewer: DepthDif 3D globe.
No peer-reviewed publications have been published at the time of this description document. The most likely publication outputs are a methods paper on conditional diffusion for sparse ocean-profile densification, a technical note for the OSTIA/EN4/GLORYS aligned dataset, and a model-card or reproducibility report accompanying a checkpoint release.
Project Description
DepthDif investigates whether conditional diffusion models can densify sparse ocean temperature observations into spatially coherent subsurface reconstructions. The practical setting is a common Earth observation problem: surface products are spatially dense, whereas in situ subsurface measurements are physically valuable but sparse in space, time, and depth. The project, therefore, uses sea-surface temperature as an Earth observation condition, sparse ARGO-derived profile observations as the in situ input, and GLORYS ocean reanalysis fields as the dense target for supervised model development and validation.
The central research question is whether a generative model can use these incomplete but complementary modalities to infer plausible dense depth fields. The model not only learns a surface-to-depth regression but also follows an inpainting-like approach borrowed from computer vision, assuming strong spatial autocorrelation among ARGO samples to reconstruct the whole image. It uses multiple condition sources: the OSTIA sea-surface temperature tile, the sparse depth-aligned ARGO temperature tensor, validity masks that identify which in-situ and target values are physically present, and coordinate/date context. This place-and-time information is injected into the denoiser so the model can account for regional ocean structure and seasonal variation. This lets the model learn from the available sparse evidence and attempt to learn the general input distribution while respecting missing data and land/invalid regions.
Data and Dataset Alignment
The collaboration produced the data assembly pipeline required to move from synthetic experiments to a production-style ocean dataset. OSTIA provides weekly global sea-surface temperature fields, EN4/ARGO provides corrected in-situ temperature profiles, and GLORYS provides the fixed-depth gridded reanalysis target. These products differ in spatial resolution, temporal sampling, and vertical coordinates, so a large part of the work focused on reproducible alignment. The current pipeline builds a fixed OSTIA-derived patch grid, expands it across weekly timestamps, links matching ARGO profile metadata, attaches GLORYS files, and projects each ARGO profile onto the 50-level GLORYS depth grid before rasterization.
ARGO observations come from autonomous profiling floats. They can be understood as small, drifting submarine-like instruments without their own horizontal propulsion: at set intervals, they change buoyancy, descend through the water column, record temperature profiles, and later resurface to transmit their measurements. Because each float samples only along its drift path and only at discrete profiling times, the resulting acquisitions are sparse both spatially and temporally.
The depth alignment work is also a substantial project output. GLORYS uses a fixed 50-level depth coordinate, while EN4/ARGO profiles contain profile-specific corrected depths with up to 400 storage slots. DepthDif sorts each profile, collapses duplicate depths, interpolates observed temperature values onto the GLORYS target depth axis, and accepts an interpolated value only if the nearest observed ARGO depth is close enough to the target depth. Out-of-range depths and rejected targets remain invalid. This creates x, y, x_valid_mask, and y_valid_mask tensors that share the same depth layout and can be used directly by the diffusion model. The image below shows the temperature measurements along the 50 GLORYS-aligned depth levels on a pixel grid with 0.1 ° x 0.1 ° resolution (this tensor shape is used to train the model: 50x128x128).
The production dataset documentation records three dataset versions. The most commonly used production setup is a 0.1-degree grid with 128-by-128-pixel patches and a 12.8-degree spatial footprint per sample. In the daily version, this creates 175 valid spatial patches and 932,050 patch-day rows across the 2010-01-01 to 2024-07-31 source inventory. A seven-day temporal aggregation mode keeps the same tensor shape while increasing observation density by pooling profile support around the target day. This is useful because ARGO profile support is sparse on any single day. At the same time, a short-centered window increases the number of usable observations from around 2 to over 20, without requiring the model architecture to handle an explicit temporal stack. The image below shows a visualization of the dataset: the sparse input observation on the left, the GLORYS auxiliary information in the middle, and the OSTIA sea-surface temperature on the right.
Modeling
On the modeling side, the main implementation is a conditional pixel-space diffusion model with a ConvNeXt-style U-Net denoiser. The active full-depth configuration predicts all 50 GLORYS temperature channels and conditions on 52 channels: one OSTIA surface channel, 50 sparse ARGO channels, and one collapsed validity-mask channel. The model supports x0 and epsilon parameterizations, masked losses over valid target support, DDPM and DDIM sampling paths, coordinate/date conditioning through FiLM-style modulation, and optional known-pixel clamping during sampling. A latent diffusion workflow with an autoencoder bridge was also added for higher-band experimentation and future compute reductions.
The project also explored an ambient-occlusion style objective. In that mode, the model receives an additionally corrupted version of the sparse ARGO input while the loss is evaluated on the original observed support intersected with valid GLORYS support. In theory, this enables learning the data distribution while never having access to uncorrupted images. The image below shows how this works: from a set of observations (left), a random subset is selected and withheld from the model (2nd from the right, labeled "Withheld pixels"). The model is then fed with the remaining pixels/observations (2nd from left, labeled "Input"). The model then tries to reconstruct the entire image, obviously unaware of which pixels at which coordinates were withheld. The loss is then calculated over all available observations and used to update the model parameters (right, labeled "Target"). In theory, over enough iterations and randomly withheld pixels, we can learn the whole distribution of the input data. While in the literature this is done with a 30-50% corruption rate, this project pushed the limit to about 99.75%. This tests whether the model can recover withheld observed values from a corrupted input. The implementation helped clarify the semantics of masks and led to cleaner treatment of observed support, target support, and generated support during both training and inference.
Results
Qualitative production-style runs demonstrate coherent reconstruction behavior. A full-target reconstruction run using the OSTIA/ARGO/GLORYS disk dataset using the ambient diffusion method produces visually consistent depth fields and profile comparisons across sampled locations (image below). These results are not presented as a final benchmark, but they show that the end-to-end pipeline is viable and that the model can produce structured subsurface predictions from sparse profile support.
While we can validate the results against the GLORYS targets, this would require a dependency on another reanalysis product and assumes it is absolutely correct. For now, we validate against withheld ARGO observations and calculate the absolute error across depth levels (image below).
The main technical outcome is not only the trained model. It is a repository structure that covers source-product download helpers, patch indexing, profile-depth alignment, disk-backed training datasets, diffusion training configurations, model variants, smoke and unit tests, validation exports, global raster export, documentation, and an interactive visualization application. These parts make the work reproducible and extensible for future experiments with different sparse-observation patterns, alternative Copernicus Marine products, and broader validation periods.
The remaining limitations are clearly documented and, in part, due to the short collaboration period. Outputs can still be noisy or speckled, and patches with high land coverage can degrade the quality of the generation. DDIM sampling needs more systematic validation across checkpoints and settings. Further model-capacity studies, frequency-aware or structure-aware objectives, stronger baselines, and public benchmark packaging are natural next steps. Objective validation remains a challenge; ongoing talks with Oceanographers will yield more robust, application-specific usability and confidence metrics in the future.
The screenshots of the demonstration website below show that it’s possible to interactively explore the predictions (left image), errors (right image), and profiles along several depth levels. Please switch to the full-page version.