Skip to content

Commit aa8ff29

Browse files
authored
Merge pull request #39 from stac-extensions/norm-type
2 parents 768ac13 + 278b75a commit aa8ff29

File tree

11 files changed

+427
-160
lines changed

11 files changed

+427
-160
lines changed

CHANGELOG.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased](https://github.com/stac-extensions/mlm/tree/main)
99

1010
### Added
11-
- n/a
11+
- Add explicit check of `value_scaling` sub-fields `minimum`, `maximum`, `mean`, `stddev`, etc. for
12+
corresponding `type` values `min-max` and `z-score` that depend on it.
13+
- Allow different `value_scaling` operations per band/channel/dimension as needed by the model.
14+
- Allow a `processing:expression` for a band/channel/dimension-specific `value_scaling` operation,
15+
granting more flexibility in the definition of input preparation in contrast to having it applied
16+
for the entire input (but still possible).
1217

1318
### Changed
14-
- n/a
19+
- Moved `norm_type` to `value_scaling` object to better reflect the expected operation, which could be another
20+
operation than what is typically known as "normalization" or "standardization" techniques in machine learning.
21+
- Moved `statistics` to `value_scaling` object to better reflect their mutual `type` and additional
22+
properties dependencies.
1523

1624
### Deprecated
1725
- n/a
1826

1927
### Removed
20-
- n/a
28+
- Removed `norm_type` enum values that were ambiguous regarding their expected result.
29+
Instead, a `processing:expression` should be employed to explicitly define the calculation they represent.
30+
- Removed `norm_clip` property. It is now represented under `value_scaling` objects with a
31+
corresponding `type` definition.
32+
- Removed `norm_by_channel` from `mlm:input` objects. If rescaling (previously normalization in the documentation)
33+
is a single value, broadcasting to the relevant bands should be performed implicitly.
34+
Otherwise, the amount of `value_scaling` objects should match the number of bands or channels involved in the input.
2135

2236
### Fixed
2337
- Fix check of disallowed unknown/undefined `mlm:`-prefixed fields
@@ -52,7 +66,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5266
when a `mlm:input` references names in `bands` are now properly validated.
5367
- Fix the examples using `raster:bands` incorrectly defined in STAC Item properties.
5468
The correct use is for them to be defined under the STAC Asset using the `mlm:model` role.
55-
- Fix the [EuroSAT ResNet pydantic example](./stac_model/examples.py) that incorrectly referenced some `bands`
69+
- Fix the [EuroSAT ResNet pydantic example](stac_model/examples.py) that incorrectly referenced some `bands`
5670
in its `mlm:input` definition without providing any definition of those bands. The `eo:bands` properties have
5771
been added to the corresponding `model` Asset using
5872
the [`pystac.extensions.eo`](https://github.com/stac-utils/pystac/blob/main/pystac/extensions/eo.py) utilities.
@@ -113,7 +127,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
113127
- more [Task Enum](README.md#task-enum) tasks
114128
- [Model Output Object](README.md#model-output-object)
115129
- batch_size and hardware summary
116-
- [`mlm:accelerator`, `mlm:accelerator_constrained`, `mlm:accelerator_summary`](./README.md#accelerator-type-enum)
130+
- [`mlm:accelerator`, `mlm:accelerator_constrained`, `mlm:accelerator_summary`](README.md#accelerator-type-enum)
117131
to specify hardware requirements for the model
118132
- Use common metadata
119133
[Asset Object](https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#asset-object)
@@ -128,7 +142,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
128142
STAC Item properties (top-level, not nested) to allow better search support by STAC API.
129143
- reorganized `dlm:architecture` nested fields to exist at the top level of properties as `mlm:name`, `mlm:summary`
130144
and so on to provide STAC API search capabilities.
131-
- replaced `normalization:mean`, etc. with [statistics](./README.md#bands-and-statistics) from STAC 1.1 common metadata
145+
- replaced `normalization:mean`, etc. with [statistics](README.md#bands-and-statistics) from STAC 1.1 common metadata
132146
- added `pydantic` models for internal schema objects in `stac_model` package and published to PYPI
133147
- specified [rel_type](README.md#relation-types) to be `derived_from` and
134148
specify how model item or collection json should be named
@@ -144,7 +158,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
144158
- any `dlm`-prefixed field or property
145159

146160
### Removed
147-
- Data Object, replaced with [Model Input Object](./README.md#model-input-object) that uses the `name` field from
161+
- Data Object, replaced with [Model Input Object](README.md#model-input-object) that uses the `name` field from
148162
the [common metadata band object][stac-bands] which also records `data_type` and `nodata` type
149163

150164
### Fixed

0 commit comments

Comments
 (0)