What’s new#
2026.2.0#
New features#
Add the
withinparameter toxoa.cfsearch methods.Add the
rename_argsargument to formatting routing ofxoa.metato retrieve renaming information [PR102].Add the
xoa.dyn.get_sea_level()function to get either SSH, ADT, SLA or MDT in a dataset [PR102].Allow passing a list of “meta_name” to
xoa.cf.MetaSpecs.get()for enlarging a search [PR102].The
xoa.data_samplesmodule now use Pooch to manage sample files [PR111].Add the
multiparameter toxoa.misc.Choicesto allow multiple choices [PR111].
Deprecations#
The
xoa.cfmodule is deprecated. Usexoa.metainstead. All references to “cf” must be converted to “meta” in modules, functions, classes, methods and accessors. A backward compatibility layer has been added [PR111].The
xoa.cf_configsmodule is deprecated in favour of modulexoa.meta.configs[PR111].Pure core regridding 1D function of the
xoa.core.interpmodule are moved toxoa.core.regridmodule.
Bug fixes#
Remove the
xoa reset_cf_cacheCLI command: the disk cache no longer exists inxoa.metaand the command was raisingAttributeErrorat runtime [PR117].Fix
xoa.coords.get_time()that was returning None.Fix
xoa.interp.linear1d()extrapolation [PR107]Fix
xoa.grid.to_rect()warnings.Fix
xoa.meta.MetaSpecs.get_dim_types().Fix
test_accessors.pyto usemetaaccessor instead of deprecatedxmetaandmeta_specsproperty instead ofmetaspecs.Fix examples to use
xoa.get_meta_config_file()instead of deprecatedget_cf_config_file.
Documentation#
Rename “Using the modules” section to “In-depth guides”.
Added in the in-depth guide to metadata mentions of
xoa.coords,xoa.dynandxoa.thermdynhelper function to access coordinates and physical variables like lon or temp.Added in-depth guides about sigma-like coordinates, grids and regridding, and filtering.
0.8.0 (2025-05-12)#
New features#
Add modules
xoa.data_samplesandxoa.cf_configs.xoa.cf.CFSpecs,xoa.cf.register_cf_specs(),xoa.cf.get_cf_specs()andxoa.cf.set_cf_specsnow accepts short names of internal CF config like “croco” or “argo”.Add absolute option for salinity and the ref_dens option to enable using different formulae for density to
xoa.plot.plot_ts().Add the exclude_names option to
xoa.cfconfigurations to ignore data array names.Call
xoa.cf.infer_cf_specs()fromxoa.cf.get_cf_specs()when a data array or dataset is passed [PR96].Add the drop_na and maxgap parameters to the
xoa.regrid.regrid1d()function to fill gaps [PR92].Add the
xoa.filter.tidal_filter()function to apply a tidal filter to a time series [PR87].
Breaking changes#
xoa.cf.CFSpecs()tests the generic pivot name last, not first.The
xoa.cf.CFSpecs.decode()method no longer sets the “cf_specs” encoding [PR96].The default name_format option of the :cfsec:`sglocator` CF specifications option is set to False to prevent parsing the grid location in names [PR96].
xoa.filter.tidal_filter()raises anXoaErrorinstead of a simple warning when the time step is greater than an hour.xoa.regrid.regrid1d(): extrapolation from input data instead of output data [PR91].
Deprecations#
Now using
platformdirsinstead ofappdirs.xoa.filter.demerliac()is deprecated, usexoa.filter.tidal_filter()instead [PR88].
Bug fixes#
Fix
xoa.cf.infer_cf_specs()that was missing attributes and encoding [PR96].Fix
xoa.plot.plot_ts()that now uses absolute salinity along with potential temperature and potential density anomaly formulas.Fix lat keyword in
deg2m()andm2deg()which now accepts arrays.Fix weighting of
xoa.filter.convolve().Fix
xoa.grid.to_rect()raising of errors and handling of missing data in coordinates.Fix string formatting in
xoa.filter.tidal_filter()warning.Fix default value of deltadens in
xoa.thermdyn.mixed_layer_depth().
Documentation#
Now using Sphinx book theme
0.7.1 (2023-07-21)#
New features#
Add support for not creating multi-indexes in
xoa.coords.geo_stack().
Bug fixes#
Fix
xoa.geo.get_distances()that was not able to handle multi-indexes fromxoa.coords.geo_stack().Fix doc generation [PR83].
Fix
xoa.sigma.get_cs()to keep it compatible with pure numpy arrays
Documentation#
Add a link to the github repository.
0.7.0 (2023-07-17)#
New features#
Add issue and pull request templates.
Add the
xoa.filter.smooth()function [PR76].Improved the default sig and std parameter values for filter windows that accept them [PR76].
Add the
xoa.plot.plot_minimap()andxoa.plot.plot_double_minimap()functions to display the geographic situation of a set of coordinates [PR73].Add support for the min_extent keyword to
xoa.geo.get_extent()[PR73]Add dask support to
xoa.sigmasigma to depth converters [PR72].Add the
xoa.nummodule that contains low level numeric utilities.Add the
xoa.thermdyn.mixed_layer_depth()function to compute the mixed layer depth with three different methods [PR67, PR75].Add the
xoa.thermdyn.is_temp(),xoa.thermdyn.is_sal()andxoa.thermdyn.is_dens()functions to infer if an array of temperature, salinity or density type, and added the relatedxoa.thermdyn.get_temp(),xoa.thermdyn.get_sal()andxoa.thermdyn.get_dens()function to search in datasets[PR67, PR79].Add kernel_kwargs keyword to
xoa.filter.convolve()to better control the kernel generation byxoa.filter.generate_kernel()[PR64].Add inference of parameters for some window functions, like the gaussian shape, in
xoa.filter.get_window_func()[PR64].Add
xoa.regrid.isoslice()based onxoa.interp.isoslice()core function [PR63].
Breaking changes#
get_window_func()now accepts only one positional argument and all other arguments must be named.
Bug fixes#
Fix
xoa.cfgm.is_boolstr()which now supports the newconfigobj.Fix broadcasting
xoa.interp1d interpolation routines [GH69].Fix
xoa.sigma.get_sigma_terms()so that it works in case of multiple levels coordinates [PR60].Fix
xoa.grid.to_rect()that now infers coordinates and can emit a warning or raise an error.
Documentation#
Add an example of xoa.plot.plot_double_minimap to Compare Mercator to ARGO and Compare Hycom3d with a GDP drifter examples [PR73].
Add an example of xoa.thermdyn.mixed_layer_depth to Interpolate a meridional section of CROCO outputs to regular depths example [PR67].
0.6.1 (2022-02-24)#
New features#
Add a warning to
xoa.open_data_sample()that is emitted when the requested file is not an internal data sample [PR47].Add the
xoa.plot.add_shadow(),xoa.plot.add_glow()andxoa.plot.add_lightshading()function to add path effects to plots [PR44].Add the
xoa.plot.plot_ts()function to make T-S diagrams [PR43].Add the
xoa.filter.demerliac()function to apply a Demerliac filter to a time series [PR41].Add support for fine tuning masking in
xoa.filter.convolve()through the na_thres parameter [PR41].Add the
xoa.geo.cdist()andxoa.geo.pdist()functions to compute haversine distances respectively between two dataset and with a dataset [PR40].Add the
xoa.coords.geo_stack()function to stack longitudes and latitudes into another dimension, in a dataset or data array [PR40].Add the
xoa.filter.decimate()function to crudely undersample a geographic dataset or data array with a radius of proximity [PR40].Add the
xoa.geo.get_distances()to compute the Haversine distances between locations inside a single dataset or between two datasets [PR40].Add the
xoa.krig.empirical_variogram()function to estimate variogram parameters.Add the
xoa.krig.VariogramModelto manage a variogram model [PR40].Add the
xoa.krig.Krigerandxoa.krig.krig()to perform kriging [PR40].Add the exclude option to data var and coordinate specifications of
xoa.cf.CFSpecsinstances [PR38].
Breaking changes#
A single Nan now contaminates the data over the kernel emprise in
xoa.filter.convolve()since na_thres is set to zero by default [PR40].xoa now requires the
gswpackage.
Bug fixes#
Fix
xoa.regrid.regrid1d()so that it works now with time coordinates [PR48].Fix
xoa.regrid.grid2loc()so that it works with scalar output coordinates.Fix
xoa.regrid.regrid1d()to prevent conflict in the presence of MultiIndexes.Fix search for coordinates that are hidden due to
xarray.DataArray.stack().
Documentation#
Add the Compare Mercator to ARGO example.
0.6.0 (2022-02-24)#
Empty with non existing tag.
0.5.1 (2021-10-13)#
New features#
Switch the CI workflow to github [PR36].
Bug fixes#
Fix
xoa.cf.CFSpecs.to_loc()that was failing with dataset [PR23].
0.5.0 (2021-10-12)#
New features#
Add the hlocs argument to
xoa.sigma.get_sigma_terms()andxoa.sigma.decode_cf_sigma()to decode at several horizontal staggered grid locations [PR34].Add the edges argument to
xoa.regrid.regrid1d()to manually specify the edges that are used by the “cellave” regridding method [PR34].Add back the loc argument to the formatting methods of
xoa.cf[PR34].Add dimension checking and support for dask arrays in
xoa.sigma[PR34].Expose a few options of
xoa.cfgm.ConfigManager()to thexoa.cfgm.cfgargparse()function.Add the
cfgm_cfg_filesphinx configuration option to save the default configuration of axoa.cfgm.ConfigManager().
Bug fixes#
Fix
xoa.cf.SGLocator.parse_attrparsing since regular expressions were not matching full strings.Fix
xoa.regrid.regrid1d()with “cellave” method [PR34].Fix
xoa.cf.CFSpecs.get_location_mapping()for coordinates that have no axis attribute specifications [PR34].Fix
xoa.grid.dz2depth()that was not working properly with 4D+ arrays [PR34].
Breaking changes#
The default name_format of
xoa.cf.SGLocatorno longer contains the location pattern {loc} to prevent unwanted location catching.The loc argument of
xoa.sigma.get_sigma_terms()is renamed vloc [PR34].
0.4.0 (2021-09-02)#
New features#
xoa.cf.CFSpecs.decode()better supports staggered grids.xoa.cf.CFSpecs.search_dim()supports generic names in addition to dimension types as second argument.Add the
xoa.cf.CFSpecs.match_dim()method to check if a given dimension name is known.Add the
reloc()andto_loc()methods toxoa.cf.CFSpecsfor quickly changing the staggered grid indicators in names.Add the
xoa.cf.SGLocator.add_loc()method to quickly change the location markers in a data array.
Breaking changes#
xoa.coords.get_dims()is renamed toxoa.coords.get_cf_dims().The name argument of
xoa.cf.CFSpecsmethods is renamed to cf_name, and the dim_type(s) argument is renamed to cf_arg(s).xoa.cf.SGLocator.get_location()is renamed toget_loc_from_da()and theget_loc()is added.
Bug fixes#
Fix the output formatting of
xoa.grid.dz2depth().
Documentation#
The Metadata, CF and naming conventions section and Compare Hycom3d with a GDP drifter example are adapted to reflect changes.
v0.3.1 (2021-05-21)#
New features#
Add an autolim keyword to
xoa.plot.plot_flow()to speedup the processing with cartopy maps.
Breaking changes#
Rename the cf and sigma keyword of
xoa.register_accessors()respectively to xcf and decode_sigma to match the default name of accessors.Rename the sigma accessor to decode_sigma.
Bug fixes#
Fix the access to the xoa executable on windows.
Fix the minimal version for xarray [PR23].
Documentation#
Add a “How to start” section.
Accessors are now documented separately with sphinx-autosummary-accessors [PR20].
The Hycom-GDP example now uses
xoa.plot.plot_flow().
v0.3.0 (2021-05-12)#
New features#
Add the
xoa.plot.plot_flow()function [PR9].Improve
xoa.coords.get_depth()so that it can compute depth from sigma coordinates or layer thicknesses [PR8].Add the
xoa.dyn.flow2d()function [PR7].Add the
xoa.regrid.extrap1d()function.Add the
xoa.filter.erode_coast()function which is specialized version of thexoa.filter.erode_mask()for horizontal data.Add the
xoa.coords.get_xdim(),get_ydim(),get_zdim(),get_tdim()andget_fdim()for quickly finding standard dimensions.
Bug fixes#
Fix u and v CF config [PR6]