Skip to content

Releases: perrette/dimarray

Python 3 support + simplification course

09 Oct 22:17
Compare
Choose a tag to compare

The main point of the release is to support python3.

Along this way, the dimarray.geo package was removed, as will be all non-essential components in future releases.
For geo-physical applications, use xarray.

Cleaner fix for cartopy Stereographic projection

03 Jun 15:34
Compare
Choose a tag to compare

In previous releases, a fix to cartopy classes was done by modifying cartopy.crs module.
In this release, the fix only applies to dimarray.compat.cartopy_crs, as it should.

faster 2D interpolation

02 Jun 17:53
Compare
Choose a tag to compare
Pre-release

Use scipy.interpolate.RegularGridInterpolator instead of basemap interp.
This also involves new parameters for dimarray.geo.transform, dimarray.geo.transform_vectors and dimarray.interp2d , accordingly to the new underlying function.
In particular this may require the use of keyword argument bounds_error = False for new axes that are out-of-bound with respect to original axes.

0.2.3

19 Nov 01:42
Compare
Choose a tag to compare
0.2.3 Pre-release
Pre-release
fixed prefix in versioneer

0.2

19 Nov 00:06
Compare
Choose a tag to compare
0.2 Pre-release
Pre-release
  • deprecated / removed:
    • aggregate (not useful)
    • DimArray.groupby (not really a multi-dimensional operation, alternative: dima.to_pandas().groupby(...) )
  • modified behavior
    • multi-dimension indexing : now "orthogonal" by default. Use DimArray.take(..., broadcast=True) to broadcast arrays on the same axis, consistently with numpy.
  • renamed:
    • DimArray.group => DimArray.flatten
    • DimArray.ungroup => DimArray.unflatten
    • GroupedAxis => MultiAxis
    • align_axes => align
  • new features:
    • align : new join= parameter "inner" or "outer"
    • slicing on ordered numerical axis : a[2.:4.] on [1.5, 2.5, 3.5, 4.5] now works and return values on [2.5, 3.5]
    • open_nc to return a DatasetOnDisk : allow examination of datasets without actually reading it (somewhere between read_nc and the original netCDF4 module)
    • DimArray.iloc, DimArray.loc, DimArray.sel, DimArray.isel: convergence toward xray/pandas API
    • DimArray.nloc : like DimArray.loc but nearest-neighbor indexing
    • numpy.datetime64 can now be written to netCDF, and converted back (conversion adapted from on xray.conventions functions)
  • internal:
    • indexing rewritten from the bottom up (basically: numpy.argsort + searchsorted and subsequent check, when more than one element is searched, nonzero otherwise)
      ==> much shorter source code
      ==> more efficient calculations (reindexing-speed comparable with xray, a factor 2 slower than pandas)
      ==> no dependency on pandas anymore
    • netCDF I/O rewritten, too, now relies on DatasetOnDisk, DimArrayOnDisk, AxisOnDisk, AxesOnDisk, AttrsOnDisk classes.
    • AbstractDimArray, AbstractDataset and AbstractAxis classes from which DimArray and DimArrayOnDisk derive
      ==> indexing and formatting unified
  • experimental:
    • dimarray.geo.crs.get_crs() : returns an instance of a cartopy CRS class based on a dictionary of CF conventions
    • dimarray.geo.transform() : transform and interpolate a dimarray from one coordinate system to another
    • dimarray.geo.transform_array() : transform and interpolate two dimarrays

Temporary roadmap for future release(s)

Mostly, simplify and thin down the source code, make it more readable:

  • dataset : do not make it an instance of OrderedDict with management of axes copy/refs as it is now, but make it a new object.
  • simplify indexing in abstract classes (keep only orthogonal indexing, provide array index broadcasting as a separate function)
  • simplify axes definition (allow only a few possible methods, to reduce the amount of checks)
  • deprecate the dimarray.geo.GeoArray object, and flatten the sub-package for the user
    (everything accessible from dimarray.geo (not crs etc...))
  • review the library of functions provided, only keep the most useful ones
  • simplify the cascade of classes in the netCDF I/O part
  • remove the global option file?
  • improve unit tests to have less redundancy, more readability

last release before 0.2

05 Dec 16:28
Compare
Choose a tag to compare
Pre-release

This release is not a true release, but an intermediate milestone which contains a number of bug fixes and improvements, as well as a beta version of the geo module. It will be followed soon by a more significant update (probably 0.2 version), with improved indexing, netCDF I/O, metadata handling and Dataset functionality. These changes might introduce minor back-compatibility issues, and thus the 0.1.9 release is more useful for those who would have problems using the 0.2 version.

Summary of major changes since 0.1.8:

  • bugfix:
    • added ne attribute to DimArray (a != b)
    • align (reindex) axes involving a None singleton
  • dimarray.geo submodule rewritten from scratch (but still largely beta)
    • now handles transformation using cartopy
    • CF-conform transformation are automatically mapped from proj4
      arguments

improved doc and netCDF read

10 Apr 13:30
Compare
Choose a tag to compare
Pre-release
  • new feature: read multiple netCDF4 by providing a regular expression

  • minor bug fixes

  • improved documentation for netCDF I/O, can now be compiled using sphinx

  • also include scripts to convert notebooks to rst files and then html

    cd docs
    make rst
    make html

fewer dependency

07 Apr 16:58
Compare
Choose a tag to compare
fewer dependency Pre-release
Pre-release

compat folder with basemap code to use "interp"
fixed bug: no error when importing module with no netCDF4 installation

operations OK

25 Mar 14:30
Compare
Choose a tag to compare
operations OK Pre-release
Pre-release

Solved problem in operations with numpy array as LHS operator (and closed related issue)

dimarray broadcast indexing

25 Mar 09:00
Compare
Choose a tag to compare
Pre-release

A number of bug fixes. Dimarray was used in two big projects and a few remaining bugs were solved, mostly related to multi-dimensional indexing and array broadcasting when indexing. New attribute .box to switch from numpy-like array-broadcasting when indexing to matlab-like multi-dimensional indexing (where several dimensions are indexed independently from each other, as a "box").