Read TEfficiency with uproot - root-framework

I have a ROOT file with some TDirectories and TEfficiency contained in them. I need to extract the data from those for further processing.
file = uproot.open("myroot.root")
my_directory = file["AnalysisEfficiency"]["ABC_10"]
my_directory.keys()
[b'hPixelEfficiency;1',,
b'eTotalEfficiency;1',
b'efficiencyColumns;1',
b'efficiencyRows;1']
And after
my_eff = my_directory["eTotalEfficiency"]
I get
NotImplementedError:
Unimplemented streamer type: TStreamerSTL
members: {'_classversion': 4, '_fOffset': 0, '_fName': b'fBeta_bin_params', '_fTitle': b'parameter for prior beta distribution different bin by bin', '_fType': 500, '_fSize': 24, '_fArrayLength': 0, '_fArrayDim': 0, '_fMaxIndex': array([0, 0, 0, 0, 0], dtype=int32), '_fTypeName': b'vector<pair<double,double> >', '_fXmin': 0.0, '_fXmax': 0.0, '_fFactor': 0.0, '_fSTLtype': 1, '_fCtype': 61}
file contents:
00000153 40 00 00 0c 40 09 00 00 00 d7 be d2 00 00 00 00 |#...#...........|
00000173 3f e5 d8 97 a2 41 a3 f5 40 00 00 11 00 05 00 01 |?....A..#.......|
00000213 00 00 00 00 03 00 00 00 00 00 00 00 00 40 00 02 |.............#..|
00000233 64 ff ff ff ff 54 48 31 44 00 40 00 02 57 00 03 |d....TH1D.#..W..|
00000253 40 00 02 35 00 08 40 00 00 3d 00 01 00 01 00 00 |#..5..#..=......|
00000273 00 00 03 00 00 00 17 65 54 6f 74 61 6c 45 66 66 |.......eTotalEff|
00000313 69 63 69 65 6e 63 79 5f 70 61 73 73 65 64 18 74 |iciency_passed.t|
00000333 6f 74 61 6c 45 66 66 69 63 69 65 6e 63 79 20 28 |otalEfficiency (|
00000353 70 61 73 73 65 64 29 40 00 00 08 00 02 02 5a 00 |passed)#......Z.|
00000373 01 00 01 40 00 00 06 00 02 00 00 03 e9 40 00 00 |...#.........#..|
I checked here and here but I'm not sure if there is a solution yet. I am using uproot 3.4.15. Is there a way to overcome this a retrieve the data using this or another version?

Related

How to identify an IDR frame from the Video packet

I need to be able to inspect ts packets (looking at video PID 481) and determine whether the packet contains an IDR frame. My understanding is that I need to look for a NAL unit start code, and then something else after that to signify it's the start of an IDR frame. Please can someone clarify?
Here's an example of a packet that I think is an IDR frame, but need to be able to prove it from the payload data:
* Packet 2
---- TS Header ----
PID: 481 (0x01E1), header size: 12, sync: 0x47
Error: 0, unit start: 1, priority: 0
Scrambling: 0, continuity counter: 1
Adaptation field: yes (8 bytes), payload: yes (176 bytes)
Discontinuity: 1, random access: 1, ES priority: 0
PCR: 0x000000013A5
---- PES Header ----
Stream id: 0xE0 (Video 0)
PES packet length: 0 (unbounded)
---- Full TS Packet Content ----
47 41 E1 31 07 D0 00 00 00 08 7E E5 00 00 01 E0 00 00 84 C0 0A 31 00 05
E5 CD 11 00 05 AD 8D 00 00 00 01 09 10 00 00 00 01 67 64 00 29 AC D9 40
78 04 4F DE 02 94 04 04 05 00 00 03 00 01 00 00 03 00 32 E6 80 00 F4 24
00 04 F5 8A 49 30 0F 8B 16 CB 00 00 00 01 68 FA A7 CB 00 00 01 06 00 05
95 6C 60 E4 85 80 00 00 01 06 05 FF FF F5 DC 45 E9 BD E6 D9 48 B7 96 2C
D8 20 D9 23 EE EF 78 32 36 34 20 2D 20 63 6F 72 65 20 31 34 38 20 2D 20
48 2E 32 36 34 2F 4D 50 45 47 2D 34 20 41 56 43 20 63 6F 64 65 63 20 2D
20 43 6F 70 79 72 69 67 68 74 20 32 30 30 33 2D 32 30 31 36
Its not possible to tell from that packet. It is however VERY likely it is an IDR. I say its likely, because looking at the NALUs, I can see an AUD 00 00 00 01 09, an SPS 00 00 00 01 67 a PPS 00 00 00 01 68 then an SEI 00 00 01 06
The SEI however takes the remaining bytes of the packet, You will need to continue reading packets from that PID until you fine the next NALU and see if its an IDR.

