Skip to content

Releases: stac-utils/pystac

v1.0.1

26 Jul 18:03
Compare
Choose a tag to compare

Changed

  • HREFs in Link objects with rel == "self" are converted to absolute HREFs (#574)

v1.0.0

17 Jul 18:18
eee0602
Compare
Choose a tag to compare

Added

  • ProjectionExtension.crs_string to provide a single string to describe the coordinate reference system (CRS).
    Useful because projections can be defined by EPSG code, WKT, or projjson.
    (#548)
  • SAR Extension summaries(#556)
  • Migration for sar:type -> sar:product_type and sar:polarization ->
    sar:polarizations for pre-0.9 catalogs
    (#556)
  • Migration from eo:epsg -> proj:epsg for pre-0.9 catalogs (#557)
  • Collection summaries for Point Cloud Extension (#558)
  • PhenomenologyType enum for recommended values of pc:type & SchemaType enum for
    valid values of type in Point Cloud Schema
    Objects

    (#548)
  • to_dict and equality definition for extensions.item_asset.AssetDefinition (#564)
  • Asset.common_metadata property (#563)

Changed

  • The from_dict method on STACObjects will set the object's root link when a root parameter is present. An ItemCollection from_dict with a root parameter will set the root on each of it's Items. (#549)
  • Calling ExtensionManagementMixin.validate_has_extension with add_if_missing = True
    on an ownerless Asset will raise a STACError (#554)
  • PointcloudSchema -> Schema, PointcloudStatistic -> Statistic for consistency
    with naming convention in other extensions
    (#548)
  • RequiredPropertyMissing always raised when trying to get a required property that is
    None (STACError or KeyError was previously being raised in some cases)
    (#561)

Fixed

  • Added Collections as a type that can be extended for extensions whose fields can appear in collection summaries (#547)
  • Allow resolved self links when getting an object's self href (#555)
  • Fixed type annotation on SummariesLabelExtension.label_properties setter (#562)
  • Allow comparable types with alternate parameter naming of lt method to pass structural type linting for RangeSummary (#562)

v1.0.0-rc.3

08 Jul 12:14
f2afd5a
Compare
Choose a tag to compare

Added

  • (Experimental) support for Python 3.10 (#473)
  • LabelTask enum in pystac.extensions.label with recommended values for
    "label:tasks" field (#484)
  • LabelMethod enum in pystac.extensions.label with recommended values for
    "label:methods" field (#484)
  • Label Extension summaries (#484)
  • Timestamps Extension summaries (#513)
  • Define equality and __repr__ of RangeSummary instances based on to_dict
    representation (#513)
  • Sat Extension summaries (#509)
  • Catalog.get_collections for getting all child
    Collections for a catalog, and Catalog.get_all_collections for recursively getting
    all child Collections for a catalog and its children (#511)

Changed

  • Renamed Asset.properties -> Asset.extra_fields and Link.properties ->
    Link.extra_fields for consistency with other STAC objects
    (#510)

Fixed

  • Bug in pystac.serialization.identify_stac_object_type where invalid objects with
    stac_version == 1.0.0 were incorrectly identified as Catalogs
    (#487)
  • Link constructor classes (e.g. Link.from_dict, Link.canonical, etc.) now return
    the calling class instead of always returning the Link class
    (#512)
  • Sat extension now includes all fields defined in v1.0.0
    (#509)

Removed

  • STAC_IO class in favor of StacIO. This was deprecated in v1.0.0-beta.1 and has
    been removed in this release. (#490)
  • Support for Python 3.6 (#500)

v1.0.0-rc.2

25 Jun 00:51
7f9fef4
Compare
Choose a tag to compare

Added

  • Add a preserve_dict parameter to ItemCollection.from_dict and set it to False when
    using ItemCollection.from_file.
    (#468)
  • StacIO.json_dumps and StacIO.json_loads methods for JSON
    serialization/deserialization. These were "private" methods, but are now "public" and
    documented (#471)

Changed

  • pystac.stac_io.DuplicateObjectKeyError moved to pystac.DuplicateObjectKeyError
    (#471)

v1.0.0-rc.1

18 Jun 02:21
Compare
Choose a tag to compare

Added

  • License file included in distribution (#409)
  • Links to Issues, Discussions, and documentation sites (#409)
  • Python minimum version set to >=3.6 (#409)
  • Code of Conduct (#399)
  • ItemCollection class for working with GeoJSON FeatureCollections containing only
    STAC Items (#430)
  • Support for Python 3.9 (#420)
  • Migration for pre-1.0.0-rc.1 Stats Objects (renamed to Range Objects in 1.0.0-rc.3) (#447)
  • Attempting to extend a STACObject that does not contain the extension's schema URI in
    stac_extensions raises new ExtensionNotImplementedError (#450)
  • STACObject.from_dict now takes a preserve_dict parameter, which if False will avoid a call to deepcopy on the passed in dict and can result in performance gains (defaults to True. Reading from a file will use preserve_dict=False resulting in better performance. (#454)

Changed

  • Package author to stac-utils, email to [email protected], url to this repo (#409)
  • StacIO.read_json passes arbitrary positional and keyword arguments to
    StacIO.read_text (#433)
  • FileExtension updated to work with File Info Extension v2.0.0 (#442)
  • FileExtension only operates on pystac.Asset instances (#442)
  • *Extension.ext methods now have an optional add_if_missing argument, which will
    add the extension schema URI to the object's stac_extensions list if it is not
    present (#450)
  • from_file and from_dict methods on STACObject sub-classes always return instance
    of calling class (#451)

Fixed

  • EOExtension.get_bands returns None for asset without EO bands (#406)
  • identify_stac_object_type returns None and identify_stac_object raises STACTypeError for non-STAC objects
    (#402)
  • ExtensionManagementMixin.add_to is now idempotent (only adds schema URI to
    stac_extensions once per Item regardless of the number of calls) (#419)
  • Version check for when extensions changed from short links to schema URIs
    (#455)
  • Schema URI base for STAC 1.0.0-beta.1 (#455)

v1.0.0-beta.3

02 Jun 19:52
3f329e7
Compare
Choose a tag to compare

Added

  • Summaries for View Geometry, Projection, and Scientific extensions (#372)
  • Raster extension support (#364)
  • solar_illumination field in eo extension (#356)
  • Added Link.canonical static method for creating links with "canonical" rel type (#351)
  • Added RelType enum containing common rel values (#351)
  • Added support for summaries (#264)

Fixed

  • Links to STAC Spec point to latest supported version (#368)
  • Links to STAC Extension pages point to repos in stac-extensions GitHub org (#368)
  • Collection assets (#373)

Removed

  • Two v0.6.0 examples from the test suite (#373)

v1.0.0-beta.2

24 May 19:24
6214193
Compare
Choose a tag to compare

Changed

  • Split DefaultStacIO's reading and writing into two methods to allow subclasses to use the default link resolution behavior (#354)
  • Increased test coverage for the pointcloud extension (#352)

Fixed

  • Reading json without orjson (#348)

Removed

  • Removed type information from docstrings, since it is redundant with function type
    annotations (#342)

v1.0.0-beta.1

19 May 00:56
5158a4c
Compare
Choose a tag to compare

Added

  • Added type annotations across the library (#309)
  • Added assets to collections (#309)
  • item_assets extension (#309)
  • datacube extension (#309)
  • Added specific errors: ExtensionAlreadyExistsError, ExtensionTypeError, and RequiredPropertyMissing; moved custom exceptions to pystac.errors (#309)

Fixed

  • Validation checks in a few tests (#346)

Changed

  • API change: The extension API changed significantly. See (#309) for more details.
  • API change: Refactored the global STAC_IO object to an instance-specific StacIO implementation. STAC_IO is deprecated and will be removed next release. (#309)
  • Asset.get_absolute_href returns None if no absolute href can be inferred (previously the relative href that was passed in was returned) (#309)

Removed

  • Removed properties from Collections (#309)
  • Removed LinkMixin, and implemented those methods on STACObject directly. STACObject was the only class using LinkMixin and this should not effect users (#309
  • Removed single-file-stac extension; this extension is being removed in favor of ItemCollection usage (#309

Version 0.5.6

29 Mar 18:17
22cffee
Compare
Choose a tag to compare

Added

  • HIERARCHICAL_LINKS array constant of all the types of hierarchical links (self is not included) (#290)

Fixed

  • Fixed error when accessing the statistics attribute of the pointcloud extension when no statistics were defined (#282)
  • Fixed exception being thrown when calling set_self_href on items with assets that have relative hrefs (#291)

Changed

  • Link behavior - link URLs can be either relative or absolute. Hierarchical (e.g., parent, child) links are made relative or absolute based on the value of the root catalog's catalog_type field (#290)
  • Internal self hrefs are set automatically when adding Items or Children to an existing catalog. This removes the need to call normalize_hrefs or manual setting of the hrefs for newly added STAC objects (#294)
  • Catalog.generate_subcatalogs is an order of magnitude faster (#295)

Removed

  • Removed LinkType class and the link_type field from links (#290)

Version 0.5.5

11 Mar 17:39
01b8ce6
Compare
Choose a tag to compare

Added

  • Added support for STAC file extension (#270)

Fixed

  • Fix handling of optional properties when using apply on view extension (#259)
  • Fixed issue with setting None into projection extension fields that are not required breaking validation (#269)
  • Remove unnecessary deepcopy calls in to_dict methods to avoid costly overhead (#273)

Changed

  • Subclass relevant classes from enum.Enum. This allows iterating over the class' contents. The __str__ method is overwritten so this should not break backwards compatibility. (#261)
  • Extract method to correctly handle setting properties in Item/Asset for ItemExtensions (#272)