Releases: ks905383/xagg
v0.3.2.4
Bug fixes
- The
impl='dot_prod'
functionality now supports >2-D data
What's Changed
- Fix dotprod extradims by @JPMastrogiacomo in #81
- Fix dotprod extradims by @ks905383 in #83
New Contributors
- @JPMastrogiacomo made their first contribution in #81
Full Changelog: v0.3.2.3...v0.3.2.4
v0.3.2.3
Minor updates
wm.diag_fig()
no longer needs the extrasubset_find
step to homogenize gridswm.diag_fig()
now covered by tests- minor bug fixes
What's Changed
Full Changelog: v0.3.2.2...v0.3.2.3
0.3.2.2
Updates
- Regridding weights to the input dataset grid now uses the "conservative" regridding algorithm from
xesmf
instead of the "bilinear" one; the bilinear one is inappropriate for many weights (population, etc.), since it throws away many low-valued source boxes. - Weights now have
nan
s set to 0 before regridding, to make surenan
pixels are included in weights. Sincenan
s usually imply 0s in weights (for example, population weights for which water surfaces are set tonan
), this prevents entire coarser pixels from being set to 0 if they overlap with anan
- Both of the above can be changed with
xa.set_options(rgrd_alg='bilinear',nan_to_zero_regridding=False)
, respectively.
Bug fixes
wm.diag_fig()
now accepts DataArrays, as stated in docs.
What's Changed
- Increase codecov by @ks905383 in #72
- Diag fig fix by @kerriegeil in #73
- Add in main updates by @ks905383 in #74
- Changes regridding algorithm default to conservative, done after setting weight nans to 0s by @ks905383 in #75
Full Changelog: v0.3.2.1...v0.3.2.2
v0.3.2.1
Major updates
Creates a module-wide way to set defaults for :
- silencing behavior
- backend algorithm
So, for example, to set the backend to use the dot product implementation, call:
import xagg as xa
xa.set_options(impl='dot_product')
Alternatively, use a with
block for individual chunks of code, here using an example with silent
:
with xa.set_options(silent=True):
wm = xa.pixel_overlaps(ds,gdf)
which silences all status updates.
Bug fixes
Closes #55 ; silent=True
now should suppress all status updates to standard out.
v0.3.2.0
Major Changes
Features
xesmf
is now an optional dependency, which should remove a lot of installation issues; this should close #47 .- Support for Windows: the
aux
module has been renamedauxfuncs
; together with making thexesmf
dependency optional, this should close #23 #22 #58 . - The
weightmap
class now has a new method that creates diagnostic figures, showing individual polygons and the grid that overlaps with them, shaded by overlapping area. Try it out and let me know what you think! (wm.diag_fig()
)
Bug fixes
xagg
is now more robust to grids with a challenging relationship with major longitudes / latitudes: notably, grids can now have grid cells that cross the antimeridian (following GeoJSON conventions of splitting those into MultiPolygons)xa.aux.get_bnds()
now works with grids that are misaligned with the antimeridian, that only partially cross the antimeridian, or that have half pixels at the polesxa.core.process_weights()
now will matchweights
grids tods
grids even if they arenp.allclose()
but not identical, and throws a warning if the resultantweights
variables is entirely 0s ornp.nan
sxa.aux.normalize()
will now returnnp.nan
arrays if the vector is entirely 0s (to avoid the divide by 0 warning)silent=True
should now actually prevent all normal standard output. Most warnings are unaffected. Closes #55 .
Short Changelog
- Bump actions/setup-python from 4 to 5 by @dependabot in #53
- Fixing wraparound issue by @ks905383 in #60
- Aims to address #58 and #23 by renaming
aux
toauxfuncs
by @ks905383 in #61 - Closes #55 by making silent=True silence all std out by @ks905383 in #63
- make tests more robust to dot product implementation by @ks905383 in #64
- Remove explicit dependency on
xesmf
by @ks905383 in #65 - Update test envs to support python 3.9-3.12, plus an env without xesmf by @ks905383 in #66
Full Changelog: v0.3.1.1...v0.3.2.0
v0.3.1.1
v0.3.1
v0.3.0.2
v0.3.0.1
Fixes dependency error in setup.py
that was preventing publication of v0.3* on conda-forge.
Full Changelog: v0.3.0...v0.3.0.1
v0.3.0
Performance upgrades
Various performance upgrades, particularly for working with high resolution grids.
In create_raster_polygons
:
- replacing the for-loop assigning pixels to polygons with a lambda apply
- creating flexible buffer for subsetting to bounding box, replacing the hardcoded 0.1 degrees used previously with twice the max grid spacing
In aggregate
:
- an optional replacement of the aggregating calculation with a dot-product implementation (
impl='dot_product'
inpixel_overlaps()
andaggregate()
), which may improve performance in certain situations
Expanded functionality
Weightmaps can now be saved using wm.to_file()
and loaded using xagg.core.read_wm()
, and no longer have to be regenerated with each code run.
Bug fixes
Various bug fixes
What's Changed
- speed improvement for high res grids in create_raster_polygons by @kerriegeil in #29
- dot product implementation by @jsadler2 in #4
- Speedup for large grids - mod gdf_pixels in create_raster_polgons by @kerriegeil in #30
- implement making dot product optional, restoring default agg behavior by @ks905383 in #32
- Implement a way to save weightmaps (output from
pixel_overlaps
) by @ks905383 in #33
New Contributors
- @kerriegeil made their first contribution in #29
- @jsadler2 made their first contribution in #4
Full Changelog: v0.2.6...v0.3.0