Documentation | Console | Discord
CLI tool to generate Tilebox datasets types for Go. It is intended be used alongside tilebox-go.
go install github.com/tilebox/tilebox-generate@latest
Generate a dataset type for Sentinel-1 SAR dataset to ./protogen
using $TILEBOX_API_KEY api key:
tilebox-generate --dataset open_data.copernicus.sentinel1_sar
Same as above, but override the output directory, package name and message name:
tilebox-generate --dataset open_data.copernicus.sentinel1_sar --out ./protogen --package tilebox.v1 --name MyDataset
NAME:
tilebox-generate - Generate Tilebox datasets types for Go
USAGE:
tilebox-generate [global options]
GLOBAL OPTIONS:
--dataset value A valid dataset slug e.g. 'open_data.copernicus.sentinel1_sar'
--out value The directory to generate output files in (default: protogen)
--package value Package name (default: tilebox.v1)
--name value Protobuf message name for the dataset (optional)
--tilebox-api-key value A Tilebox API key [$TILEBOX_API_KEY]
--tilebox-api-url value The Tilebox API URL (default: https://api.tilebox.com) [$TILEBOX_API_URL]
--help, -h show help
A handy way to generate the dataset types is to use go generate
. Add the following to your generate.go
file:
package main
//go:generate go run -mod=mod github.com/tilebox/tilebox-generate --dataset open_data.copernicus.sentinel1_sar
Then run go generate ./...
to generate the dataset types.
Usage example to query typed data from Tilebox.
To have typed datasets in Go you need to replace datapoints
type with the generated one.
package main
import (
"github.com/google/uuid"
"github.com/tilebox/tilebox-go/datasets/v1"
"log"
// TODO: replace with your own path to the generated package
tileboxv1 "path/to/protogen/tilebox/v1"
)
func main() {
// ...
// Perform a temporal query
// TODO: replace tileboxv1.Sentinel1Sar with your own dataset type
var datapoints []*tileboxv1.Sentinel1Sar
err := client.Datapoints.QueryInto(ctx,
[]uuid.UUID{collection.ID}, &datapoints,
datasets.WithTemporalExtent(timeInterval),
)
if err != nil {
log.Fatalf("Failed to query datapoints: %v", err)
}
_ = datapoints // now datapoints are typed using tileboxv1.Sentinel1Sar
// ...
}