/soundings_circbrazil

Radiosoundings of the CircBrazil campaign (SO284) 🎈

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Radiosoundings of CircBrazil campaign

Data

This repository contains references to the radiosoundings and their post-processing steps of the cruise Tropical Atlantic Circulation and Climate: Mooring Rescue or short CircBrazil. This cruise undertaken on RV Sonne has the identifier SO284.

The cruise started June 27, 2021 in Emden, Germany and ended August 16, 2021 in Emden, Germany.

Further general information about the cruise can be found in the cruise report

Dataset

Overview about sounding positions

image

The dataset contains three processing levels:

Processing level Description Usage examples
0 mwx sounding files as delivered by Vaisalas sounding software Checking specific setup of sounding station, Archival of data
1 Level 0 data converted to netCDF4 Analysis of single soundings for the most accurate measurements possible
2 Level 1 data interpolated to a vertical grid Analysis of entire campaign or comparison with other observations or simulations

Reprocessing

By running reproduce.sh the level 1 and level 2 data can be reproduced. Output units, variable names, and global attributes can be setup with the yaml files in the config folder.

To release a new version of the dataset, please make sure to adjust the DOI in config/level1.yaml and config/level2.yaml. DOI can be reserved before publishing at most DOI providers, e.g. at zenodo.org by creating a new record/version.

Minimal example

Level2 data overview

Note: the following example downloads the data directly from zenodo. It might therefore take some time to execute the first time.

import xarray as xr
import fsspec
import numpy as np
import matplotlib.pyplot as plt

m = fsspec.open("zip://data/level2/CircBrazil_Sonne_soundings_level2_v1.0.0.nc::simplecache::https://zenodo.org/api/files/48e1380e-eb65-47fe-8642-c38430495efd/data.zip")

layout = {'dz': {'vmin':-10, 'vmax':10, 'cmap':'RdBu'}}
fig, axs = plt.subplots(4,4,figsize=(17,12),sharex=True, sharey=True)
with m as f:
    ds = xr.open_dataset(f)
    ds = ds.sortby("launch_time")
    vars_to_plot = [var for var in ds.data_vars if ds[var].dims == ('sounding', 'alt')]
    for v, var in enumerate(ds[vars_to_plot].data_vars):
        args=layout.get(var, {})
        ds.assign_coords({'sounding': np.arange(ds.dims['sounding'])})[var].plot(x='sounding', **args, ax=axs.flatten()[v])
plt.tight_layout()
plt.savefig("Level2_Overview.png", bbox_inches="tight")

image