-
Notifications
You must be signed in to change notification settings - Fork 1
/
add_annotid_video.rb
87 lines (76 loc) · 2.12 KB
/
add_annotid_video.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
require 'Datavyu_API'
require 'securerandom'
""" NOTE """
"""
A lot of this is not necessary but I copied another script and have to clean this one but not done yet
"""
# $inputDir = "~/Documents/Projects/Bergelson Lab/annotation/video_with_pho"
# $outputDir = "~/Documents/Projects/Bergelson Lab/annotation/video_with_pho_output"
# $inputDir = "/Volumes/pn-opus/Seedlings/Working_Files/annot_id/video/opf_sc/"
# $outputDir = "/Volumes/pn-opus/Seedlings/Working_Files/annot_id/video/output/"
$usedIDFile = "/Volumes/pn-opus/Seedlings/usedID.txt"
# $usedIDFile = "/Volumes/pn-opus/Seedlings/Working_Files/annot_id/video/usedID.txt"
case RbConfig::CONFIG['host_os']
when /mswin|windows/i
$usedIDFile = 'Z:\Seedlings\usedID.txt'
else
$usedIDFile = "/Volumes/pn-opus/Seedlings/usedID.txt"
end
def randomID
randID = SecureRandom.uuid
randID = "0x"+randID[0..5]
while($usedID.include?(randID))
p "ID Collision"
randID = SecureRandom.uuid
randID = "0x"+randID[0..5]
end
p randID
$usedID << randID
return randID
end
def printCode(*code)
columnName = get_column_list[0]
theColumn = get_column(columnName)
for cell in theColumn.cells
p cell.get_codes(code)
end
end
def addID(dir, outDir)
# $db, $pj = load_db(File.join(dir, file))
columnName = getColumnList()
theColumn = getColumn(columnName[0])
unless theColumn.arglist.include? "id"
theColumn.add_code('id')
end
for cell in theColumn.cells
if cell.get_code('id').to_s.strip.nil? || cell.get_code('id').to_s.strip.empty?
p cell.get_code('id')
cell.change_code('id', randomID)
end
end
set_column(theColumn)
# save_db(File.join(outDir, file))
end
begin
# outDir = File.expand_path($outputDir)
# dataDir = File.expand_path($inputDir)
# retrieve used IDs
$usedID = Set.new
fID = open $usedIDFile
fID.each do |line|
$usedID << line
end
# files = Dir.new(dataDir).entries.sort
counter = 0
errorFile = Array.new
addID('','')
# File.open(File.join(outDir, 'usedID.txt'), 'w') {
File.open($usedIDFile, 'w') {
|file|
for id in $usedID
file.write(id + "\n")
end
}
print("Had problem with: \n")
p errorFile
end