13.3.2. Macro “dataserverMerge.py”
13.3.2.1. Objective
The objective of this macro is to merge data contained in a TDataServer with data contained in another
TDataServer. Both TDataServer have to contain the same number of patterns. We choose here to merge two TDataServer,
loaded from two ASCII files, each of which contains 9 patterns.
The first ASCII file "tds1.dat" defines the four variables x, dy, z, theta:
#COLUMN_NAMES: x| dy| z| theta
#COLUMN_TITLES: x_{n}| "#delta y"| ""| #theta
#COLUMN_UNITS: N| Sec| KM/Sec| M^{2}
1 1 11 11
1 2 12 21
1 3 13 31
2 1 21 12
2 2 22 22
2 3 23 32
3 1 31 13
3 2 32 23
3 3 33 33
and the second ASCII file "tds2.dat" defines the four other variables x2, y, u, ua:
#COLUMN_NAMES: x2| y| u| ua
1 1 102 11
1 2 104 12
1 3 106 13
2 1 202 21
2 2 204 22
2 3 206 23
3 1 302 31
3 2 304 32
3 3 306 33
The merging operation will be executed in the first TDataServer tds1; so it will contain all the
attributes at the end.
13.3.2.2. Macro Uranie
"""
Example of data merging
"""
from URANIE import DataServer
tds1 = DataServer.TDataServer()
tds2 = DataServer.TDataServer()
tds1.fileDataRead("tds1.dat")
print("Dumping tds1")
tds1.Scan("*")
tds2.fileDataRead("tds2.dat")
print("Dumping tds2")
tds2.Scan("*")
tds1.merge(tds2)
print("Dumping merged tds1 and tds2")
tds1.Scan("*", "", "colsize=3 col=9::::::::")
Both TDataServers are filled with ASCII data files with the method filedataRead().
tds1.fileDataRead("tds1.dat")
tds2.fileDataRead("tds2.dat")
Data of the second dataserver tds2 are then merged into the first one.
tds1.merge(tds2)
Data are then dumped in the terminal:
tds1.Scan("*")
13.3.2.3. Console
--- Uranie v4.11/0 --- Developed with ROOT (6.36.06)
Copyright (C) 2013-2026 CEA/DES
Contact: support-uranie@cea.fr
Date: Thu Feb 12, 2026
Dumping tds1
************************************************************************
* Row * tds1__n__ * x.x * dy.dy * z.z * theta.the *
************************************************************************
* 0 * 1 * 1 * 1 * 11 * 11 *
* 1 * 2 * 1 * 2 * 12 * 21 *
* 2 * 3 * 1 * 3 * 13 * 31 *
* 3 * 4 * 2 * 1 * 21 * 12 *
* 4 * 5 * 2 * 2 * 22 * 22 *
* 5 * 6 * 2 * 3 * 23 * 32 *
* 6 * 7 * 3 * 1 * 31 * 13 *
* 7 * 8 * 3 * 2 * 32 * 23 *
* 8 * 9 * 3 * 3 * 33 * 33 *
************************************************************************
Dumping tds2
************************************************************************
* Row * tds2__n__ * x2.x2 * y.y * u.u * ua.ua *
************************************************************************
* 0 * 1 * 1 * 1 * 102 * 11 *
* 1 * 2 * 1 * 2 * 104 * 12 *
* 2 * 3 * 1 * 3 * 106 * 13 *
* 3 * 4 * 2 * 1 * 202 * 21 *
* 4 * 5 * 2 * 2 * 204 * 22 *
* 5 * 6 * 2 * 3 * 206 * 23 *
* 6 * 7 * 3 * 1 * 302 * 31 *
* 7 * 8 * 3 * 2 * 304 * 32 *
* 8 * 9 * 3 * 3 * 306 * 33 *
************************************************************************
Dumping merged tds1 and tds2
************************************************************************
* Row * tds1__n__ * x.x * dy. * z.z * the * x2. * y.y * u.u * ua. *
************************************************************************
* 0 * 1 * 1 * 1 * 11 * 11 * 1 * 1 * 102 * 11 *
* 1 * 2 * 1 * 2 * 12 * 21 * 1 * 2 * 104 * 12 *
* 2 * 3 * 1 * 3 * 13 * 31 * 1 * 3 * 106 * 13 *
* 3 * 4 * 2 * 1 * 21 * 12 * 2 * 1 * 202 * 21 *
* 4 * 5 * 2 * 2 * 22 * 22 * 2 * 2 * 204 * 22 *
* 5 * 6 * 2 * 3 * 23 * 32 * 2 * 3 * 206 * 23 *
* 6 * 7 * 3 * 1 * 31 * 13 * 3 * 1 * 302 * 31 *
* 7 * 8 * 3 * 2 * 32 * 23 * 3 * 2 * 304 * 32 *
* 8 * 9 * 3 * 3 * 33 * 33 * 3 * 3 * 306 * 33 *
************************************************************************