Skip to content

Commit dc24405

Browse files
authored
DTAT399C
1 parent bb65e19 commit dc24405

1 file changed

Lines changed: 221 additions & 0 deletions

File tree

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# deeptrack.backend.units\n",
8+
"<a href=\"https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/units.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
9+
]
10+
},
11+
{
12+
"cell_type": "code",
13+
"execution_count": 1,
14+
"metadata": {},
15+
"outputs": [],
16+
"source": [
17+
"# !pip install deeptrack # Uncomment if running on Colab/Kaggle."
18+
]
19+
},
20+
{
21+
"cell_type": "markdown",
22+
"metadata": {},
23+
"source": [
24+
"This advanced tutorial introduces the backend.units module."
25+
]
26+
},
27+
{
28+
"cell_type": "markdown",
29+
"metadata": {},
30+
"source": [
31+
"## 1. What is `units`?\n",
32+
"\n",
33+
"The `units` module defines functions and a class to handle unit conversions."
34+
]
35+
},
36+
{
37+
"cell_type": "markdown",
38+
"metadata": {},
39+
"source": [
40+
"## 2. Convert meters to centimeters and millimeters"
41+
]
42+
},
43+
{
44+
"cell_type": "code",
45+
"execution_count": null,
46+
"metadata": {},
47+
"outputs": [
48+
{
49+
"name": "stdout",
50+
"output_type": "stream",
51+
"text": [
52+
"{'length': <Quantity(2500.0, 'millimeter')>, 'width': <Quantity(120.0, 'centimeter')>}\n"
53+
]
54+
}
55+
],
56+
"source": [
57+
"from deeptrack.backend import units\n",
58+
"from pint import UnitRegistry\n",
59+
"\n",
60+
"ureg = UnitRegistry()\n",
61+
"\n",
62+
"# Create a conversion table\n",
63+
"conversions = units.ConversionTable(\n",
64+
" length=(ureg.meter, ureg.millimeter), \n",
65+
" width=(ureg.meter, ureg.centimeter),\n",
66+
")\n",
67+
"\n",
68+
"values = {\n",
69+
" \"length\": 2.5, \n",
70+
" \"width\": 1.2, \n",
71+
"}\n",
72+
"\n",
73+
"converted_values = conversions.convert(**values)\n",
74+
"print(converted_values)"
75+
]
76+
},
77+
{
78+
"cell_type": "markdown",
79+
"metadata": {},
80+
"source": [
81+
"## 3. Convert a list of velocities"
82+
]
83+
},
84+
{
85+
"cell_type": "code",
86+
"execution_count": null,
87+
"metadata": {},
88+
"outputs": [
89+
{
90+
"name": "stdout",
91+
"output_type": "stream",
92+
"text": [
93+
"{'velocity': <Quantity([18. 36. 54.], 'kilometer / hour')>}\n"
94+
]
95+
}
96+
],
97+
"source": [
98+
"from deeptrack.backend import units\n",
99+
"from pint import UnitRegistry\n",
100+
"\n",
101+
"ureg = UnitRegistry()\n",
102+
"\n",
103+
"# From m/s to km/h.\n",
104+
"conversions = units.ConversionTable(\n",
105+
" velocity=(\n",
106+
" ureg.meter / ureg.second,\n",
107+
" ureg.kilometer / ureg.hour,\n",
108+
" )\n",
109+
")\n",
110+
"\n",
111+
"values = {\n",
112+
" \"velocity\": [5, 10, 15], \n",
113+
"}\n",
114+
"\n",
115+
"converted_values = conversions.convert(**values)\n",
116+
"print(converted_values)"
117+
]
118+
},
119+
{
120+
"cell_type": "markdown",
121+
"metadata": {},
122+
"source": [
123+
"## 4. Convert temperature"
124+
]
125+
},
126+
{
127+
"cell_type": "code",
128+
"execution_count": 36,
129+
"metadata": {},
130+
"outputs": [
131+
{
132+
"name": "stdout",
133+
"output_type": "stream",
134+
"text": [
135+
"{'temperature': <Quantity(26.85, 'degree_Celsius')>}\n"
136+
]
137+
}
138+
],
139+
"source": [
140+
"from deeptrack.backend import units\n",
141+
"from pint import UnitRegistry\n",
142+
"\n",
143+
"ureg = UnitRegistry()\n",
144+
"\n",
145+
"conversions = units.ConversionTable(\n",
146+
" temperature=(ureg.kelvin, ureg.celsius), \n",
147+
")\n",
148+
"\n",
149+
"values = {\n",
150+
" \"temperature\": 300,\n",
151+
"}\n",
152+
"\n",
153+
"converted_values = conversions.convert(**values)\n",
154+
"print(converted_values)"
155+
]
156+
},
157+
{
158+
"cell_type": "markdown",
159+
"metadata": {},
160+
"source": [
161+
"## 5. Converting multiple quantities"
162+
]
163+
},
164+
{
165+
"cell_type": "code",
166+
"execution_count": null,
167+
"metadata": {},
168+
"outputs": [
169+
{
170+
"name": "stdout",
171+
"output_type": "stream",
172+
"text": [
173+
"{'mass': <Quantity(5.0, 'kilogram')>, 'force': <Quantity(11.2404472, 'force_pound')>, 'energy': <Quantity(239.005736, 'calorie')>}\n"
174+
]
175+
}
176+
],
177+
"source": [
178+
"from deeptrack.backend import units\n",
179+
"from pint import UnitRegistry\n",
180+
"\n",
181+
"ureg = UnitRegistry()\n",
182+
"\n",
183+
"conversions = units.ConversionTable(\n",
184+
" mass=(ureg.gram, ureg.kilogram),\n",
185+
" force=(ureg.newton, ureg.pound_force),\n",
186+
" energy=(ureg.joule, ureg.calorie),\n",
187+
")\n",
188+
"\n",
189+
"values = {\n",
190+
" \"mass\": 5000,\n",
191+
" \"force\": 50,\n",
192+
" \"energy\": 1000,\n",
193+
"}\n",
194+
"\n",
195+
"converted_values = conversions.convert(**values)\n",
196+
"print(converted_values)"
197+
]
198+
}
199+
],
200+
"metadata": {
201+
"kernelspec": {
202+
"display_name": "Python 3",
203+
"language": "python",
204+
"name": "python3"
205+
},
206+
"language_info": {
207+
"codemirror_mode": {
208+
"name": "ipython",
209+
"version": 3
210+
},
211+
"file_extension": ".py",
212+
"mimetype": "text/x-python",
213+
"name": "python",
214+
"nbconvert_exporter": "python",
215+
"pygments_lexer": "ipython3",
216+
"version": "3.9.13"
217+
}
218+
},
219+
"nbformat": 4,
220+
"nbformat_minor": 2
221+
}

0 commit comments

Comments
 (0)