Releases: descarteslabs/descarteslabs-python
Releases · descarteslabs/descarteslabs-python
Client release v0.28.0
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 withscenes.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 eliminatedImage/ImageCollection.count()
is much faster.buffer()
on vector types now works correctly- Calling
.compute()
on aGeometryCollection
works
Client release v0.27.0
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 anImage
orImageCollection
, theGeoContext
is included on the result object (ImageResult.geocontext
,ImageCollectionResult.geocontext
)
Workflows - Fixed
- Passing a Workflows
Timedelta
object (instead of adatetime.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
Added
- A new catalog client in
descarteslabs.catalog
makes searching and managing products, bands and images easier. This client encompasses functionality previously split between thedescarteslabs.Metadata
anddescarteslabs.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()
andFeatureCollection.filter()
now support anin_()
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
repr
s when displayed Datetime
andTimedelta
are unpacked intodatetime.datetime
anddatetime.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 anImage
orImageCollection
, the order ofbandinfo
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 aLayer
object, making it easier to adjustLayer.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
forDatetime
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
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
andremove_layer
methods - ImageCollections:
reversed
operator - ImageCollections:
concat
andsorted
methods - ImageCollections:
head
,tail
, andpartition
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 fastercount
is no longer breaks colormapsmap
,filter
, andreduce
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
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
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
- 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
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
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
, andSceneCollection.mosaic
now support passing a string as themask_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()
andScene.download()
as well as across multiple scenes inSceneCollection.mosaic()
,SceneCollection.stack()
andSceneCollection.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
Changed
- Removed deprecated method
Metadata.sources()
FeatureCollection.filter(geometry)
will now raise anInvalidQueryException
if you
try to overwrite an existing geometry in the filter chain. You can only set the
geometry once.