GET PROCESSING OPTION error with contactless Card

I'm trying to make the call GET PROCESSING OPTION regardless EMV Contactless.
The data is:
6F 42 84 07 A0 00 00 00 04 10 10 A5 37 50 0A 4D 61 73 74 65 72 43 61
72 64 87 01 01 5F 2D 08 69 74 65 6E 66 72 64 65 BF 0C 1A 9F 4D 02 0B
0A 9F 6E 07 03 80 00 00 30 30 00 9F 0A 08 00 01 05 04 00 00 00 00
PDOL is not present. So the GPO call is:
80A8000002830000
But I get the status 6985. What mistake am I making?

to read the packet data from a cap file

i need to read the payload information from a udp packet which is in pcap file.
tshark -x -c 10 -r traces/trace.pcap udp
0000 00 22 4d a8 1f 7f 80 3f 5d 08 52 35 08 00 45 00 ."M....?].R5..E.
0010 05 94 03 e6 40 00 40 11 3b 46 c0 a8 ba 6c c0 a8 ....#.#.;F...l..
0020 ba 6f d4 80 05 dc 05 80 4e 9e 00 00 80 25 1b 3a .o......N....%.:
0030 fd 9e 00 00 00 01 00 00 00 06 5b 29 c2 5b 78 ed ..........[).[x.
0040 00 00 1b 6f c2 5b 78 ed 00 00 1e c4 30 5b 00 00 ...o.[x.....0[..
0050 00 00 85 c7 09 00 00 00 00 00 01 00 00 00 06 00 ................
0060 00 00 c0 07 1c 00 00 00 00 00 c0 07 3c 00 00 00 ............<...
0070 00 00 c0 07 3c 00 00 00 00 00 78 78 78 78 78 78 ....<.....xxxxxx
i get the above output from tshark but the payload consists of packet arrival and departure time from a udp server how i need to retrieve arrival and departure time from above information.
To print both the packet as hex (-x) and the summary with the timestamp in tshark add the -P option. To get the timestamp as absolute instead of relative value add the -ta option. For more information see the documentation.

Calculate time duration using awk [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
How to calculate time duration by using awk for the following file:
02 0F 00 80 C9 CD AB 00 00 48 CF 00 00 00 00 00 00 6B E7 01 07 1A 16 1B 36 00 with Timestamp2014-03-12 18:46:59.986000
02 0F 00 80 CA CD AB 00 00 48 CF 00 00 00 00 00 00 6B E7 01 07 1A 14 DB 39 00 with Timestamp2014-03-12 18:47:02.446279
02 13 23 C8 B0 CD AB 00 00 FF FF E2 75 AC 21 4E 83 00 00 01 83 6C E7 01 11 1A 36 DD 39 00 with Timestamp2014-03-12 18:47:02.455278
02 03 12 00 B0 6B E7 01 03 1A FF FF FF FF with Timestamp2014-03-12 18:47:02.457279
02 17 00 80 CB CD AB 00 00 48 CF 00 10 E2 75 AC 21 4E 83 00 00 00 00 00 00 6B E6 01 07 1A 10 9B 3D 00 with Timestamp2014-03-12 18:47:06.196279
02 10 63 C8 B1 CD AB 00 00 E2 75 AC 21 4E 83 00 00 04 6A E6 01 0F 1A 14 9D 3D 00 with Timestamp2014-03-12 18:47:06.205278
02 03 12 00 B1 6C E6 01 03 1A FF FF FF FF with Timestamp2014-03-12 18:47:06.206279
In other words, last line timestamp value minus first line timestamp values.
Is this what you want (using GNU awk for mktime())?
$ cat tst.awk
sub(/.*Timestamp/,"") {
split($0,t,/[-:. ]/)
time[++nr] = mktime(t[1]" "t[2]" "t[3]" "t[4]" "t[5]" "t[6]) "." t[7]
}
END { print time[nr] - time[1] }
$ awk -f tst.awk file
6.22028
Thanks a lot #Ed Morton; it is not working with this example:
Number of saved packets= 373
Protocol: IEEE 802.15.4
Packet #0 :02 0F 00 80 C9 CD AB 00 00 48 CF 00 00 00 00 00 00 6B E7 01 07 1A 16 1B 36 00 with Timestamp2014-03-12 18:46:59.986000
###################################################################################
Packet #1 :02 0F 00 80 CA CD AB 00 00 48 CF 00 00 00 00 00 00 6B E7 01 07 1A 14 DB 39 00 with Timestamp2014-03-12 18:47:02.446279
###################################################################################
Packet #2 :02 13 23 C8 B0 CD AB 00 00 FF FF E2 75 AC 21 4E 83 00 00 01 83 6C E7 01 11 1A 36 DD 39 00 with Timestamp2014-03-12 18:47:02.455278
###################################################################################
Packet #3 :02 03 12 00 B0 6B E7 01 03 1A FF FF FF FF with Timestamp2014-03-12 18:47:02.457279
###################################################################################
Packet #4 :02 17 00 80 CB CD AB 00 00 48 CF 00 10 E2 75 AC 21 4E 83 00 00 00 00 00 00 6B E6 01 07 1A 10 9B 3D 00 with Timestamp2014-03-12 18:47:06.196279
###################################################################################
Packet #5 :02 10 63 C8 B1 CD AB 00 00 E2 75 AC 21 4E 83 00 00 04 6A E6 01 0F 1A 14 9D 3D 00 with Timestamp2014-03-12 18:47:06.205278
###################################################################################
Packet #6 :02 03 12 00 B1 6C E6 01 03 1A FF FF FF FF with Timestamp2014-03-12 18:47:06.206279

Visual studio 2008 crashing with VSS 2005

I've installed VSS 2005 and added a VS 2008 project. If I try to open the project by choosing File --> Open Project, then selecting Source Safe on the left and navigating to the either the .sln or the .vbproj, Visual Studio instantly quits with no errors in the event log.
I tried doing a devenv /clean and then /safemode and then I get an error dialog with the following entry in the event viewer:
Event Type: Error
Event Source: Microsoft Visual Studio
Event Category: None
Event ID: 1000
Date: 7/18/2011
Time: 3:33:21 PM
User: N/A
Computer: PKCUSESBLTVPEPE
Description:
Faulting application devenv.exe, version 9.0.21022.8, stamp 47317b3d, faulting module comdlg32.dll, version 6.0.2900.5512, stamp 4802a0c9, debug? 0, fault address 0x00001ff0.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 41 00 70 00 70 00 6c 00 A.p.p.l.
0008: 69 00 63 00 61 00 74 00 i.c.a.t.
0010: 69 00 6f 00 6e 00 20 00 i.o.n. .
0018: 46 00 61 00 69 00 6c 00 F.a.i.l.
0020: 75 00 72 00 65 00 20 00 u.r.e. .
0028: 20 00 64 00 65 00 76 00 .d.e.v.
0030: 65 00 6e 00 76 00 2e 00 e.n.v...
0038: 65 00 78 00 65 00 20 00 e.x.e. .
0040: 39 00 2e 00 30 00 2e 00 9...0...
0048: 32 00 31 00 30 00 32 00 2.1.0.2.
0050: 32 00 2e 00 38 00 20 00 2...8. .
0058: 34 00 37 00 33 00 31 00 4.7.3.1.
0060: 37 00 62 00 33 00 64 00 7.b.3.d.
0068: 20 00 69 00 6e 00 20 00 .i.n. .
0070: 63 00 6f 00 6d 00 64 00 c.o.m.d.
0078: 6c 00 67 00 33 00 32 00 l.g.3.2.
0080: 2e 00 64 00 6c 00 6c 00 ..d.l.l.
0088: 20 00 36 00 2e 00 30 00 .6...0.
0090: 2e 00 32 00 39 00 30 00 ..2.9.0.
0098: 30 00 2e 00 35 00 35 00 0...5.5.
00a0: 31 00 32 00 20 00 34 00 1.2. .4.
00a8: 38 00 30 00 32 00 61 00 8.0.2.a.
00b0: 30 00 63 00 39 00 20 00 0.c.9. .
00b8: 66 00 44 00 65 00 62 00 f.D.e.b.
00c0: 75 00 67 00 20 00 30 00 u.g. .0.
00c8: 20 00 61 00 74 00 20 00 .a.t. .
00d0: 6f 00 66 00 66 00 73 00 o.f.f.s.
00d8: 65 00 74 00 20 00 30 00 e.t. .0.
00e0: 30 00 30 00 30 00 31 00 0.0.0.1.
00e8: 66 00 66 00 30 00 0d 00 f.f.0...
00f0: 0a 00 ..
Has any experienced this problem before or have any solutions? Tried the usual places, but have come up empty handed so far.
Thanks!
I had the same issue and installed the VSS2005 update (available at http://www.microsoft.com/en-gb/download/details.aspx?id=291).
This resolved the issue.