7. Upload & Manage Data & Metadata

7.1. Upload Specific Files

When you have specific files you want to upload, you can upload them all into a dataset using this script:

project_name = 'project_name'
dataset_name = 'dataset_name'
local_path = [r'C:/home/project/images/John Morris.jpg',
              r'C:/home/project/images/John Benton.jpg',
              r'C:/home/project/images/Liu Jinli.jpg']
remote_path = '/folder_name'
import dtlpy as dl
if dl.token_expired():
    dl.login()
project = dl.projects.get(project_name=project_name)
dataset = project.datasets.get(dataset_name=dataset_name)
dataset.items.upload(local_path=local_path,
                     remote_path=remote_path)  # Remote path is optional, images will go to the root directory by default

7.2. Upload All Files in a Folder

If you want to upload all files from a folder, you can do that by just specifying the folder name:

project_name = 'project_name'
dataset_name = 'dataset_name'
local_path = r'C:/home/project/images'
remote_path = '/folder_name'
import dtlpy as dl
if dl.token_expired():
    dl.login()
project = dl.projects.get(project_name=project_name)
dataset = project.datasets.get(dataset_name=dataset_name)
dataset.items.upload(local_path=local_path,
                     remote_path=remote_path)  # Remote path is optional, images will go to the root directory by default

7.4. Upload Items with Metadata

You can upload items as a table using a Pandas DataFrame that will let you upload items with info (annotations, metadata such as confidence, filename, etc.) attached to it.

dataset_id = 'id'
# First item:
local_path1 = r"E:\TypesExamples\000000000064.jpg"
local_annotations_path1 = r"E:\TypesExamples\000000000776.json"
remote_path1 = '/first'
remote_name1 = 'f.jpg'
item_metadata1 = {'user': {'dummy': 'fir'}}
# Second item:
local_path2 = r"E:\TypesExamples\000000000776.jpg"
local_annotations_path2 = r"E:\TypesExamples\000000000776.json"
remote_path2 = "/second"
remote_name2 = 's.jpg'
item_metadata2 = {'user': {'dummy': 'sec'}}
import pandas
import dtlpy as dl
dataset = dl.datasets.get(dataset_id=dataset_id)  # Get dataset
to_upload = list()
# First item and info attached:
to_upload.append({'local_path': local_path1,  # Local path to image
                  'local_annotations_path': local_annotations_path1,  # Local path to annotation file
                  'remote_path': remote_path1,  # Remote directory of uploaded image
                  'remote_name': remote_name1,  # Remote name of image
                  'item_metadata': item_metadata1})  # Metadata for the created item
# Second item and info attached:
to_upload.append({'local_path': local_path2,  # Local path to image
                  'local_annotations_path': local_annotations_path2,  # Local path to annotation file
                  'remote_path': remote_path2,  # Remote directory of uploaded image
                  'remote_name': remote_name2,  # Remote name of image
                  'item_metadata': item_metadata2})  # Metadata for the created item
df = pandas.DataFrame(to_upload)  # Make data into DF table
items = dataset.items.upload(local_path=df,
                             overwrite=True)  # Upload DF to platform