Upload and Export Data

Download machine data to or upload data from your computer with the Viam CLI or data client API. Also, upload images to the cloud directly through the Viam mobile app.

Export data with the Viam CLI

To export your synced data using the Viam CLI, first install the Viam CLI and authenticate to Viam.

Then, to export data from the data management service in the cloud:

  1. Navigate to the DATA page in the Viam app.

  2. Below the SEARCH button in the Filtering panel, click Copy Export Command to copy the export command to the clipboard.

    The ‘copy export command’ button from the Viam app.

  3. Run the copied command in a terminal:

    viam data export --org-ids=<org-id> --data-type=binary --mime-types=<mime types> --destination=.
    

    This command uses the Viam CLI to download the data locally onto your computer based on the search criteria you select in the Viam app.

    By default, the command creates a new directory named data in the current directory and downloads the specified data. If you want to store the data in a different location, change the specified folder with the --destination flag.

    Once the command has finished running and downloading the data, you can view and use the data locally.

    Since data is downloaded in parallel, the order is not guaranteed. Sort your folder by filename in order to see them in chronological order.

You can see more information about exporting data in the Viam CLI documentation.

Manage data with the data client API

A set of methods using the data client API for managing data, including export, batch delete, tag, and upload functions, are provided in the Python SDK.

The following methods are supported by the data client API:

Method NameDescription
TabularDataByFilterFilter and download tabular data.
BinaryDataByFilterFilter and download binary data.
BinaryDataByIDsDownload binary data by IDs.
DeleteTabularDataDelete tabular data older than a specified number of days.
DeleteBinaryDataByFilterFilter and delete binary data.
DeleteBinaryDataByIdsFilter and delete binary data by ids.
AddTagsToBinaryDataByIdsAdd tags to binary data by ids.
AddTagsToBinaryDataByFilterAdd tags to binary data by filter.
RemoveTagsFromBinaryDataByIdsRemove tags from binary data by ids.
RemoveTagsFromBinaryDataByFilterRemove tags from binary data by filter.
TagsByFilterGet tags from data by filter.
BoundingBoxLabelsByFilterGet a list of bounding box labels using a Filter.
GetDatabaseConnectionGet a connection to access a MongoDB Atlas Data federation instance.
BinaryDataCaptureUploadUpload binary data collected on your machine through a specific component and the relevant metadata to the Viam app.
TabularDataCaptureUploadUpload tabular data collected on your machine through a specific component and the relevant metadata to the Viam app.
StreamingDataCaptureUploadUpload the contents of streaming binary data and the relevant metadata to the Viam app.
FileUploadUpload file data stored on your machine and the relevant metadata to the Viam app.
FileUploadFromPathUpload file data stored on your machine from the specified filepath and the relevant metadata to the Viam app.
AddBoundingBoxToImageByIdAdd a bounding box to an image specified by its BinaryID.
RemoveBoundingBoxFromImageByIdRemoves a bounding box from an image specified by its BinaryID.

Click on the method name for more information.

Upload images with the Viam mobile app

Upload images as machine data straight from your phone, skipping the normal data capture and cloud synchronization process, through the Viam mobile app. This is useful if you want to capture images for training machine learning models on the go.

  1. Select Home on the mobile app, choose your organization, and select a location and machine.
  2. Click the menu button marked “” in the upper right corner.
  3. Click Upload Images.
  4. Select each image you want to upload, and click Add.

As for metadata, these images are associated with the machine part you selected, and aren’t associated with a component or method.

Next steps

For a comprehensive tutorial on using data capture and synchronization together with the ML model service, see Capture Data and Train a Model.



Have questions, or want to meet other people working on robots? Join our Community Discord.

If you notice any issues with the documentation, feel free to file an issue or edit this file.