Skip to content

Releases: descarteslabs/descarteslabs-python

Client release v0.28.0

09 Dec 23:56
Compare
Choose a tag to compare

Added

  • Catalog client: Added an update() method that allows you to update multiple attributes at once.

Changed

  • Catalog client: Images and Bands no longer reload the Product after calling save
  • Catalog client: Various attributes that are lists now correctly track changes when modifying them with list methods (e.g. Product.owners.append("foo"))
  • Catalog client: Error messages generated by the server have a nicer format
  • Catalog client: Fix a bug that caused waiting for tasks to never complete
  • The minimum numpy version has been bumped to 1.17.14 for Python version > 3.5, which addresses a bug with scenes.display

Workflows (channel v0-10) - Added

  • .compute() is noticeably faster
  • Most of the Python string API is now available on workflows.Str
  • Interactive map: more descriptive error when not logged in to iam.descarteslabs.com
  • Passing the wrong types into functions causes more descriptive and reliable errors

Workflows - Fixed

  • RST_STREAM errors when calling .compute() have been eliminated
  • Image/ImageCollection.count() is much faster
  • .buffer() on vector types now works correctly
  • Calling .compute() on a GeometryCollection works

Client release v0.27.0

18 Nov 21:06
Compare
Choose a tag to compare

Added

  • Catalog client: Added a MaskBand.is_alpha attribute to declare alpha channel behavior for a band.

Changed

  • The maximum number of extra_properties allowed for Catalog objects has been increased from 10 to 50.
  • Fixed bug causing SceneCollection.download to fail.

Workflows (channel v0-9) - Added

  • When you call .compute() on an Image or ImageCollection, the GeoContext is included on the result object (ImageResult.geocontext, ImageCollectionResult.geocontext)

Workflows - Fixed

  • Passing a Workflows Timedelta object (instead of a datetime.timedelta) into functions expecting it now behaves correctly
  • Arguments to the reducer function for reduce are now in the correct order

Client release 0.26.0

30 Oct 22:22
Compare
Choose a tag to compare

Added

  • A new catalog client in descarteslabs.catalog makes searching and managing products, bands and images easier. This client encompasses functionality previously split between the descarteslabs.Metadata and descarteslabs.Catalog client, which are now deprecated. Learn how to use the new API in the Catalog guide.
  • Property filtering expressions such as used in scenes.search() and FeatureCollection.filter() now support an in_() method.

Changed

  • SceneCollection.download previously always returned successfully even if one or more of the downloads failed. Now if any of the downloads fail, a RuntimeError is raised, which will detail which destination files failed and why.
  • Fixed a bug where geometries used with the Scenes client had coordinates with reduced precision.

Workflows (channel v0-8) - Added

  • Interactive parameters: add parameters to map layers and interactively control them using widgets
  • Spatial convolution with wf.conv2d
  • Result containers have helpful reprs when displayed
  • Datetime and Timedelta are unpacked into datetime.datetime and datetime.timedelta objects when computed.

Workflows - Changed

  • [breaking] Result containers moved to descarteslabs/workflows/results and renamed, appending "Result" to disambiguate (e.g. ImageResult and ImageCollectionResult)
  • [breaking] .bands and .images attributes of ImageResult and ImageCollectionResult renamed .ndarray
  • [breaking] When compute-ing an Image or ImageCollection, the order of bandinfo is only correct for Python >= 3.6
  • Interactive maps: coordinates are displayed in lat, lon order instead of lon, lat for easier copy-pasting
  • Interactive maps: each layer now has an associated output that is populated when running autoscale and deleted when the layer is removed
  • Interactive maps: Image.visualize returns a Layer object, making it easier to adjust Layer.parameters or integrate with other widgets

Workflows - Fixed

  • Composing operations onto imported Workflows no longer causes nondeterministic errors when computed
  • Interactive maps: remove_layer doesn't cause an error
  • No more errors when creating a wf.parameter for Datetime and other complex types
  • .where no longer causes a backend error
  • Calling wf.map.geocontext() when the map is not fully initialized raises an informative error
  • Operations on numbers computed from raster data (like img_collection.mean(axis=None)) no longer fail when computed
  • Colormap succeeds when the Image contains only 1 value

Client Release v0.25.0

22 Aug 21:10
Compare
Choose a tag to compare

Changed

  • Raster.stack max_workers is limited to 25 workers, and will raise a warning and set the value to 25 if a value more than 25 is specified.

Workflows (channel v0-7) - Added

  • Interactive maps: clear_layers and remove_layer methods
  • ImageCollections: reversed operator
  • ImageCollections: concat and sorted methods
  • ImageCollections: head, tail, and partition methods for slicing
  • ImageCollections: where method for filtering by condition
  • ImageCollections map_window method for applying sliding windows
  • ImageCollections: Indexing into ImageCollections is supported (imgs[1])
  • [breaking] Statistics functions are now applied to named axes
  • DateTime, Timedelta, Geocontext, Bool, and Geometry are now computable
  • ImageCollectionGroupby ProxyObject for grouping ImageCollection by properties, and applying functions over groups
  • ImageCollections: groupby method
  • parameter constructor

