@@ -11,112 +11,119 @@ def create_tutorial(tutorial):
11
11
12
12
13
13
def generate_tutorial_data (tutorial ):
14
- tutorial_id = tutorial [' projectId' ]
15
- categories = tutorial [' categories' ].keys ()
16
- logger .info (f' create tutorial for tutorial id: { tutorial_id } ' )
14
+ tutorial_id = tutorial [" projectId" ]
15
+ categories = tutorial [" categories" ].keys ()
16
+ logger .info (f" create tutorial for tutorial id: { tutorial_id } " )
17
17
18
18
grouped_tasks = {
19
- ' building_easy_1' : {},
20
- ' building_easy_2' : {},
21
- ' maybe_1' : {},
22
- ' no_building_easy_1' : {},
23
- ' no_building_easy_2' : {},
24
- ' bad_clouds_1' : {},
25
- ' bad_no_imagery_1' : {},
26
- ' bad_no_imagery_2' : {},
19
+ " building_easy_1" : {},
20
+ " building_easy_2" : {},
21
+ " maybe_1" : {},
22
+ " no_building_easy_1" : {},
23
+ " no_building_easy_2" : {},
24
+ " bad_clouds_1" : {},
25
+ " bad_no_imagery_1" : {},
26
+ " bad_no_imagery_2" : {},
27
27
}
28
28
29
29
c = 0
30
- with open (tutorial [' examplesFile' ]) as csvDataFile :
30
+ with open (tutorial [" examplesFile" ]) as csvDataFile :
31
31
logger .info (f'tutorial tasks are based on: { tutorial ["examplesFile" ]} ' )
32
32
csvReader = csv .reader (csvDataFile )
33
33
for row in csvReader :
34
34
c += 1
35
35
if c == 1 :
36
- header = row
36
+ pass
37
37
else :
38
38
category = row [2 ]
39
39
if not row [3 ] in grouped_tasks [category ].keys ():
40
40
grouped_tasks [category ][row [3 ]] = {
41
- ' task_id_list' : [],
42
- ' task_x_list' : [],
43
- ' task_y_list' : [],
44
- ' reference_answer_list' : [],
45
- ' category' : category ,
46
- ' url_list' : []
41
+ " task_id_list" : [],
42
+ " task_x_list" : [],
43
+ " task_y_list" : [],
44
+ " reference_answer_list" : [],
45
+ " category" : category ,
46
+ " url_list" : [],
47
47
}
48
48
49
- grouped_tasks [category ][row [3 ]]['task_id_list' ].append (row [0 ])
50
- zoom = row [0 ].split ('-' )[0 ]
51
- task_x = int (row [0 ].split ('-' )[1 ])
52
- task_y = int (row [0 ].split ('-' )[2 ])
53
- grouped_tasks [category ][row [3 ]]['task_x_list' ].append (task_x )
54
- grouped_tasks [category ][row [3 ]]['task_y_list' ].append (task_y )
55
- url = t .tile_coords_zoom_and_tileserver_to_URL (task_x , task_y , zoom , tutorial ['tileServer' ]['name' ],
56
- auth .get_api_key (tutorial ['tileServer' ]['name' ]), None ,
57
- None )
58
- grouped_tasks [category ][row [3 ]]['url_list' ].append (url )
59
- grouped_tasks [category ][row [3 ]]['reference_answer_list' ].append (row [1 ])
49
+ grouped_tasks [category ][row [3 ]]["task_id_list" ].append (row [0 ])
50
+ zoom = row [0 ].split ("-" )[0 ]
51
+ task_x = int (row [0 ].split ("-" )[1 ])
52
+ task_y = int (row [0 ].split ("-" )[2 ])
53
+ grouped_tasks [category ][row [3 ]]["task_x_list" ].append (task_x )
54
+ grouped_tasks [category ][row [3 ]]["task_y_list" ].append (task_y )
55
+ url = t .tile_coords_zoom_and_tileserver_to_URL (
56
+ task_x ,
57
+ task_y ,
58
+ zoom ,
59
+ tutorial ["tileServer" ]["name" ],
60
+ auth .get_api_key (tutorial ["tileServer" ]["name" ]),
61
+ None ,
62
+ None ,
63
+ )
64
+ grouped_tasks [category ][row [3 ]]["url_list" ].append (url )
65
+ grouped_tasks [category ][row [3 ]]["reference_answer_list" ].append (row [1 ])
60
66
61
67
groups_dict = {}
62
68
tasks_dict = {}
63
69
64
70
for i in range (0 , 1 ):
65
- print (i )
66
71
group_id = 101 + i
72
+ # the yMin represents a tile located at the equator at zoom level 18
67
73
groups_dict [group_id ] = {
68
74
"xMax" : "115" ,
69
75
"xMin" : "100" ,
70
- "yMax" : "202 " ,
71
- "yMin" : "200 " ,
76
+ "yMax" : "131074 " ,
77
+ "yMin" : "131072 " ,
72
78
"requiredCount" : 5 ,
73
79
"finishedCount" : 0 ,
74
80
"groupId" : group_id ,
75
81
"projectId" : tutorial_id ,
76
82
"numberOfTasks" : 36 ,
77
- "progress" : 0
83
+ "progress" : 0 ,
78
84
}
79
85
80
86
tasks_dict [group_id ] = {}
81
87
# select 6 tasks for each category and add to group
82
88
counter = - 1
83
89
task_x = 100
84
- task_y = 200
90
+ # the task_y represents a tile located at the equator at zoom level 18
91
+ task_y = 131072
85
92
for category in categories :
86
93
# print(category)
87
94
keys = list (grouped_tasks [category ].keys ())
88
95
tasks = grouped_tasks [category ][keys [i ]]
89
96
90
- x_min = min (tasks [' task_x_list' ])
91
- y_min = min (tasks [' task_y_list' ])
97
+ x_min = min (tasks [" task_x_list" ])
98
+ y_min = min (tasks [" task_y_list" ])
92
99
93
100
# replace taskX and TaskY
94
101
# TaskY between 0 and 2
95
102
# TaskX between 0 and 11
96
- for j in range (0 , len (tasks [' task_id_list' ])):
103
+ for j in range (0 , len (tasks [" task_id_list" ])):
97
104
counter += 1
98
105
task = {
99
- ' taskId_real' : tasks [' task_id_list' ][j ],
100
- ' groupId' : group_id ,
101
- ' projectId' : tutorial_id ,
102
- ' referenceAnswer' : tasks [' reference_answer_list' ][j ],
103
- ' category' : tasks [' category' ],
104
- ' url' : tasks [' url_list' ][j ]
106
+ " taskId_real" : tasks [" task_id_list" ][j ],
107
+ " groupId" : group_id ,
108
+ " projectId" : tutorial_id ,
109
+ " referenceAnswer" : tasks [" reference_answer_list" ][j ],
110
+ " category" : tasks [" category" ],
111
+ " url" : tasks [" url_list" ][j ],
105
112
}
106
113
107
- if tasks [' task_x_list' ][j ] == x_min :
108
- task [' taskX' ] = str (task_x )
109
- elif tasks [' task_x_list' ][j ] == (x_min + 1 ):
110
- task [' taskX' ] = str (task_x + 1 )
114
+ if tasks [" task_x_list" ][j ] == x_min :
115
+ task [" taskX" ] = str (task_x )
116
+ elif tasks [" task_x_list" ][j ] == (x_min + 1 ):
117
+ task [" taskX" ] = str (task_x + 1 )
111
118
112
- if tasks [' task_y_list' ][j ] == y_min :
113
- task [' taskY' ] = str (task_y )
114
- elif tasks [' task_y_list' ][j ] == (y_min + 1 ):
115
- task [' taskY' ] = str (task_y + 1 )
116
- elif tasks [' task_y_list' ][j ] == (y_min + 2 ):
117
- task [' taskY' ] = str (task_y + 2 )
119
+ if tasks [" task_y_list" ][j ] == y_min :
120
+ task [" taskY" ] = str (task_y )
121
+ elif tasks [" task_y_list" ][j ] == (y_min + 1 ):
122
+ task [" taskY" ] = str (task_y + 1 )
123
+ elif tasks [" task_y_list" ][j ] == (y_min + 2 ):
124
+ task [" taskY" ] = str (task_y + 2 )
118
125
119
- task [' taskId' ] = ' 18-{}-{}' .format (task [' taskX' ], task [' taskY' ])
126
+ task [" taskId" ] = " 18-{}-{}" .format (task [" taskX" ], task [" taskY" ])
120
127
tasks_dict [group_id ][counter ] = task
121
128
122
129
task_x += 2
@@ -126,13 +133,15 @@ def generate_tutorial_data(tutorial):
126
133
127
134
def upload_tutorial_to_firebase (tutorial , groups_dict , tasks_dict ):
128
135
# upload groups and tasks to firebase
129
- tutorial_id = tutorial [' projectId' ]
136
+ tutorial_id = tutorial [" projectId" ]
130
137
131
138
fb_db = auth .firebaseDB ()
132
- ref = fb_db .reference ('' )
133
- ref .update ({
134
- 'v2/projects/{}' .format (tutorial_id ): tutorial ,
135
- 'v2/groups/{}' .format (tutorial_id ): groups_dict ,
136
- 'v2/tasks/{}' .format (tutorial_id ): tasks_dict ,
137
- })
138
- logger .info (f'uploaded tutorial data to firebase for { tutorial_id } ' )
139
+ ref = fb_db .reference ("" )
140
+ ref .update (
141
+ {
142
+ "v2/projects/{}" .format (tutorial_id ): tutorial ,
143
+ "v2/groups/{}" .format (tutorial_id ): groups_dict ,
144
+ "v2/tasks/{}" .format (tutorial_id ): tasks_dict ,
145
+ }
146
+ )
147
+ logger .info (f"uploaded tutorial data to firebase for { tutorial_id } " )
0 commit comments