Release History#
1.54.1 (2026-06-02)#
FIX: Fix regression with
path.get_filenamefor .SAFE and .SEN3 directories
1.54.0 (2026-06-01)#
ENH: Filter directory extensions (if wanted) in
path.get_extwithcurate_dir_extensionskeywordDEPR: In a next release,
path.get_extwill return the extensions with a starting point to follow pathlib’ suffix behaviour. Setstart_with_pointtoTrueto get the new behaviour.FIX: Handle correctly chained extensions finishing by
gzinpath.get_extFIX: Handle correctly point-based folders in
path.get_extandpath.get_filenameFIX: Fix
arcpy.run_in_conda_env
1.53.1 (2026-05-05)#
FIX: Fix raster layer check in
arcpy.gp_layer_to_path
1.53.0 (2026-05-05)#
BREAKING CHANGE: Rename
CustomEncoderintoCustomJsonEncoder(shouldn’t affect anyone)ENH: Add a YAML save and read on JSON’s model (with custom dumper)
ENH: Propagate
rasters_rio.get_windowintorastersFIX: Remove
xdemdeprecation warning (save->to_file)
1.52.0 (2026-04-15)#
ENH: Add the possibility to read a feature layer from a GDB in
vectorsENH: Add the possibility to get the rasterio-compatible path from a raster layer stored in a GDB
FIX: Correctly handle returned path from
arcpy.gp_layer_to_pathin case of a raster stored in a GDBFIX: Force dask in
rasters.read’s reprojection only ifchunksis not NoneFIX: Fix expand dim in case
xarray-spatialis not usableFIX: Don’t force rasterio’s presence in env in types.py
LINT: Lint YAML files
1.51.0 (2026-01-29)#
ENH: Add
autooption todecimalinci.assert_geom_almost_equalto better manage decimals with projected CRS (auto sets 9 decimals for degrees, only 3 for meters)ENH: Add a unified
init_loggerfunction for all loggersFIX: Fix legacy KML reading with
fionaengineFIX: Correctly propagate the percentage value in
display.scale_to_uint8OPTIM: Don’t check for updates when running GPT
DOC: Update copyright to 2026
1.50.2 (2026-01-02)#
FIX: Better logic with
daskand related arguments (save_cog_with_daskandcompute) in case of non-chunked array inrasters.writeFIX: Handle weird
SystemError(withObjects/tupleobject.c:927) withsave_cog_with_daskinrasters.writeFIX: Fix nodata casting in output dtype in
rasters.writeFIX: Don’t change the data inplace during writing operations in
rasters.readFIX: Better NaN logic in
ci.assert_raster_almost_equal_magnitudeFIX: Allow passing
chunksin kwargs when giving paths into rasters functionsOPTIM: Review the logic of RPC reprojection and
windowedwriting
1.50.1 (2025-12-18)#
FIX: Regression fix for
get_archived_rio_pathto handle back multi-extension files (such as.SAFE.zip)CI: Factorize fixtures in
conftest.py
1.50.0 (2025-12-18)#
ENH: Support for Python 3.14
ENH: Allow passing a vector object into
vectors.read. Converts GeoSeries into GeoDataFrame.vector_pathis deprecated and is replaced byvectorENH: Add a
ignore_orderargument intoci.assert_geom_equalandci.assert_geom_almost_equalto ignore the features’ order during the checkENH: Add functions to automatically convert GeoSeries into GeoDataFrame (
geometry.to_gdfandgeometry.ensure_gdf)FIX: Regression fix for
read_archived_xmlto handle back multi-extension files (such as.SAFE.zip)FIX: Fix back support for multilayer KMZ
FIX: Export
ogr2ogrto GeoPackage to be more robust than with GeoJSONsCI: Add weekly tests against Python 3.14
CI: Don’t run classic tests on schedule
DEPS: Revamp deps
1.49.0 (2025-12-04)#
BREAKING CHANGE: Drop Python 3.9 support (#35)
ENH: Force
run_in_conda_envfunction to launch the input executable in the same environment withconda_env_name="self"ENH: Factorize more of
run_in_conda_envfunctions:arcpy.create_conda_env_cliandarcpy.run_in_conda_env_cliENH: Add extend_env and shell arguments to run_in_conda_env function
FIX: run_in_conda_env function not running on Unix system
FIX: Make sure arrays have a CRS when reprojected with RPCs. If not, set
epsg:4326as default, by convention.FIX: Add an error if the window doesn’t cover the dataset in
get_windowFIX: Add a default value for
other_argsinsnap.get_gpt_cliFIX: Read KMLs with
pyogrio 0.12.0(#52)
1.48.0 (2025-11-07)#
BREAKING CHANGE: Remove deprecated functions and arguments (#56)
ENH: Allow
dst_transformandgcpsto be passed torasters.reprojectENH: Add
run_in_conda_envinarcpy, a function that allows to run an executable with conda in a python subprocessFIX: Fix collocation error with reference transform not being passed in
rasters.collocateFIX: Always return x, y spatial coordinates when reprojecting with
odc.geo(instead of its default behaviour, see here)FIX: Allow other coordinates than x and y (to support
odc.geo) inrasters.collocateFIX: Remove warnings (#56)
FIX: Improve coverage (#56)
FIX: Handle ImportError in
arcpy.init_conda_arcpy_envCI: Add
os_utilstests (#56)
1.47.0 (2025-09-10)#
ENH: Add a function checking if an array is computed or still chunked (
dask.is_computed,dask.is_chunked) and its equivalents to assert whether arrays have been computed or not (ci.assert_chunkedandci.assert_computed) (#47)ENH: Add a context manager checking counting dask computations (
dask.raise_if_dask_computes) (#47)ENH: Add an environment variable (
SERTIT_DEFAULT_CHUNKS) to control default chunks in xarray rasters and a function better managing default chunks (dask.get_default_chunks) (#47)ENH: Add a classify function to classify a raster according to bins and values (#40)
ENH: Add a performance module (
sertit.perf) featuring max core-related functions and environment variablesENH: Create a wrapper for reprojection, handling different usecases: dask, RPCs, etc. Using
odc.geo,rioxarrayorrasterioaccording to the usecase (#41)ENH: Allow the user to pass environment variables to dask clients (#31)
ENH: Create a
os_utilsmodule grouping several functions looking for useful executables, such as QGISOPTIM: Use
odc.xr.xr_reprojectto enable lazy dask computation for rescaling data inrasters.read(in case of upscaling only)OPTIM: Make
rasters.read_bit_arrayandrasters.read_uint8_arraylazy (#27)OPTIM: Make
rasters.rasterizelazyOPTIM: Some other minor optimizations regarding to dask usage (#27)
FIX: Check if rasters function outputs a lazy or computed array (for now only throw warnings as most functions are not lazy) (#47)
FIX: Fix
ci.assert_valfor xr.DataArrayCoordinatesFIX: Update also
long_namewithnew_nameinrasters.set_metadataFIX: Fix rasterizing vectors with multiband rasters (#43)
FIX: Don’t try to read KML with
pyogrio <= 0.11.1FIX: Fix
ci.assert_valwith nansFIX: Better nan management in
ci.assert_raster_almost_equal_magnitudeFIX: Make vectorize-based functions to work with
xarray.DatasetFIX: Fix original dtype in
read_bit_arrayFIX: Better kwargs management in
merge_gtiffFIX: Fix reading a tuple (array, metadata) with
rasters.readCI: Correctly compute numpy case with
dask_envdecoratorCI: Correctly manage dask in
test_rasters.test_set_nodataandtest_rasters.test_where(create a dask array to evaluate laziness)CI: Check correctly the number of attended computations per raster tests (#47)
DOC: Document which function of rasters isn’t lazy yet (currently:
sieve,rasterize,vectorizeand other functions depending on it) (#47)
1.46.4 (2025-04-04)#
ENH: Rewrite entirely the s3 module
FIX: Fix transform recomputation when downsampling a raster with coarsen method in
rasters.read
1.46.3 (2025-03-28)#
ENH: Read config and credentials from network drive X if existing
FIX: Size overrides resolution argument in
rasters(rio).read(which makes way more sense)FIX: Don’t overwrite rasterio’s env in
s3.temp_s3ands3.s3_env(apart from s3 options of course)Fix: define_s3_client not reading endpoint_url from arguments fixed
1.46.2 (2025-03-15)#
ENH: Add some BigTiff optimizations in
snap.get_gpt_cliFIX: Fix typo in nodata management in
rasters.collocateFIX: Fill nan values with 0 in
rasters.read_uint8_arrayandrasters.read_bit_arraybefore converting it to uint8FIX: Fix
rasters.writewith other drivers than the classic rasters ones (such asPNG)
1.46.1 (2025-03-11)#
FIX: Set 512 as default blocksize for
rasters.writewhen usingodc.geo.save_cog_with_daskFIX: Fix error message in
ci.assert_xr_encoding_attrsfor missing encoding keyFIX: Set back encoding correctly in
rasters.read(as_type=...)FIX: Fix nodata management in
rasters.collocate
1.46.0 (2025-03-03)#
ENH: Add two functions for converting degrees to and from meters:
rasters.from_deg_to_metersandrasters.from_meters_to_degENH: Add the ability to return a
dask.delayedobject inrasters.writeENH: Save the path of the opened files in attributes in
rasters.readFIX: Better manage default options in
rasters.write, allowing to write easily with other drivers thanGTifforCOG(such asZarr)FIX: Don’t take nodata value into account in
ci.assert_raster_almost_equal_magnitude
1.45.2 (2025-02-17)#
FIX: Fix regression in
geometry.simplify_footprint
1.45.1 (2025-02-17)#
FIX: Add more tolerances in
geometry.simplify_footprintto allow further simplification, and a warning in case of failureFIX: Force 2D geometries in
rasters.cropasodc.geo.xr.cropdon’t work with 3D geometriesFIX: Fix nodata casting in
rasters_rio.rasterizefor float values casted into integersOPTIM: Only write rasters on disk with
windowed=Truein case of big rasters (w/h > 20,00020,000 pixels)DEPR: Remove mention to DS2 in Unistra (keep only the mounting points for legacy purposes)
CI: Refactor
.gitlab-ci.ymlfile with new GitLab templates
1.45.0 (2025-01-27)#
ENH: Use
odc.geo.xr.cropinstead ofrio.clipto makerasters.cropdask-compatible (#27)ENH: Allow passing the version number as a string to
misc.compare_versionsFIX: Fixes when trying to write COGs with dask in
rasters.writeFIX: Correctly propagate kwargs when writing COGs with dask in
rasters.write
1.44.6 (2025-01-13)#
DEPS: Only ask for
cloudpathlib[s3]as a dependency (and not cloudpathlib[all])
1.44.5 (2025-01-10)#
ENH: Add the ability to round rasters values in
ci.assert_raster_max_mismatchFIX: Fix regression in
rasters.collocatewhereodc.geo.xr_reprojectwas not used correctly.FIX: Fix when trying to pop non-existing
nodatakeyword inrasters.collocate
1.44.4 (2025-01-07)#
FIX: Fix regression in
rasters.any_raster_to_xr_ds(rightExceptionnot thrown,UnboundLocalErrorthrown instead when trying to return non-existing variable)
1.44.3 (2025-01-06)#
FIX: Manage case where we have a
pd.Dataframeinstead of agpd.GeoDataFrameinvectors.read(reading a.dbffile for instance)FIX: Simplify decorator function of
rasters.read, to better check the input types and to have a clearer function name and clearer exceptionsFIX: Simplify decorators
rasters.any_raster_to_xr_dsandrasters_rio.any_raster_to_rio_dsto better check the input types and to have clearer exceptions
1.44.2 (2024-12-23)#
ENH: Drop
isort,blackandflake8and useruffENH: Use
pyproject.tomlinstead ofsetup.pyFIX: Fix too broad exception in case of
geopandas >= 1.0FIX: Fix deprecation warning for
get_nodata_value_from_dtypeinrasters_rioFIX: Force blocksize to 128 when writing small COGs on disk (in order to have multiple overview levels)
FIX: Use
np.taninrasters.slopeFIX: Allow str as paths in
ci.assert_files_equalFIX: Better alignement between
rasters.readfunction andrasters.any_raster_to_xr_dsdecoratorFIX: Fix
rasters.sievefunction withxr.apply_ufuncOPTIM: Compute the spatial index by default in
vectors.read(setvectors.read(..., compute_sindex=False)if you don’t want to compute them)CI: Rename CI folder and remove unnecessary intermediate folder
1.44.1 (2024-12-12)#
OPTIM: Don’t download an archive stored on the cloud when trying to read a vector stored inside it in
vectors.readOPTIM: Don’t download files stored on cloud when applying
ci.assert_files_equalon themOPTIM: Offer the ability to give the archived file list directly to
path.get_archived_file_listandfiles.read_archived_file, as this operation is expensive when done with large archives stored on the cloud (and thus better done only once). Propagated intopath.get_archived_path,path.get_archived_rio_path,vectors.read,xml.read_archive,files.read_archived_xmlandfiles.read_archived_htmlCI: Test both Dask’s multithreaded and local cluster in CI
DEPR: Deprecate
xml_regexandfile_regexarguments from above-mentioned functions in favor of a harmonizedregexargument.DEPS: Reduce
dask-related dependencies to the libraries related to this project (abandondask[complete]as we don’t need most of the embedded libraries).DOCS: Add notebooks to document best practises
1.44.0 (2024-12-09)#
BREAKING CHANGE: Renaming of
rasters(_rio).writeargumentpathtooutput_pathto avoid shadowingsertit.pathmodule. Older argument is deprecated.ENH: Use
odc.geo.xr.maskinstead ofrasterio.maskto be dask-compatible inrasters(true forpaintandmask) (#27)ENH: Use
odc.geo.xr.xr_reprojectinstead ofrioxarray.reproject_matchto be dask-compatible inrasters.collocate(#27)ENH: Use
xarray-spatialto be dask-compatible inrasters.slopeandrasters.hillshade. (#27)ENH: Add support for
aspectfunction (only inrasters). (#29)FIX: Fix the ability to save COGs with any dtype with Dask, with the workaround described here (don’t compute statistics for problematic dtypes)
FIX: Better separability of
dask(it has its own module now): don’t create a client if the user doesn’t specify it (as it is not required anymore inLock). This should remove the force-use ofdask.OPTIM: For arrays with same shape and CRS, replace only the coordinates of
otherbyref’s inrasters.collocateOPTIM: Call
dask.optimizebefore any dask computation (#27)FIX: Fix vectorization with dask arrays (and remove the silent failure in case of exception when computing) (#27)
DEPS: Add an optional dependency to
xarray-spatialfor daskified surface tools, such ashillshadeandslope
:warning: We selected for now xarray-spatial dependency for DEM-related functiions, but this may not be the final selection.
When a bit more mature, it is rather likely that geoutils and xdem will be selected instead.
See this issue for dask-related choices.
1.43.4 (2024-11-28)#
FIX: Fix regression in
files.read_jsondue to Python 3.11 wheredatatime.fromsioformatparses more than the output ofisoformat()
1.43.3 (2024-11-27)#
FIX: Set back
MAX_CORESissnapas it breaks unexpectedly a fair number of libraries
1.43.2 (2024-11-27)#
1.43.1 (2024-11-22)#
OPTIM: Manage dask correctly when writing a raster to disk in
rasters.write(needsodc-geoandimagecodecsfor COGs)OPTIM: Write data with
windowed=Truewhen Dask is not enabled (for COGs)FIX: Don’t compute dask array in case of
windowkeyword inrasters.readfunctionFIX: Don’t allow
windowkeyword to go intogpd.to_filefunctionFIX: Add all
distributedlogers toci.reduce_verbosity
1.43.0 (2024-11-14)#
ENH: Add prune and select keys from dict functions:
misc.select_dictandmisc.prune_dictENH: Handle dict in
misc.remove_empty_valuesand allow the user to add other values considered as emptyFIX: Select arguments from
**kwargsfor functions with finished number of argumentsFIX: Remove empty kwargs from
rasters.write(leading sometimes to GDAL warnings)FIX: Don’t try to set any
tiledargument withCOGdriver inrasters.write
1.42.3 (2024-11-04)#
FIX: Fix PyPI’s Trusted Publisher Management mechanism
CI: Update SNAP version to 11.0
CI: Update repo for mirroring
LOG: Add
numbainci.reduce_verbosity
1.42.2 (2024-10-01)#
Allow
geopandas < 1.0.0(sertit-utilsshould work with0.14.4)PUBLISH: Use PyPI’s Trusted Publisher Management mechanism
1.42.1 (2024-09-25)#
FIX: Don’t use isinstance and subtypes together (#22)
FIX: Allow
use_s3_env_varinunistra.s3_envTYPO: Replace
UNISTRA_S3_ENPOINTbyUNISTRA_S3_ENDPOINT
1.42.0 (2024-09-03)#
ENH: Add a function
snap.get_snap_versionto retrieve current SNAP version (#172)ENH: Allow to pass directly a version object to
misc.compare_versionFIX: Prune empty keywords from kwargs in
rasters(_rio).writeto avoid throwing GDAL warnings/errorsFIX: Correctly throw the exception when
rasters_rio.any_raster_to_rio_dsfails with axarraydata structureFIX: Fix rasterization of vector on floating point rasters (with a nodata not castable to the wanted dtype)
FIX: Handle correctly nan values in
ci.assert_valFIX: Fix
rasters.set_nodatawith already existing nodata value in raster
1.41.0 (2024-08-06)#
BREAKING CHANGE: Renaming of
rasters(_rio).get_nodata_valuefunction torasters(_rio).get_nodata_value_from_dtype. Older function is deprecated.ENH: Creating
rasters.get_nodata_value_from_xrto retrieve the nodata value as specified byrioxarrayFIX: Fix handling of nodata with xarray structures in
sertit.rastersFIX: Handle None cases in
ci.assert_valCI: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in sertit/sertit-utils#21
1.40.0 (2024-08-05)#
BREAKING CHANGE: Renaming of
rasters.path_xarr_dstfunction torasters.any_raster_to_xr_ds. Older function is deprecated.BREAKING CHANGE: Renaming of
rasters_rio.path_arr_dstfunction torasters_rio.any_raster_to_rio_ds. Older function is deprecated.BREAKING CHANGE: Creating
types.AnyRasterTypeinstead ofrasters.PATH_XARR_DSandrasters_rio.PATH_ARR_DS. Older types are deprecated.ENH: Creating
types.AnyRioDatasetTypefor any rasterio Dataset (both Reader, Writer)ENH: Creating
types.AnyVectorTypefor any vector (path or GeoDataFrame)ENH: Adding the file path and name in the vector attributes (in
vec.attrs["path"]andvec.attrs["name"]) withvectors.read
1.39.1 (2024-07-29)#
FIX: Allow the user not to convert Nones in
types.make_iterable(withconvert_nonekeyword)FIX: Allow the user not to take strings as iterables
types.make_iterableandtypes.is_iterable(withstr_allowedkeyword)
1.39.0 (2024-07-29)#
ENH: Add
types.make_iterableandtypes.is_iterablefunctionsSwitch to
mainbranch
1.38.0 (2024-07-26)#
ENH: Manage
geopandas>=1.0and its default enginepyogrio:ENH: Add function
vectors.is_geopandas_1_0FIX: Manage the duality of exceptions between
fionaandpyogrioforDriverError/DataSourceErrorFIX: Handle null GMLs with
pyogrioengineFIX: Workaround for KMZ issue with
geopandas > 1.0andpyogrio < 0.10.0(GitHub issue)
ENH: Add a function
misc.compare_versionto compare a library version to a reference version according to an operator given by the userENH: Add a function
misc.compareto compare two objects according to an operator given by the userFIX: Make
path.get_archived_pathfunction case-insensitive by defaultFIX: Fix
path.get_filenamefor a file in a zip pathFIX: Handle fiona not installed in the environment (#20)
CI: Minor fix in CI scripts to handle
numpy>=2.0updates
1.37.2 (2024-05-22)#
FIX: Fail build in 1.37.1
1.37.1 (2024-05-22)#
FIX: Don’t set endpoint_url in s3 if environment variable is empty
1.37.0 (2024-04-22)#
ENH: Add AWS profile feature to s3 module
FIX: Fix
files.extract_filewhen there are only files in the root of the zip archive (#14)FIX: FIX metadata handling with
rasters_rio.readwhen reading with indexes
1.36.1 (2024-03-26)#
FIX: Fix
vector._read_vector_corewhen we convert a GML file from S3 to geojson with ogr2ogr (#12)FIX: Fix
files.extract_filewhen there is a file in the root of the zip archive (#11)FIX: Fix
geometry.nearest_neighborswhen k is bigger than the number of candidatesFIX: Add a
buffer_on_inputingeometry.intersectsto manage edge cases when points on polygons boundary aren’t seen as intersectingFIX:
rasters.readacceptsxarrayobjects as inputFIX: Sanitize imports
DOC: Update some examples in documentation
1.36.0 (2024-02-27)#
BREAKING CHANGE: Rename
feature_layer_to_pathtogp_layer_to_pathBREAKING CHANGE: Rename
rasters(_rio).get_nodata_masktorasters(_rio).get_data_maskto better fit with its behaviour (1 where data is valid, 0 elsewhere)ENH: Add
geometry.intersectsto find polygons intersecting with other polygons (wrapper ofgeopandas.intersectsthat works only row-wise)ENH: Add
geometry.line_mergeto useshapely.line_mergeon GeoDataFramesENH: Add
geometry.buffer(usinggpd.buffer) to return a GeoDataFrame instead of a GeoSeriesENH: Add
geometry.nearest_neighborsto get the nearest neighbors from each point of a Point GeoDataFrame in another one (two methods,k_neighborsandradius). Needssklearn.FIX: Ignore when trying to split polygons with points
FIX: Make
ci.assert_valwork for IterablesDOC: Numerous documentation updates to better use Sphinx syntax
1.35.0 (2024-02-08)#
ENH: Add
arcpy.feature_layer_to_pathto retrieve the path from an ArcGIS feature layerENH: Add a class
ArcPyLoggerto better handle logs in Arcgis Pro toolsENH: Add
geometry.splitto split polygons with polygonsFIX: Fix
rasters.sievewith integer data
1.34.2 (2024-01-23)#
FIX: Update
setup.pyto have all the needed dependencies listed inrequirements.txt(#9)FIX: Fix
vectors.readwithengine=pyogriowhen opening vectors without geometries (likedbffiles)
1.34.1 (2024-01-17)#
FIX: Update
arcpy.init_conda_arcpy_envto fix new issues (GDALInvalidVersionwhen writing on disk withgeopandasusingfiona’s engine)
1.34.0 (2024-01-15)#
BREAKING CHANGE: Set default
chunkstoautoinrasters.readENH: Add types for ArcGis GDB in
arcpyFIX: Allow folders to be opened in
vectors.read(to open GDBs)OPTIM: Geopandas now handles correctly S3 paths, so don’t download S3-stored vectors anymore
1.33.0 (2024-01-02)#
ENH: Mirror
windowinvectors.read(fromrasters.read), enhancinggpd.read_file(bbox=...)FIX: Allow kwargs in
rasters.collocateDOC: Update copyright to 2024
1.32.4 (2023-12-07)#
FIX: Fix requester_pays option in
s3moduleFIX: Use
total_boundswhen computing the window inrasters(_rio).read()
1.32.3 (2023-11-28)#
FIX: Fixing additional arguments passed to the
s3decorator
1.32.2 (2023-11-22)#
FIX: Fixing the return of s3 environment decorators
CI: Enabling pre-commit.ci and dependabot bots
1.32.1 (2023-11-14)#
FIX: Add the support of
no_sign_requestins3functions
1.32.0 (2023-11-13)#
BREAKING CHANGE: Change the order of
files.save_jsonfunction to fitfiles.save_obj. Older function is deprecated.ENH: Allow to pass **kwargs in
files.save_jsonandfiles.save_objENH: Allow to pass **kwargs for S3 environments, in order to add options such as requester pays
FIX: Use
EPSG_4326instead ofWGS84for sake of naming accuracy (this is not the same thing!) (WGS84stays available though)FIX: Return
Falseinstead of failin inpath.is_cloud_pathif it cannot be converted toAnyPathFIX: Fix the custom JSON encoder to handle sets
FIX: Handles correctly multi-layered KMZ in
vectors.read
1.31.0 (2023-10-30)#
ENH: Add
s3.temp_s3andunistra.unistra_s3context managers to manage s3 environments inside Python codeFIX: Fix
rasters.readwhith given indexes orderDEPS : only import
vectorsinside functions forcimodule (in order not to have to install rasterio if these functions are not needed)DEPS : don’t import anything from
rasterioinsidevectorsmodule (in order not to have to install rasterio if these functions are not needed)DEPS: Remove as many mention as possible to
cloudpathlib
1.30.1 (2023-10-20)#
FIX: Reorder raster in
rasters.readwhith the given indexes orderFIX: Allow to write with any driver in
rasters(_rio).writeFIX: Create proper variables for environment variables in
snapFIX: Normalize geometries before testing within
ciFIX:
files.get_archived_rio_pathreturns the result ofpath.get_archived_rio_pathinstead of incorrect one.CI: Update pre-commit hooks
1.30.0 (2023-10-04)#
BREAKING CHANGE: Creating a
pathmodule where followingfilesfunctions have been transferred (original have been deprecated):get_root_path,listdir_abspath,to_abspath,real_rel_path,get_archived_file_list,get_archived_path,get_archived_rio_path,get_filename,get_ext,find_files,get_file_in_dir,is_writable.ENH: Add a
s3modules handling other endpoints than Unistra’sENH: Add deprecation for
cifunctions handled in other modules (such ass3_env,define_s3_client,get_db2_path,get_db2_path,get_db2_path)FIX: Allow
unistra.s3_envto wrap functions with argumentsFIX: Manage the case with fsspec path given to
vectors.readCI: Better testing of kwargs handling in
vectors.readUpdate README
1.29.1 (2023-09-26)#
ENH: Add a function covering
vectors.corresponding_utm_projection’s usecase (converting lat/lon to UTM CRS):vectors.to_utm_crs. Returns directly a CRS instead of a string. Keep the deprecation forcorresponding_utm_projectionbut not for the same reason.
1.29.0 (2023-09-25)#
BREAKING CHANGE: Creating a
geometrymodule where followingvectorsfunctions have been transferred:from_polygon_to_bounds,from_bounds_to_polygon,get_wider_exterior,make_valid. The functionfill_polygon_holeshas been created.ENH: Add a
vectors.utm_crscontext manager allowing the user to compute seamlessly geographic-based operation (such as centroids, area computation…)ENH: Add a
sertit.typescontaining aliases to common typingsENH: Add kwargs in
vectors.readENH: Handles unchecked attributes in
ci.assert_xr_encoding_attrsENH: Add more types
ENH: Add a new module
unistraused to handle functions referring to Unistra’s environmentFIX: Return an AssertionError text in
ci.assert_xr_encoding_attrsFIX: Fix
display.scale_to_uint8with numpy masked arraysDEPR: Deprecation of
vectors.corresponding_utm_projectionin favor to geopandas’estimate_utm_crs
1.28.3 (2023-07-20)#
FIX: Fixing Windows archived rasterio path (switching to
vsizip/vsitarfor all platform)
1.28.2 (2023-07-07)#
FIX: Allow collocating rasters (only if they are given as DataArrays) from different dtypes
FIX: Make VRT relative in
merge_vrtif possible
1.28.1 (2023-06-22)#
FIX: Add a workaround for a weird bug with dask’s
reshape
1.28.0 (2023-06-15)#
ENH: Add a
vectors.copyfunction to handle the copy of shapefilesFIX: Fix debug message in
files.copy
1.27.3 (2023-06-12)#
FIX: Add
stacklevel=3when throwing deprecation warningsCI: Add a test to check if the deprecation warning is thrown
1.27.2 (2023-06-07)#
FIX: Allow users to read KMZ vectors (as it is now handled by fiona with LIBKML)
FIX: Better manage non-existing file given as a window
rasters(_rio).read
1.27.1 (2023-04-24)#
FIX: Don’t manage
bandcoordinate inrasters.collocate: keep as isFIX: Rename
reference_arrintoreferenceinrasters.collocate
1.27.0 (2023-04-24)#
ENH: Add a
misc.uniquefunction to retrieve unique elements of a list while keeping the original orderFIX: Fix the correct number of bands (in the coordinates of the xr.DataArray) in
rasters.collocateFIX: Changes names to reference/other objects in
rasters(_rio).collocate
1.26.0 (2023-04-17)#
ENH: Add a
vectors.writefunction to automatically detect the driver from the filename (and add the KML driver if needed)ENH: Add shapely 2.0 functions in
ci.assert_geom_xxxto handle more cases (2D/3D vectors, geomtry written in another way)FIX: Use our own function for setting the nodata instead of using rioxarray’s in
rasters.cropFIX: Fix GeoPandas FutureWarning in
explode:Currently, index_parts defaults to True, but in the future, it will default to False to be consistent with Pandas.INTERNAL: Simplify
rasters.readDEPS: Pin Shapely >= 2.0
DEPS: Dropping support of Python 3.8
1.25.0 (2023-04-04)#
ENH: Add a function simplifying footprints
ENH: Pass the
chunkskeyword toopen_rasterioin@path_xarr_dstENH: Add a wrapper to add deprecation warnings in
logsOPTIM: Better nodata management in
rasters.writeDEPS: Allow last versions of Dask
DOC: Update README
1.24.4 (2023-03-07)#
OPTIM: Allowing the user to change SNAP tile size with the environment variable
SERTIT_UTILS_SNAP_TILE_SIZE.OPTIM: Allowing the user to change SNAP max cores with the environment variable
SERTIT_UTILS_MAX_CORES.DOC: Document the usable environment variables
1.24.3 (2023-01-27)#
DEPS: Fixing deps (xarray is requiered by default)
1.24.2 (2023-01-25)#
FIX: Allowing the users to open
\\DS2\database0xdirectories fromci.get_dbx_path
1.24.1 (2023-01-24)#
FIX: fixing infinite values in
ci.assert_raster_almost_equal_magnitude
1.24.0 (2023-01-23)#
ENH: Adding NODATA formalizations in
rasters(_rio): function to get the value from a dtype (get_nodata_valueand global variables foruint8,int8,uint16,float)ENH: Allow to merge rasters with different projections
ENH: Adding a
ci.assert_raster_almost_equal_magnitudefunction that checks decimals from the scientific expression of the rasterCI: Don’t run tests when only
__init__or__meta__is updatedCI: Move data elsewhere than git
1.23.0 (2023-01-09)#
ENH: Adding
ci.assert_files_equalfunction
1.22.0 (2023-01-06)#
ENH: Adding several CI functions:
ci.assert_val,ci.assert_xr_encoding_attrs,ci.s3_env,ci.define_s3_clientENH: Making public
ci.assert_fieldFIX: factorizing some
cifunctions, better logs in other…FIX: Fixing
xml.readwith cloud path as strFIX: Fixing
ci.assert_dir_equalif folders don’t have files ordrered inside… (for some reason)FIX: Add
distributedin loggers removed byci.reduce_verbosityFIX: Use
sertitLOGGER innetworksmoduleFIX: Manage
CloudPathinfiles.copyfunctionDOC: Changing copyright from 2022 to 2023
CI: Better handling of logging display for pytest
1.21.2 (2022-12-14)#
FIX: Better handling of windows in
rasters(_rio).readFIX: Expose
ci.assert_meta
1.21.1 (2022-12-13)#
FIX: Fix new_shape retrieval when providing a size with height or width equal to the original dimension
DOC: Add latest DOI link
1.21.0 (2022-12-13)#
ENH: Add the possibility to load an image/geo window in
rasters(_rio).read(#1)
1.20.3 (2022-11-30)#
FIX: Ensure that attributes and encoding are propagated through
rastersfunctionsFIX: Allow the user to pass tags in
rasters(_rio).write
1.20.2 (2022-11-29)#
FIX: Add other double extensions to discard in
files.get_filenameFIX: Add the possibility to use other double extensions in
files.get_filename
1.20.1 (2022-11-29)#
FIX: Get proper filename in
files.get_filenamefor point-separated names of folder/files
1.20.0 (2022-11-29)#
ENH: Add a
xml.dict_to_xmlfunctionCI: Updating versions of pre-commit hooks
1.19.6 (2022-11-28)#
FIX: KML reading
vectors.readhas better log ifogr2ogrisn’t available in user’s PATH.FIX: Added a fallback using geopandas raw rfeading of KML file if
ogr2ogrisn’t available in user’s PATH.CI: Using actions/checkout@v3
1.19.5 (2022-11-21)#
FIX: Fix
files.to_abspathnew feature…
1.19.4 (2022-11-21)#
FIX: Allow the user to choose if
files.to_abspathraise a FileNotFoundError if the file doesn’t exist.
1.19.3 (2022-11-21)#
FIX: Force vector conversion to dataset CRS in
rasters(_rio).rasterizeDOC: Add a History page
CI: Correct gitlab-ci file
1.19.2 (2022-10-31)#
FIX: Add predictors for compression in
rasters(_rio).write: 3 for floating point data, 2 for others. (see https://kokoalberti.com/articles/geotiff-compression-optimization-guide/)CI: Update script versions in GitHub actions
1.19.1 (2022-10-28)#
FIX: Fixing nodata value in
rasters.write
1.19.0 (2022-10-10)#
ENH: Add a
files.get_extfunction to mirrorget_filenameENH: Add a
vectors.ogr2geojsonfunction to convert tricky vector files to GeoJSON using OGR fallbacksFIX: Handling GML CRS errors (i.e. with
urn:ogc:def:derivedCRSType) with some GDAL versions
1.18.3 (2022-10-07)#
FIX: Fixing absolute paths for non-existing files in
rasters(_rio).merge_vrt(again)
1.18.2 (2022-10-07)#
FIX: Fixing absolute paths for non-existing files in
rasters(_rio).merge_vrt
1.18.1 (2022-10-07)#
FIX: Enabling the option of absolute or relative paths in
rasters(_rio).merge_vrtFIX: Fix issue with too long command line with
rasters(_rio).merge_vrt(VRT with too much files)
1.18.0 (2022-09-28)#
ENH: Add a
xmlfolder grouping some helpers forlxml.etreesuch as:readread_archivewriteaddremoveupdate_attribupdate_txtupdate_txt_fctconvert_to_xmldf_to_xml
1.17.1 (2022-09-12)#
FIX: Set
BIGTIFF=YESwhen needed in memfile (IF_NEEDEDis not sufficient)OPTIM: Reduce memory usage when passing xarrays to
rasters_riofunctions
1.17.0 (2022-09-12)#
FIX: Allow BIGTIFF in memfiles
FIX: Do not import
rasterioandgeopandasforcifunctions that don’t need itFIX: Fixing pandas FutureWarning
The frame.append method is deprecated and will be removed from pandas in a future version.DEPS: Drop support of Python 3.7
1.16.1 (2022-08-30)#
FIX: Do not call fiona drivers through geopandas in
vectors.set_kml_driver
1.16.0 (2022-08-26)#
ENH: Adding useful AXA utils functions (
display.scale_to_uint8andstrings.is_uuid) #2OTHER: Log stack path when missing index in
rasters.read
1.15.0 (2022-08-24)#
1.14.1(2022-05-11)#
FIX: Manage
nodatakeyword inrasters_rio
1.14.0(2022-04-26)#
ENH: Add
get_archived_pathfunction infilesFIX: Add
errno.EINVALerror infiles.is_writableDOC: Remove
Use it like OTB SuperImposefrom documentationDOC: Update theme
1.13.2(2022-04-13)#
FIX: Add other loggers to
ci.reduce_verbosity
1.13.1(2022-04-11)#
FIX: Add checks for indexes in
rasters.readFIX: Fix bug with nodata in
rasters._vectorizeand rasters without nodata set
1.13.0 (2022-03-17)#
ENH: Adding a
reduce_verbosityfunction in CICI: Log debug when tests
DOC: Copyright to 2022
DOC: Some updates
1.12.2 (2022-02-24)#
CI: Test code only if files have changed
CI: Publishing wheel from GitHub instead of Gitlab
1.12.1 (2022-02-24)#
OPT: Do not
export_grid_mappingwhen usingrioxarray.open_rasterioFIX:
vectors.shapes_to_gdf: Fix geometry when converting to geopandasFIX:
rasters_rio.collocatereturns a masked_array if a masked_array is given as inputFIX: Use
--no-binary fiona,rasteriodirectly inrequirements.txtFIX: Remove warnings
CI: Clean
gitlab-ciREPO: Setting GitHub as the main repository and using new Gitlab runners
1.12.0 (2021-12-07)#
ENH: Adding a
assert_geom_almost_equalfunctionFIX: Better logs for CI functions
1.11.1 (2021-12-06)#
FIX: Using
dillinstead ofpickleas it works on more python types
1.11.0 (2021-12-02)#
ENH: Add
read_archived_fileandread_archived_htmlfunctionsFIX: Fixing ValueError in
rasters_rio.path_or_arr_or_dst_wrapper(ambiguous test)
1.10.0 (2021-11-26)#
BREAKING CHANGE: Removing
to_npfunction (useless)BREAKING CHANGE: Removing useless
dtypeargument from therasqters.sievefunctionFIX: Correcting the
sievingfunction that misused nodata valuesFIX: Correcting the
rasters_rio.writefunction that modified the array instead of just writing it
1.9.0 (2021-09-28)#
ENH: Adding
slopeandhillshadefunctions (to bypassgdaldemCLI)
1.8.1 (2021-09-22)#
FIX: Handling more cases in
files.is_writable
1.8.0 (2021-09-22)#
ENH: Adding
files.is_writablefunction to test if a directory is writable or notDOC: Using readthedocs instead of github docs
1.7.4 (2021-09-14)#
FIX: Fixing python version in environment.yml
FIX: Fixing driver to
GTiffinrasters.writeCI: Fixing dissolve with shapely < 1.8
1.7.3 (2021-09-08)#
FIX: Checking path existence in
vectors.readFIX: Repair geometries in
vectorizeFIX: Do not modify in place the input in
merge_vrt(strtransformed inPath)CI: Stop writing vector on disk
1.7.2 (2021-09-06)#
FIX: Managing dask arrays with rasterio
sieveCI: Testing properly
rastersfunctions with dask
1.7.1 (2021-09-03)#
ENH: Adding
ArcPyLogHandlerinarcpyFIX: Updating
init_conda_arcpy_envCI: Testing
rasters.readwith chunks
1.7.0 (2021-08-30)#
ENH: Adding a function managing
arcpyenvironment
1.6.0 (2021-08-26)#
ENH: Enabling Dask and ensure the functions are Dask-compatible
FIX: Fixing typo in
snap.get_gpt_clifunction (tileHeight)CI: Do not lint on tags
CI: Test with Dask local cluster
1.5.0 (2021-08-18)#
ENH: Making
add_to_zipwork with cloud zipsBREAKING CHANGE:
add_to_zipoutputs the completed pathFIX:
environment.ymlto respect the stricter use offile:syntax. See here for more information.FIX: Use
numpy>=1.21.2to avoid a bug inrasterio.mergewithmin/maxoptions. See here for more information.CI: Do not run pytests on tags and discard
exceptkeywords
1.4.8 (2021-07-29)#
ENH: Adding
ci.assert_raster_max_mismatchallowing a mismatch between two rasters’ pixels
1.4.7 (2021-07-28)#
FIX: Fixing the management of shapefiles on the cloud (caching the .shp and all other files)
FIX:
ci.assert_geom_equalmanages correctly GeoSeriesCI: renaming
buildstep tolintCI: Optimizing the lib installation
1.4.6 (2021-07-19)#
rasters.writeandrasters_rio.write:Manage correctly BigTiffs with LZW compression
Use the maximum number of available threads to compress
1.4.5 (2021-07-16)#
Fix: clumsy metadata management in
rasters_rio.merge_gtiffENH: We can use paths when testing with
ci.assert_geom_equal
1.4.4 (2021-07-13)#
Fix: Fixing a bug when using relative path with a start that is not an exact root
Adding a DOI and a .coveragerc
1.4.3 (2021-07-05)#
Fix: JSON can serialize Pathlib objects
Fix:
vectors.readforces CRS to WGS84 for KML
1.4.2 (2021-07-02)#
By default, using
BIGTFF=IF_NEEDEDwhen writing files on diskBug resolution when passing a rasterio dataset info
rastersfunctionsBug resolution for pathlib paths with
vectors.readType hints updates
1.4.1 (2021-06-29)#
vectors.read:Manage IO[bytes] and other inputs instead of only path in vectors.read and set KML vectors to WGS84
Manage Null Layer exception
[CI] Updating CI to really test S3 data
1.4.0 (2021-06-28)#
Handling S3 compatible storage data
[vectors] Adding a read function handling KML, GML, archived vectors…
[API break]
files.read_archived_vectoris removed (isevectors.readinstead)[API break] Using pathlib objects instead of str
CI: Updates
1.3.15 (2021-06-16)#
Adding a
displayfileAdding a scaling function in
display
1.3.14.post4 (2021-06-07)#
Managing naive geometries in
vectors.open_gml
1.3.14.post3 (2021-06-07)#
Converting GML GeoDataFrame to the wanted CRS in
vectors.open_gml
1.3.14.post2 (2021-06-07)#
Popping
_FillValuefrom xarray attribute (wrongly set there by sth) inrasters_rio.write
1.3.14.post1 (2021-06-03)#
Compressing to
LZWby default inrasters.writeandrasters_rio.write
1.3.14.post0 (2021-06-02)#
Setting original dtype all the time in
rasters.read
1.3.14 (2021-05-31)#
Add a
as_listkeyword tofiles.get_archived_rio_path()Add a
vectors.open_gmloverloadinggpd.read_filefor GML vectors in order to avoid exceptions for empty geometries
1.3.13.post1 (2021-05-27)#
Copy the
encodingdict before setting the nodata
1.3.13.post0 (2021-05-27)#
Correct the original dtype in
rasters.read()Keep xarray attributes in
rasters.read()Pass the
encodingdict inrasters.set_nodata()
1.3.13 (2021-05-26)#
[rasters] Adding the possibility to specify an index
[rasters_rio] Adding the possibility to use all
rio.read()function arguments[CI] Adding weekly tests with tox for py3.7, py3.8, py3.9 on Linux and Windows
1.3.12 (2021-05-20)#
Using xarray 0.18+ and rioxarray 0.4+
1.3.11.post4 (2021-05-04)#
Fixing bug when array has no nodata in
rasters.to_npNo need to set np.nan in xarray.where (default value)
1.3.11.post3 (2021-05-04)#
Missing
psutilin setup.py and setting minimum versions
1.3.11.post2 (2021-05-04)#
Correctly manage nodata in
rasters.sieveBug correction in
rasters.where
1.3.11.post1 (2021-05-04)#
Bad nodata setting in
rasters.paint
1.3.11 (2021-05-04)#
Adding a function
rasters.paintto fill a value where stands a polygonSet the nodata after
rasters.maskSetting
from_disk=Trueby default inrasters.cropBug correction in
rasters.wherewhen setting nodata
1.3.10.post2 (2021-04-30)#
Fixing the original dtype management in the
rastersdecorator and in therasters.vectorize
1.3.10 (2021-04-30)#
Fixing the parameter
dissolveinvectorizefunction (invalid geometries…)
1.3.9 (2021-04-30)#
Adding a parameter
dissolvetovectorize, allowing the user to retrieve a unique polygon
1.3.8 (2021-04-30)#
JSON Encoder converts int32 to int for some system that needs it
rasters.where: convert type only if needed and output a xarray.DataArray if master_xda is passedAdding a parameter
keep_valuestovectorize, allowing the user to discard the specified values
1.3.7 (2021-04-29)#
Fixing regression in
rasters_rio.unpackbitsFixing regression in
ci.assert_raster_almost_equaland always checking transform to 10-9
1.3.6 (2021-04-29)#
Optimizing
rasters.read(very slow function, maybe we need to take a look at that)Optimizing
rasters.set_nodataand inrasters_rio.unpackbitsOther minor optimizations
1.3.5 (2021-04-29)#
Managing exotic dtypes in
rasters.writeAdding a
rasters.wherefunction preserving metadata and nodataFixing the case with
rasters.set_metadatawithxarraywithout CRS
1.3.4 (2021-04-28)#
Setting default nodata according to the dtype in
rasters.write:uint8: 255
int8: -128
uint16, uint32, int32, int64, uint64: 65535
int16, float32, float64, float128, float: -9999
1.3.3 (2021-04-27)#
[
rasters.read]Coarsen instead of reprojecting if possible (faster)
Load as float32 if possible
Updates in CI to automatically update documentation on Github on new tags
1.3.2 (2021-04-27)#
Allowing
gpd.GeoDataFramesincrop/maskAPI break:
rasters_rio.write(array, path, meta)becomesrasters_rio.write(array, meta, path)!
1.3.1 (2021-04-27)#
Do not lose attributes when using
rasters.set_nodataDiscard locks when reading
xarrays(inrasters.read)
1.3.0 (2021-04-26)#
Going Open Source