Workflows - Changed

  • Interactive maps: autoscaling is now done in the background
  • Tiles requests can now include parameters
  • median is noticeably faster
  • count is no longer breaks colormaps
  • map, filter, and reduce are 2x faster in the "PREPARING" stage
  • Significantly better performance for functions that reference variables outside their scope, like
overall_comp = ndvi.mean(axis="images")
deltas = ndvi.map(lambda img: img - overall_comp)
  • Full support for floor-division (//) between Datetimes and Timedeltas (imgs.filter(lambda img: img.properties['date'] // wf.Timedelta(days=14))

Workflows - Removed

  • [breaking] ImageCollection.one (in favor of indexing)

Client release v0.24.0

01 Aug 13:53
Compare
Choose a tag to compare

Added

  • scenes.DLTile.assign(pad=...) method added to ease creation of a tile in all ways indentical except for the padding.

Changed

  • The parameter nbits has been deprecated for catalog bands.

Workflows (channel v0-6) - Added

  • New interactive map, with GUI controls for multiple layers, scaling, and colormaps.
  • Colormaps for single-band images.
  • Map interface displays errors that occur while the backend is rendering images.
  • ImageCollection compositing no longer changes band names (red does not become red_mean, for example).
  • .clip() and .scale() methods for Image/ImageCollection.
  • Support specifying raster resampler method.
  • Support specifying raster processing level: toa (top-of-atmosphere) or surface [surface reflectance).
  • No more tiles 400s for missing data; missing/masked pixels can optionally be filled with a checkerboard pattern.

Workflows - Changed

  • Workflows Image.concat renamed Image.concat_bands.
  • Data are left in data_range values if physical_range is not set, instead of scaling to the range 0..1.
  • Selecting the same band name twice (img.pick_bands("vv vv")) properly raises an error.
  • Reduced DeprecationWarnings in Python 3.7.

Client release v0.23.0

12 Jul 15:57
Compare
Choose a tag to compare

Added

  • Alpha Workflows API client has been added. Access to the Workflows backend is restricted; contact support for more information.
  • Workflows support for Python 3 added in channel v0-5.

Client release v0.22.0

10 Jul 00:43
Compare
Choose a tag to compare
  • Scenes API now supports band scaling and output type specification for rastering methods.
  • Methods in the Metadata, Raster, and Vector service clients that accepted GeoJSON geometries
    now also accept Shapely geometries.

Client release v0.21.0

19 Jun 18:36
Compare
Choose a tag to compare

Added

  • Add support for user cython modules in tasks.

Changed

  • Tasks webhook methods no longer require a group_id if a webhook id is provided.
  • catalog_id property on images is no longer supported by the API
  • Fix scenes.display handling of single band masked arrays with scalar masks
  • Fix problems with incomplete UploadTask instances returned by vectors.FeatureCollection.list_uploads

Client release v0.20.0

03 Jun 23:30
Compare
Choose a tag to compare

Added

  • Metadata, Catalog, and Scenes now support a new storage_state property for managing image metadata and filtering search results. storage_state="available" is the default for new images and indicates that the raster data for that scene is available on the Descartes Labs platform. storage_state="remote" indicates that the raster data has not yet been processed and made available to client users.
  • The following additional colormaps are now supported for bands – 'cool', 'coolwarm', 'hot', 'bwr', 'gist_earth', 'terrain'. Find more details about the colormaps here.
  • Scene.ndarray, SceneCollection.stack, and SceneCollection.mosaic now support passing a string as the mask_alpha argument to allow users to specify an alternate band name to use for masking.
  • Scenes now supports a new save_image function that allows a user to save a visualization given a filename and extension.
  • Tasks now allows you to unambiguously get a function by group id using get_function_by_id.
  • All Client APIs now accept a retries argument to override the default retry configuration. The default remains
    the same as the prior behavior, which is to attempt 3 retries on errors which can be retried.

Changed

  • Bands of different but compatible types can now be rastered together in Scene.ndarray() and Scene.download() as well as across multiple scenes in SceneCollection.mosaic(), SceneCollection.stack() and SceneCollection.download(). The result will have the most general data type.
  • Vector client functions that accept a geometry argument now support passing Shapely shapes in addition to GeoJSON.

v0.19.0: Client release 0.19.0

06 May 20:49
Compare
Choose a tag to compare

Changed

  • Removed deprecated method Metadata.sources()
  • FeatureCollection.filter(geometry) will now raise an InvalidQueryException if you
    try to overwrite an existing geometry in the filter chain. You can only set the
    geometry once.