Features - CSV

speccustomimplcandidate

Kodierung von Features als komma-separierte Werte (CSV).

Umfang

Objekteigenschaften, bei denen es sich um Arrays oder Objekte handelt, werden immer mit der Transformation flatten abgeflacht, wobei standardmäßig '.' als Trennzeichen verwendet wird. Array-Eigenschaften sind auf maxMultiplicity-Werte beschränkt.

Geometrien werden nicht kodiert.

Konfiguration

Optionen

NameDefaultBeschreibungTypSeit
buildingBlock
Immer CSV.
string
v2.0
extensionType
Deprecated Siehe buildingBlock.
string
v2.0
enabled
false
Soll das Modul aktiviert werden?
boolean
v2.0
transformations
{}
Property-Transformationen erfolgen bei der Aufbereitung der Daten für die Rückgabe über die API. Die Datenhaltung selbst bleibt unverändert. Alle Filterausdrücke (siehe queryables in Features) wirken unabhängig von etwaigen Transformationen bei der Ausgabe und müssen auf der Basis der Werte in der Datenhaltung formuliert sein - die Transformationen sind i.A. nicht umkehrbar und eine Berücksichtigung der inversen Transformationen bei Filterausdrücken wäre kompliziert und nur unvollständig möglich. Insofern sollten Eigenschaften, die queryable sein sollen, möglichst bereits in der Datenquelle transformiert sein. Eine Ausnahme sind typischerweise Transformationen in der HTML-Ausgabe, wo direkte Lesbarkeit i.d.R. wichtiger ist als die Filtermöglichkeit.
object
v2.0
maxMultiplicity
3
Wenn das Feature-Schema Array-Eigenschaften enthält, werden für jede Array-Eigenschaft maxMultiplicity Eigenschaften erstellt. Wenn eine Instanz mehrere Werte in einem Array hat, werden nur die ersten Werte in die Daten aufgenommen.
number
v3.2

Beispiele

Die folgende Konfiguration aktiviert CSV als Feature-Kodierung, bei der alle Objekte und Arrays mit einem Unterstrich als Trennzeichen und zwei Eigenschaften pro Array-Eigenschaft abgeflacht werden.


- buildingBlock: CSV
  enabled: true
  transformations:
    '*':
      flatten: '_'
  maxMultiplicity: 2

Für ein Feature mit den folgenden GeoJSON-"properties":


{
  "att1": "foo",
  "att2": [ "bar1", "bar2", "bar3" ]
  "att3": {
    "value": 123,
    "values": [ 456, 789, 0 ]
  }
}

Die resultierende CSV-Datei würde wie folgt aussehen:


att1,att2_1,att2_2,att3_value,att3_values_1,att3_values_2
foo,bar1,bar2,123,456,789