What’s new#
v0.3.2 (unreleased)#
New features#
Add
temperature
andprecipitation
arguments, and CHELSA-W5E5 (aliased'cw5e5'
) as a new temperature and precipitation data source inhyoga.open.atmosphere()
(#86, PR87), aggregated on 30x30 degree tiles (#88, PR92), concatenated yearly (#99, PR100), and compressed with netCDF-4 (#101, PR102).
Bug fixes#
Internal changes#
v0.3.1 (10 Jun. 2024)#
This small bug-fix release brings hyoga up-to-date with its dependencies following an unintended lapse in development. Support was added for recent versions of Python and cf_xarray, and other minor bugs were fixed, reviving the foundation for upcoming improvements and new features in future releases. Code coverage remains at 67 percent.
Breaking changes#
Require Python 3.9 or newer (PR78).
Deprecations#
Bug fixes#
Documentation#
Internal changes#
v0.3.0 Cocuy (16 Jan. 2023)#
This release turns hyoga into more than just a visualization tool. Two functions were added to open online elevation data (GEBCO) and monthly climatologies (CHELSA) in custom projections that can be used as PISM input files for paleoglacier modelling about anywhere on Earth. Minor bugs were fixed. Code coverage decreased to 67 percent.
Breaking changes#
Add rioxarray as a required dependency (see new features).
Deprecations#
Remove
Dataset.hyoga.interp()
threshold
, deprecated in v0.1.2.
New features#
Bug fixes#
Add workaround for scipy 0.10.0 bug in profile interpolation with mixed data types (scipy/scipy#17718, #58, PR59).
Vector plot methods are now compatible with rioxarray CRS and CF grid mapping (using
decode_coords='all'
, #52, PR61).
Documentation#
v0.2.2 (16 Dec. 2022)#
This release implements profile interpolation and scale bars, both documented in new examples, and fixes a bug in grid interpolation to axes coordinates. Continuous integration has been improved with lazy tests for all plot methods, and monitoring of code coverage, increased from 33 to 73 percent in this release.
New features#
Add accessor method
Dataset.hyoga.profile()
, a new example and a documentation section for profile interpolation (#18, PR46).Add plot method
Dataset.hyoga.plot.scale_bar()
and a new example for automatically sized, anchored scale bars (#16, PR44).
Bug fixes#
Fix grid interpolation on non-cartopy axes (#45).
Internal changes#
v0.2.1 (1 Dec. 2022)#
This release removes the required dependency on cartopy by implementing own downloaders for Natural Earth and other (and future) data. All dependencies, and the docs, can be built with pip. Plot methods set aspect ratio to equal, and coordinate labels are hidden by default. Development has moved on a feature-branch squash workflow (as xarray and geopandas).
Breaking changes#
Require Python 3.8 or newer (see xarray#7115, NEP-29).
Deprecations#
Remove
hyoga.open.visual()
, deprecated in v0.1.0.The
sealevel
argument inDataset.hyoga.plot.bedrock_altitude()
is deprecated and will be removed in v0.4.0. Usecenter=sealevel
instead (#27, PR36).
New features#
Bug fixes#
Add missing required dependency on requests.
Documentation#
List plot method
Dataset.hyoga.plot.bedrock_altitude_contours()
parameters in docstring (#33).Homogenize and explain the use of
center=False
in documentation pages and gallery examples (#27, PR36)
Internal changes#
v0.2.0 Bale (1 Nov. 2022)#
This is a minor release implementing several cartographic features. It adds custom colormaps and plot methods for shaded reliefs, and an interface to open and plot Natural Earth data and paleoglacier extents. The documentation uses a new theme. A logo and new examples were added. The package structure has been reworked to better serve future plans.
Breaking changes#
Add new required dependencies on cartopy and geopandas. Cartopy is only used to download Natural Earth data, and may no longer be required in future versions (#25).
Deprecations#
Function
hyoga.demo.get()
(returning an url) is deprecated, usehyoga.open.example()
(returning a dataset) instead.
New features#
Add three altitude (
Topographic
,Bathymetric
,Elevational
) and two relief-shading (Glossy
,Matte
) colormaps, and correponding color lists, accessible through the matplotlib colormap register (#15).Add plot methods
Dataset.hyoga.plot.bedrock_hillshade()
andDataset.hyoga.plot.surface_hillshade()
for relief shading (#19).Add plot method
Dataset.hyoga.plot.bedrock_altitude_contours()
for bedrock altitude filled contours, best used in combination with new altitude colormaps.Add plot method
Dataset.hyoga.plot.natural_earth()
to add global Natural Earth data through geopandas (#17).Add plot method
Dataset.hyoga.plot.paleoglaciers()
to add Last Glacial Maximum paleoglacier extents through geopandas (#21).Add functions
hyoga.open.natural_earth()
andhyoga.open.paleoglaciers()
to open global Natural Earth data and Last Glacial Maximum paleoglacier extents asgeopandas.GeoDataFrame
(#24).
Documentation#
Add self-plotted logo, see Hyoga logo (#20).
Add a documentation page for Getting started.
Add a documentation page on Plotting shaded relief, including colormaps (#15).
Change to Sphinx book theme, rework Programming interface.
Internal changes#
Move dataset accessor to
hyoga.core.accessor
.Move hyoga configuration to
hyoga.core.config
.Move function to open example data to
hyoga.open.example
.Move functions to open local files to
hyoga.open.local
.Move dataset plot methods to
hyoga.plot.datasets
.
v0.1.2 (1 Aug 2022)#
This release includes better masks and a dependency on cf_xarray. Plot methods now search for standard variable land_ice_area_fraction for masking and default to using a configurable ice thickness masking point. Masking with where remains available and a new documentation page explains Masking and selection features.
Breaking changes#
Method
Dataset.hyoga.assign_isostasy()
now returns a copy without affecting the original data. This behaviour is consistent withxarray.Dataset.assign()
.Method
Dataset.hyoga.assign_isostasy()
overrides any variable with standard name “bedrock_altitude_change_due_to_isostatic_adjustment” instead of creating a new variable with the same standard name. This is again consistent withxarray.Dataset.assign()
.
Deprecations#
The
threshold
argument inDataset.hyoga.interp()
is deprecated and will be removed in v0.3. Use theglacier_masking_point
parameter inhyoga.config
or an ice mask instead (see new features).
New features#
Plot methods now look for
land_ice_area_fraction
(instead ofland_ice_thickness
) to determine which grid cells are glacierized.Add accessor method
Dataset.hyoga.assign()
to assign new variables by CF-compliant standard names.Add accessor method
Dataset.hyoga.assign_icemask()
to assign an ice mask variable with standard nameland_ice_area_fraction
.Add accessor method
Dataset.hyoga.where_icemask()
to filter glacier variable according toland_ice_area_fraction
.Add
hyoga.config
with aglacier_masking_point
config parameter, an ice thickness threshold used as a fallback ifland_ice_area_fraction
is missing in the dataset.
Internal changes#
Method
Dataset.hyoga.getvar()
now uses cf_xarray to retrieve data variables by their standard name. Thus cf_xarray is now a required dependency (#12).Add module
hyoga.conf
implementing aconfig
object to store additional parameters in the future.
Documentation#
A new documentation page shortly explains Masking and selection features.
A new example has been added to show that interpolation also works when surface topography is provided instead of bedrock topography.
v0.1.1 (8 Mar 2021)#
This release includes bug fixes and documentation improvements, including more lightweight demo data. There are new examples in the gallery demonstrating the computation of bedrock isostatic adjustment from a reference topography, and interpolating model results on higher-resolution topography for enhanced visualization.
Deprecations#
Functions
demo.pism_gridded()
anddemo.pism_series()
are deprecated. Usedemo.get('pism.alps.out.2d')
anddemo.get('pism.alps.out.1d')
instead.
Bug fixes#
Assign surface altitude during
Dataset.hyoga.interp()
if it is missing, as it is needed to compute the interpolated ice mask.Fix
Dataset.hyoga.assign_isostasy()
andDataset.hyoga.interp()
in the case when a dataset (or a data array) is used instead of a file.Ensure that
Dataset.hyoga.where()
andDataset.hyoga.where_thicker()
return a copy without affecting the original dataset (asxarray.Dataset.where()
).
Documentation#
Examples in the documentation use smaller files currently hosted in a separate Github repository hyoga-data (#11). You may want to delete the previous, 400 MB file in
~/.cache/hyoga
.New examples have been added to demonstrate plotting bedrock isostasy and interpolated model output (Examples gallery, #11).
v0.1.0 Akaishi (1 Mar 2021)#
Nothing is old, everything is new. This is the first version!