10 Minutes to Graviti#
This is a simple introductory tutorial for beginners.
Get an AccessKey#
Before using Graviti SDK, please visit Graviti Developer Tools to get an AccessKey.
Dataset Preparation#
This step is only for users who do not have datasets in their workspace. By running the code below, users can create a very simple dataset to experience Graviti SDK.
from graviti import DataFrame, Workspace
import graviti.portex as pt
ws = Workspace(f"{YOUR_ACCESSKEY}")
ds = ws.datasets.create("Graviti-dataset-demo")
std = pt.build_package("https://github.com/Project-OpenBytes/portex-standard", "main")
schema = pt.record(
{
"filename": pt.string(),
"box2ds": pt.array(
std.label.Box2D(
categories=["boat", "car"],
attributes={
"difficult": pt.boolean(),
"occluded": pt.boolean(),
},
)
),
}
)
filenames = ["a.jpg", "b.jpg", "c.jpg"]
data = []
for filename in filenames:
row_data = {
"filename": filename,
"box2ds": [
{
"xmin": 1,
"ymin": 1,
"xmax": 4,
"ymax": 5,
"category": "boat",
"attribute": {
"difficult": False,
"occluded": False,
},
},
],
}
data.append(row_data)
ds["train"] = DataFrame(data, schema)
ds.commit("Commit-1")
Get a Dataset#
Workspace initialization:
from graviti import Workspace
ws = Workspace(f"{YOUR_ACCESSKEY}")
List datasets on the workspace:
>>> ws.datasets.list()
LazyPagingList [
Dataset("graviti-example/Graviti-dataset-demo")
]
Get one dataset:
>>> ds = ws.datasets.get("Graviti-dataset-demo")
>>> ds
Dataset("graviti-example/Graviti-dataset-demo")(
(alias): '',
(default_branch): 'main',
(created_at): 2022-07-20 04:22:35+00:00,
(updated_at): 2022-07-20 04:23:45+00:00,
(is_public): False,
(storage_config): 'AmazonS3-us-west-1'
)
Get a Sheet#
>>> ds["train"]
filename box2ds
0 a.jpg DataFrame(1, 6)
1 b.jpg DataFrame(1, 6)
2 c.jpg DataFrame(1, 6)
Get the Data#
Get the DataFrame:
>>> df = ds["train"]
>>> df
filename box2ds
0 a.jpg DataFrame(1, 6)
1 b.jpg DataFrame(1, 6)
2 c.jpg DataFrame(1, 6)
View the schema of the sheet:
>>> df.schema
record(
fields={
'filename': string(),
'box2ds': array(
items=label.Box2D(
coords=float32(),
categories=['boat', 'car'],
attributes={
'difficult': boolean(),
'occluded': boolean(),
},
),
),
},
)
Get the data by rows or columns:
>>> df.iloc[0]
filename a.jpg
box2ds DataFrame(1, 6)
>>> df["box2ds"]
0 DataFrame(1, 6)
1 DataFrame(1, 6)
2 DataFrame(1, 6)
>>> df.iloc[0]["box2ds"]
xmin ymin xmax ymax category attribute
difficult occluded
0 1.0 1.0 4.0 5.0 boat False False
>>> df["box2ds"][0]
xmin ymin xmax ymax category attribute
difficult occluded
0 1.0 1.0 4.0 5.0 boat False False