# datasets.NewDatapointDescriptor

```go
func NewDatapointDescriptor(dataset *datasets.Dataset) (*datasets.DatapointDescriptor, error)
```

Create a reusable descriptor for decoding raw protobuf datapoints from a loaded dataset.

Use this helper when you want to query datasets without generated Go protobuf types.

## Parameters

**dataset**

`*datasets.Dataset`

required: true

A dataset returned by `client.Datasets.Get` or another dataset client method.

## Returns

A `DatapointDescriptor` that can be passed to [`UnmarshalDatapoint`](/docs/api-reference/go/datasets/UnmarshalDatapoint) or [`DatapointDecoder.Unmarshal`](/docs/api-reference/go/datasets/DatapointDecoder.Unmarshal).

```go title="Go"
dataset, err := client.Datasets.Get(ctx, "open_data.copernicus.sentinel1_sar")
if err != nil {
    return err
}

descriptor, err := datasets.NewDatapointDescriptor(dataset)
if err != nil {
    return err
}
```
