sampledbapi examples

Import

[14]:
from sampledbapi import *

Authenticate

[15]:
server_address = "https://..."
api_key = "46b6eb84665a77890135530efafc340ece27d379b988e5fc83b9149a5d810082"
authenticate(server_address, api_key)

Get list of all objects accessible to the user

[16]:
objects.get_list()
[16]:
[Object 246,
 Object 245,
 Object 164,
 Object 161,
 Object 158,
 Object 157,
 Object 156,
 Object 155,
 Object 154,
 Object 153,
 Object 152,
 Object 151,
 Object 150,
 Object 149,
 Object 148,
 Object 147,
 Object 146,
 Object 145,
 Object 144,
 Object 143,
 Object 142,
 Object 141,
 Object 140,
 Object 139,
 Object 138,
 Object 134,
 Object 133,
 Object 132,
 Object 131,
 Object 130,
 Object 129,
 Object 128,
 Object 127,
 Object 126,
 Object 125,
 Object 124,
 Object 123,
 Object 1]

Get list of files for an object and file content

[17]:
obj = objects.get(1)
obj
[17]:
Object 1
[18]:
obj.get_file_list()
[18]:
[{'object_id': 1,
  'file_id': 0,
  'storage': 'local',
  'original_file_name': '1.1534582.pdf'},
 {'object_id': 1, 'file_id': 1, 'storage': 'url', 'url': 'https://heise.de'},
 {'object_id': 1,
  'file_id': 2,
  'storage': 'local',
  'original_file_name': 'test.py'},
 {'object_id': 1,
  'file_id': 3,
  'storage': 'local',
  'original_file_name': 'setup.py'},
 {'object_id': 1,
  'file_id': 4,
  'storage': 'local',
  'original_file_name': 'Hello.txt'},
 {'object_id': 1,
  'file_id': 5,
  'storage': 'local',
  'original_file_name': 'Hello.txt'},
 {'object_id': 1,
  'file_id': 6,
  'storage': 'local',
  'original_file_name': 'Hello.txt'},
 {'object_id': 1,
  'file_id': 7,
  'storage': 'local',
  'original_file_name': 'Hello.txt'},
 {'object_id': 1,
  'file_id': 8,
  'storage': 'local',
  'original_file_name': 'Hello.txt'}]
[19]:
obj.get_file(2)
[19]:
{'object_id': 1,
 'file_id': 2,
 'storage': 'local',
 'original_file_name': 'test.py',
 'base64_content': 'aW1wb3J0IGFyZ3BhcnNlCgpmcm9tIHNhbXBsZWRiYXBpIGltcG9ydCAqCgpwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCnBhcnNlci5hZGRfYXJndW1lbnQoImFkZHJlc3MiLCBoZWxwPSJBZGRyZXNzIG9mIHRoZSBTYW1wbGVEQiBzZXJ2ZXIgdG8gdXNlLiIpCnBhcnNlci5hZGRfYXJndW1lbnQoImFwaV9rZXkiLCBoZWxwPSJBUEkgdG9rZW4uIikKYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKCmF1dGhlbnRpY2F0ZShhcmdzLmFkZHJlc3MsIGFyZ3MuYXBpX2tleSkKIyBwcmludChvYmplY3RzLmdldExpc3QoKSkKIyBwcmludChvYmplY3RzLmdldCgxMjMpKQpwcmludChpbnN0cnVtZW50cy5nZXRMaXN0KCkpCnByaW50KGluc3RydW1lbnRzLmdldCgxKSkK'}

Get a list of all instruments and read information for an instrument

[20]:
int = instruments.get(14)
int
[20]:
Instrument 14 (Test)
[21]:
log = int.get_log_entry(1).get_file_attachment(1)
log
[21]:
InstrumentLogFileAttachment 1 (test.py)

Upload a file

[23]:
import os

fn = "Hello.txt"

with open(fn, "w") as f:
    f.write("Hello world!")
# objects.upload_file(1, fn)
os.remove(fn)

Advanced search and plotting data from the database

[24]:
measurements = objects.get_list(q="\"Sb\" in material")
measurements
[24]:
[Object 144, Object 143, Object 142, Object 128, Object 127]
[25]:
thickness, time, power = [], [], []
for m in measurements:
    thickness.append(m.data["layer_thickness"]["magnitude_in_base_units"])
    time.append(m.data["sputtering_time"]["magnitude_in_base_units"])
    power.append(m.data["sputtering_power"]["magnitude_in_base_units"])
[26]:
import matplotlib.pyplot as plt
import numpy as np

thickness = np.array(thickness) * 1e9  # in nm
time, power = np.array(time), np.array(power)

plt.figure(figsize=(4, 3), dpi=150)
plt.plot(time, thickness, ".")
plt.xlabel("Sputtering time / s")
plt.ylabel("Target thickness / nm")
[26]:
Text(0, 0.5, 'Target thickness / nm')
_images/Examples_18_1.png