https://github.com/tilebox/tilebox-generate
CLI for Tilebox Go SDK
https://github.com/tilebox/tilebox-generate
custom-datasets data-science distributed-computing go satellite-data space space-data space-data-pipeline space-data-science tilebox
Last synced: 6 months ago
JSON representation
CLI for Tilebox Go SDK
- Host: GitHub
- URL: https://github.com/tilebox/tilebox-generate
- Owner: tilebox
- License: mit
- Created: 2025-02-19T09:11:22.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-23T09:26:22.000Z (9 months ago)
- Last Synced: 2025-10-23T11:26:43.092Z (9 months ago)
- Topics: custom-datasets, data-science, distributed-computing, go, satellite-data, space, space-data, space-data-pipeline, space-data-science, tilebox
- Language: Go
- Homepage:
- Size: 44.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Documentation
|
Console
|
Discord
# Tilebox Generate
CLI tool to generate Tilebox datasets types for Go. It is intended be used alongside [tilebox-go](https://github.com/tilebox/tilebox-go).
## Installation
```bash
go install github.com/tilebox/tilebox-generate@latest
```
## Examples
Generate a dataset type for [Sentinel-1 SAR](https://docs.tilebox.com/datasets/open-data) dataset to `./protogen` using $TILEBOX_API_KEY api key:
```bash
tilebox-generate --dataset open_data.copernicus.sentinel1_sar
```
Same as above, but override the output directory, package name and message name:
```bash
tilebox-generate --dataset open_data.copernicus.sentinel1_sar --out ./protogen --package tilebox.v1 --name MyDataset
```
## Usage
```
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
```
## Usage with go generate
A handy way to generate the dataset types is to use `go generate`. Add the following to your `generate.go` file:
```go
package main
//go:generate go tool tilebox-generate --dataset open_data.copernicus.sentinel1_sar
```
Then run `go generate ./...` to generate the dataset types.
## Usage with tilebox-go
Usage example to [query typed data](https://github.com/tilebox/tilebox-go/blob/main/examples/datasets/query/main.go) from Tilebox.
To have typed datasets in Go you need to replace `datapoints` type with the generated one.
```go
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
// ...
}
```