Skip to main content
func UnmarshalDatapoint(
    descriptor *datasets.DatapointDescriptor,
    data []byte,
) (map[string]any, error)
Decode a raw protobuf datapoint into a JSON-like map using a dataset descriptor.

Parameters

descriptor
*datasets.DatapointDescriptor
required
The descriptor returned by NewDatapointDescriptor.
data
[]byte
required
The raw protobuf datapoint bytes returned by a datapoint query.

Returns

A map of datapoint fields, or an error if the raw datapoint cannot be decoded.
descriptor, err := datasets.NewDatapointDescriptor(dataset)
if err != nil {
    return err
}

for data, err := range client.Datapoints.Query(ctx,
    dataset.ID,
    datasets.WithTemporalExtent(queryInterval),
) {
    if err != nil {
        return err
    }

    datapoint, err := datasets.UnmarshalDatapoint(descriptor, data)
    if err != nil {
        return err
    }
    fmt.Println(datapoint["id"])
}