Changelog
Contents
Changelog¶
Version 1.7.0¶
Released on: 2022/03/25
DOI: https://doi.org/10.5281/zenodo.6384887
Deprecation:
Move the
CheckerBoardclass toverde.synthetic(#353)Deprecate the
verde.testfunction which will be removed in v2.0.0 (#344)Deprecate the
datasetsmodule, which will be replaced by Ensaio in the future (#277)Warn that the default score will change from R² to negative RMSE in v2.0 (#352)
New features:
Add option to pass coordinates to the
gridmethod instead of justregionandspacing(#326)
Documentation:
Modernize the front page of the docs (#356)
Modernize the Installing page (#355)
Update the contact link in the docs (#347)
Switch the docs theme to the sphinx-book-theme (#343)
Update
dimsin example ofmake_xarray_grid(#329)Explicitly pass default arguments with their corresponding keywords on tests and examples (#327)
Maintenance:
Replace Google Analytics for Plausible one to make our docs more privacy-friendly (#358)
Move configuration from
setup.pytosetup.cfg(#348)Link CoC, Authorship, Contributing, and Maintainers guides back to the Fatiando-wide pages (#338)
Replace pylint with more flake8 plugins (#337)
Rename the main branch from “master” to “main” (#335)
Remove
normalizeargument when creating scikit-learn solvers (#333)
This release contains contributions from:
Santiago Soler
Leonardo Uieda
Version 1.6.1¶
Released on: 2021/03/22
Minor changes:
Allow
make_xarray_gridto receivedata=Noneinstead of raising an error. This is used to create an emptyxarray.Dataset(#318)
Maintenance:
Fix use of wrong version numbers for PyPI releases (#317)
This release contains contributions from:
Santiago Soler
Leonardo Uieda
Version 1.6.0¶
Released on: 2021/03/18
New features:
Allow specifing the scoring function in
cross_val_scoreinstead of always using the.scoremethod of the gridder (#273)New function
verde.make_xarray_gridto simplify the creation ofxarray.Datasetfrom individual numpy arrays that represent a 2D grid (#282 and #300)
Enhancements:
Raise informative errors for invalid
verde.rolling_windowarguments, like missingspacingorshapeand invalid window sizes (#280)Replace
DeprecationWarningwithFutureWarningsince these are intended for end-users, which allows us to avoid having to setwarning.simplefilter(#305 and #293)
Documentation:
Update link to the GMT website in the Baja bathymetry example (#298)
Fix issue with Cartopy 0.17 and require versions >= 0.18 for building the docs (#283)
Maintenance:
Refactor internal function
get_data_namesand related check functions to simplify their logic and make them more useful (#295)Require Black >=20.8b1 (#284)
Format the
doc/conf.pysphinx configuration file with Black (#275)Add a license and copyright notice to every source file (#308)
Replace versioneer for setuptools-scm (#307)
Replace Travis and Azure with GitHub Actions (#309)
Exclude Dask 2021.03.0 as a dependency. This release was causing the tests to fail under Python 3.8 on every OS. The problem seems to be originated in
dask.distributed(#311)Use the OSI version of item 3 in the license (#299)
This release contains contributions from:
Santiago Soler
Leonardo Uieda
Federico Esteban
DC Slagel
Version 1.5.0¶
Released on: 2020/06/04
Bug fixes:
Apply projections using only the first two coordinates instead all given coordinates. Projections only really involve the first two (horizontal) coordinates. Only affects users passing
extra_coordsto gridder methods. (#264)
New features:
New blocked cross-validation classes
BlockShuffleSplitandBlockKFold. These are scikit-learn compatible cross-validators that split the data into spatial blocks before assigning them to folds. Blocked cross-validation can help avoid overestimation of prediction accuracy for spatial data (see [Roberts_etal2017]). The classes work withverde.cross_val_scoreand any other function/method/class that accepts a scikit-learn cross-validator. (#251 and #254)Add the option for block-wise splitting in
verde.train_test_splitby passing in aspacingorshapeparameters. (#253 and #257)
Base classes:
Add optional argument to
verde.base.least_squaresto copy Jacobian matrix. (#255)Add extra coordinates (specified by the
extra_coordskeyword argument to outputs ofBaseGriddermethods. (#265)
Maintenance:
Update tests to
reprchanges in scikit-learn 0.23.0. (#267)
Documentation:
Fix typo in README contributing section. (#258)
This release contains contributions from:
Leonardo Uieda
Santiago Soler
Rowan Cockett
Version 1.4.0¶
Released on: 2020/04/06
Bug fixes:
Profile distances are now returned in projected (Cartesian) coordinates by the
profilemethod of gridders if a projection is given. The method has the option to apply a projection to the coordinates before predicting so we can pass geographic coordinates to Cartesian gridders. In these cases, the distance along the profile is calculated by theprofile_coordinatesfunction with the unprojected coordinates (in the geographic case it would be degrees). The profile point calculation is also done assuming that coordinates are Cartesian, which is clearly wrong if inputs are longitude and latitude. To fix this, we now project the input points prior to passing them toprofile_coordinates. This means that the distances are Cartesian and generation of profile points is also Cartesian (as is assumed by the function). The generated coordinates are projected back so that the user gets longitude and latitude but distances are still projected Cartesian meters. (#231)Function
verde.grid_to_tablenow sets the correct order for coordinates. We were relying on the order of thecoordsattribute of thexarray.Datasetfor the order of the coordinates. This is wrong because xarray takes the coordinate order from thedimsattribute instead, which is what we should also have been doing. (#229)
Documentation:
Generalize coordinate system specifications in
verde.base.BaseGridderdocstrings. Most methods don’t really depend on the coordinate system so use a more generic language to allow derived classes to specify their coordinate systems without having to overload the base methods just to rewrite the docstrings. (#240)
New features:
New function
verde.convexhull_maskto mask points in a grid that fall outside the convex hull defined by data points. (#237)New function
verde.project_gridthat transforms 2D gridded data using a given projection. It re-samples the data usingScipyGridder(by default) and runs a blocked mean (optional) to avoid aliasing when the points aren’t evenly distributed in the projected coordinates (like in polar projections). Finally, it applies aconvexhull_maskto the grid to avoid extrapolation to points that had no original data. (#246)New function
verde.expanding_windowfor selecting data that falls inside of an expanding window around a central point. (#238)New function
verde.rolling_windowfor rolling window selections of irregularly sampled data. (#236)
Improvements:
Allow
verde.grid_to_tableto takexarray.DataArrayas input. (#235)
Maintenance:
Use newer MacOS images on Azure Pipelines. (#234)
This release contains contributions from:
Leonardo Uieda
Santiago Soler
Jesse Pisel
Version 1.3.0¶
Released on: 2020/01/22
DEPRECATIONS (the following features are deprecated and will be removed in Verde v2.0.0):
Functions and the associated sample dataset
verde.datasets.fetch_rio_magneticandverde.datasets.setup_rio_magnetic_mapare deprecated. Please use another dataset instead. (#213)Class
verde.VectorSpline2Dis deprecated. The class is specific for GPS/GNSS data and doesn’t fit the general-purpose nature of Verde. The implementation will be moved to the Erizo package instead. (#214)The
clientkeyword argument forverde.cross_val_scoreandverde.SplineCVis deprecated in favor of the newdelayedargument (see below). (#222)
New features:
Use the
dask.delayedinterface for parallelism in cross-validation instead of the futures interface (dask.distributed.Client). It’s easier and allows building the entire graph lazily before executing. To use the new feature, passdelayed=Truetoverde.cross_val_scoreandverde.SplineCV. The argumentclientin both of these is deprecated (see above). (#222)Expose the optimal spline in
verde.SplineCV.spline_. This is the fittedverde.Splineobject using the optimal parameters. (#219)New option
drop_coordsto allowverde.BlockReduceandverde.BlockMeanto reduce extra elements incoordinates(basically, treat them as data). Default toTrueto maintain backwards compatibility. IfFalse, will no longer drop coordinates after the second one but will apply the reduction in blocks to them as well. The reduced coordinates are returned in the same order in thecoordinates. (#198)
Improvements:
Use the default system cache location to store the sample data instead of
~/.verde/data. This is so users can more easily clean up unused files. Because this is system specific, functionverde.datasets.locatewas added to return the cache folder location. (#220)
Bug fixes:
Correctly use
parallel=Trueandnumba.prangein the numba compiled functions. Using it on the Green’s function was raising a warning because there is nothing to parallelize. (#221)
Maintenance:
Add testing and support for Python 3.8. (#211)
Documentation:
Fix a typo in the JOSS paper Bibtex entry. (#215)
Wrap docstrings to 79 characters for better integration with Jupyter and IPython. These systems display docstrings using 80 character windows, causing our larger lines to wrap around and become almost illegible. (#212)
Use napoleon instead of numpydoc to format docstrings. Results is slightly different layout in the website documentation. (#209)
Update contact information to point to the Slack chat instead of Gitter. (#204)
This release contains contributions from:
Santiago Soler
Leonardo Uieda
Version 1.2.0¶
Released on: 2019/07/23
Bug fixes:
Return the correct coordinates when passing
pixel_register=Trueandshapetoverde.grid_coordinates. The returned coordinates had 1 too few elements in each dimension (and the wrong values). This is because we generate grid-line registered points first and then shift them to the center of the pixels and drop the last point. This only works when specifyingspacingbecause it will generate the right amount of points. Whenshapeis given, we need to first convert it to “grid-line” shape (with 1 extra point per dimension) before generating coordinates. (#183)Reset force coordinates when refitting splines. Previously, the splines set the force coordinates from the data coordinates only the first time
fitwas called. This means that when fitting on different data, the spline would still use the old coordinates leading to a poor prediction score. Now, the spline will use the coordinates of the current data passed tofit. This only affects cases whereforce_coords=None. It’s a slight change and only affects some of the scores for cross-validation. (#191)
New functions/classes:
New class
verde.SplineCV: a cross-validated version ofSpline. that performs grid search cross-validation to automatically tune the parameters of aSpline. (#185)New function
verde.longitude_continuityto format longitudes to a continuous range so that they can be indexed withverde.inside(#181)New function
verde.load_surferto load grid data from a Surfer ASCII file (a contouring, griding and surface mapping software from GoldenSoftware). (#169)New function
verde.median_distancethat calculates the median near neighbor distance between each point in the given dataset. (#163)
Improvements:
Allow
verde.block_splitandverde.BlockReduceto take ashapeargument instead ofspacing. Useful when the size of the block is less meaningful than the number of blocks. (#184)Allow zero degree polynomials in
verde.Trend, which represents a mean value. (#162)Function
verde.cross_val_scorereturns a numpy array instead of a list for easier computations on the results. (#160)Function
verde.maxabsnow handles inputs with NaNs automatically. (#158)
Documentation:
New tutorial to explain the intricacies of grid coordinates generation, adjusting spacing vs region, pixel registration, etc. (#192)
Maintenance:
Drop support for Python 3.5. (#178)
Add support for Python 3.7. (#150)
More functions are now part of the base API:
n_1d_arrays,check_fit_inputandleast_squaresare now included inverde.base. (#156)
This release contains contributions from:
Goto15
Lindsey Heagy
Jesse Pisel
Santiago Soler
Leonardo Uieda
Version 1.1.0¶
Released on: 2018/11/06
New features:
New
verde.grid_to_tablefunction that converts grids to xyz tables with the coordinate and data values for each grid point (#148)Add an
extra_coordsoption to coordinate generators (grid_coordinates,scatter_points, andprofile_coordinates) to specify a constant value to be used as an extra coordinate (#145)Allow gridders to pass extra keyword arguments (
**kwargs) for the coordinate generator functions (#144)
Improvements:
Don’t use the Jacobian matrix for predictions to avoid memory overloads. Use dedicated and numba wrapped functions instead. As a consequence, predictions are also a bit faster when numba is installed (#149)
Set the default
n_splits=5when usingKFoldfrom scikit-learn (#143)
Bug fixes:
Use the xarray grid’s pcolormesh method instead of matplotlib to plot grids in the examples. The xarray method takes care of shifting the pixels by half a spacing when grids are not pixel registered (#151)
New contributors to the project:
Jesse Pisel
Version 1.0.0¶
Released on: 2018/09/13
First release of Verde. Establishes the gridder API and includes blocked reductions, bi-harmonic splines [Sandwell1987], coupled 2D interpolation [SandwellWessel2016], chaining operations to form a pipeline, and more.