everettshen
commited on
Commit
•
d7b4a46
1
Parent(s):
afb057a
Upload 14 files
Browse files- .gitattributes +1 -0
- 3d view.mp4 +3 -0
- Countries and regions summarized.txt +1296 -0
- caption_metadata.txt +0 -0
- dataset_scripts.ipynb +1201 -0
- evaluate_clip.py +71 -0
- evaluate_fid.py +92 -0
- get_filenames.py +21 -0
- inference.py +57 -0
- job.slurm +39 -0
- panorama heatmap.png +0 -0
- prompts.zip +3 -0
- resize.py +29 -0
- seeded_inference.py +65 -0
- streetview360x-v4-10000-images.safetensors +3 -0
.gitattributes
CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
3d[[:space:]]view.mp4 filter=lfs diff=lfs merge=lfs -text
|
3d view.mp4
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c63ad27efada5bce18e3327e7d53f5c2254a440e7cf22f623da4b878d53dfb1b
|
3 |
+
size 51388393
|
Countries and regions summarized.txt
ADDED
@@ -0,0 +1,1296 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"sorted_countries": {
|
3 |
+
"United States": 1170,
|
4 |
+
"India": 369,
|
5 |
+
"Brazil": 315,
|
6 |
+
"France": 288,
|
7 |
+
"Russia": 210,
|
8 |
+
"Japan": 195,
|
9 |
+
"Spain": 195,
|
10 |
+
"Canada": 190,
|
11 |
+
"Italy": 189,
|
12 |
+
"Thailand": 188,
|
13 |
+
"Indonesia": 187,
|
14 |
+
"Australia": 159,
|
15 |
+
"Mexico": 154,
|
16 |
+
"Poland": 147,
|
17 |
+
"Norway": 129,
|
18 |
+
"Germany": 115,
|
19 |
+
"T\u00fcrkiye": 101,
|
20 |
+
"Greece": 98,
|
21 |
+
"United Kingdom": 97,
|
22 |
+
"Philippines": 95,
|
23 |
+
"Sweden": 95,
|
24 |
+
"Argentina": 84,
|
25 |
+
"Cambodia": 69,
|
26 |
+
"Taiwan": 65,
|
27 |
+
"Finland": 63,
|
28 |
+
"South Korea": 61,
|
29 |
+
"Malaysia": 58,
|
30 |
+
"Romania": 58,
|
31 |
+
"South Africa": 57,
|
32 |
+
"New Zealand": 57,
|
33 |
+
"Czechia": 56,
|
34 |
+
"Denmark": 53,
|
35 |
+
"Portugal": 48,
|
36 |
+
"Chile": 46,
|
37 |
+
"Netherlands": 44,
|
38 |
+
"Belgium": 43,
|
39 |
+
"Bulgaria": 42,
|
40 |
+
"Austria": 38,
|
41 |
+
"Colombia": 36,
|
42 |
+
"Guatemala": 35,
|
43 |
+
"Ukraine": 35,
|
44 |
+
"Latvia": 35,
|
45 |
+
"Croatia": 33,
|
46 |
+
"Hungary": 32,
|
47 |
+
"Lithuania": 31,
|
48 |
+
"Slovakia": 31,
|
49 |
+
"Ireland": 31,
|
50 |
+
"Switzerland": 29,
|
51 |
+
"Estonia": 29,
|
52 |
+
"Bangladesh": 29,
|
53 |
+
"Uruguay": 26,
|
54 |
+
"": 25,
|
55 |
+
"Nigeria": 22,
|
56 |
+
"Ecuador": 22,
|
57 |
+
"Peru": 20,
|
58 |
+
"Singapore": 17,
|
59 |
+
"Hong Kong": 16,
|
60 |
+
"Iceland": 14,
|
61 |
+
"Serbia": 14,
|
62 |
+
"Kenya": 13,
|
63 |
+
"Slovenia": 13,
|
64 |
+
"Israel": 12,
|
65 |
+
"Panama": 7,
|
66 |
+
"Kyrgyzstan": 7,
|
67 |
+
"Sri Lanka": 6,
|
68 |
+
"Greenland": 6,
|
69 |
+
"Senegal": 6,
|
70 |
+
"Laos": 6,
|
71 |
+
"Luxembourg": 5,
|
72 |
+
"Bolivia": 5,
|
73 |
+
"Albania": 4,
|
74 |
+
"U.S. Virgin Islands": 4,
|
75 |
+
"Ghana": 4,
|
76 |
+
"Faroe Islands": 4,
|
77 |
+
"Isle of Man": 3,
|
78 |
+
"Montenegro": 3,
|
79 |
+
"Eswatini": 3,
|
80 |
+
"Monaco": 3,
|
81 |
+
"Rwanda": 3,
|
82 |
+
"Malta": 3,
|
83 |
+
"United Arab Emirates": 3,
|
84 |
+
"Kazakhstan": 3,
|
85 |
+
"Botswana": 3,
|
86 |
+
"Cura\u00e7ao": 3,
|
87 |
+
"San Marino": 2,
|
88 |
+
"Christmas Island": 2,
|
89 |
+
"Puerto Rico": 2,
|
90 |
+
"Guam": 2,
|
91 |
+
"R\u00e9union": 2,
|
92 |
+
"Mongolia": 2,
|
93 |
+
"Gibraltar": 1,
|
94 |
+
"Jordan": 1,
|
95 |
+
"Bermuda": 1,
|
96 |
+
"Svalbard and Jan Mayen": 1,
|
97 |
+
"Bhutan": 1,
|
98 |
+
"Dominican Republic": 1,
|
99 |
+
"Qatar": 1,
|
100 |
+
"Northern Mariana Islands": 1
|
101 |
+
},
|
102 |
+
"sorted_continents": {
|
103 |
+
"Europe": 2364,
|
104 |
+
"North America": 1573,
|
105 |
+
"Asia": 1494,
|
106 |
+
"South America": 554,
|
107 |
+
"Oceania": 219,
|
108 |
+
"Africa": 113
|
109 |
+
},
|
110 |
+
"sorted_regions": {
|
111 |
+
"Texas": 84,
|
112 |
+
"England": 61,
|
113 |
+
"California": 60,
|
114 |
+
"Nebraska": 51,
|
115 |
+
"Ontario": 46,
|
116 |
+
"Kansas": 46,
|
117 |
+
"New South Wales": 46,
|
118 |
+
"Ohio": 44,
|
119 |
+
"Maharashtra": 44,
|
120 |
+
"Nouvelle-Aquitaine": 44,
|
121 |
+
"Florida": 43,
|
122 |
+
"Minas Gerais": 43,
|
123 |
+
"Michigan": 40,
|
124 |
+
"Victoria": 40,
|
125 |
+
"Occitanie": 39,
|
126 |
+
"New York": 39,
|
127 |
+
"Rajasthan": 38,
|
128 |
+
"Castilla y Le\u00f3n": 37,
|
129 |
+
"Uttar Pradesh": 35,
|
130 |
+
"Alabama": 35,
|
131 |
+
"Georgia": 34,
|
132 |
+
"Auvergne-Rh\u00f4ne-Alpes": 34,
|
133 |
+
"Karnataka": 33,
|
134 |
+
"S\u00e3o Paulo": 32,
|
135 |
+
"Mississippi": 32,
|
136 |
+
"Jawa Timur": 30,
|
137 |
+
"Illinois": 30,
|
138 |
+
"Bourgogne-Franche-Comt\u00e9": 29,
|
139 |
+
"Tennessee": 29,
|
140 |
+
"Virginia": 29,
|
141 |
+
"Wisconsin": 28,
|
142 |
+
"Queensland": 28,
|
143 |
+
"Tamil Nadu": 28,
|
144 |
+
"Paran\u00e1": 28,
|
145 |
+
"Louisiana": 27,
|
146 |
+
"Montana": 27,
|
147 |
+
"Iowa": 27,
|
148 |
+
"Andhra Pradesh": 27,
|
149 |
+
"Missouri": 26,
|
150 |
+
"Qu\u00e9bec": 26,
|
151 |
+
"Bahia": 26,
|
152 |
+
"Pennsylvania": 26,
|
153 |
+
"Oregon": 26,
|
154 |
+
"British Columbia": 26,
|
155 |
+
"Scotland": 26,
|
156 |
+
"Nova Scotia": 26,
|
157 |
+
"Gujarat": 25,
|
158 |
+
"Oklahoma": 25,
|
159 |
+
"North Carolina": 25,
|
160 |
+
"Arkansas": 25,
|
161 |
+
"North Dakota": 25,
|
162 |
+
"South Dakota": 24,
|
163 |
+
"Madhya Pradesh": 24,
|
164 |
+
"Grand Est": 24,
|
165 |
+
"Andaluc\u00eda": 24,
|
166 |
+
"Minnesota": 24,
|
167 |
+
"Rio Grande do Sul": 23,
|
168 |
+
"Hokkaido": 23,
|
169 |
+
"Bayern": 22,
|
170 |
+
"Centre-Val de Loire": 22,
|
171 |
+
"Vlaams Gewest": 22,
|
172 |
+
"Goi\u00e1s": 21,
|
173 |
+
"R\u00e9gion Wallonne": 21,
|
174 |
+
"Tr\u00f8ndelag": 20,
|
175 |
+
"Baden-W\u00fcrttemberg": 20,
|
176 |
+
"Wojew\u00f3dztwo mazowieckie": 20,
|
177 |
+
"South Carolina": 20,
|
178 |
+
"Jawa Tengah": 20,
|
179 |
+
"Western Australia": 20,
|
180 |
+
"Colorado": 20,
|
181 |
+
"Innlandet": 20,
|
182 |
+
"Bihar": 20,
|
183 |
+
"C\u00f3rdoba": 20,
|
184 |
+
"Castilla-La Mancha": 19,
|
185 |
+
"Veneto": 19,
|
186 |
+
"Normandie": 19,
|
187 |
+
"Kentucky": 19,
|
188 |
+
"South Australia": 18,
|
189 |
+
"Washington": 18,
|
190 |
+
"Telangana": 18,
|
191 |
+
"Saskatchewan": 18,
|
192 |
+
"Alberta": 18,
|
193 |
+
"Pays de la Loire": 18,
|
194 |
+
"Gyeonggi-do": 17,
|
195 |
+
"New Mexico": 16,
|
196 |
+
"Arizona": 16,
|
197 |
+
"Hauts-de-France": 15,
|
198 |
+
"Estado de M\u00e9xico": 15,
|
199 |
+
"Central Luzon": 15,
|
200 |
+
"Piemonte": 15,
|
201 |
+
"Bretagne": 15,
|
202 |
+
"Odisha": 15,
|
203 |
+
"Western Cape": 15,
|
204 |
+
"Veracruz": 15,
|
205 |
+
"Catalunya": 15,
|
206 |
+
"Indiana": 15,
|
207 |
+
"Utah": 14,
|
208 |
+
"Emilia-Romagna": 14,
|
209 |
+
"Par\u00e1": 14,
|
210 |
+
"Sicilia": 14,
|
211 |
+
"Comunidad Valenciana": 14,
|
212 |
+
"Calabarzon": 13,
|
213 |
+
"Rio de Janeiro": 13,
|
214 |
+
"Provincia de Buenos Aires": 13,
|
215 |
+
"Mato Grosso do Sul": 13,
|
216 |
+
"Provence-Alpes-C\u00f4te d'Azur": 13,
|
217 |
+
"Krasnodarskiy kray": 13,
|
218 |
+
"Nordland": 13,
|
219 |
+
"West Virginia": 13,
|
220 |
+
"Gyeongsangbuk-do": 12,
|
221 |
+
"Wojew\u00f3dztwo lubelskie": 12,
|
222 |
+
"Manitoba": 12,
|
223 |
+
"Lombardia": 12,
|
224 |
+
"Arag\u00f3n": 12,
|
225 |
+
"Jalisco": 12,
|
226 |
+
"Jiho\u010desk\u00fd kraj": 11,
|
227 |
+
"Johor": 11,
|
228 |
+
"Punjab": 11,
|
229 |
+
"Mecklenburg-Vorpommern": 11,
|
230 |
+
"V\u00e4stra G\u00f6talands l\u00e4n": 11,
|
231 |
+
"Campania": 11,
|
232 |
+
"Leningradskaya oblast'": 11,
|
233 |
+
"Sardegna": 11,
|
234 |
+
"Kagoshima": 11,
|
235 |
+
"Maine": 11,
|
236 |
+
"Puglia": 11,
|
237 |
+
"New Jersey": 11,
|
238 |
+
"Prey Veng Province": 11,
|
239 |
+
"Alaska": 11,
|
240 |
+
"\u00cele-de-France": 11,
|
241 |
+
"Wojew\u00f3dztwo pomorskie": 10,
|
242 |
+
"Chiapas": 10,
|
243 |
+
"Cear\u00e1": 10,
|
244 |
+
"Wojew\u00f3dztwo zachodniopomorskie": 10,
|
245 |
+
"Tainan City": 10,
|
246 |
+
"Ober\u00f6sterreich": 10,
|
247 |
+
"Wojew\u00f3dztwo warmi\u0144sko-mazurskie": 10,
|
248 |
+
"Ubon Ratchathani": 10,
|
249 |
+
"Niedersachsen": 10,
|
250 |
+
"Yilan County": 10,
|
251 |
+
"Vestland": 10,
|
252 |
+
"Wojew\u00f3dztwo ma\u0142opolskie": 10,
|
253 |
+
"Nordrhein-Westfalen": 10,
|
254 |
+
"South East Sulawesi": 10,
|
255 |
+
"Wyoming": 10,
|
256 |
+
"West Bengal": 10,
|
257 |
+
"Finnmark": 10,
|
258 |
+
"M\u00f8re og Romsdal": 10,
|
259 |
+
"Coquimbo": 10,
|
260 |
+
"Wojew\u00f3dztwo wielkopolskie": 10,
|
261 |
+
"Gauteng": 10,
|
262 |
+
"Mato Grosso": 10,
|
263 |
+
"Santa Catarina": 10,
|
264 |
+
"Eastern Cape": 9,
|
265 |
+
"Lazio": 9,
|
266 |
+
"Jawa Barat": 9,
|
267 |
+
"Central Visayas": 9,
|
268 |
+
"Auckland": 9,
|
269 |
+
"V\u00e4sterbottens l\u00e4n": 9,
|
270 |
+
"Wojew\u00f3dztwo dolno\u015bl\u0105skie": 9,
|
271 |
+
"South Sulawesi": 9,
|
272 |
+
"Lappi": 9,
|
273 |
+
"Sulawesi Tengah": 9,
|
274 |
+
"Hong Kong Island": 9,
|
275 |
+
"Nagasaki": 9,
|
276 |
+
"Maryland": 9,
|
277 |
+
"Sachsen": 9,
|
278 |
+
"Tocantins": 9,
|
279 |
+
"Metro Manila": 9,
|
280 |
+
"Sachsen-Anhalt": 9,
|
281 |
+
"Wojew\u00f3dztwo \u015bl\u0105skie": 9,
|
282 |
+
"Troms": 9,
|
283 |
+
"Canarias": 9,
|
284 |
+
"Toscana": 9,
|
285 |
+
"Konya": 8,
|
286 |
+
"Okinawa": 8,
|
287 |
+
"Brandenburg": 8,
|
288 |
+
"Newfoundland and Labrador": 8,
|
289 |
+
"Wojew\u00f3dztwo \u0142\u00f3dzkie": 8,
|
290 |
+
"Puebla": 8,
|
291 |
+
"New Brunswick": 8,
|
292 |
+
"Central Sulawesi": 8,
|
293 |
+
"Chiba": 8,
|
294 |
+
"Calabria": 8,
|
295 |
+
"Dhaka Division": 8,
|
296 |
+
"KwaZulu-Natal": 8,
|
297 |
+
"Oaxaca": 8,
|
298 |
+
"\u00d6sterg\u00f6tlands l\u00e4n": 8,
|
299 |
+
"Wojew\u00f3dztwo podkarpackie": 8,
|
300 |
+
"Pernambuco": 8,
|
301 |
+
"Wojew\u00f3dztwo \u015bwi\u0119tokrzyskie": 8,
|
302 |
+
"Olomouck\u00fd kraj": 8,
|
303 |
+
"Iwate": 8,
|
304 |
+
"Banten": 8,
|
305 |
+
"Ilocos Region": 8,
|
306 |
+
"Fukuoka": 8,
|
307 |
+
"Changhua County": 8,
|
308 |
+
"Pre\u0161ovsk\u00fd kraj": 8,
|
309 |
+
"Idaho": 8,
|
310 |
+
"Rio Grande do Norte": 7,
|
311 |
+
"O'Higgins": 7,
|
312 |
+
"Banteay Meanchey Province": 7,
|
313 |
+
"Eastern Visayas": 7,
|
314 |
+
"Buskerud": 7,
|
315 |
+
"J\u00e4mtlands l\u00e4n": 7,
|
316 |
+
"Kerala": 7,
|
317 |
+
"Bicol": 7,
|
318 |
+
"Santa Fe": 7,
|
319 |
+
"Banskobystrick\u00fd kraj": 7,
|
320 |
+
"Maranh\u00e3o": 7,
|
321 |
+
"Vladimirskaya oblast'": 7,
|
322 |
+
"Sumatera Utara": 7,
|
323 |
+
"Daegu": 7,
|
324 |
+
"Navarra": 7,
|
325 |
+
"Niigata": 7,
|
326 |
+
"San Luis Potos\u00ed": 7,
|
327 |
+
"Tabasco": 7,
|
328 |
+
"Liguria": 7,
|
329 |
+
"Waikato": 7,
|
330 |
+
"Selangor": 7,
|
331 |
+
"St\u0159edo\u010desk\u00fd kraj": 7,
|
332 |
+
"Gelderland": 7,
|
333 |
+
"Gangwon-do": 7,
|
334 |
+
"V\u00e4sternorrlands l\u00e4n": 7,
|
335 |
+
"Norrbottens l\u00e4n": 7,
|
336 |
+
"Abruzzo": 7,
|
337 |
+
"Respublika Buryatiya": 7,
|
338 |
+
"Campeche": 7,
|
339 |
+
"Bali": 7,
|
340 |
+
"Rostovskaya oblast'": 7,
|
341 |
+
"Apulia": 7,
|
342 |
+
"Aomori": 7,
|
343 |
+
"Hualien County": 7,
|
344 |
+
"Cagayan Valley": 7,
|
345 |
+
"Arkhangelsk Oblast": 7,
|
346 |
+
"Hawke's Bay": 7,
|
347 |
+
"Uttarakhand": 7,
|
348 |
+
"Telemark": 6,
|
349 |
+
"Pohjois-Pohjanmaa": 6,
|
350 |
+
"Agder": 6,
|
351 |
+
"Wojew\u00f3dztwo podlaskie": 6,
|
352 |
+
"Stockholms l\u00e4n": 6,
|
353 |
+
"Trentino-Alto Adige": 6,
|
354 |
+
"Kampong Cham Province": 6,
|
355 |
+
"Rogaland": 6,
|
356 |
+
"Dalarnas l\u00e4n": 6,
|
357 |
+
"Tucum\u00e1n": 6,
|
358 |
+
"Lampung": 6,
|
359 |
+
"Antioquia": 6,
|
360 |
+
"Akershus": 6,
|
361 |
+
"Siem Reap Province": 6,
|
362 |
+
"Nieder\u00f6sterreich": 6,
|
363 |
+
"Vilniaus apskritis": 6,
|
364 |
+
"Kemerovskaya oblast'": 6,
|
365 |
+
"Friesland": 6,
|
366 |
+
"Th\u00fcringen": 6,
|
367 |
+
"Euskadi": 6,
|
368 |
+
"Nakhon Phanom": 6,
|
369 |
+
"Massachusetts": 6,
|
370 |
+
"Extremadura": 6,
|
371 |
+
"Mukdahan": 6,
|
372 |
+
"R\u00edo Negro": 6,
|
373 |
+
"Khanty-Mansiyskiy avtonomnyy okrug": 6,
|
374 |
+
"Tokyo": 6,
|
375 |
+
"Gunma": 6,
|
376 |
+
"Wales": 6,
|
377 |
+
"Wojew\u00f3dztwo kujawsko-pomorskie": 6,
|
378 |
+
"Limpopo": 6,
|
379 |
+
"Moskovskaya oblast'": 6,
|
380 |
+
"Wojew\u00f3dztwo lubuskie": 6,
|
381 |
+
"Yucat\u00e1n": 6,
|
382 |
+
"Kowloon": 5,
|
383 |
+
"Marche": 5,
|
384 |
+
"Chhattisgarh": 5,
|
385 |
+
"Nakhon Ratchasima": 5,
|
386 |
+
"Illes Balears": 5,
|
387 |
+
"Vara\u017edinska \u017eupanija": 5,
|
388 |
+
"Drenthe": 5,
|
389 |
+
"Kaohsiung City": 5,
|
390 |
+
"Overijssel": 5,
|
391 |
+
"Braga": 5,
|
392 |
+
"Ko\u0161ick\u00fd kraj": 5,
|
393 |
+
"Uusimaa": 5,
|
394 |
+
"West Java": 5,
|
395 |
+
"Kumamoto": 5,
|
396 |
+
"Bay of Plenty": 5,
|
397 |
+
"North Sumatra": 5,
|
398 |
+
"Rajshahi Division": 5,
|
399 |
+
"Nong Khai": 5,
|
400 |
+
"Friuli-Venezia Giulia": 5,
|
401 |
+
"Amazonas": 5,
|
402 |
+
"Jude\u021bul Dolj": 5,
|
403 |
+
"New Hampshire": 5,
|
404 |
+
"Chelyabinskaya oblast'": 5,
|
405 |
+
"Jharkhand": 5,
|
406 |
+
"Valpara\u00edso": 5,
|
407 |
+
"Osun": 5,
|
408 |
+
"Nevada": 5,
|
409 |
+
"Corse": 5,
|
410 |
+
"Castelo Branco": 5,
|
411 |
+
"Western Visayas": 5,
|
412 |
+
"Taranaki": 5,
|
413 |
+
"Michoac\u00e1n": 5,
|
414 |
+
"Osje\u010dko-baranjska \u017eupanija": 5,
|
415 |
+
"Hiroshima": 5,
|
416 |
+
"Assam": 5,
|
417 |
+
"Schleswig-Holstein": 5,
|
418 |
+
"Tulskaya oblast'": 5,
|
419 |
+
"Chang Wat Loei": 5,
|
420 |
+
"Vientiane Prefecture": 5,
|
421 |
+
"Mendoza": 5,
|
422 |
+
"Khulna Division": 5,
|
423 |
+
"Tak\u00e9o Province": 5,
|
424 |
+
"Terengganu": 5,
|
425 |
+
"B\u00edo B\u00edo": 5,
|
426 |
+
"Region XII": 5,
|
427 |
+
"Keski-Suomi": 5,
|
428 |
+
"Haryana": 5,
|
429 |
+
"Zacatecas": 5,
|
430 |
+
"Vermont": 5,
|
431 |
+
"North Sulawesi": 5,
|
432 |
+
"Tasmania": 5,
|
433 |
+
"Valais": 4,
|
434 |
+
"Guatemala": 4,
|
435 |
+
"Sarawak": 4,
|
436 |
+
"Guanajuato": 4,
|
437 |
+
"Western Province": 4,
|
438 |
+
"Valmieras novads": 4,
|
439 |
+
"Kauno apskritis": 4,
|
440 |
+
"Northern Cape": 4,
|
441 |
+
"Quer\u00e9taro": 4,
|
442 |
+
"Durango": 4,
|
443 |
+
"Limburg": 4,
|
444 |
+
"Gifu": 4,
|
445 |
+
"Saitama": 4,
|
446 |
+
"Nagano": 4,
|
447 |
+
"East Nusa Tenggara": 4,
|
448 |
+
"Magdalena": 4,
|
449 |
+
"Pohjois-Savo": 4,
|
450 |
+
"Noord-Brabant": 4,
|
451 |
+
"Kyivs'ka oblast": 4,
|
452 |
+
"Kelantan": 4,
|
453 |
+
"Burgenland": 4,
|
454 |
+
"Talas Region": 4,
|
455 |
+
"Surin": 4,
|
456 |
+
"Songkhla": 4,
|
457 |
+
"Sonora": 4,
|
458 |
+
"Wojew\u00f3dztwo opolskie": 4,
|
459 |
+
"Pleven": 4,
|
460 |
+
"Eski\u015fehir": 4,
|
461 |
+
"P\u00f5lva maakond": 4,
|
462 |
+
"Basilicata": 4,
|
463 |
+
"Pirkanmaa": 4,
|
464 |
+
"Ankara": 4,
|
465 |
+
"Otago": 4,
|
466 |
+
"Jeollabuk-do": 4,
|
467 |
+
"Wilayah Persekutuan Kuala Lumpur": 4,
|
468 |
+
"Kanagawa": 4,
|
469 |
+
"Edirne": 4,
|
470 |
+
"Northland": 4,
|
471 |
+
"Jude\u021bul Bihor": 4,
|
472 |
+
"Zeeland": 4,
|
473 |
+
"Vila Real": 4,
|
474 |
+
"Sulawesi Selatan": 4,
|
475 |
+
"Entre R\u00edos": 4,
|
476 |
+
"Akita": 4,
|
477 |
+
"Center District": 4,
|
478 |
+
"Hallands l\u00e4n": 4,
|
479 |
+
"Piau\u00ed": 4,
|
480 |
+
"Kaduna": 4,
|
481 |
+
"Morelos": 4,
|
482 |
+
"V\u00e4rmlands l\u00e4n": 4,
|
483 |
+
"County Wexford": 4,
|
484 |
+
"Leningrad Oblast": 4,
|
485 |
+
"S\u00f6dermanlands l\u00e4n": 4,
|
486 |
+
"Aveiro": 4,
|
487 |
+
"Sukhothai": 4,
|
488 |
+
"Ehime": 4,
|
489 |
+
"Primorsko-goranska \u017eupanija": 4,
|
490 |
+
"Steiermark": 4,
|
491 |
+
"Rond\u00f4nia": 4,
|
492 |
+
"Departamento de Rocha": 4,
|
493 |
+
"Fukushima": 4,
|
494 |
+
"North West": 4,
|
495 |
+
"Respublika Sakha (Yakutiya)": 4,
|
496 |
+
"Southland": 4,
|
497 |
+
"G\u00e4vleborgs l\u00e4n": 4,
|
498 |
+
"Bal\u0131kesir": 4,
|
499 |
+
"Umbria": 4,
|
500 |
+
"Molise": 4,
|
501 |
+
"Saratovskaya oblast'": 4,
|
502 |
+
"Para\u00edba": 4,
|
503 |
+
"Chittagong Division": 4,
|
504 |
+
"Burgas": 4,
|
505 |
+
"K\u00e4rnten": 4,
|
506 |
+
"Perak": 4,
|
507 |
+
"Utenos apskritis": 4,
|
508 |
+
"Kampong Speu Province": 4,
|
509 |
+
"West Sumatra": 4,
|
510 |
+
"Atacama": 4,
|
511 |
+
"Chang Wat Udon Thani": 4,
|
512 |
+
"Bitlis": 4,
|
513 |
+
"Bursa": 4,
|
514 |
+
"Yaroslavskaya oblast'": 4,
|
515 |
+
"Nitriansky kraj": 4,
|
516 |
+
"Departamento de Maldonado": 4,
|
517 |
+
"Riau": 4,
|
518 |
+
"Los Lagos": 4,
|
519 |
+
"Sk\u00e5ne l\u00e4n": 4,
|
520 |
+
"County Donegal": 4,
|
521 |
+
"Jude\u021bul Vrancea": 4,
|
522 |
+
"Battambang Province": 4,
|
523 |
+
"Yozgat": 4,
|
524 |
+
"Northern Ireland": 4,
|
525 |
+
"Ishikawa": 4,
|
526 |
+
"Kraj Vyso\u010dina": 4,
|
527 |
+
"Lisboa": 4,
|
528 |
+
"Moquegua": 3,
|
529 |
+
"Kandal Province": 3,
|
530 |
+
"Pa\u00eds Vasco": 3,
|
531 |
+
"Vestfold": 3,
|
532 |
+
"Noord-Holland": 3,
|
533 |
+
"Zhytomyrs'ka oblast": 3,
|
534 |
+
"Kainuu": 3,
|
535 |
+
"Ibaraki": 3,
|
536 |
+
"Perm Krai": 3,
|
537 |
+
"Tekirda\u011f": 3,
|
538 |
+
"Graub\u00fcnden": 3,
|
539 |
+
"Satakunta": 3,
|
540 |
+
"Harju maakond": 3,
|
541 |
+
"Tverskaya oblast'": 3,
|
542 |
+
"Pardubick\u00fd kraj": 3,
|
543 |
+
"\u00d6sterbotten": 3,
|
544 |
+
"MIMAROPA": 3,
|
545 |
+
"Plze\u0148sk\u00fd kraj": 3,
|
546 |
+
"Taoyuan City": 3,
|
547 |
+
"Novosibirskaya oblast'": 3,
|
548 |
+
"Blagoevgrad": 3,
|
549 |
+
"Zl\u00ednsk\u00fd kraj": 3,
|
550 |
+
"Sa Kaeo": 3,
|
551 |
+
"Respublika Bashkortostan": 3,
|
552 |
+
"Taurag\u0117s apskritis": 3,
|
553 |
+
"Comunidad de Madrid": 3,
|
554 |
+
"Jude\u021bul Bra\u0219ov": 3,
|
555 |
+
"Hiiu maakond": 3,
|
556 |
+
"Kampong Thom Province": 3,
|
557 |
+
"Manzini": 3,
|
558 |
+
"Jude\u021bul Sibiu": 3,
|
559 |
+
"\u017dilinsk\u00fd kraj": 3,
|
560 |
+
"Haskovo": 3,
|
561 |
+
"Viljandi maakond": 3,
|
562 |
+
"Groningen": 3,
|
563 |
+
"Departamento de Canelones": 3,
|
564 |
+
"Kyoto": 3,
|
565 |
+
"Huehuetenango Department": 3,
|
566 |
+
"Kr\u00e1lov\u00e9hradeck\u00fd kraj": 3,
|
567 |
+
"Chiayi County": 3,
|
568 |
+
"Coimbra": 3,
|
569 |
+
"Sums'ka oblast": 3,
|
570 |
+
"Vorarlberg": 3,
|
571 |
+
"Islas Baleares": 3,
|
572 |
+
"Rivnens'ka oblast": 3,
|
573 |
+
"Lower Austria": 3,
|
574 |
+
"Faro": 3,
|
575 |
+
"Etel\u00e4-Savo": 3,
|
576 |
+
"Barisal Division": 3,
|
577 |
+
"Santiago del Estero": 3,
|
578 |
+
"Ciudad Aut\u00f3noma de Buenos Aires": 3,
|
579 |
+
"Delaware": 3,
|
580 |
+
"Chang Wat Ubon Ratchathani": 3,
|
581 |
+
"Bengkulu": 3,
|
582 |
+
"County Sligo": 3,
|
583 |
+
"Volgogradskaya oblast'": 3,
|
584 |
+
"\u0160iauliai County": 3,
|
585 |
+
"\u0130stanbul": 3,
|
586 |
+
"Nizhegorodskaya oblast'": 3,
|
587 |
+
"Vojvodina": 3,
|
588 |
+
"Avannaata": 3,
|
589 |
+
"Departamento de Montevideo": 3,
|
590 |
+
"Chang Wat Khon Kaen": 3,
|
591 |
+
"Huehuetenango": 3,
|
592 |
+
"Jude\u021bul Timi\u0219": 3,
|
593 |
+
"V\u00f5ru maakond": 3,
|
594 |
+
"Omsk Oblast": 3,
|
595 |
+
"San Luis Potosi": 3,
|
596 |
+
"Vaud": 3,
|
597 |
+
"Tak": 3,
|
598 |
+
"Resp\u00fablika K\u00f3mi": 3,
|
599 |
+
"Etel\u00e4-Karjala": 3,
|
600 |
+
"Busan": 3,
|
601 |
+
"Primorskiy kray": 3,
|
602 |
+
"Po\u017ee\u0161ko-slavonska \u017eupanija": 3,
|
603 |
+
"Antalya": 3,
|
604 |
+
"Z\u00fcrich": 3,
|
605 |
+
"Manab\u00ed": 3,
|
606 |
+
"Meru County": 3,
|
607 |
+
"State of Paran\u00e1": 3,
|
608 |
+
"Pulau Pinang": 3,
|
609 |
+
"Chiang Rai": 3,
|
610 |
+
"Saga": 3,
|
611 |
+
"Jude\u021bul Mehedin\u021bi": 3,
|
612 |
+
"La Rioja": 3,
|
613 |
+
"Varna": 3,
|
614 |
+
"Tbong Khmum Province": 3,
|
615 |
+
"\u0e1a\u0e36\u0e07\u0e01\u0e32\u0e2c": 3,
|
616 |
+
"County Monaghan": 3,
|
617 |
+
"Solol\u00e1": 3,
|
618 |
+
"R\u0113zeknes novads": 3,
|
619 |
+
"Manawat\u016b-Whanganui": 3,
|
620 |
+
"Splitsko-dalmatinska \u017eupanija": 3,
|
621 |
+
"Dubrova\u010dko-neretvanska \u017eupanija": 3,
|
622 |
+
"Gisborne": 3,
|
623 |
+
"Chang Wat Bueng Kan": 3,
|
624 |
+
"Ternopil's'ka oblast": 3,
|
625 |
+
"Yamanashi": 3,
|
626 |
+
"Adana": 3,
|
627 |
+
"\u0160iauli\u0173 apskritis": 3,
|
628 |
+
"Porto": 3,
|
629 |
+
"Quich\u00e9 Department": 3,
|
630 |
+
"Mie": 3,
|
631 |
+
"El Oro": 3,
|
632 |
+
"Shizuoka": 3,
|
633 |
+
"Moravskoslezsk\u00fd kraj": 3,
|
634 |
+
"Karlovarsk\u00fd kraj": 3,
|
635 |
+
"Osaka": 3,
|
636 |
+
"Jude\u021bul Suceava": 3,
|
637 |
+
"Buryatia": 3,
|
638 |
+
"Tyumenskaya oblast'": 3,
|
639 |
+
"Yalova": 3,
|
640 |
+
"Rheinland-Pfalz": 3,
|
641 |
+
"Fukui": 3,
|
642 |
+
"Taitung County": 3,
|
643 |
+
"Baja California Sur": 3,
|
644 |
+
"Quintana Roo": 3,
|
645 |
+
"Etel\u00e4-Pohjanmaa": 3,
|
646 |
+
"Guarda": 3,
|
647 |
+
"Izola": 3,
|
648 |
+
"Arkhangelskaya oblast'": 3,
|
649 |
+
"East Java": 3,
|
650 |
+
"Negeri Sembilan": 3,
|
651 |
+
"Sinaloa": 3,
|
652 |
+
"Moskva": 3,
|
653 |
+
"Kalmar l\u00e4n": 3,
|
654 |
+
"Chang Wat Kanchanaburi": 3,
|
655 |
+
"Jude\u021bul Bac\u0103u": 3,
|
656 |
+
"Pohjois-Karjala": 3,
|
657 |
+
"Meghalaya": 3,
|
658 |
+
"Chang Wat Chiang Rai": 3,
|
659 |
+
"Varsinais-Suomi": 3,
|
660 |
+
"Cundinamarca": 3,
|
661 |
+
"Roi Et": 3,
|
662 |
+
"Respublika Tatarstan": 3,
|
663 |
+
"Guerrero": 3,
|
664 |
+
"Chaco": 3,
|
665 |
+
"Miyagi": 3,
|
666 |
+
"Jihomoravsk\u00fd kraj": 3,
|
667 |
+
"Rangpur Division": 3,
|
668 |
+
"Si Sa Ket": 3,
|
669 |
+
"Penang": 3,
|
670 |
+
"San Marcos": 3,
|
671 |
+
"Cura\u00e7ao": 3,
|
672 |
+
"Provincia de Herrera": 2,
|
673 |
+
"Khon Kaen": 2,
|
674 |
+
"Loei": 2,
|
675 |
+
"Cantabria": 2,
|
676 |
+
"Regi\u00f3n Metropolitana": 2,
|
677 |
+
"Panam\u00e1 Province": 2,
|
678 |
+
"Kalimantan Timur": 2,
|
679 |
+
"Kyustendil": 2,
|
680 |
+
"Nakhon Sawan": 2,
|
681 |
+
"Zuid-Holland": 2,
|
682 |
+
"Preah Vihear Province": 2,
|
683 |
+
"Provincia de Panam\u00e1": 2,
|
684 |
+
"Chang Wat Nong Khai": 2,
|
685 |
+
"Lavalleja Department": 2,
|
686 |
+
"Kamphaeng Phet": 2,
|
687 |
+
"Yambol": 2,
|
688 |
+
"Sabah": 2,
|
689 |
+
"Libereck\u00fd kraj": 2,
|
690 |
+
"Bungoma County": 2,
|
691 |
+
"San Marcos Department": 2,
|
692 |
+
"Baja California": 2,
|
693 |
+
"Penghu County": 2,
|
694 |
+
"Solothurn": 2,
|
695 |
+
"Nusa Tenggara Barat": 2,
|
696 |
+
"Novgorodskaya oblast'": 2,
|
697 |
+
"Chang Wat Nakhon Si Thammarat": 2,
|
698 |
+
"Hyogo": 2,
|
699 |
+
"D\u00fczce": 2,
|
700 |
+
"Oita": 2,
|
701 |
+
"Se\u017eana": 2,
|
702 |
+
"Uppsala l\u00e4n": 2,
|
703 |
+
"Sacatep\u00e9quez": 2,
|
704 |
+
"State of S\u00e3o Paulo": 2,
|
705 |
+
"Atl\u00e1ntico": 2,
|
706 |
+
"Loja": 2,
|
707 |
+
"Op\u0161tina Budva": 2,
|
708 |
+
"Brodsko-posavska \u017eupanija": 2,
|
709 |
+
"Pichincha": 2,
|
710 |
+
"Yamagata": 2,
|
711 |
+
"Departamento de Colonia": 2,
|
712 |
+
"\u5357\u6295\u7e23": 2,
|
713 |
+
"Sankt-Peterburg": 2,
|
714 |
+
"Jelgavas novads": 2,
|
715 |
+
"Cotopaxi": 2,
|
716 |
+
"Jalal-Abad Region": 2,
|
717 |
+
"County Laois": 2,
|
718 |
+
"Arica y Parinacota": 2,
|
719 |
+
"Boyac\u00e1": 2,
|
720 |
+
"Northern Territory": 2,
|
721 |
+
"Pohjanmaa": 2,
|
722 |
+
"L'vivs'ka oblast": 2,
|
723 |
+
"Jeollanam-do": 2,
|
724 |
+
"V\u00e1gar": 2,
|
725 |
+
"\u0130zmir": 2,
|
726 |
+
"Kagawa": 2,
|
727 |
+
"Kilifi County": 2,
|
728 |
+
"Regi\u00f3n de Murcia": 2,
|
729 |
+
"Nakhon Si Thammarat": 2,
|
730 |
+
"Jude\u021bul Maramure\u0219": 2,
|
731 |
+
"Samarskaya oblast'": 2,
|
732 |
+
"Manisa": 2,
|
733 |
+
"Tungurahua": 2,
|
734 |
+
"Maha Sarakham": 2,
|
735 |
+
"Grundarfjar\u00f0arb\u00e6r": 2,
|
736 |
+
"Kanton Wolz": 2,
|
737 |
+
"Wellington": 2,
|
738 |
+
"L\u00e4\u00e4ne maakond": 2,
|
739 |
+
"Santar\u00e9m": 2,
|
740 |
+
"Trnavsk\u00fd kraj": 2,
|
741 |
+
"Azuay": 2,
|
742 |
+
"Uri": 2,
|
743 |
+
"M\u00fala\u00feing": 2,
|
744 |
+
"Alba County": 2,
|
745 |
+
"\u00dasteck\u00fd kraj": 2,
|
746 |
+
"Totonicap\u00e1n Department": 2,
|
747 |
+
"Shire of Christmas Island": 2,
|
748 |
+
"Departamento de San Jos\u00e9": 2,
|
749 |
+
"Ivano-Frankivs'ka oblast": 2,
|
750 |
+
"Acre": 2,
|
751 |
+
"Santa Cruz Department": 2,
|
752 |
+
"Kayseri": 2,
|
753 |
+
"Lipetskaya oblast'": 2,
|
754 |
+
"Kigali City": 2,
|
755 |
+
"K\u00fctahya": 2,
|
756 |
+
"Lipetsk Oblast": 2,
|
757 |
+
"Ida-Viru maakond": 2,
|
758 |
+
"Valga maakond": 2,
|
759 |
+
"Chang Wat Mukdahan": 2,
|
760 |
+
"Karab\u00fck": 2,
|
761 |
+
"Lombardy": 2,
|
762 |
+
"Chang Wat Lampang": 2,
|
763 |
+
"Marijampol\u0117s apskritis": 2,
|
764 |
+
"County Mayo": 2,
|
765 |
+
"Aguascalientes": 2,
|
766 |
+
"Sakha Republic": 2,
|
767 |
+
"Afyonkarahisar": 2,
|
768 |
+
"J\u00f5geva maakond": 2,
|
769 |
+
"Gabrovo": 2,
|
770 |
+
"Steung Treng Province": 2,
|
771 |
+
"Southern Province": 2,
|
772 |
+
"Yobe": 2,
|
773 |
+
"Kitui County": 2,
|
774 |
+
"Kirovskaya oblast'": 2,
|
775 |
+
"West Kalimantan": 2,
|
776 |
+
"J\u00f6nk\u00f6pings l\u00e4n": 2,
|
777 |
+
"Ludzas novads": 2,
|
778 |
+
"Leiria": 2,
|
779 |
+
"New Territories": 2,
|
780 |
+
"Grindav\u00edkurb\u00e6r": 2,
|
781 |
+
"Varmland County": 2,
|
782 |
+
"R\u00e9gion de Dakar": 2,
|
783 |
+
"Incheon": 2,
|
784 |
+
"\u53f0\u6771\u7e23": 2,
|
785 |
+
"Lagos": 2,
|
786 |
+
"Salzburg": 2,
|
787 |
+
"Amap\u00e1": 2,
|
788 |
+
"Kalasin": 2,
|
789 |
+
"Esmeraldas": 2,
|
790 |
+
"Taichung City": 2,
|
791 |
+
"Northern Mindanao": 2,
|
792 |
+
"Jude\u021bul Neam\u021b": 2,
|
793 |
+
"Nan": 2,
|
794 |
+
"Tokushima": 2,
|
795 |
+
"Sicily": 2,
|
796 |
+
"Belgorodskaya oblast'": 2,
|
797 |
+
"Corrientes": 2,
|
798 |
+
"Jude\u021bul Cluj": 2,
|
799 |
+
"Qarku i Vlor\u00ebs": 2,
|
800 |
+
"Blagoevgrad Province": 2,
|
801 |
+
"Jude\u021bul Giurgiu": 2,
|
802 |
+
"Departamento de Tacuaremb\u00f3": 2,
|
803 |
+
"Piura": 2,
|
804 |
+
"Utena County": 2,
|
805 |
+
"Beja": 2,
|
806 |
+
"Gyeongsangnam-do": 2,
|
807 |
+
"Okayama": 2,
|
808 |
+
"Bueng Kan": 2,
|
809 |
+
"San Luis": 2,
|
810 |
+
"Phatthalung": 2,
|
811 |
+
"Ordu": 2,
|
812 |
+
"Ica": 2,
|
813 |
+
"Khanty-Mansi Autonomous Okrug": 2,
|
814 |
+
"Haifa District": 2,
|
815 |
+
"South Sumatra": 2,
|
816 |
+
"Dnipropetrovs'ka oblast": 2,
|
817 |
+
"Chang Wat Sa Kaeo": 2,
|
818 |
+
"Buri Ram": 2,
|
819 |
+
"County Dublin": 2,
|
820 |
+
"Rhode Island": 2,
|
821 |
+
"Stara Zagora": 2,
|
822 |
+
"Ad\u0131yaman": 2,
|
823 |
+
"Departamento de Salto": 2,
|
824 |
+
"St. Croix": 2,
|
825 |
+
"Emirate of Umm Al Quwain": 2,
|
826 |
+
"West Nusa Tenggara": 2,
|
827 |
+
"Miyazaki": 2,
|
828 |
+
"Smolenskaya oblast'": 2,
|
829 |
+
"Sverdlovskaya oblast'": 2,
|
830 |
+
"Esp\u00edrito Santo": 2,
|
831 |
+
"Formosa": 2,
|
832 |
+
"Odes'ka oblast": 2,
|
833 |
+
"Tottori": 2,
|
834 |
+
"Araucan\u00eda": 2,
|
835 |
+
"\u00c7anakkale": 2,
|
836 |
+
"Limba\u017eu novads": 2,
|
837 |
+
"Saint-Pierre": 2,
|
838 |
+
"Caquet\u00e1": 2,
|
839 |
+
"Pahang": 2,
|
840 |
+
"Kahramanmara\u015f": 2,
|
841 |
+
"Ayd\u0131n": 2,
|
842 |
+
"Chang Wat Sukhothai": 2,
|
843 |
+
"Contae Bhaile \u00c1tha Cliath": 2,
|
844 |
+
"Smolyan": 2,
|
845 |
+
"Kedah": 2,
|
846 |
+
"Cesar": 2,
|
847 |
+
"Chang Wat Rayong": 2,
|
848 |
+
"Saare maakond": 2,
|
849 |
+
"Tukuma novads": 2,
|
850 |
+
"Chang Wat Si Sa Ket": 2,
|
851 |
+
"Su\u00f0urnesjab\u00e6r": 2,
|
852 |
+
"Chang Wat Chanthaburi": 2,
|
853 |
+
"Viseu": 2,
|
854 |
+
"Hawaii": 2,
|
855 |
+
"Chelyabinsk Oblast": 2,
|
856 |
+
"State of Minas Gerais": 2,
|
857 |
+
"County Westmeath": 2,
|
858 |
+
"Permskiy kray": 2,
|
859 |
+
"Sihanoukville": 2,
|
860 |
+
"Chang Wat Sakon Nakhon": 2,
|
861 |
+
"Nusa Tenggara Timur": 2,
|
862 |
+
"Norte de Santander": 2,
|
863 |
+
"Vestland fylke": 2,
|
864 |
+
"Svay Rieng Province": 2,
|
865 |
+
"\u00d6sterg\u00f6tland County": 2,
|
866 |
+
"Zadarska \u017eupanija": 2,
|
867 |
+
"Lampang": 2,
|
868 |
+
"North-West District": 2,
|
869 |
+
"Aichi": 2,
|
870 |
+
"Alytaus apskritis": 2,
|
871 |
+
"Kaliningradskaya oblast'": 2,
|
872 |
+
"Komi Republic": 2,
|
873 |
+
"Tamaulipas": 2,
|
874 |
+
"Sakarya": 2,
|
875 |
+
"County Limerick": 2,
|
876 |
+
"West Coast": 2,
|
877 |
+
"Cajamarca": 2,
|
878 |
+
"Jude\u021bul Vaslui": 2,
|
879 |
+
"Hidalgo": 2,
|
880 |
+
"Reykjanesb\u00e6r": 2,
|
881 |
+
"Streymoyar": 2,
|
882 |
+
"South District": 2,
|
883 |
+
"Tren\u010diansky kraj": 2,
|
884 |
+
"Jerusalem District": 2,
|
885 |
+
"Mu\u011fla": 2,
|
886 |
+
"Chang Wat Phuket": 2,
|
887 |
+
"Chang Wat Chaiyaphum": 2,
|
888 |
+
"County Kilkenny": 2,
|
889 |
+
"Meta": 2,
|
890 |
+
"Chang Wat Kalasin": 2,
|
891 |
+
"Gulbenes novads": 2,
|
892 |
+
"Elaz\u0131\u011f": 2,
|
893 |
+
"Sergipe": 2,
|
894 |
+
"Daerah Istimewa Yogyakarta": 2,
|
895 |
+
"Departamento de Santa Cruz": 2,
|
896 |
+
"Astrakhanskaya oblast'": 2,
|
897 |
+
"Sisa\u010dko-moslava\u010dka \u017eupanija": 2,
|
898 |
+
"Kampong Chhnang Province": 2,
|
899 |
+
"Tirol": 2,
|
900 |
+
"Wakayama": 2,
|
901 |
+
"Orellana": 2,
|
902 |
+
"Tula Oblast": 2,
|
903 |
+
"Bragan\u00e7a": 2,
|
904 |
+
"Set\u00fabal": 2,
|
905 |
+
"Maule": 2,
|
906 |
+
"Miaoli County": 2,
|
907 |
+
"Udmurtskaja Respublika": 2,
|
908 |
+
"Connecticut": 2,
|
909 |
+
"San Andr\u00e9s y Providencia": 2,
|
910 |
+
"A\u00e7ores": 1,
|
911 |
+
"Shkod\u00ebr County": 1,
|
912 |
+
"Omskaya oblast'": 1,
|
913 |
+
"Donets'ka oblast": 1,
|
914 |
+
"Sivas": 1,
|
915 |
+
"St. John": 1,
|
916 |
+
"Sucre": 1,
|
917 |
+
"Keelung City": 1,
|
918 |
+
"Bono Region": 1,
|
919 |
+
"Lopburi": 1,
|
920 |
+
"C\u00f3rdoba Province": 1,
|
921 |
+
"East Kalimantan": 1,
|
922 |
+
"Guatemala Department": 1,
|
923 |
+
"Antofagasta": 1,
|
924 |
+
"Kwale County": 1,
|
925 |
+
"Dienvidkurzemes novads": 1,
|
926 |
+
"Chang Wat Phayao": 1,
|
927 |
+
"Chang Wat Phang-nga": 1,
|
928 |
+
"Enugu": 1,
|
929 |
+
"Chang Wat Krabi": 1,
|
930 |
+
"H\u00fana\u00feing vestra": 1,
|
931 |
+
"Delta": 1,
|
932 |
+
"Ch\u00fcy Region": 1,
|
933 |
+
"\u5609\u7fa9\u7e23": 1,
|
934 |
+
"Chang Wat Chumphon": 1,
|
935 |
+
"Pet\u00e9n Department": 1,
|
936 |
+
"Alagoas": 1,
|
937 |
+
"Ventspils novads": 1,
|
938 |
+
"Ramsey": 1,
|
939 |
+
"Rushen": 1,
|
940 |
+
"Catamarca": 1,
|
941 |
+
"Nayarit": 1,
|
942 |
+
"Bangsamoro Autonomous Region in Muslim Mindanao": 1,
|
943 |
+
"Hlavn\u00ed m\u011bsto Praha": 1,
|
944 |
+
"Chernihivs'ka oblast": 1,
|
945 |
+
"Chang Wat Yala": 1,
|
946 |
+
"Sankt Gallen": 1,
|
947 |
+
"Grevenmacher": 1,
|
948 |
+
"Piedmont": 1,
|
949 |
+
"Silistra": 1,
|
950 |
+
"Ulyanovskaya oblast'": 1,
|
951 |
+
"Ogun State": 1,
|
952 |
+
"Saratov Oblast": 1,
|
953 |
+
"Hamburg": 1,
|
954 |
+
"Aragon": 1,
|
955 |
+
"Chang Wat Saraburi": 1,
|
956 |
+
"Chiang Mai": 1,
|
957 |
+
"Province de Kampot": 1,
|
958 |
+
"Chang Wat Trang": 1,
|
959 |
+
"Los Rios": 1,
|
960 |
+
"\u0e2a\u0e38\u0e1e\u0e23\u0e23\u0e13\u0e1a\u0e38\u0e23\u0e35": 1,
|
961 |
+
"Kaliningrad Oblast": 1,
|
962 |
+
"\u09ae\u09af\u09bc\u09ae\u09a8\u09b8\u09bf\u0982\u09b9 \u09ac\u09bf\u09ad\u09be\u0997": 1,
|
963 |
+
"Ondo": 1,
|
964 |
+
"Kotor Municipality": 1,
|
965 |
+
"Jujuy": 1,
|
966 |
+
"Chang Wat Amnat Charoen": 1,
|
967 |
+
"North Central Province": 1,
|
968 |
+
"\u82d7\u6817\u7e23": 1,
|
969 |
+
"Uasin Gishu County": 1,
|
970 |
+
"Nidwalden": 1,
|
971 |
+
"Chang Wat Ratchaburi": 1,
|
972 |
+
"Jura": 1,
|
973 |
+
"Sumatera Selatan": 1,
|
974 |
+
"Goa": 1,
|
975 |
+
"L\u012bv\u0101nu novads": 1,
|
976 |
+
"Aqaba Governorate": 1,
|
977 |
+
"Departamento de Paysand\u00fa": 1,
|
978 |
+
"Chang Wat Ang Thong": 1,
|
979 |
+
"Zagreba\u010dka \u017eupanija": 1,
|
980 |
+
"Grad Zagreb": 1,
|
981 |
+
"Klaip\u0117dos apskritis": 1,
|
982 |
+
"Chang Wat Suphan Buri": 1,
|
983 |
+
"Razgrad": 1,
|
984 |
+
"Vratsa": 1,
|
985 |
+
"Southampton Parish": 1,
|
986 |
+
"Respublika Adygeya": 1,
|
987 |
+
"Gr\u00edmsnes- og Grafningshreppur": 1,
|
988 |
+
"Respublika Kareliya": 1,
|
989 |
+
"Santa Rosa": 1,
|
990 |
+
"Chuvashia": 1,
|
991 |
+
"St. Thomas": 1,
|
992 |
+
"Kochi": 1,
|
993 |
+
"Me\u0111imurska \u017eupanija": 1,
|
994 |
+
"Narathiwat": 1,
|
995 |
+
"Santa Cruz": 1,
|
996 |
+
"Stavropol Krai": 1,
|
997 |
+
"Catalonia": 1,
|
998 |
+
"Mayag\u00fcez": 1,
|
999 |
+
"Chang Wat Surin": 1,
|
1000 |
+
"Jude\u021bul Prahova": 1,
|
1001 |
+
"Madonas novads": 1,
|
1002 |
+
"Jude\u021bul Gala\u021bi": 1,
|
1003 |
+
"Pingtung County": 1,
|
1004 |
+
"County Galway": 1,
|
1005 |
+
"Respublika Dagestan": 1,
|
1006 |
+
"Tarapac\u00e1": 1,
|
1007 |
+
"Vologodskaya oblast'": 1,
|
1008 |
+
"Jude\u021bul Ia\u0219i": 1,
|
1009 |
+
"Jude\u021bul Ialomi\u021ba": 1,
|
1010 |
+
"State of Bahia": 1,
|
1011 |
+
"Ruse": 1,
|
1012 |
+
"Pskovskaya oblast'": 1,
|
1013 |
+
"Tolmin": 1,
|
1014 |
+
"Chang Wat Surat Thani": 1,
|
1015 |
+
"Blekinge l\u00e4n": 1,
|
1016 |
+
"Sakhalinskaya oblast'": 1,
|
1017 |
+
"\u0c95\u0cb0\u0ccd\u0ca8\u0cbe\u0c9f\u0c95": 1,
|
1018 |
+
"Kharkivs'ka oblast": 1,
|
1019 |
+
"Bayburt": 1,
|
1020 |
+
"Narok County": 1,
|
1021 |
+
"\u0e19\u0e04\u0e23\u0e1e\u0e19\u0e21": 1,
|
1022 |
+
"Kyustendil Province": 1,
|
1023 |
+
"\u0e1e\u0e30\u0e40\u0e22\u0e32": 1,
|
1024 |
+
"\u015e\u0131rnak": 1,
|
1025 |
+
"Hafnarfjar\u00f0arkaupsta\u00f0ur": 1,
|
1026 |
+
"New Taipei City": 1,
|
1027 |
+
"Yala": 1,
|
1028 |
+
"Montana Province": 1,
|
1029 |
+
"Edo": 1,
|
1030 |
+
"Bern": 1,
|
1031 |
+
"Zamboanga Peninsula": 1,
|
1032 |
+
"Basel-Landschaft": 1,
|
1033 |
+
"Kisii County": 1,
|
1034 |
+
"Cherkas'ka oblast": 1,
|
1035 |
+
"Tasman": 1,
|
1036 |
+
"Krati\u00e9 Province": 1,
|
1037 |
+
"Ratchaburi": 1,
|
1038 |
+
"Erzincan": 1,
|
1039 |
+
"Gaziantep": 1,
|
1040 |
+
"Kaluzhskaya oblast'": 1,
|
1041 |
+
"Nuevo Le\u00f3n": 1,
|
1042 |
+
"Cauca": 1,
|
1043 |
+
"Ia\u0219i County": 1,
|
1044 |
+
"Salta": 1,
|
1045 |
+
"Aceh": 1,
|
1046 |
+
"Radovljica": 1,
|
1047 |
+
"Sverdlovsk Oblast": 1,
|
1048 |
+
"Jude\u021bul Constan\u021ba": 1,
|
1049 |
+
"Northern East Region": 1,
|
1050 |
+
"Chang Wat Satun": 1,
|
1051 |
+
"Apur\u00edmac": 1,
|
1052 |
+
"Zakarpats'ka oblast": 1,
|
1053 |
+
"Kwara": 1,
|
1054 |
+
"Departamento de Cerro Largo": 1,
|
1055 |
+
"Ebonyi": 1,
|
1056 |
+
"Diourbel Region": 1,
|
1057 |
+
"Puno": 1,
|
1058 |
+
"Santander": 1,
|
1059 |
+
"San Martin": 1,
|
1060 |
+
"Jude\u021bul Satu Mare": 1,
|
1061 |
+
"Melaka": 1,
|
1062 |
+
"Kastamonu": 1,
|
1063 |
+
"Kepulauan Bangka Belitung": 1,
|
1064 |
+
"Yamaguchi": 1,
|
1065 |
+
"Ayacucho": 1,
|
1066 |
+
"Rayong": 1,
|
1067 |
+
"Neuqu\u00e9n": 1,
|
1068 |
+
"Chungcheongnam-do": 1,
|
1069 |
+
"State of Alagoas": 1,
|
1070 |
+
"Casanare": 1,
|
1071 |
+
"Oddar Meanchey Province": 1,
|
1072 |
+
"Phitsanulok": 1,
|
1073 |
+
"Prachuap Khiri Khan": 1,
|
1074 |
+
"Obwalden": 1,
|
1075 |
+
"San Juan": 1,
|
1076 |
+
"Flevoland": 1,
|
1077 |
+
"Norrbotten County": 1,
|
1078 |
+
"West Sulawesi": 1,
|
1079 |
+
"Esch-sur-Alzette": 1,
|
1080 |
+
"North District": 1,
|
1081 |
+
"\u00d8stfold": 1,
|
1082 |
+
"Saint-Louis Region": 1,
|
1083 |
+
"Saarland": 1,
|
1084 |
+
"State of Rio Grande do Norte": 1,
|
1085 |
+
"Nev\u015fehir": 1,
|
1086 |
+
"Tambovskaya oblast'": 1,
|
1087 |
+
"Penza Oblast": 1,
|
1088 |
+
"Nong Bua Lam Phu": 1,
|
1089 |
+
"Chang Wat Tak": 1,
|
1090 |
+
"Stavropolskiy kray": 1,
|
1091 |
+
"Grigioni": 1,
|
1092 |
+
"Chang Wat Phetchaburi": 1,
|
1093 |
+
"Krung Thep Maha Nakhon": 1,
|
1094 |
+
"Cuzco": 1,
|
1095 |
+
"Khentii": 1,
|
1096 |
+
"Trabzon": 1,
|
1097 |
+
"Chang Wat Chon Buri": 1,
|
1098 |
+
"Koh Kong Province": 1,
|
1099 |
+
"Chang Wat Chachoengsao": 1,
|
1100 |
+
"Canterbury": 1,
|
1101 |
+
"Kalakhang Maynila": 1,
|
1102 |
+
"Phetchabun": 1,
|
1103 |
+
"Talsu novads": 1,
|
1104 |
+
"K\u0131r\u0131kkale": 1,
|
1105 |
+
"Solol\u00e1 Department": 1,
|
1106 |
+
"Phayao": 1,
|
1107 |
+
"Northwest Territories": 1,
|
1108 |
+
"Chachoengsao": 1,
|
1109 |
+
"Kr\u0101slavas novads": 1,
|
1110 |
+
"Nunavut": 1,
|
1111 |
+
"Abai Region": 1,
|
1112 |
+
"Mykolaivs'ka oblast": 1,
|
1113 |
+
"Tlaxcala": 1,
|
1114 |
+
"Kujalleq Kommune": 1,
|
1115 |
+
"Svalbard": 1,
|
1116 |
+
"\u00c9vora": 1,
|
1117 |
+
"Volta Region": 1,
|
1118 |
+
"Istarska \u017eupanija": 1,
|
1119 |
+
"Roraima": 1,
|
1120 |
+
"\u0e2a\u0e23\u0e30\u0e41\u0e01\u0e49\u0e27": 1,
|
1121 |
+
"State of Santa Catarina": 1,
|
1122 |
+
"Van": 1,
|
1123 |
+
"Chang Wat Maha Sarakham": 1,
|
1124 |
+
"Ulyanovsk Oblast": 1,
|
1125 |
+
"Jude\u021bul Buz\u0103u": 1,
|
1126 |
+
"Region of Murcia": 1,
|
1127 |
+
"Prei\u013cu novads": 1,
|
1128 |
+
"\u0e19\u0e04\u0e23\u0e2a\u0e27\u0e23\u0e23\u0e04\u0e4c": 1,
|
1129 |
+
"Shiga": 1,
|
1130 |
+
"Trang": 1,
|
1131 |
+
"Amurskaya oblast'": 1,
|
1132 |
+
"Bryanskaya oblast'": 1,
|
1133 |
+
"Lambayeque": 1,
|
1134 |
+
"Kanta-H\u00e4me": 1,
|
1135 |
+
"Phrae": 1,
|
1136 |
+
"Yaroslavl Oblast": 1,
|
1137 |
+
"Chuvashia Republic": 1,
|
1138 |
+
"Tartu maakond": 1,
|
1139 |
+
"Surat Thani": 1,
|
1140 |
+
"Dornod": 1,
|
1141 |
+
"Kamchatka Krai": 1,
|
1142 |
+
"State of Piau\u00ed": 1,
|
1143 |
+
"Ljubljana": 1,
|
1144 |
+
"Kymenlaakso": 1,
|
1145 |
+
"Pasco": 1,
|
1146 |
+
"Distrito Federal": 1,
|
1147 |
+
"C\u0113su novads": 1,
|
1148 |
+
"Jude\u021bul Ilfov": 1,
|
1149 |
+
"Novosibirsk Oblast": 1,
|
1150 |
+
"\u0425\u0430\u043d\u0442\u044b-\u043c\u0430\u043d\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0410\u043e@\u0442\u044e\u043c\u0435\u043d\u0441\u043a\u0430\u044f": 1,
|
1151 |
+
"Caraga": 1,
|
1152 |
+
"Krasnoyarskiy kray": 1,
|
1153 |
+
"Almaty": 1,
|
1154 |
+
"\u00d6rebro l\u00e4n": 1,
|
1155 |
+
"Jude\u021bul Teleorman": 1,
|
1156 |
+
"Santa Fe Province": 1,
|
1157 |
+
"Catalu\u00f1a": 1,
|
1158 |
+
"Punakha": 1,
|
1159 |
+
"\u0425\u0430\u043d\u0442\u044b-\u043c\u0430\u043d\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0439 \u041e\u043a\u0440\u0443\u0433-\u044e\u0433\u0440\u0430 \u0410\u0443\u0442\u043e\u043d\u043e\u043c\u0443\u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c": 1,
|
1160 |
+
"Niger": 1,
|
1161 |
+
"Vidin": 1,
|
1162 |
+
"Dnipropetrovsk Oblast": 1,
|
1163 |
+
"Pernik": 1,
|
1164 |
+
"Sinop": 1,
|
1165 |
+
"Provincia de Chiriqu\u00ed": 1,
|
1166 |
+
"Distrito Nacional": 1,
|
1167 |
+
"R\u00e9gion de Kolda": 1,
|
1168 |
+
"Ptuj": 1,
|
1169 |
+
"Daerah Khusus Ibukota Jakarta": 1,
|
1170 |
+
"Mersin": 1,
|
1171 |
+
"Vilnius County": 1,
|
1172 |
+
"Krasnodar Krai": 1,
|
1173 |
+
"Cata\u00f1o": 1,
|
1174 |
+
"Wilayah Persekutuan Labuan": 1,
|
1175 |
+
"Misiones": 1,
|
1176 |
+
"Kocaeli": 1,
|
1177 |
+
"Reykh\u00f3lahreppur": 1,
|
1178 |
+
"Quich\u00e9": 1,
|
1179 |
+
"Valle del Cauca": 1,
|
1180 |
+
"County Waterford": 1,
|
1181 |
+
"Keski-Pohjanmaa": 1,
|
1182 |
+
"Gen\u00e8ve": 1,
|
1183 |
+
"Ljutomer": 1,
|
1184 |
+
"Melilla": 1,
|
1185 |
+
"Pet\u00e9n": 1,
|
1186 |
+
"Nantou County": 1,
|
1187 |
+
"Luxembourg": 1,
|
1188 |
+
"Chang Wat Buri Ram": 1,
|
1189 |
+
"Saldus novads": 1,
|
1190 |
+
"Rize": 1,
|
1191 |
+
"L\u00e4\u00e4ne-Viru maakond": 1,
|
1192 |
+
"Chang Wat Prachin Buri": 1,
|
1193 |
+
"Durr\u00ebs County": 1,
|
1194 |
+
"Aosta Valley": 1,
|
1195 |
+
"Central District": 1,
|
1196 |
+
"Poltava Oblast": 1,
|
1197 |
+
"Valle d'Aosta": 1,
|
1198 |
+
"Plateau": 1,
|
1199 |
+
"Tumbes": 1,
|
1200 |
+
"Volyns'ka oblast": 1,
|
1201 |
+
"Greater Accra Region": 1,
|
1202 |
+
"Chang Wat Roi Et": 1,
|
1203 |
+
"Malacca": 1,
|
1204 |
+
"Savannakhet Province": 1,
|
1205 |
+
"La Pampa": 1,
|
1206 |
+
"Mpumalanga": 1,
|
1207 |
+
"Imbabura": 1,
|
1208 |
+
"Bangka Belitung Islands": 1,
|
1209 |
+
"Satu Mare": 1,
|
1210 |
+
"Bre\u017eice": 1,
|
1211 |
+
"Masovian Voivodeship": 1,
|
1212 |
+
"Quetzaltenango Department": 1,
|
1213 |
+
"Moscow Oblast": 1,
|
1214 |
+
"Ludza Municipality": 1,
|
1215 |
+
"Kostromskaya oblast'": 1,
|
1216 |
+
"Chang Wat Nonthaburi": 1,
|
1217 |
+
"Aug\u0161daugavas novads": 1,
|
1218 |
+
"Plovdiv": 1,
|
1219 |
+
"Chuquisaca Department": 1,
|
1220 |
+
"Jude\u021bul Bistri\u021ba-N\u0103s\u0103ud": 1,
|
1221 |
+
"Sakhalin Oblast": 1,
|
1222 |
+
"Doha Municipality": 1,
|
1223 |
+
"Shimane": 1,
|
1224 |
+
"Tver Oblast": 1,
|
1225 |
+
"Tomskaya oblast'": 1,
|
1226 |
+
"\u0e40\u0e0a\u0e35\u0e22\u0e07\u0e23\u0e32\u0e22": 1,
|
1227 |
+
"Appenzell Ausserrhoden": 1,
|
1228 |
+
"Karaganda Region": 1,
|
1229 |
+
"Tinian": 1,
|
1230 |
+
"County Roscommon": 1,
|
1231 |
+
"Colima": 1,
|
1232 |
+
"Tochigi": 1,
|
1233 |
+
"State of Esp\u00edrito Santo": 1,
|
1234 |
+
"Yucatan": 1,
|
1235 |
+
"Fribourg": 1,
|
1236 |
+
"Qeqertalik": 1,
|
1237 |
+
"Patrick": 1,
|
1238 |
+
"\u0e0a\u0e25\u0e1a\u0e38\u0e23\u0e35": 1,
|
1239 |
+
"Giresun": 1,
|
1240 |
+
"R\u0113zekne Municipality": 1,
|
1241 |
+
"Phnom Penh": 1,
|
1242 |
+
"Special Region of Yogyakarta": 1,
|
1243 |
+
"Mae Hong Son": 1,
|
1244 |
+
"Logatec": 1,
|
1245 |
+
"\u0e2d\u0e38\u0e1a\u0e25\u0e23\u0e32\u0e0a\u0e18\u0e32\u0e19\u0e35": 1,
|
1246 |
+
"Escuintla Department": 1,
|
1247 |
+
"Arequipa": 1,
|
1248 |
+
"Khmel'nyts'ka oblast": 1,
|
1249 |
+
"Zonguldak": 1,
|
1250 |
+
"Sulawesi Utara": 1,
|
1251 |
+
"Bing\u00f6l": 1,
|
1252 |
+
"Veliko Tarnovo": 1,
|
1253 |
+
"Sumatera Barat": 1,
|
1254 |
+
"Tel Aviv District": 1,
|
1255 |
+
"Delhi": 1,
|
1256 |
+
"Republic of Bashkortostan": 1,
|
1257 |
+
"Jeju-do": 1,
|
1258 |
+
"Risaralda": 1,
|
1259 |
+
"Pskov Oblast": 1,
|
1260 |
+
"Murmanskaya oblast'": 1,
|
1261 |
+
"Sofia City Province": 1,
|
1262 |
+
"G\u00fcm\u00fc\u015fhane": 1,
|
1263 |
+
"\u00c7ank\u0131r\u0131": 1,
|
1264 |
+
"Phang-nga": 1,
|
1265 |
+
"Tokat": 1,
|
1266 |
+
"Jude\u021bul Hunedoara": 1,
|
1267 |
+
"Retalhuleu": 1,
|
1268 |
+
"Thurgau": 1,
|
1269 |
+
"\u1781\u17c1\u178f\u17d2\u178f\u178f\u17b6\u1780\u17c2\u179c": 1,
|
1270 |
+
"Chai Nat": 1,
|
1271 |
+
"Pursat Province": 1,
|
1272 |
+
"Totonicap\u00e1n": 1,
|
1273 |
+
"Bihor County": 1,
|
1274 |
+
"La Libertad": 1,
|
1275 |
+
"Tripura": 1,
|
1276 |
+
"\u0412\u043e\u0458\u0432\u043e\u0434\u0438\u043d\u0430": 1,
|
1277 |
+
"Wallis": 1,
|
1278 |
+
"\u0160marje pri Jel\u0161ah": 1,
|
1279 |
+
"K\u00e9dougou Region": 1,
|
1280 |
+
"Sulawesi Barat": 1,
|
1281 |
+
"P\u00e4rnu maakond": 1,
|
1282 |
+
"Central Kalimantan": 1,
|
1283 |
+
"Chihuahua": 1,
|
1284 |
+
"Jun\u00edn": 1,
|
1285 |
+
"Chang Wat Songkhla": 1,
|
1286 |
+
"Los R\u00edos": 1,
|
1287 |
+
"Jude\u021bul V\u00e2lcea": 1,
|
1288 |
+
"Ternopil Oblast": 1,
|
1289 |
+
"Tolima": 1,
|
1290 |
+
"Dubai": 1,
|
1291 |
+
"Federal Territory of Kuala Lumpur": 1,
|
1292 |
+
"Chang Wat Nan": 1,
|
1293 |
+
"Sulawesi Tenggara": 1
|
1294 |
+
},
|
1295 |
+
"total_images": 6342
|
1296 |
+
}
|
caption_metadata.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dataset_scripts.ipynb
ADDED
@@ -0,0 +1,1201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": null,
|
6 |
+
"metadata": {
|
7 |
+
"colab": {
|
8 |
+
"base_uri": "https://localhost:8080/"
|
9 |
+
},
|
10 |
+
"id": "4EbxDfo7mUv9",
|
11 |
+
"outputId": "f4b1dcdb-f68c-43ec-9482-7352e06c55be"
|
12 |
+
},
|
13 |
+
"outputs": [
|
14 |
+
{
|
15 |
+
"output_type": "stream",
|
16 |
+
"name": "stdout",
|
17 |
+
"text": [
|
18 |
+
"Requirement already satisfied: streetview in /usr/local/lib/python3.10/dist-packages (0.0.6)\n",
|
19 |
+
"Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from streetview) (2.31.0)\n",
|
20 |
+
"Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (from streetview) (9.4.0)\n",
|
21 |
+
"Requirement already satisfied: pydantic in /usr/local/lib/python3.10/dist-packages (from streetview) (2.6.4)\n",
|
22 |
+
"Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic->streetview) (0.6.0)\n",
|
23 |
+
"Requirement already satisfied: pydantic-core==2.16.3 in /usr/local/lib/python3.10/dist-packages (from pydantic->streetview) (2.16.3)\n",
|
24 |
+
"Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic->streetview) (4.10.0)\n",
|
25 |
+
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->streetview) (3.3.2)\n",
|
26 |
+
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->streetview) (3.6)\n",
|
27 |
+
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->streetview) (2.0.7)\n",
|
28 |
+
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->streetview) (2024.2.2)\n",
|
29 |
+
"Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (4.66.2)\n"
|
30 |
+
]
|
31 |
+
}
|
32 |
+
],
|
33 |
+
"source": [
|
34 |
+
"!pip install streetview\n",
|
35 |
+
"!pip install tqdm"
|
36 |
+
]
|
37 |
+
},
|
38 |
+
{
|
39 |
+
"cell_type": "code",
|
40 |
+
"execution_count": null,
|
41 |
+
"metadata": {
|
42 |
+
"id": "RpmnZgBb2Ajr"
|
43 |
+
},
|
44 |
+
"outputs": [],
|
45 |
+
"source": [
|
46 |
+
"# functions for\n",
|
47 |
+
"\n",
|
48 |
+
"from streetview import search_panoramas\n",
|
49 |
+
"from streetview import get_panorama\n",
|
50 |
+
"from google.colab import files\n",
|
51 |
+
"import random\n",
|
52 |
+
"import requests\n",
|
53 |
+
"import xml.etree.ElementTree as ET\n",
|
54 |
+
"\n",
|
55 |
+
"# get IDs\n",
|
56 |
+
"def generate_random_coordinates():\n",
|
57 |
+
" latitude = round(random.uniform(-90, 90), 5)\n",
|
58 |
+
" longitude = round(random.uniform(-180, 180), 5)\n",
|
59 |
+
" return latitude, longitude\n",
|
60 |
+
"\n",
|
61 |
+
"def array_to_txt_file(strings, filename):\n",
|
62 |
+
" with open(filename, 'w') as file:\n",
|
63 |
+
" for string in strings:\n",
|
64 |
+
" file.write(string + '\\n')\n",
|
65 |
+
"\n",
|
66 |
+
"def fetch_random_land_location(country=None):\n",
|
67 |
+
" if not country:\n",
|
68 |
+
" url = \"https://api.3geonames.org/?randomland=yes\"\n",
|
69 |
+
" else:\n",
|
70 |
+
" url = f'https://api.3geonames.org/?randomland={country}'\n",
|
71 |
+
" response = requests.get(url)\n",
|
72 |
+
" response.raise_for_status()\n",
|
73 |
+
" root = ET.fromstring(response.content)\n",
|
74 |
+
"\n",
|
75 |
+
" latitude = root.find('.//latt').text\n",
|
76 |
+
" longitude = root.find('.//longt').text\n",
|
77 |
+
"\n",
|
78 |
+
" return latitude, longitude\n",
|
79 |
+
"\n",
|
80 |
+
"# specify a country if you want only want panoramas from a specific country\n",
|
81 |
+
"def get_panorama_id(country=None):\n",
|
82 |
+
" # generate randomly (includes ocean)\n",
|
83 |
+
" # coords = generate_random_coordinates()\n",
|
84 |
+
"\n",
|
85 |
+
" # generate randomly (land only)\n",
|
86 |
+
" latitude, longitude = fetch_random_land_location(country)\n",
|
87 |
+
" coords = [latitude, longitude]\n",
|
88 |
+
"\n",
|
89 |
+
" try:\n",
|
90 |
+
" panos = search_panoramas(lat=coords[0], lon=coords[1])\n",
|
91 |
+
" except Exception as e:\n",
|
92 |
+
" print(f\"An error occurred: {e}\")\n",
|
93 |
+
" return None\n",
|
94 |
+
" if not panos:\n",
|
95 |
+
" return None\n",
|
96 |
+
" pano_id = panos[0].pano_id\n",
|
97 |
+
" return pano_id\n",
|
98 |
+
"\n",
|
99 |
+
"def download_panos_from_ids(pano_ids, FILE_NAME):\n",
|
100 |
+
" array_to_txt_file(pano_ids, FILE_NAME)\n",
|
101 |
+
" files.download(f'/content/{FILE_NAME}')\n"
|
102 |
+
]
|
103 |
+
},
|
104 |
+
{
|
105 |
+
"cell_type": "code",
|
106 |
+
"execution_count": null,
|
107 |
+
"metadata": {
|
108 |
+
"colab": {
|
109 |
+
"base_uri": "https://localhost:8080/",
|
110 |
+
"height": 17
|
111 |
+
},
|
112 |
+
"id": "3xzZtyyAyCF9",
|
113 |
+
"outputId": "6e8e25c6-178a-4a26-bd2c-07eb21685caa"
|
114 |
+
},
|
115 |
+
"outputs": [
|
116 |
+
{
|
117 |
+
"data": {
|
118 |
+
"application/javascript": [
|
119 |
+
"\n",
|
120 |
+
" async function download(id, filename, size) {\n",
|
121 |
+
" if (!google.colab.kernel.accessAllowed) {\n",
|
122 |
+
" return;\n",
|
123 |
+
" }\n",
|
124 |
+
" const div = document.createElement('div');\n",
|
125 |
+
" const label = document.createElement('label');\n",
|
126 |
+
" label.textContent = `Downloading \"${filename}\": `;\n",
|
127 |
+
" div.appendChild(label);\n",
|
128 |
+
" const progress = document.createElement('progress');\n",
|
129 |
+
" progress.max = size;\n",
|
130 |
+
" div.appendChild(progress);\n",
|
131 |
+
" document.body.appendChild(div);\n",
|
132 |
+
"\n",
|
133 |
+
" const buffers = [];\n",
|
134 |
+
" let downloaded = 0;\n",
|
135 |
+
"\n",
|
136 |
+
" const channel = await google.colab.kernel.comms.open(id);\n",
|
137 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
138 |
+
" channel.send({})\n",
|
139 |
+
"\n",
|
140 |
+
" for await (const message of channel.messages) {\n",
|
141 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
142 |
+
" channel.send({})\n",
|
143 |
+
" if (message.buffers) {\n",
|
144 |
+
" for (const buffer of message.buffers) {\n",
|
145 |
+
" buffers.push(buffer);\n",
|
146 |
+
" downloaded += buffer.byteLength;\n",
|
147 |
+
" progress.value = downloaded;\n",
|
148 |
+
" }\n",
|
149 |
+
" }\n",
|
150 |
+
" }\n",
|
151 |
+
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
152 |
+
" const a = document.createElement('a');\n",
|
153 |
+
" a.href = window.URL.createObjectURL(blob);\n",
|
154 |
+
" a.download = filename;\n",
|
155 |
+
" div.appendChild(a);\n",
|
156 |
+
" a.click();\n",
|
157 |
+
" div.remove();\n",
|
158 |
+
" }\n",
|
159 |
+
" "
|
160 |
+
],
|
161 |
+
"text/plain": [
|
162 |
+
"<IPython.core.display.Javascript object>"
|
163 |
+
]
|
164 |
+
},
|
165 |
+
"metadata": {},
|
166 |
+
"output_type": "display_data"
|
167 |
+
},
|
168 |
+
{
|
169 |
+
"data": {
|
170 |
+
"application/javascript": [
|
171 |
+
"download(\"download_5f5e130d-50e4-445d-88cc-0a4f89c44309\", \"panorama_ids\", 230)"
|
172 |
+
],
|
173 |
+
"text/plain": [
|
174 |
+
"<IPython.core.display.Javascript object>"
|
175 |
+
]
|
176 |
+
},
|
177 |
+
"metadata": {},
|
178 |
+
"output_type": "display_data"
|
179 |
+
}
|
180 |
+
],
|
181 |
+
"source": [
|
182 |
+
"# basic test script\n",
|
183 |
+
"NUM_IMAGES = 10\n",
|
184 |
+
"pano_ids = []\n",
|
185 |
+
"\n",
|
186 |
+
"while len(pano_ids) < NUM_IMAGES:\n",
|
187 |
+
"\n",
|
188 |
+
" pano_id = get_panorama_id()\n",
|
189 |
+
" if not pano_id:\n",
|
190 |
+
" continue\n",
|
191 |
+
" pano_ids.append(pano_id)\n",
|
192 |
+
" print(f'fetched pano {len(pano_ids)} of {NUM_IMAGES}')\n",
|
193 |
+
"\n",
|
194 |
+
"download_panos_from_ids(pano_ids, \"panorama_ids\")"
|
195 |
+
]
|
196 |
+
},
|
197 |
+
{
|
198 |
+
"cell_type": "code",
|
199 |
+
"execution_count": null,
|
200 |
+
"metadata": {
|
201 |
+
"colab": {
|
202 |
+
"base_uri": "https://localhost:8080/",
|
203 |
+
"height": 106
|
204 |
+
},
|
205 |
+
"id": "17Sg7aJh0R4i",
|
206 |
+
"outputId": "619ac908-3f62-4953-b62e-2e7a3f4d13a2"
|
207 |
+
},
|
208 |
+
"outputs": [
|
209 |
+
{
|
210 |
+
"name": "stdout",
|
211 |
+
"output_type": "stream",
|
212 |
+
"text": [
|
213 |
+
"fetched pano 1 of 5\n",
|
214 |
+
"fetched pano 2 of 5\n",
|
215 |
+
"fetched pano 3 of 5\n",
|
216 |
+
"fetched pano 4 of 5\n",
|
217 |
+
"fetched pano 5 of 5\n"
|
218 |
+
]
|
219 |
+
},
|
220 |
+
{
|
221 |
+
"data": {
|
222 |
+
"application/javascript": [
|
223 |
+
"\n",
|
224 |
+
" async function download(id, filename, size) {\n",
|
225 |
+
" if (!google.colab.kernel.accessAllowed) {\n",
|
226 |
+
" return;\n",
|
227 |
+
" }\n",
|
228 |
+
" const div = document.createElement('div');\n",
|
229 |
+
" const label = document.createElement('label');\n",
|
230 |
+
" label.textContent = `Downloading \"${filename}\": `;\n",
|
231 |
+
" div.appendChild(label);\n",
|
232 |
+
" const progress = document.createElement('progress');\n",
|
233 |
+
" progress.max = size;\n",
|
234 |
+
" div.appendChild(progress);\n",
|
235 |
+
" document.body.appendChild(div);\n",
|
236 |
+
"\n",
|
237 |
+
" const buffers = [];\n",
|
238 |
+
" let downloaded = 0;\n",
|
239 |
+
"\n",
|
240 |
+
" const channel = await google.colab.kernel.comms.open(id);\n",
|
241 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
242 |
+
" channel.send({})\n",
|
243 |
+
"\n",
|
244 |
+
" for await (const message of channel.messages) {\n",
|
245 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
246 |
+
" channel.send({})\n",
|
247 |
+
" if (message.buffers) {\n",
|
248 |
+
" for (const buffer of message.buffers) {\n",
|
249 |
+
" buffers.push(buffer);\n",
|
250 |
+
" downloaded += buffer.byteLength;\n",
|
251 |
+
" progress.value = downloaded;\n",
|
252 |
+
" }\n",
|
253 |
+
" }\n",
|
254 |
+
" }\n",
|
255 |
+
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
256 |
+
" const a = document.createElement('a');\n",
|
257 |
+
" a.href = window.URL.createObjectURL(blob);\n",
|
258 |
+
" a.download = filename;\n",
|
259 |
+
" div.appendChild(a);\n",
|
260 |
+
" a.click();\n",
|
261 |
+
" div.remove();\n",
|
262 |
+
" }\n",
|
263 |
+
" "
|
264 |
+
],
|
265 |
+
"text/plain": [
|
266 |
+
"<IPython.core.display.Javascript object>"
|
267 |
+
]
|
268 |
+
},
|
269 |
+
"metadata": {},
|
270 |
+
"output_type": "display_data"
|
271 |
+
},
|
272 |
+
{
|
273 |
+
"data": {
|
274 |
+
"application/javascript": [
|
275 |
+
"download(\"download_cc75e39d-1c07-4a27-a625-25b1c6cf14dc\", \"panorama_ids\", 115)"
|
276 |
+
],
|
277 |
+
"text/plain": [
|
278 |
+
"<IPython.core.display.Javascript object>"
|
279 |
+
]
|
280 |
+
},
|
281 |
+
"metadata": {},
|
282 |
+
"output_type": "display_data"
|
283 |
+
}
|
284 |
+
],
|
285 |
+
"source": [
|
286 |
+
"# test fetching by country\n",
|
287 |
+
"NUM_IMAGES = 5\n",
|
288 |
+
"pano_ids = []\n",
|
289 |
+
"\n",
|
290 |
+
"while len(pano_ids) < NUM_IMAGES:\n",
|
291 |
+
"\n",
|
292 |
+
" pano_id = get_panorama_id('CA')\n",
|
293 |
+
" if not pano_id:\n",
|
294 |
+
" continue\n",
|
295 |
+
" pano_ids.append(pano_id)\n",
|
296 |
+
" print(f'fetched pano {len(pano_ids)} of {NUM_IMAGES}')\n",
|
297 |
+
"\n",
|
298 |
+
"download_panos_from_ids(pano_ids, \"panorama_ids\")"
|
299 |
+
]
|
300 |
+
},
|
301 |
+
{
|
302 |
+
"cell_type": "code",
|
303 |
+
"execution_count": null,
|
304 |
+
"metadata": {
|
305 |
+
"colab": {
|
306 |
+
"background_save": true
|
307 |
+
},
|
308 |
+
"id": "GYKpN8thF0EZ"
|
309 |
+
},
|
310 |
+
"outputs": [],
|
311 |
+
"source": [
|
312 |
+
"# fetch 5000 panoramas randomly with coordinates\n",
|
313 |
+
"from google.colab import files\n",
|
314 |
+
"from google.colab import drive\n",
|
315 |
+
"import json\n",
|
316 |
+
"\n",
|
317 |
+
"NUM_IMAGES = 1000\n",
|
318 |
+
"BATCH_COUNT = 5\n",
|
319 |
+
"pano_ids = []\n",
|
320 |
+
"\n",
|
321 |
+
"drive.mount('/content/drive')\n",
|
322 |
+
"directory_path = '/content/drive/My Drive/Princeton/'\n",
|
323 |
+
"\n",
|
324 |
+
"# split into 5 batches of 1000 images\n",
|
325 |
+
"for i in range (BATCH_COUNT):\n",
|
326 |
+
" while len(pano_ids) < NUM_IMAGES:\n",
|
327 |
+
" pano_id = get_panorama_id()\n",
|
328 |
+
" if not pano_id:\n",
|
329 |
+
" continue\n",
|
330 |
+
" pano_ids.append(pano_id)\n",
|
331 |
+
" print(f'fetched pano {len(pano_ids)} of {NUM_IMAGES}')\n",
|
332 |
+
"\n",
|
333 |
+
" # download JSON at the end to drive\n",
|
334 |
+
" FILE_NAME = f'random_panos_{i}.txt'\n",
|
335 |
+
" file_path = directory_path + FILE_NAME\n",
|
336 |
+
" panos = {\"panos\": pano_ids}\n",
|
337 |
+
" with open(file_path, 'w') as convert_file:\n",
|
338 |
+
" convert_file.write(json.dumps(panos))\n",
|
339 |
+
" pano_ids = []"
|
340 |
+
]
|
341 |
+
},
|
342 |
+
{
|
343 |
+
"cell_type": "code",
|
344 |
+
"execution_count": null,
|
345 |
+
"metadata": {
|
346 |
+
"colab": {
|
347 |
+
"base_uri": "https://localhost:8080/"
|
348 |
+
},
|
349 |
+
"id": "0Okpj8T8nmlI",
|
350 |
+
"outputId": "deeb2c09-7f36-48bb-9252-4a985b8b75aa"
|
351 |
+
},
|
352 |
+
"outputs": [
|
353 |
+
{
|
354 |
+
"name": "stdout",
|
355 |
+
"output_type": "stream",
|
356 |
+
"text": [
|
357 |
+
"['AL', 'AR', 'AU', 'AT', 'BD', 'BE', 'BM', 'BT', 'BO', 'BR', 'IO', 'BG', 'KH', 'CA', 'CL', 'CX', 'CO', 'HR', 'CW', 'CZ', 'DK', 'DO', 'EC', 'EE', 'SZ', 'FO', 'FI', 'FR', 'DE', 'GH', 'GI', 'GR', 'GT', 'HK', 'HU', 'IS', 'IN', 'ID', 'IE', 'IM', 'IL', 'IT', 'JP', 'JO', 'KE', 'KR', 'KG', 'LA', 'LV', 'LT', 'LU', 'MY', 'MT', 'MX', 'MC', 'ME', 'NL', 'NZ', 'NG', 'MP', 'NO', 'PA', 'PH', 'PL', 'PT', 'PR', 'QA', 'RE', 'RO', 'RU', 'RW', 'SM', 'SN', 'RS', 'SG', 'SK', 'SI', 'ZA', 'ES', 'LK', 'SE', 'CH', 'TW', 'TH', 'TR', 'UA', 'AE', 'US', 'VI', 'UY']\n"
|
358 |
+
]
|
359 |
+
}
|
360 |
+
],
|
361 |
+
"source": [
|
362 |
+
"all_countries = [\"AF\", \"AX\", \"AL\", \"AS\", \"AD\", \"AI\", \"AQ\", \"AR\", \"AW\", \"AU\", \"AT\", \"BD\", \"BY\", \"BZ\", \"BE\", \"BM\", \"BT\", \"BO\", \"BQ\", \"BW\", \"BR\", \"IO\", \"BG\", \"KH\", \"CA\", \"IC\", \"CL\", \"CN\", \"CX\", \"CK\", \"CC\", \"CO\", \"CR\", \"HR\", \"CW\", \"CZ\", \"DK\", \"DO\", \"EC\", \"EG\", \"EE\", \"SZ\", \"FK\", \"FO\", \"FI\", \"FR\", \"DE\", \"GH\", \"GI\", \"GR\", \"GL\", \"GT\", \"HK\", \"HU\", \"IS\", \"IN\", \"ID\", \"IQ\", \"IE\", \"IM\", \"IL\", \"IT\", \"JP\", \"JE\", \"JO\", \"KE\", \"KR\", \"KG\", \"LA\", \"LV\", \"LB\", \"LS\", \"LT\", \"LU\", \"ML\", \"MO\", \"MG\", \"MY\", \"MV\", \"MT\", \"MQ\", \"MX\", \"MC\", \"MN\", \"ME\", \"NP\", \"NL\", \"NC\", \"NZ\", \"NG\", \"MK\", \"MP\", \"NO\", \"PK\", \"PS\", \"PA\", \"PH\", \"PN\", \"PL\", \"PT\", \"PR\", \"QA\", \"RE\", \"RO\", \"RU\", \"RW\", \"PM\", \"SM\", \"VC\", \"SN\", \"RS\", \"SG\", \"SK\", \"SI\", \"SB\", \"ZA\", \"GS\", \"ES\", \"LK\", \"SJ\", \"SE\", \"CH\", \"TW\", \"TZ\", \"TH\", \"BS\", \"TN\", \"TC\", \"TR\", \"UG\", \"UA\", \"AE\", \"GB\", \"US\", \"UM\", \"VI\", \"UY\", \"VU\", \"VN\"]\n",
|
363 |
+
"missed = [\"AF\", \"AX\", \"AS\", \"AD\", \"AI\", \"AQ\", \"AW\", \"BY\", \"BZ\", \"BQ\", \"BW\", \"IC\", \"CN\", \"CK\", \"CC\", \"CR\", \"EG\", \"FK\", \"GL\", \"IQ\", \"JE\", \"LB\", \"LS\", \"ML\", \"MO\", \"MG\", \"MV\", \"MQ\", \"MN\", \"NP\", \"NC\", \"MK\", \"PK\", \"PS\", \"PN\", \"PM\", \"VC\", \"SB\", \"GS\", \"SJ\", \"TZ\", \"BS\", \"TN\", \"TC\", \"UG\", \"GB\", \"UM\", \"VU\", \"VN\"]\n",
|
364 |
+
"fetchable_countries = [element for element in all_countries if element not in missed]\n",
|
365 |
+
"print(fetchable_countries)"
|
366 |
+
]
|
367 |
+
},
|
368 |
+
{
|
369 |
+
"cell_type": "code",
|
370 |
+
"execution_count": null,
|
371 |
+
"metadata": {
|
372 |
+
"colab": {
|
373 |
+
"background_save": true
|
374 |
+
},
|
375 |
+
"id": "H5MCpi6qJFQs"
|
376 |
+
},
|
377 |
+
"outputs": [],
|
378 |
+
"source": [
|
379 |
+
"# fetch 50 panoramas from each country with streetview coverage\n",
|
380 |
+
"import json\n",
|
381 |
+
"import time\n",
|
382 |
+
"from google.colab import files\n",
|
383 |
+
"from google.colab import drive\n",
|
384 |
+
"\n",
|
385 |
+
"drive.mount('/content/drive')\n",
|
386 |
+
"directory_path = '/content/drive/My Drive/Princeton/'\n",
|
387 |
+
"\n",
|
388 |
+
"countries = [\"AF\", \"AX\", \"AL\", \"AS\", \"AD\", \"AI\", \"AQ\", \"AR\", \"AW\", \"AU\", \"AT\", \"BD\", \"BY\", \"BZ\", \"BE\", \"BM\", \"BT\", \"BO\", \"BQ\", \"BW\", \"BR\", \"IO\", \"BG\", \"KH\", \"CA\", \"IC\", \"CL\", \"CN\", \"CX\", \"CK\", \"CC\", \"CO\", \"CR\", \"HR\", \"CW\", \"CZ\", \"DK\", \"DO\", \"EC\", \"EG\", \"EE\", \"SZ\", \"FK\", \"FO\", \"FI\", \"FR\", \"DE\", \"GH\", \"GI\", \"GR\", \"GL\", \"GT\", \"HK\", \"HU\", \"IS\", \"IN\", \"ID\", \"IQ\", \"IE\", \"IM\", \"IL\", \"IT\", \"JP\", \"JE\", \"JO\", \"KE\", \"KR\", \"KG\", \"LA\", \"LV\", \"LB\", \"LS\", \"LT\", \"LU\", \"ML\", \"MO\", \"MG\", \"MY\", \"MV\", \"MT\", \"MQ\", \"MX\", \"MC\", \"MN\", \"ME\", \"NP\", \"NL\", \"NC\", \"NZ\", \"NG\", \"MK\", \"MP\", \"NO\", \"PK\", \"PS\", \"PA\", \"PH\", \"PN\", \"PL\", \"PT\", \"PR\", \"QA\", \"RE\", \"RO\", \"RU\", \"RW\", \"PM\", \"SM\", \"VC\", \"SN\", \"RS\", \"SG\", \"SK\", \"SI\", \"SB\", \"ZA\", \"GS\", \"ES\", \"LK\", \"SJ\", \"SE\", \"CH\", \"TW\", \"TZ\", \"TH\", \"BS\", \"TN\", \"TC\", \"TR\", \"UG\", \"UA\", \"AE\", \"GB\", \"US\", \"UM\", \"VI\", \"UY\", \"VU\", \"VN\"]\n",
|
389 |
+
"# countries minus ones that don't have enough streetview coverage\n",
|
390 |
+
"#countries = ['AL', 'AR', 'AU', 'AT', 'BD', 'BE', 'BM', 'BT', 'BO', 'BR', 'IO', 'BG', 'KH', 'CA', 'CL', 'CX', 'CO', 'HR', 'CW', 'CZ', 'DK', 'DO', 'EC', 'EE', 'SZ', 'FO', 'FI', 'FR', 'DE', 'GH', 'GI', 'GR', 'GT', 'HK', 'HU', 'IS', 'IN', 'ID', 'IE', 'IM', 'IL', 'IT', 'JP', 'JO', 'KE', 'KR', 'KG', 'LA', 'LV', 'LT', 'LU', 'MY', 'MT', 'MX', 'MC', 'ME', 'NL', 'NZ', 'NG', 'MP', 'NO', 'PA', 'PH', 'PL', 'PT', 'PR', 'QA', 'RE', 'RO', 'RU', 'RW', 'SM', 'SN', 'RS', 'SG', 'SK', 'SI', 'ZA', 'ES', 'LK', 'SE', 'CH', 'TW', 'TH', 'TR', 'UA', 'AE', 'US', 'VI', 'UY']\n",
|
391 |
+
"\n",
|
392 |
+
"NUM_IMAGES = 50\n",
|
393 |
+
"pano_ids = []\n",
|
394 |
+
"panos = {}\n",
|
395 |
+
"missed_countries = []\n",
|
396 |
+
"MAX_ELAPSED_TIME = 120\n",
|
397 |
+
"\n",
|
398 |
+
"for i, country in enumerate(countries):\n",
|
399 |
+
" print(f'-----------------------------------------------------------')\n",
|
400 |
+
" print(f'Current fetching: {country}')\n",
|
401 |
+
" start_time = time.time()\n",
|
402 |
+
"\n",
|
403 |
+
" while len(pano_ids) < NUM_IMAGES:\n",
|
404 |
+
" current_time = time.time()\n",
|
405 |
+
" elapsed_time = current_time - start_time\n",
|
406 |
+
"\n",
|
407 |
+
" if elapsed_time > MAX_ELAPSED_TIME:\n",
|
408 |
+
" print(\"Time exceeded 1 minute, moving to next country.\")\n",
|
409 |
+
" missed_countries.append(country)\n",
|
410 |
+
" break\n",
|
411 |
+
" try:\n",
|
412 |
+
" pano_id = get_panorama_id(country)\n",
|
413 |
+
" except Exception as e:\n",
|
414 |
+
" print(f'Exception encountered while fetching {country}, moving on to next country. Error: {e}')\n",
|
415 |
+
" missed_countries.append(country)\n",
|
416 |
+
" break\n",
|
417 |
+
" if not pano_id:\n",
|
418 |
+
" continue\n",
|
419 |
+
" pano_ids.append(pano_id)\n",
|
420 |
+
" print(f'fetched pano {len(pano_ids)} of {NUM_IMAGES}')\n",
|
421 |
+
" start_time = time.time()\n",
|
422 |
+
"\n",
|
423 |
+
" panos[country] = pano_ids\n",
|
424 |
+
" pano_ids = []\n",
|
425 |
+
"\n",
|
426 |
+
"FILE_NAME = 'countries_5000.txt'\n",
|
427 |
+
"file_path = directory_path + FILE_NAME\n",
|
428 |
+
"panos[\"missed_countries\"] = missed_countries\n",
|
429 |
+
"\n",
|
430 |
+
"# download JSON at the end to drive\n",
|
431 |
+
"with open(file_path, 'w') as convert_file:\n",
|
432 |
+
" convert_file.write(json.dumps(panos))\n",
|
433 |
+
"#files.download(f'/content/{FILE_NAME}')\n"
|
434 |
+
]
|
435 |
+
},
|
436 |
+
{
|
437 |
+
"cell_type": "code",
|
438 |
+
"execution_count": null,
|
439 |
+
"metadata": {
|
440 |
+
"colab": {
|
441 |
+
"base_uri": "https://localhost:8080/",
|
442 |
+
"height": 17
|
443 |
+
},
|
444 |
+
"id": "9inlK3KG0nZu",
|
445 |
+
"outputId": "96f19b2c-3fa7-4ebd-b04b-8425ef9838e3"
|
446 |
+
},
|
447 |
+
"outputs": [
|
448 |
+
{
|
449 |
+
"output_type": "display_data",
|
450 |
+
"data": {
|
451 |
+
"text/plain": [
|
452 |
+
"<IPython.core.display.Javascript object>"
|
453 |
+
],
|
454 |
+
"application/javascript": [
|
455 |
+
"\n",
|
456 |
+
" async function download(id, filename, size) {\n",
|
457 |
+
" if (!google.colab.kernel.accessAllowed) {\n",
|
458 |
+
" return;\n",
|
459 |
+
" }\n",
|
460 |
+
" const div = document.createElement('div');\n",
|
461 |
+
" const label = document.createElement('label');\n",
|
462 |
+
" label.textContent = `Downloading \"${filename}\": `;\n",
|
463 |
+
" div.appendChild(label);\n",
|
464 |
+
" const progress = document.createElement('progress');\n",
|
465 |
+
" progress.max = size;\n",
|
466 |
+
" div.appendChild(progress);\n",
|
467 |
+
" document.body.appendChild(div);\n",
|
468 |
+
"\n",
|
469 |
+
" const buffers = [];\n",
|
470 |
+
" let downloaded = 0;\n",
|
471 |
+
"\n",
|
472 |
+
" const channel = await google.colab.kernel.comms.open(id);\n",
|
473 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
474 |
+
" channel.send({})\n",
|
475 |
+
"\n",
|
476 |
+
" for await (const message of channel.messages) {\n",
|
477 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
478 |
+
" channel.send({})\n",
|
479 |
+
" if (message.buffers) {\n",
|
480 |
+
" for (const buffer of message.buffers) {\n",
|
481 |
+
" buffers.push(buffer);\n",
|
482 |
+
" downloaded += buffer.byteLength;\n",
|
483 |
+
" progress.value = downloaded;\n",
|
484 |
+
" }\n",
|
485 |
+
" }\n",
|
486 |
+
" }\n",
|
487 |
+
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
488 |
+
" const a = document.createElement('a');\n",
|
489 |
+
" a.href = window.URL.createObjectURL(blob);\n",
|
490 |
+
" a.download = filename;\n",
|
491 |
+
" div.appendChild(a);\n",
|
492 |
+
" a.click();\n",
|
493 |
+
" div.remove();\n",
|
494 |
+
" }\n",
|
495 |
+
" "
|
496 |
+
]
|
497 |
+
},
|
498 |
+
"metadata": {}
|
499 |
+
},
|
500 |
+
{
|
501 |
+
"output_type": "display_data",
|
502 |
+
"data": {
|
503 |
+
"text/plain": [
|
504 |
+
"<IPython.core.display.Javascript object>"
|
505 |
+
],
|
506 |
+
"application/javascript": [
|
507 |
+
"download(\"download_edfb6a7d-2682-4723-8983-4de086e63ca7\", \"panorama_ids\", 23220)"
|
508 |
+
]
|
509 |
+
},
|
510 |
+
"metadata": {}
|
511 |
+
}
|
512 |
+
],
|
513 |
+
"source": [
|
514 |
+
"# download panos for streetview Download 360 format (one on each line, separated by a newline)\n",
|
515 |
+
"panos = [\"B3HpLrBkVoSEYCyCiXw_Lw\", \"U4VLo4366wg-b8hjW1-XLA\", \"ZoY2qEC3QX5GvVYjSf8xiw\", \"LTy_-AOLwR58z-z2--cw3w\", \"YoVFKHuqtxZzdQuPz13c2g\", \"c22ZLSFWS61Jtqjch7pyPw\", \"PwYqWAOFrWMlg9oz4lLNsA\", \"CM63yD4OADgfYdODwj7RKg\", \"QdtZ-rkoAP_NK3SFmGJK5g\", \"JquzGKRPomiCt-7nGMo07g\", \"td31cEodSa4laX8nYdGApg\", \"vq8jhxIoInqUi4kO3cMvpQ\", \"sCs0zo__M3Q6ZTnKDz4shg\", \"2JW4ly7WkY6dX4KWMmRP-w\", \"cWnC55GKOSrFTptySAk3uA\", \"eJUQsgYgRfJG63RJ5zeHQw\", \"AF1QipNZPN7-Vkz8kk33z5QIUo_-NlJ2PfZsfQd8zEgA\", \"n2SchmX_Ot7A8Ahq8aZlpw\", \"oNTxi0D4k2fIPh9tigUxhA\", \"4q4rpW2NrXMZblZw0HFt2Q\", \"-blquHn_-72nH1WsxoG6zw\", \"DhgLyOABBeui02kxY8nFJg\", \"qXZju-b9IlA-HBIQPqmg9w\", \"kiFj-Sx0i507SWwU8cuPjQ\", \"Yr7ZZHLtt683_epQv3CYAQ\", \"7nyOV9f2JwK7HJgDvM55YA\", \"Nb-QuBguFm2jSqK8zEge7w\", \"S5hhjpgKlROnzSX3xGKdIg\", \"qbDuOhJoUciTdU96roizVg\", \"HvgPK8qKQe4X0T-ejzsQvA\", \"dYXbS3-Tc4wnH1NQNj-uFA\", \"5-C5KnOdpQcQSAeNZAOTZQ\", \"EuZ1WsOIBpLYvStgN9e6CA\", \"9EsYcX63i-myDcgvbRn4VA\", \"J39LkpHvb-UF51Po5l5Qvw\", \"eAR8tWP6FDL4yCnbQQDf3w\", \"kHDuS2BA1eCVDZlnIGYNiA\", \"cLNMPm5t-wAKcTMZoTDRfA\", \"y44QJRsc_ytHVrawsS1KbQ\", \"8YtL12lvoxgieZ1Onooh2w\", \"mVxT39CLrvuX4feLTxzDzA\", \"GEmtXXa5AlO4sS2KJj9peA\", \"QbiS4cUV4rJTa6dDIEEjbQ\", \"A-k0duWxWTfYbQ4uAoNbIw\", \"DnrOEZSHiQTw7HHMirlEPg\", \"VqbdLQMONOAIFejSDyfR6w\", \"zWQsVtC-CyDb08ZCKZHclg\", \"Rof9BZ5S37R4s-4AJCp5GA\", \"LhHJT3Iuh8-sGgFnDYgajw\", \"0zoSmPkBwKAkPhg_PUTLnA\", \"7OampA24k1aTDdCL-pEYOQ\", \"1RpmB8b6qmp71hxSLqCBBA\", \"n7xNOGoE3ceGOeEfYtU2uw\", \"wbYMJIEJaiGJGWVTpSXJpg\", \"Pi5vhp0vpr5oBEuF2n-PeQ\", \"mAT5QVoAeiCkV6CW-QPMvw\", \"VnTVmTmHhH_NLiT0OpnJXw\", \"GAzWmLoNuvNYrj1IarmGpw\", \"3Sqi23R6bh6IF8_g8xnJ5w\", \"SXpUDmo2IchLjQvFvChIZg\", \"gp4zfLdjBF3UFevZOTeiiA\", \"OPrMSUBuwW459erEsrXYVw\", \"Px0T37ztGbkcHPlsAHsHzQ\", \"iRNwhCSroNshDGBAXsEq8g\", \"ogiEgI2ZlHmMKVAaqQisiw\", \"jtiXTk3vlQ1otRUKHQwLNA\", \"zKflXzFWIVusvdMUagAH0Q\", \"qD5yvHVhKN2nl1xrvydKag\", \"AzBOoaOA9mU3Rra4kOuJnw\", \"GajBX64Gi1hZu4y_MvMKmA\", \"vuvtHZE3HOMN1Yu710v43w\", \"boQZwFVnmR6GhAwvgPeS6w\", \"-CBpTRrveA0SDs8nyGM1bw\", \"qQ0iUGkcQZ2d4YB2IYZ8pQ\", \"K_kbrsgMZCMJ3gVew9c3Aw\", \"DkpeJuDEWVO8FTt2z0dr8Q\", \"Rq7ZJ0pMqm4U4MLIeAAk9g\", \"Ojl8a80OHuJMlbD1QcgjTA\", \"lgwD2D82lUPZYGI92mUqQQ\", \"RjN4bfW1JK-dY44aPoxTPA\", \"wVx2DJolSw6BktXbQu78LQ\", \"4rEA0mDtuX6jRer-x0D04A\", \"OAwmHjsQckZ5ZcRiPURDWg\", \"BQT5Y-xMsckd881Iu1JEWg\", \"Aa04bbQyGQu_6TWE4FHKyQ\", \"AF1QipMaAAcsYCa2dQr5d7hTiP1OS4dJq9a2Hhd4upIa\", \"cm9k0s8C6U0U4cqvRKiqMw\", \"TaYcWBG9mC9MP5R5uQgexg\", \"Ngi8wU_wztIqLHE9N24mNA\", \"vfoIskrI6VvlVEKhrl5jlQ\", \"EG-tX7fsE3GexyyWoj_LEQ\", \"_xJZgrCyl2biqanPgzOtBA\", \"ncrGvJqvmqeOWg-Nz-R5Jg\", \"2iuStJocbyXO126V872EWA\", \"8T4khEhqVCJDCidjxOGHqg\", \"GLjDfLC3Q5P0tPBLZPp9pA\", \"Iq4Cx6vwhkVhKleIOY90Vw\", \"JJD7UYVTyIjA5kheD01p8A\", \"4APOvN0ALWbXrtSa9CcZkg\", \"CtjXnIeDsGnUz7XaSkEM_g\", \"v7hI8sU8XFDwJE_1dGQeNQ\", \"To8UvSMq0-Gx_5zkJv3RfA\", \"_IZDkK95e7QCsThTcy_P6A\", \"w5gDCNcxgqle_6ZqPldqCw\", \"8A3_r3HHuxiyq11wVs9hOg\", \"YbdZuAB14Nb_UPvR5OLP2Q\", \"bVjOJQCdoOThv7JqkO2Tmw\", \"5BnSAg51D1aJfcw61y1enQ\", \"G6Gw0s0dV0cvopYTzZj84Q\", \"d6QePIYeuUyLdPys0_4-8w\", \"1po98ZjU9XieNKEb4nDpFw\", \"yJO-mUuv77FNcedLCbUJqg\", \"IxL--PLOW1DFnM_ehF27Aw\", \"-JZBOA3cPCJv1U68dArZJw\", \"y9D30rPn5aFFROf6Hgfykw\", \"JlQBVCDyrD3DtRPj2lJqGg\", \"KK49mcT8-7aAELs47Ecihw\", \"atFxmy-tRWR7nPogsLVXrg\", \"M7-1rdJY9GAT3e_ccxa9oQ\", \"DncIBlE_RoXeI14a9QcRqw\", \"d5DswchbLKw8uXfw3P3lWQ\", \"QuQz_0ryIrJ5opffM2XzGg\", \"WzHJkm9jB_OYsHzMqXHoNA\", \"c0OuFfxV0KaLVekuyllsHw\", \"AFQRGF5ldJvVi5t6TdaElA\", \"YoVFKHuqtxZzdQuPz13c2g\", \"7mVC03Fhwgxgproxop3dXA\", \"yp0mNLBbZgwlBNJazggd0Q\", \"72a3WlqFmWlJQpzAdGfkug\", \"ZX0XNVtCZhlI9DbMKxIlcA\", \"Pq84YzT1bejSLu2cztQwVw\", \"plipiviXhKT29YCqBD43uw\", \"raae8Yt9RO994Rt5N_n20Q\", \"qhfNodAm3gpiATtSw03udg\", \"j_koIVpOp91cAZO9AsjqWA\", \"dIdD_ISCvEsHhtZ4zCTZkg\", \"5ET9RwKnRjTjqxmckoe2rg\", \"n5UwfwAhDKa-8_cCQwa-Gw\", \"pBhQ2anjLQQj3FzZLrCn5A\", \"8QNZBAaH-9zuEMRmYSM6og\", \"3-9DlWL94N0FufxyeujtgA\", \"QRkhBitIq8UVzVzr4ZSCvw\", \"tUJBapNtuiiGaoXrMaNZSw\", \"LAq-tnYkYyJ7JVc2X7vV2Q\", \"KJvWan8UhZ9dbNMVfZmv_g\", \"hquo-omp0tJAqSzPGaCfiA\", \"o-jNUF_ylykVa1frmIsqiQ\", \"LsqO1C-YQnpb63xyKJqinw\", \"iF4nIURjsCv_KfxTuXm53w\", \"ZxVC8qLbrEBpR56_4B2euw\", \"1iU_wwxNjKHUBpthR8dKbw\", \"q5IjhUtAjh6jsWr6yLjtnA\", \"Ocpw789cOo7Vf5gGsA3gRg\", \"2NdEq9gIRe7EvlW4ZBVUCA\", \"hyRcNf9ggykirpjibKLLpA\", \"Q_kP0TqkPPzZwN819BAbdw\", \"BR6d5t1NQ0Zs96MbQLRYcw\", \"jllgoD0MvxUU2uhwEgRWRQ\", \"vjUSMADDsemRDtAs0cEifw\", \"zBdsYOZsIalqjA7WEpqDNg\", \"bbthAb80273g2BZQ4txmXw\", \"V8pV1c-l4T0TMsHOcVif1w\", \"wFRYP69dbhwwlvJPZD7AAg\", \"CHdR5o2budT2HRnuZ4EqxA\", \"rpVT0TWZRIKcss4SeFPp1Q\", \"fQ8GBmWSC3q5b6WoorUEmQ\", \"I9Gmpp8Td7SUAYXaG8p0fQ\", \"wuGt9uIFWjHTMC4eil43bA\", \"L-qqRn4kh6lGk_kybyGfSA\", \"-azgbkegh2vMURnTdqYGTA\", \"MmsEiQr3B38-zNwrquozKQ\", \"bCzTfFF7up1Z2rVUNASxlA\", \"aQ5Tw3gmPBzOl7LQ7YD0cg\", \"a4LwhuIqItYIPgRm4OQUpg\", \"Fa0JoGlI7FPBBPW10biiOw\", \"naIYTTQVAvKDV28L8nmnyA\", \"QXmH7bgXxV8pZQ5P5o1Eww\", \"_ougxluU2fn3AQfGa5BbNw\", \"ZQafYdxholYEY6Twzm_4wQ\", \"FZ4BxBAXd7N9hHQ46CGEoQ\", \"t_jWFo2zyqZW7QUaJAzvAw\", \"6ZioBfAYGkizyh8s3G1KVQ\", \"oVUCjByUgxQZCwOWL8vHog\", \"nkGvrO9U0BcxihAHVBS5JQ\", \"0rjjNl85VHbzyosRd_722g\", \"UcHA6xY5OnI1l57TbO_nnw\", \"9QV95EGUE8kBqJsRlBZLzw\", \"nS_lE-Ll8A-JqcFO1PxKPw\", \"CxZ0CWIo4WuCqTtOosAqJQ\", \"XEJeGcC7Jbg1F6knDmR8gQ\", \"q2HNtCTnpM-IxTYBty_xUg\", \"1wExQwodHew984AIL5C9-g\", \"JhiNVAwCXPopqnjEdqES8A\", \"mHanUZgvY8JjZCHa3Ds9Ew\", \"RfylcoBv5PnvFRJRLCD2iA\", \"evV3-UaFLo4n8OEWO-NUOQ\", \"rHrDtBtzk1LluWIxQlCGRQ\", \"Vj1G2iLrl53YIwlAzR5CXA\", \"r-Y4Mlt8pAJMyLhyMZk8tA\", \"GCLmAiOT65KqRiFrgHuQiw\", \"8jAfmmGn6mgLLP2R_vaj3A\", \"PvOk_FOzSPjvjOVtcXs0eg\", \"uKVgeJVe-QqXRHZoboCp7w\", \"Pi5vhp0vpr5oBEuF2n-PeQ\", \"-Qkj2S-J3R-QuSuXkDeEuw\", \"Ujz94JY-Vf5T3mX15StzUg\", \"agmalWiYjcTKhkcHqMzoeg\", \"dfOBrtMa94nMojvhP6auAw\", \"HlbePUVmUTheTDI0U-mRsg\", \"1xmv1qP1GyBMzWiX2ph_9A\", \"PsLGZxKvPqZIrtHlzF37hA\", \"6k6Aqg_Wrchhxk5IcXP8fg\", \"MwdIxk5pD1pGcxeEolwjsg\", \"cFIhk4ZK498b50e8Aupqug\", \"04pXoFoi6KNvg_HaIAvqEw\", \"EcFcpcMApb0d0_DRHL1IJw\", \"AF1QipMtfLHgdw3cOEAnoYPKmHnMOyZR7ONtUFBwY-tp\", \"hM8GYf-JVmvr0QzrYeTl6w\", \"27cgSzGytjQiUTMUMYANFg\", \"SmSbfRW-QW9m5AJRvlw2Xg\", \"koGBYpS3hMX7xUpu5s_p6g\", \"_TiHlnqUmxA1GQv-bDYwHQ\", \"Q9Gb3eahcEjMzksaOrNmTA\", \"zcM4okm3lJn6amGGMM-dVQ\", \"ZJJu-xoJA7he7rmcFCKvhw\", \"K-4-uITuEeMn6P9XVwCJGA\", \"B65XhKjxvKGmpsoJ-dCybg\", \"L0Ix0ljFf22tOfeKFjL3ew\", \"F0SagkHBK_WjL7aexiGfxQ\", \"ljMs3U-TBUE7iaeI_XhE1g\", \"lqwcrwzTitt0i0Eanbo7xA\", \"0SwghVi4M5MaaXLy9hqMCg\", \"mbj5OHLOjEStFJMehRKryg\", \"TmP5sU-2Dd3d_g2gV_XQjw\", \"YDv9JEWIKC7NHHkUXnAZlg\", \"nJQONjK1SFIcBr8nixAljA\", \"XGtWuY2cT41mN-Ue96kWKg\", \"ehjMvQi4rxcnTA9Uo1MC6Q\", \"a3SA9L3fBmZetVqUAGJAcg\", \"vHQxn36mClNAZu6xDXsmag\", \"vIcSu6-ckAIRDKDimlPipg\", \"szpuchNFGE2r0Cj0Yw5JMA\", \"giyligGUfTBZTNbS7vrqSQ\", \"PdjMeJc2w7xzLA2q8pUiow\", \"rMxL9Po7CDEZvu0uoUqnpA\", \"bJSAcJ2vAYG-zumIerdUPg\", \"rQhOrTZus2ZPavPQfznWMQ\", \"8pQlTfSKCX2QtPpDXLclBA\", \"2SFDYRVBkdM2_wkkPLpJLg\", \"92PTbluXrM0t9SsdZdZVvw\", \"vgj8IpRE0q8BNibp_9qS6w\", \"HmIGE2wGddopsC_o5WVvzw\", \"CT77bGq44DN2nsqWSZm-sQ\", \"7G-kuzSSXIs0bjW4v1cn4A\", \"xnbr82a4ew7ZMfY3EFMlpQ\", \"-CK_8Q0PfIScNllFJJWEMQ\", \"VejesG-JQw8weUYIcY7qtg\", \"Yq6LdARp1rrAhb19hG_Bbg\", \"arCq_tVkvBedGwZ8d2g8Sw\", \"kVh9EOPLwuCan8qjpM_lcA\", \"hWyyEEhZgDHr4xI80kcStw\", \"IrROn8KtTJUV5XBsuWae2Q\", \"4wIGBVCEMtoj0Knh-mlW-w\", \"neExAl26231AWF1T1vrIUw\", \"by_75V-fhKa2FuaQH6jMmA\", \"1wY2N_wi9b8buzUEzyEnMw\", \"f5kQKPGtknnPsoDIxU-9mA\", \"doMyhHFIzWHavgb27WgEXg\", \"0Ze4pTltB6rnZA24KnOqMw\", \"kth3UYiMHndbSaFQ8C0R4g\", \"0NMAbuPOC5quatcp3Wh4Hw\", \"U98qXbU0YgnfV2CMCnHtFg\", \"e-QvzYXqNXaQ7ghCGBzXfQ\", \"sj58h5yVe1J0unlZ-G9GuA\", \"6ew5I3mh-poMQuumwHrdyw\", \"S9xcOq7hTY8LwS44njBlRQ\", \"715A2cIEbNCZ1-ckPNE5bA\", \"vFXixKcgwBCjloe_G8JZKQ\", \"dPZFWrt1mG6oU8An5QHC4g\", \"jlXztZQJEFiMP2BSQCZsfg\", \"Eug0SGPTtEfobslI9cvB9g\", \"14j7lFs-Xbl6PPXeMlnLAQ\", \"ySWN76c0KYii4uR_3lfqCA\", \"V4VC5May2Q1eYd-Fh65wsg\", \"xcLxJiRs14g5SC9jr_z75g\", \"ke1GtfWHy7RG1F48ryHUGA\", \"OVcA16ktKFyL72uwkcePMg\", \"ojc_88QRDQQSPQ7ZXjyqLQ\", \"9mdJVUDKQTOHn5Jwud17Kw\", \"GC2cq5K6ULVVvZPNtxJVgw\", \"HAKGSzQxy84a2cjtZbe7_w\", \"1VXkYWCs_GfqMX5QpLavLw\", \"Ayco3WCqM-B91Vu_QDV9rw\", \"17xc0T5MpYXrFFkm8JovsQ\", \"nLLNP5dm4xb7GbATthswPg\", \"HHnZRVGMqWS1x7KDCQxo4A\", \"Q32jgs7pguces9g50A50Zw\", \"ctbPhdi4E7_TNwDaH52yEw\", \"unEvYYzSYPjX7NLK7wR-ZQ\", \"xGQx-C15E1EM3Hy3VsfMRQ\", \"qMzm94R6krIVunf5VZXfzQ\", \"yANw1BwBsctXGaNkujobnQ\", \"_X9oatrUsERDWqXgTxNcIw\", \"MutMMJKpJ_XNvzs7N7AzeQ\", \"-HzBd3PktkSy8kcOaUZMDw\", \"3o-GdCRy13SIG9Aa85WDZw\", \"W_gjpS5Z5dFMjbEKYCRwHw\", \"MsEGbK_s7qLuUupvgm2LhA\", \"OfZ4zkF0sK4h3jj0wE5S3A\", \"94KQz81EeoQIdu0Vb6nVfg\", \"XRxFDD4ccQAU9EC5igyT0g\", \"l0kjYy6mfX9AZOuS95uh9A\", \"t87k3YYoI_Y6sCrssFUKhg\", \"aBBb1kVkLbfMMZoEd5Vclg\", \"_n19CsuOsObK464aTvECSg\", \"MxTudMH64EjUybo2SLNRyQ\", \"deCQUid7GbvoV2gcVUEwNg\", \"HhgJA4D9VUB4JfOI88NbOQ\", \"VNmE-mDPAZs_89C3F_Jm0Q\", \"jj2EvvuBH7TmWv0zh_GGlA\", \"IYnYZLxd394LIHLXcheOow\", \"NIguT4Y0V-puF9gHwdGo0Q\", \"aYgOBMtJn0YLy6qBd1qKeQ\", \"24aUiQkJbO6HPi9gOG_lLw\", \"YjrSdmRgXsV1AM8sPcK2Qg\", \"QUtuc0avYCNdbt-pTYNKxA\", \"3qTtzD49M7L9lAS6fkg88g\", \"V2YrGMMts93bydNGRBb3lQ\", \"XxyZ6lmVGsMm4FNFUoDNdg\", \"y73w0j0AYSQGmxOMg8B2Qg\", \"W92zrLCt71wQZS3GHRNZGg\", \"ccAi94Do_diNOy5RWJ8aOg\", \"LBZMIQ3mdBAfInmeISR_iA\", \"PZRuldlyqdQYu6E5wDkmZg\", \"8jVSiWpJXGTdO6y9LVqUPQ\", \"XtXzrJnsLs1ncUJPKF_H2g\", \"ka21m-AFTd_EBQjvEnW_yw\", \"b5VXJsgzi7OoY6DimfL_Fg\", \"kGqmpmIelqPIB9TXg46hXQ\", \"DXhWj5KnVAFVbuLPYd4O3w\", \"jfotMbRNbuPWLySs-vvAAg\", \"zzmA3S49xKvc5yn6sEA8OQ\", \"F6wvRs9-spO8istxUj73lA\", \"V3KXxJmM7zGqKntUozsClA\", \"JHR5YGA5rhZqdIJXhNP5kQ\", \"D-u-gKi1DN4-cmgtfBdP1g\", \"1g8zzvy9vmy9prrK56igGg\", \"2Lgv2QFtXRl3b8rUWDgZ4g\", \"3PzVQ17IbfcwcYi-MRSm6Q\", \"BtsgxWdK0-z6JunVFaiwTw\", \"0Uu1P7QNLJ_cGBi-OJ0YgA\", \"mDVxj5LgjQpVevGaMyzCIA\", \"s7nG0L4VXunj1mqaqbpYqA\", \"hvNZymCDVbi6Ox76aLqQCQ\", \"00MreGJunlyuSftXhki11g\", \"n5Ce1EOSyTTQlO6MOd1y3g\", \"iCxdzi6lTqf6L1UgDGmYGA\", \"7Xy9iLX_wsl3UYxM3lemIQ\", \"wHMdk6t5zz9zQ3AJSoHaeg\", \"FiiYmrPcIlyc_jmxyLVsRQ\", \"FzE0nH-8qgZe7uOSfcxwWA\", \"zTeIHysQISTFbTU56CsHyg\", \"lo88cdkZUvONbFH37YdlUA\", \"vFXixKcgwBCjloe_G8JZKQ\", \"PHy-KV57PZD027GJ8LOoKQ\", \"bm162SjVYyTkH6afrjeqaQ\", \"cg7PskmVbBMriT2fGQUP8Q\", \"SEWmZAoAtH_5jg2NAQ501A\", \"Cm5xFM2TqJluJhKQ_reoTQ\", \"6xU5BYS7bVd6Rwg7ulqmyg\", \"2Og7Vl-DXZs7USLis3R_5w\", \"4HaX0vNfQ3J8KAGhgEoauA\", \"B1psdsCc7WN2nFEWbM6yRg\", \"k9B2wI1h-y4cGoV9Y--SEw\", \"mPUsDNyt8Pym5o5TQh9F5A\", \"g3Nkp4DStePdzncddOfieQ\", \"GgUhGDYIttx9eHja0skAvQ\", \"rFagavBaJovNbrZ1It-36A\", \"Dpx3eCu_-B8VjOFbX_9E3Q\", \"MxcmYo4rxG1H8ggXkI2WBA\", \"YVtfVZU3MNq7hSP_oHul3A\", \"bu_0ZCaioDm8dqKmRcJLQQ\", \"nB-T1sRW92mhEPQTq3IDuw\", \"Fktt7LD2VdjMcfDhcyDvyw\", \"YxUse9PlaPVPt7c3llM4eQ\", \"HZDFZKqOLE6jDWME-9jq7w\", \"A6ldywrW1yhoOyreRFmtJw\", \"kqjoH4R6fFmGwOp5kphW4g\", \"r25Nx8eLKrpe3SYQxhBHwg\", \"SeCrcFRVIaXq5c6iKTxjNw\", \"47YgCyFOTR1x_iwUhqAQnw\", \"cFVN122SXy-1VnRZrL9Rsw\", \"-TaXYIZk3r_ffvc0GamB0Q\", \"yZgYkboE2ADQwY-hyf84Gg\", \"21zzsOdYRix7F3cE_WzqnA\", \"XtXzrJnsLs1ncUJPKF_H2g\", \"SeOGA0WqrNqsTV2o934pvQ\", \"xgKJ6sLMg1wJjEEXARnvnQ\", \"Peg-9bt1O5QEqT7KazSzpw\", \"cEl1HdyKuWq3BVxXIMPfoA\", \"R7mtaYtK5HRt1WLewN4INg\", \"9gU0-ioasdSTvPK-AKf-zw\", \"cPoAFUc_dpieXOm6FcB9Ew\", \"6bZxpDUALtD6z_9aZ9vOMw\", \"x2Cgc1fzWzsgqwYDcB14Ww\", \"5ZEGSSU0rGYRdxAoB5rRwg\", \"Xy8Qw53KOfJjX_vk9y5Z2Q\", \"6Tdbzu4N5ddap6sFR8qj7w\", \"vgNJrjH0rvB1bj1ATA9-zA\", \"ZZR54J4HiimmIvXEHeGidg\", \"5Zh8d7ExN7K-n7lAjADT0w\", \"Ufh8mrUDe87M1aHVitQHVw\", \"2h8CxhSlND_GO85NxOrvbg\", \"c2jMrfDMZ-ZP-W4c25W0ew\", \"ss_yhB48Bi-ih8A7NfoHKw\", \"z4i15DhxIdzipi3z8Hqwfw\", \"2KRgY_822u0XsZZJjAciiQ\", \"UJBPKfjOIqsC0Jt-E27SDA\", \"qrkPSvTzc76yfHuoNT7mbQ\", \"nB-T1sRW92mhEPQTq3IDuw\", \"oB0fzN6zR1ElZJoHeezpbA\", \"L1GDurYbKstV_otLpuCC2w\", \"ta82bygOUkOkhPQBa40eoA\", \"SXG77QRQP3wZn5t7c_sAbQ\", \"9-TlCB44V84PzxsVdl6xHg\", \"E0k0v7JO7dWmL75o1Wp2YA\", \"DtMfiyFsz2aquL-l2Kjulw\", \"FnssTNcSeyCi1IgUkd3Reg\", \"AxrvfjArA6PxJMHpyUS0UQ\", \"bCgOWHJ0vL0d3Nz0hYtHdA\", \"es89JivlzIcZVxUpaoyXWA\", \"4LCjCFKoB-lZuNh5-6F_iQ\", \"AINU3HL0p6MdER_GjPH43w\", \"eiSuuWj4ztW_ly7AyV78tw\", \"qcmUoH5LaJxvLv7AC8Ys8g\", \"Ydqb-VIwZINbhkSVvprnfg\", \"4BPmXCNIkwVz0LHKtB-zlw\", \"mL14tPS_IlvPs9wbs4tpIA\", \"Q0FHZqcTXw2UBJ5oakYNXg\", \"_ZVfYDA3Ynww8XP_xaiMSA\", \"--c5k1zGDSG78k96pcxmRQ\", \"04BC7MTeSrCDV0qbQSVQOA\", \"DCRb2ng6XNgoMCJxnkIpQg\", \"Ws3j291JNtzVMQ1ZvkFpXQ\", \"QcFppkgKLcrq5e16-HsvZw\", \"Wf4fpPWrI_rtIxb45ICC6g\", \"BSHVlMffEDXUvbZkY8HGDg\", \"i-d2lQxiJ7PtCEBpqo33pA\", \"F3fmzHQvjLtPw7-ROVGJ_g\", \"M52y5u5KBbjfw822W41_jw\", \"aXFA5_Z1w8bZK-WWIY6JCw\", \"G3HbkOTEe0tWG7J2iRoO-Q\", \"UaQXv15q6FLlaixg5m3JuA\", \"beQ5B97l-OS2-_35stouqQ\", \"VRz32zEYg4pH0XKeG8kDeA\", \"AsrUpZ6_heHfZuDadOK6hQ\", \"0QwRN5VurSYLB4Xm9fXk_A\", \"c7q3cZ-egTexSzWYt6rsXQ\", \"QANVbpS4Kr9Ks0Rtd2S15A\", \"kuZn3nVp_JJluM8s2q3yGQ\", \"Wp-8HZXo72XF34wEoEuaZA\", \"AvLxoYGMPVGND6ZYc_jdag\", \"6Ub2NCPQvEae5xWZNpv36g\", \"Gu-I8HZZfO-eniQwP7hCXQ\", \"fXLwbRobPzfJszj-l5QzBw\", \"sAmw93qTHYBnA87aajCJUQ\", \"VJ1OPuUi5p574-10xKnFHg\", \"RaVR4zzBL9onvC_2ddEP7w\", \"PP7DJV1tumafzZ_LP7UOrQ\", \"FNhlSM4cFG2WypltGoVC3Q\", \"dgS-u4lPdRkVm0Ng5L9m7Q\", \"P4PzyZcr5wOclmSNedPXqQ\", \"Q8eGJJffDlEXiA9Dht-Qyw\", \"7_BRw2KZrg3IGnxfpyWEBA\", \"GkHlTTjgOBz1zRzZNwlhWA\", \"-PWTALrCVPevYp8nxLlIAg\", \"m082jRa2ZYnpfTecwqyRvA\", \"BqbnoKh6XHFGvuSCnLonuw\", \"-BTy1UkmiIUCIk6AG1pKSQ\", \"y3zuqg7jcifFC1dKJes3Ww\", \"oPjcwYNgthUWVYfMLs_Alw\", \"2h8CxhSlND_GO85NxOrvbg\", \"ylQlX6IF_z8cuwLt9TaEfA\", \"5krSo6mC0c4munVqc6tueg\", \"0n6el5eWSYDtIFWMCBLRrg\", \"xuYCqcCYtLc686kENBxMSw\", \"z-bR7G4y5FpOfSEHS7bDjg\", \"sU-HIfhd3bi0jtkPBOh1EQ\", \"TaYH_b-v1FKgvsLt8cyeXA\", \"brzO7czIwQFlQ_1G8ccAXg\", \"G14AscyxFw2p6fi-ywB2yQ\", \"mf5JX7KWCUWaAeO4-ybWbQ\", \"_vH0_sx-mXvFwEoAyJNFXg\", \"sjUvmBZ50zG1RNIh_n70tA\", \"7GYq9GRdnN2agthhjJlLTg\", \"3flrdG77cL6tRpsGiZ_m9w\", \"o1CSbob0jmLm5f7qMz0kBQ\", \"xtYxDEb__jwKM30BNsz6kA\", \"BGlfMVa6h4OrscYtTR8-sA\", \"nnnymrLZrSqUMavkmI6sZQ\", \"soj4cMgepqEV0r5a_Qp5MA\", \"lyuG3Nbm3IYqCDVQc_7CsA\", \"GufwMMUkKaQIfCwXwZsAEA\", \"TThR1SPLPxENW4WW1yKitw\", \"AbFE96nG5G-QBKT6LrbP7A\", \"Xo1EwX6inpzItJ3y9L3M4w\", \"H3XvEOjzsIwHQ2BRYyul1g\", \"kZDZD8ACwwWEosEQ2jOm6Q\", \"ubE2cHGHXqMatAK465lOWw\", \"ZXWDa66k9qpVixNC3Z992g\", \"pLwrYY3qGxoVEua0d8flmQ\", \"YJtFs__IfP3efNuXIYOnDw\", \"zQVnIUNojDWE2j4p7am1nw\", \"8XVzu6PLrU3BrnOpHZTwdg\", \"pHGDQ9-w-W7Ve6xVyKYpow\", \"_KgcI52GMp8pepmZHbywkA\", \"C0KplLMhXZGsknm85wNffQ\", \"KJkp31jl9R3FetgRxrwdIw\", \"Qqa1x4Kkp06HJBCwaEsYmA\", \"RDyIJwnA7LFWFqdI5WjPig\", \"no-CHpXgaHQ6KFJ0KB8bBw\", \"Pe2z0g58wzFpknk4BTaIFQ\", \"_6K5uEAJLFTlQK30wQGe2A\", \"mmIi9IlRDejw4i0KwqOIGA\", \"P-pGD6CO8eF6XGDWU_8Aiw\", \"zz5K3eYzRf_g3BCkiDeMnQ\", \"z9Lh_S21UoNtwudlIJJePw\", \"KZ6imcwiK459yy6mRp9ISA\", \"jJUvgdJ9y5fvQjk2m8bgcA\", \"KlEPbDDAl_rXAMulVhvmCA\", \"O1HMw9Hhkyx1q17v9gQePg\", \"E5CSfI5YdqFk-VNOX0BoRg\", \"oSyh_rzqCtPai5cA3UTIZA\", \"q1h2fawb9N0iSF5ElpFbBw\", \"8aoRvoDPLnqICWrxQGGyfw\", \"Uzrwstq75mEzuHrvE19hEw\", \"WeSmKvFsfLYy_e1oV9b8tw\", \"4LCjCFKoB-lZuNh5-6F_iQ\", \"qilDDvC4MFNwc0JhnayHJg\", \"cpChYreJKT-TRSmKzaql4w\", \"L1H6MtcWhYoT9jem3gHJFA\", \"l0_kjEP0-0uP7T0NAYwOJg\", \"3FcH3NuXMW7YskVD0LtH-g\", \"9pvh0767GnCeL3cO8O9PlA\", \"dvUVzEWVGJtkdn8PZDq3Sg\", \"1wY2N_wi9b8buzUEzyEnMw\", \"vBOANjeo2i113afuRjTNcQ\", \"o15Q2BuHa-jvBu-z9s9yRA\", \"abM3XUko7mtjhxK6Jr6i5w\", \"SQTKXLnJdGpO6cNXlwj9Zw\", \"DIxgz3UPD35u4Kbf03oMQA\", \"7Mg2oq5yWMj0rucvvjn7PA\", \"AF1QipM6b71wurPxJmBeFATCXrqxzNb0jLacBIaklAAX\", \"_VBKl4m6ZgG7QF4dWdWtig\", \"VBd6YpE6TKcswQQKhbKt6g\", \"xdrS4T7mLymeUYPnduZ9ug\", \"WhF3FF8KdLWUcXCh6OVx9Q\", \"p3Gv3z77xRfCtIsiOjFUww\", \"3dynLyChDeDlg5wunvE7Rw\", \"T1NduewaIEEVs3t0ceUWgg\", \"B4sPfGFX0JvXFlxkNA3-Dw\", \"yL5tOqb0VnhZ18oVfpWISA\", \"DB0-aCtJEysRv5Gx415ayA\", \"v5mfRIhsqN8lhxjUmiC2fA\", \"_ZjEqadvCuc3WEDgI5zmkQ\", \"-K1iu5vdWoeC-o-zt7iIZA\", \"mjpbjIXP_7ddKsa3QfZNYQ\", \"1pecYKUqcayT3SSylBzOww\", \"uQp3CDiva0Sh9tj3DrwOsw\", \"W_s203GbrD3P0UJSYSpVEw\", \"z5qio57UKqURJ6SkEK6gOQ\", \"AryFG8QIuzJ-tsh7nSziMA\", \"lCprrDItNHVodrIppLHqvQ\", \"09USFD0b3qKG_er-DpJQPA\", \"reXi0aGtdn0_yYHWRFu4JA\", \"Nenw6kqKvfNmbvsUXIIt0g\", \"s2Gi_rwGmEQfLXUM2H7z3w\", \"UWX6CtzV7nltI9J0Wj381Q\", \"QVXy4YgCCe5ut-H0wSu2Bg\", \"VxNMKHKZblUu5HNpz3ILWA\", \"a4LwhuIqItYIPgRm4OQUpg\", \"NptaSr1MT-P20OkwHvPX8Q\", \"zrvIqNTc-rjTFLyOjFSxtQ\", \"2wz_pmP2HcHo2jXx_FxC7A\", \"VqvK18yfgDAKU9RdxIO1tw\", \"U2zgbc009IBI6_BiyBS-Ww\", \"suEs4pqoLLL-ak_qe13EKQ\", \"xQMkgr_4EkMFfT3HWImxSQ\", \"MjsVseo9dlZzqnIuViBXqA\", \"nXmNizX7wgynb5L575n_qg\", \"HuV7GypuzO3WFwU7OMHjZg\", \"SiE0dSvesaqPfnmg380bTA\", \"5-Dg8mhP5uIbJHyERgbT5g\", \"WvSnbyzvA1s9_-zRwBID4g\", \"WlY9Mol9V2MBYVHTbiaWBg\", \"6V6hgnfaQA1_IRLcIMGJog\", \"zT_lactY0fs5-lKYQhNmqw\", \"vY7Pz6AUUOaOfArMH2w0Hw\", \"vFXixKcgwBCjloe_G8JZKQ\", \"BPGuLhqtBJubdXR7SGMbpw\", \"lVzCHetFG9XVxSVQ2tFZyg\", \"11FT6Sh8E9HWr0poGK3MjQ\", \"jbfqiY8yIEabaPHH6rHQew\", \"kdJ1pJdfutdK6IaBrY7fpA\", \"TPjOoCR7wtb64dL4qQsvAg\", \"kUoTv6uHI2DSv3qhN8QeeA\", \"izI-4LGv9Dho2JNG6rEvEg\", \"jdl3KBjsZbJIT1eWCC3pZQ\", \"SgZJtGy_2ZwPdCSz5EaGiA\", \"CLDkUiTqb1rBAHgTpTMmdQ\", \"3jIhvtPH9I-EIr1vAGP-cw\", \"7Q6tpkV_4iLSjMaAIJ5Imw\", \"47TJwfuHBpvb_Jb7OaRoIA\", \"AF1QipPzm9kIMPCI4nJ9ykoTmNa7NaN7NSCkI-sHoyYb\", \"rtWt-aypnmxU65YHZDeJnw\", \"gOPgltGeZzwhGyyadkr1kg\", \"kAeOgLgxf4OQ4IeCYqQf3w\", \"8Nj27owCOI24MAxkKMJMRg\", \"MFPz41P_rV39LIryEkklfw\", \"YyTCetf5JjNC2xgLhLtYzQ\", \"OO_Bgmq9YlOAeo0-q0p--g\", \"7nyOV9f2JwK7HJgDvM55YA\", \"CgELaIatsZXdGnU8GF0tng\", \"Y9gJ_5fY1zFsbstcShg2yQ\", \"OaTwD9aKZRHD5rk9paCRHw\", \"E9wlUkdZnrXynYuS2jcY9A\", \"fpEH4c4FsAsuMox-u4pPnQ\", \"8XPUTulpeZ9MXg3m60Z8Aw\", \"-UsCI5rexhzcmFWXyHkTdQ\", \"Syad33M8Jstp94TuYwF1sQ\", \"pamspj6Fk7VHXZcGqjM9XA\", \"azMgSATpmF9liIKrdc7aMQ\", \"9CTvhBBpphEum73fkHBVTw\", \"HUG70GNjDRdCA5P-emwFsA\", \"Uh6AZ1dcLZJg0GWQWs-jWw\", \"01IzjRHOm_jvZYBp1DGRsA\", \"KvbGBYXN4rNRHtSkg6DP2g\", \"UmCQJSzSmJ2YzoHk4NpJKw\", \"qO1CDdEX7W4f_eqbs0Sz3Q\", \"oDWlHnGQRz8atSqFnQvskQ\", \"gwoXaB4rm-t9kz7FOVGt_A\", \"UrADoAKsW-YtMBQlqdXQHw\", \"O6B6FTkyT79X64AqIYbjFw\", \"qnv8t9DDrDuOX90gayzKGg\", \"Mbpt5d5eFPzZbEt877z9gw\", \"IC-N61zmHZmMsdTIL_vEMg\", \"6LwooPxtCzMeRwXoTmHGig\", \"bEDfhcMQUwibQmr7qNM73Q\", \"9fMgqJsT66v8XlASSiPtDQ\", \"RkKbHsgnzOXMCGFW07Vh9w\", \"IQV2l5BH-xQ_YkVRpadBBA\", \"VsZdmjrtrxZRMFFON_-eoQ\", \"GxBw_o_xqxIw1zQfMmtaJQ\", \"f0YmBZqi2Zn2Pc89HHqqlA\", \"qE1TJtgYEWw4NShE9F9Aqw\", \"n1D-o8LI5YK_0V3_jAWDZw\", \"qTY7NZ46IsAevCWOZfcSOA\", \"aG4VYVzpneVeQcDiRro_ug\", \"RR1DNA_fon7a3CuGIT_r0A\", \"E0dkGcSrCA9UDHfJitZ6Mg\", \"ORUUKj5Er3ehStHWzkvMVg\", \"AF1QipPLGypkd44Ptx7Piq2RPd-VCUvUm1eolLUaDJIN\", \"6Zur2oG-51-XaXkOwavRaw\", \"s5uk7VojyoPhmmC_Io4S9Q\", \"Nno00Eupmq24AevQHdUwrQ\", \"qYVn7Is9Y-Tolotb0wYDhw\", \"QdUvaBREYbP98b61_7L8QA\", \"mR_svRBbIc_hcqVI_WGChQ\", \"jlPoRO0wRXRtRp41gWD8-Q\", \"sAXf_j6mmLJ_SrBj8EC6NQ\", \"6YR-AkLxnMJLXdTBWeTTCA\", \"MaJ_jtukcH8Htu3-IlN8pw\", \"dmppnbOJA9bOfPJL_PCNXw\", \"qtKyRXQqAQWboJHPReMQrQ\", \"OlB-BHEei1ORFj3OrDHF1w\", \"52e_pSvMglWMO_vCMaCJNg\", \"05fRyUeEUlOpQTKFUnCpzQ\", \"7E9tTK7LEJjTePQGpKB6tg\", \"A7kySK0fIgqx8BvN8Ljaug\", \"eORqntvaXX2f53DopF0xPQ\", \"yR3Dp7X52wuwv2goLh16fg\", \"kFptukmOqu-9nA0a8b75Kg\", \"zzmA3S49xKvc5yn6sEA8OQ\", \"1CKjtZPvexWN1Qp-Fgm0Vg\", \"OWbNu225gPlKLq7Bpdu6UA\", \"J1T0TyDqlm6ylKpd-yqUsw\", \"0BWPnfgnA0GhgpUJFOudsA\", \"cHOLFK0YyHj9wZQOpLWBjQ\", \"rxkyNbwCNfsMfbL2GpVwnw\", \"kkJdH_SEVFg2D10lAMW4nA\", \"QTDkziH1Hf0H9hSoQibkLg\", \"RZhQ7x8ahUQUu6catN79-w\", \"CWI4EITeXXIS-cCotgWU3w\", \"LUepb3Ueu_wzn66-xozhsA\", \"MxcmYo4rxG1H8ggXkI2WBA\", \"1X_pBCP3a3aJQG617a8q5A\", \"9iChgpzMLuR-rRMuc8z0qA\", \"3aIPm5s4DFMjqN5FosxxOg\", \"wGFfa-ikoZ3dD3QVCEOZ2A\", \"Osb0eI7mNo5a7Bl8CC8R9A\", \"2t3PEHXaVHlC0-BtL-ph2g\", \"sX3N7rJe6ayeEHXltDdFVQ\", \"85SXO_CBqp37qsnDfv6M1w\", \"yTsmbi65uDECUrKyxzHw1g\", \"L9E84HNABLxqZCDMoDiKLg\", \"NG-g79EJ1h0PeKNj7bHgSg\", \"qVq33DE6fhI-YLLmbfuBEQ\", \"eVndxFx1ho7YDnZxic4rMA\", \"oncd5LtH29ypL7i6ZtCx6w\", \"_OrVmQNGxPj5ZtbPrRMHNA\", \"1frawj7Q1CbzlpThpkILLg\", \"n5UwfwAhDKa-8_cCQwa-Gw\", \"tcC_1FWV-FHWpFyDWOjuDw\", \"-mkTqgMcXDe_1wtMQpSI7g\", \"-UrtZusYV8TwRznE-X4TzQ\", \"m2thAQ4TrooPPND1qL_gBQ\", \"3CcFA_gneLSf1hihYFHk_w\", \"8j3LrnUu9urwJjuU_R3ZTg\", \"QzNMadOyfje_CEK4rnYSNw\", \"yRM3hWh7GMcZ4f3iBqT-LA\", \"uYGZz4ssWky2SOw76aFFUg\", \"R1xph-b8KhJx_4RPZTFrvw\", \"BQT5Y-xMsckd881Iu1JEWg\", \"Lv2qaDzMrPWLWISQsL51cg\", \"BVftm6lfPCCXvP60Yh0Eig\", \"-hLnKiRFH0BaCecrZNFUCw\", \"PU91B1SVyP85ww-f1yx7-Q\", \"LvAebaYdp1w85GZLXVQ2qQ\", \"z9lxTOBite5EHtE8ASSAvA\", \"hK6HSBWqouwTtUxeO-E0mg\", \"QlrMv8mhXuuj1q3qOk7TVg\", \"k7uyMXrdC0fLEI3PDgrSjw\", \"FPKMIl6ER-h44mqHZ7t5Ig\", \"Yb39GckSiZdvC-7CVV8AzQ\", \"y0gSyDkGggmuFSAfqAOijA\", \"QANVbpS4Kr9Ks0Rtd2S15A\", \"YLAg-RYAMJjUmUors4p2LA\", \"cxQX1qNbFGGOhVjRLWXhSA\", \"xqWuAHJ4BOFRVEtJMZrXCg\", \"K6ASRb0hlJP9pLDBeoAvMQ\", \"cXYkh2-B0FsM2dOlJ_zbyA\", \"8c5hbWxigzToVMtjutYhpQ\", \"E79DWvT1ELOcg_6eWb4pdw\", \"MOLx4cIEGMOwJZost9tuNQ\", \"5nX_Uy9vonnk1CuD4qbzhg\", \"GC2cq5K6ULVVvZPNtxJVgw\", \"WSCzwpug50o-GfI5KRfwbw\", \"0APqgUzM0tirLSTUPeV3oQ\", \"3GXyumIdJywrFBxczPRrJA\", \"-iwR3y2oQKvY2glZzoaFEg\", \"uLhR61rjlGFRYI3uUzoaTw\", \"hWJTaA94T2dsFfYKrPkdPg\", \"trRm01DRfOgAwSoHEN9wyw\", \"VoTwoHTfbI0GzCVFS_qDow\", \"7_FWgM0dO4ThFBtUqVSGOA\", \"ysbtfvWYR8Q7snqvOA3Kqg\", \"fBEvGikHeZ8gVs5oYhHWCg\", \"xG1xwgXAMlQHxWzsjoYtBA\", \"zO16q7w6UWtnH56yEQ4cWA\", \"cWnC55GKOSrFTptySAk3uA\", \"MdlafVrlQzW8grH04FIiMQ\", \"T18RNFPhhFEt401LQwSrpQ\", \"npVnPD-E5BMuIntdXtYxIg\", \"3P6BNRN6ECumDnmQyYGEDQ\", \"oV9hEh4pkTkQF7-Tr0f3OQ\", \"112XHthNApcld-uHMju7mw\", \"XqUIm9_HVM4Z-jZpd3b0Yw\", \"jZvoNgclxlbikUEgrEE4Ag\", \"efPoUwcdA7kHTzhUk67xJw\", \"zQZ_f5q_jKmj8R_1bZ09qA\", \"YRjgNr8_dmih3ZQFqURsZw\", \"7-eo4B4GN-5GOSDwhcZVBg\", \"RTbTeexGRT9QZdcSSXCM4g\", \"BCYds5SlVwg3k-mFWNz9-Q\", \"6cRlzDVbtQKSnw7hrR7h9g\", \"Iku7JsInHHi0-AHHQyt7Eg\", \"51X6AnMe_JqRFe1M6STp-g\", \"4PDYJm1gfDZgfQzIO4Kuxw\", \"b35mcIhl41KYBU_Vph-CKQ\", \"YL0Sm5AIcl9-VNQ7FNMApw\", \"NSHJhFuwKLH9hJzouBC1Pw\", \"iT63JOzKJUSvrWikXG0giA\", \"Em3mwtjomD9IEUZo1boqiw\", \"IAfwM2EKdxNKSZukdwRzFA\", \"rdhqnVKSRnTUD2sRpN3FRw\", \"OZMWXI5LlkogxKZFDl0xew\", \"FT4TCXw4t6LCJEhLtnBDwA\", \"unEvYYzSYPjX7NLK7wR-ZQ\", \"dR7LsHDD-QqIiTM2qQMdWA\", \"kv23EDunkiOKUkut_CuCnw\", \"hGTh-drMO-29RFTQn6AxkA\", \"_RiXuFnaMv57yX-NIed8Tg\", \"y92Q-ch_8B9CEHq3__ZvcA\", \"AF1QipMHwFoVoJoRBkZWpPb-wi6bmz6jphOkj-580G-P\", \"6gi_aCJaedg9F9tucoqY6g\", \"MFgQhFXfpJnzsMOOJ5seEg\", \"AJZ_5ySL4fiAFVOhFnGFaA\", \"3NaSqB5g1TYJhTp2bliDGA\", \"Qa-x4YFl3FATz4a_cLgMgw\", \"_VOD4xtVQ00rI_J8z0esXQ\", \"zFR_tEdH-8hvW-Zgn56D2A\", \"GTR0rEFPlE7I79mLCwhhEQ\", \"40htfJD8OPzaer41Keyo5w\", \"NNhwfqlCpuooQxSMHUUwTA\", \"K8zqKplJWR1oyXgsOuq2IA\", \"nzRzhyTxJz_bLcuO42HdsA\", \"ljgl3isLZ64WYrIoNRdeIA\", \"VFmzP8H2Tpz39eZVE-0kwg\", \"ugJMIJ6fPk4rLoGeDb1YjQ\", \"MNpuudYiUijXigSomysArQ\", \"2zHf99yqJ7UcZmk_fUz5vA\", \"snnv8hRyqYxhZkwH3BkuyQ\", \"7u4_EWb2raV6VYC9j96USA\", \"iU4nZOd1kSdKFH6AJJ-aJw\", \"2exxtQeW84As8MbMIiFGzA\", \"TjCKrhoGSKPKhvjybpAfdA\", \"JEnHPZLO4IVBJfo_tjQcSA\", \"ljMs3U-TBUE7iaeI_XhE1g\", \"xUkrptK2NVzztYF_jqPwtw\", \"ay6OwaVIDOH16vsBGyL34w\", \"tYlViHOvF2aTr7eG9x5ADg\", \"5QqJg5Y1FjXPzNvBAzckQw\", \"KJvWan8UhZ9dbNMVfZmv_g\", \"xBKk5W92NU18I8pl6HPTVw\", \"Ck3GHvumfFKUKwaesTbVfQ\", \"cAv3nbQR6-BilM8Pb6nHTg\", \"FY5IkqU08zZzk8ncEiJ-CA\", \"-kJOFbpGsWGYNqWomIPSMQ\", \"8q8HJcH8uzklyAd1z-LNtQ\", \"PsC0DVTEc7iBYatuPqfVag\", \"8boBGjDzf0tVAJQeRhJn1A\", \"fpO1-oxFAVUadMAX1XZHtQ\", \"oDpwHYcPQ72SoKbEZ7N7Rw\", \"pBhQ2anjLQQj3FzZLrCn5A\", \"UdSyJDzP_vPfP5FkL3ix1Q\", \"65sEzh1IivPexNEu06RTsw\", \"mdHbj4YZYCHxybFHghY5MQ\", \"JQi4PbCwMKtsgGRdVI914w\", \"s_9Rn6HgpbwVbUyqxH1LwA\", \"u5rabN_RM7c1bYB3ou9RAw\", \"6oX0oXz57Mr5rklb74kWrQ\", \"4eo6oNPh1fYWgAwSh20pug\", \"IWV_Rf0exWPjVXmGMhR-wA\", \"4vUMCh2jpMFwOiB7XOCccA\", \"wMlY0jxt_IVrSeCMsl56pg\", \"n1Slji05mpNMHZmhEF8dwA\", \"qO1CDdEX7W4f_eqbs0Sz3Q\", \"IUQy8G9xWuHhyhkKC3pn8A\", \"3LREolxH8tmZe_oklPGOTQ\", \"Olpo2id2SN21TOjipywo8Q\", \"y2Ego_4bUDRjUuJAAw_RcQ\", \"LstZoYOTOu1x-a05ZkJgbw\", \"ZKdj23CHjh1d96YyqTl-2Q\", \"w4s86MeEMrBWdamtpgJCxg\", \"5HnUM6Ondv_Drw7gLWHrog\", \"APr3kiq5kFeQDAby0gyGbg\", \"tN5boKcIYWxqskEiJK9xlw\", \"zDJW0bEILqYvc8Ilkl3GsA\", \"ssCtZ2Qnk_RSOvyOmd8ZoA\", \"Iq_Uq8rRXGSD83KcDkqFKQ\", \"YhlHXsuofNYTf1E2SEsvfg\", \"2oioqQV77JXgZyn5puKBXA\", \"F21k4wUJiOEKyt-XLkdxAw\", \"P2ySkuQbyZ0kjNzgKZ3-ww\", \"AF1QipPUmEr5CZeLWOTN6KVo_W_5Hx3ZDsmWCYzDJUdK\", \"YjG1PejXcn6fNpCkt_vKIQ\", \"UdVis1Vj6gdvd05WGmlebg\", \"iq-koEYkN-fUSbzEdUMrCg\", \"dpxEfVx0Pwno_K0qvhPQOw\", \"8mWiLtKYhNVUfDLp8KeeTg\", \"cLNMPm5t-wAKcTMZoTDRfA\", \"qoJkowmwLCVv4TLYq0kCSw\", \"fvh9C_g_u4YBTuJKniDUdg\", \"SCrgjnoHT490IwrsERrpHQ\", \"y0PwGLtw2Hri17BT4IFd8Q\", \"b5vQ2xLcmCSXbcBj7hMonw\", \"vexjDrSQymWr-RORen8N7A\", \"A_K8ekybfxMvhwwgmeiaEA\", \"ot0cKeGXxAWMBISVq9H8nQ\", \"cxQX1qNbFGGOhVjRLWXhSA\", \"w7F2V8VRleRm-vggrOvEng\", \"ytQl6nB2dzXxuCjT0T0tOQ\", \"kuAemT14tdyyAkMjpMRd_A\", \"goY8_nRDoTGlJww-ETRn7Q\", \"9PbvE69CQM1cZy1k-3YBfg\", \"9TY--wT5-_vDWGXtxOif6g\", \"z8J24F3c3ujDVfPsRVMAtQ\", \"92i2dojSJIDV-Z-7kyg5DA\", \"RESzl01n732Ab5QUThbKag\", \"cZP0sKYTlEAf1jBbLCDkwQ\", \"9CrhmoQhYuz-GGF23JVNBw\", \"jDUdqqcbJJiR2vdvlVVE1A\", \"kHDuS2BA1eCVDZlnIGYNiA\", \"faJ5mIXWju1FJXqt7a9Y6Q\", \"vFEABqGNJ76OjDExuBr14A\", \"5vxl0uyMNNUomDQdOk1iPg\", \"0Wukq4NzeYy447dJKyhkXw\", \"QWJdtoL-ZFeGy3d0eSdqhQ\", \"o1B4ToxconS9ATwd4kvKgA\", \"rm_3OPJbov0X9rL_LxpRGA\", \"zMCEOzVh25kWFXnnaZmd0Q\", \"lQfZm7CLi00d26blxbiwKw\", \"Ilp18CohuGJPGLGe2-KU0g\", \"eSUUnPwqr1GUrKtqFVOQ8g\", \"s_SBe3FYheh9y2R7lY_C3Q\", \"PoGhYrhk0kEauZvWNZ9VUQ\", \"dmy_Lu-4TPMatC7xuZqjaQ\", \"j9lXPLClUMSL25a2VQigmg\", \"cFljSeR9aD0yQFdR9xEWZg\", \"eZ0EfmPoBnNPIW4lxm4ndw\", \"ZsQ-h4HPqYF8YwlJBe4Uxw\", \"evz5yzuRNH0B_f-Ix_7Wfg\", \"VPwEWWbJiwvqA85aB_lywA\", \"9FIFAORdkzzttCoQGJS9bA\", \"9XAjQrDcyzcyiXfEpdBiQA\", \"sBATNUYPt3fNBzJ2eNyXVw\", \"fmhcRId3KjPvLmj8_p7ERw\", \"fgw8enMFRL8mI9TSHkdN8g\", \"DQXjdMbfWAevbhuvZizd9Q\", \"o952E6yuPjQa0CD0EcKLcQ\", \"v2fm-24hfCfzBiazWB3luQ\", \"NtYCOJwM7zZhWK6zdF0_MA\", \"M8w8NFKo6qJ4jvy3YgJqaQ\", \"Uaw_Z7FRMt5vdjcsgt5gbA\", \"0f-EQU0yUjxaSrz3tAld4w\", \"sIb-rOjfWmqnytgv2VYN_w\", \"q05-DCYLaMGCJcvBVWywdw\", \"r1wU8IUamLcin2b4D24LHQ\", \"bJUDZ9amBb7bnTj0Xq_A6w\", \"dgmqwTTAzp48SDvjNRTH8Q\", \"aqqzYH93YgEQCcyMeCffkQ\", \"hcOv5KXgFvLTrcMmSz7czw\", \"mh3aBWK5YDenrG-Phxdfsg\", \"qnv8t9DDrDuOX90gayzKGg\", \"v__cubK_9SSdttfM_A16TA\", \"Vik7yhmzcW6Vr5BUm1D14A\", \"I7W-WrmcfxRe-H6yVL58rw\", \"BX4H70SmklJnCQzzA84g2g\", \"cw1oticqAeUMo9Ywr8BRYQ\", \"BmlRToSFIEf8ok4MliqaFQ\", \"85SXO_CBqp37qsnDfv6M1w\", \"OPYDwn3871KjqEXCKPXTMQ\", \"l8c9XL4L6r9ZMh_A5DWQ7A\", \"IjZoj9QI3HmH8OB3QCKf9A\", \"O6bn-W-Ht0pqv9Cf70x5pA\", \"bVpvH1MHYx94PSmeAzv2jg\", \"GDhgktiViQf36EaMG2r2nA\", \"y5SHuzKEEZ-o9N9j9MXvRQ\", \"9codcCKn6ojXfavVs1GGlA\", \"w3xq65rb0tJm4_EtjSxfOA\", \"wBsQNmHlGmgY5pdaNmQsUg\", \"2dz1DHM8Y-OCZ7nvt-nENg\", \"t94jbpQXkGXkYLwd44MXuQ\", \"yXIne4gd3vD44FGu75zv1A\", \"NXWQnWSZp0WYfUuMbV0JKg\", \"UgtDCXCZReqfBc3wUnQ_jA\", \"bE0eL4S1ZDBtX51Fv41EdQ\", \"clFrJh-MBzAHDCSl1p4c7g\", \"vn3NDAIpOJnyVBpVfyrRtA\", \"NEoSo3kELbVXEL_2W75VKw\", \"GzhxQANlSG0wGwzK_tKlTw\", \"9ewm1M5IxTFVYvqe3qHgcQ\", \"MOLx4cIEGMOwJZost9tuNQ\", \"U4E170pO-r4qi6Pvg8lY3A\", \"TsmPmkv9qxj3zcGWB_Qahw\", \"Ofq89ILTXfaZOE5HZX_fqg\", \"PULEBbNgB_nrWLYAcryDWA\", \"dgmqwTTAzp48SDvjNRTH8Q\", \"vKDMGVxz5VJYVS1UxB-6ig\", \"V1bv2vAkKpwg7qlvnF4I4w\", \"J5ixaYFQpWEdX111QzIgow\", \"AF1QipMwFs7AU2tk4NKqDHo611Zlya_GBYvk72z08qZi\", \"jeUCGWHdAqwEfUVZEUVp5w\", \"7DQ4uG6__Uffs1yngZRRbQ\", \"E3HTImUb4xjPBa8D99Npdw\", \"k_-SLY1nWt4ZIRFQQ47oHA\", \"5ZHXGeJR7nNP20kfAjMUEw\", \"LxrsFpkdNQf57iuAGdm-6g\", \"AF1QipOBLZMZZi4iglSajW8Hj4zAZUFbWe2GJeWZpuYL\", \"fVAbxnWsv6fMhE4s-zhbBw\", \"jigZmO20dvwF3U08_zqLig\", \"5eHWywA1yLA6wbfSaAJB0w\", \"FEEaD2kaucLMhuDDKaMp-Q\", \"Ku6VI6NQeTiJVLTpW9wGWA\", \"WVhx_Zxk2psJh28Xm-VbCA\", \"C6UC9czokxa1zNEhNTTHJA\", \"lBy8rGgehXds55UPdDwfrQ\", \"Lsdkoln9s38glQCwimvofw\", \"vwmtsG9oDqpw5OvHkz9nuw\", \"MeAPEG37imyKHLm5d14I6Q\", \"4CC5FOOj7CWHhmAAo9QMyQ\", \"uhrNjivimNJg4XmxaQ15dQ\", \"VOCmb6viiOgXUReiSQOO0w\", \"6p6Doc5ukqRfrjOPmH4_cA\", \"eGTPvePyFCEmTZxU7M_AMQ\", \"CsreFDvWZYioQ2PJ3PlU_Q\", \"Tv3wuNx7NgtwE2xZzCFaSQ\", \"88KBurDru11ON9tnwemucA\", \"U585inZL4Wy3DHeJTybnmw\", \"EJwmnJqNMw4gBdkH-QfBCQ\"]\n",
|
516 |
+
"download_panos_from_ids(panos, \"panorama_ids\")"
|
517 |
+
]
|
518 |
+
},
|
519 |
+
{
|
520 |
+
"cell_type": "code",
|
521 |
+
"execution_count": null,
|
522 |
+
"metadata": {
|
523 |
+
"id": "r1tSn0eSn1w0"
|
524 |
+
},
|
525 |
+
"outputs": [],
|
526 |
+
"source": [
|
527 |
+
"# mappings\n",
|
528 |
+
"COUNTRY_TO_CONTINENT = {\n",
|
529 |
+
" \"AD\": \"Europe\",\n",
|
530 |
+
" \"AE\": \"Asia\",\n",
|
531 |
+
" \"AF\": \"Asia\",\n",
|
532 |
+
" \"AG\": \"North America\",\n",
|
533 |
+
" \"AI\": \"North America\",\n",
|
534 |
+
" \"AL\": \"Europe\",\n",
|
535 |
+
" \"AM\": \"Asia\",\n",
|
536 |
+
" \"AN\": \"North America\",\n",
|
537 |
+
" \"AO\": \"Africa\",\n",
|
538 |
+
" \"AQ\": \"Antarctica\",\n",
|
539 |
+
" \"AR\": \"South America\",\n",
|
540 |
+
" \"AS\": \"Australia\",\n",
|
541 |
+
" \"AT\": \"Europe\",\n",
|
542 |
+
" \"AU\": \"Australia\",\n",
|
543 |
+
" \"AW\": \"North America\",\n",
|
544 |
+
" \"AZ\": \"Asia\",\n",
|
545 |
+
" \"BA\": \"Europe\",\n",
|
546 |
+
" \"BB\": \"North America\",\n",
|
547 |
+
" \"BD\": \"Asia\",\n",
|
548 |
+
" \"BE\": \"Europe\",\n",
|
549 |
+
" \"BF\": \"Africa\",\n",
|
550 |
+
" \"BG\": \"Europe\",\n",
|
551 |
+
" \"BH\": \"Asia\",\n",
|
552 |
+
" \"BI\": \"Africa\",\n",
|
553 |
+
" \"BJ\": \"Africa\",\n",
|
554 |
+
" \"BM\": \"North America\",\n",
|
555 |
+
" \"BN\": \"Asia\",\n",
|
556 |
+
" \"BO\": \"South America\",\n",
|
557 |
+
" \"BR\": \"South America\",\n",
|
558 |
+
" \"BS\": \"North America\",\n",
|
559 |
+
" \"BT\": \"Asia\",\n",
|
560 |
+
" \"BW\": \"Africa\",\n",
|
561 |
+
" \"BY\": \"Europe\",\n",
|
562 |
+
" \"BZ\": \"North America\",\n",
|
563 |
+
" \"CA\": \"North America\",\n",
|
564 |
+
" \"CC\": \"Asia\",\n",
|
565 |
+
" \"CD\": \"Africa\",\n",
|
566 |
+
" \"CF\": \"Africa\",\n",
|
567 |
+
" \"CG\": \"Africa\",\n",
|
568 |
+
" \"CH\": \"Europe\",\n",
|
569 |
+
" \"CI\": \"Africa\",\n",
|
570 |
+
" \"CK\": \"Australia\",\n",
|
571 |
+
" \"CL\": \"South America\",\n",
|
572 |
+
" \"CM\": \"Africa\",\n",
|
573 |
+
" \"CN\": \"Asia\",\n",
|
574 |
+
" \"CO\": \"South America\",\n",
|
575 |
+
" \"CR\": \"North America\",\n",
|
576 |
+
" \"CU\": \"North America\",\n",
|
577 |
+
" \"CV\": \"Africa\",\n",
|
578 |
+
" \"CX\": \"Asia\",\n",
|
579 |
+
" \"CY\": \"Asia\",\n",
|
580 |
+
" \"CZ\": \"Europe\",\n",
|
581 |
+
" \"DE\": \"Europe\",\n",
|
582 |
+
" \"DJ\": \"Africa\",\n",
|
583 |
+
" \"DK\": \"Europe\",\n",
|
584 |
+
" \"DM\": \"North America\",\n",
|
585 |
+
" \"DO\": \"North America\",\n",
|
586 |
+
" \"DZ\": \"Africa\",\n",
|
587 |
+
" \"EC\": \"South America\",\n",
|
588 |
+
" \"EE\": \"Europe\",\n",
|
589 |
+
" \"EG\": \"Africa\",\n",
|
590 |
+
" \"EH\": \"Africa\",\n",
|
591 |
+
" \"ER\": \"Africa\",\n",
|
592 |
+
" \"ES\": \"Europe\",\n",
|
593 |
+
" \"ET\": \"Africa\",\n",
|
594 |
+
" \"FI\": \"Europe\",\n",
|
595 |
+
" \"FJ\": \"Australia\",\n",
|
596 |
+
" \"FK\": \"South America\",\n",
|
597 |
+
" \"FM\": \"Australia\",\n",
|
598 |
+
" \"FO\": \"Europe\",\n",
|
599 |
+
" \"FR\": \"Europe\",\n",
|
600 |
+
" \"GA\": \"Africa\",\n",
|
601 |
+
" \"GB\": \"Europe\",\n",
|
602 |
+
" \"GD\": \"North America\",\n",
|
603 |
+
" \"GE\": \"Asia\",\n",
|
604 |
+
" \"GF\": \"South America\",\n",
|
605 |
+
" \"GG\": \"Europe\",\n",
|
606 |
+
" \"GH\": \"Africa\",\n",
|
607 |
+
" \"GI\": \"Europe\",\n",
|
608 |
+
" \"GL\": \"North America\",\n",
|
609 |
+
" \"GM\": \"Africa\",\n",
|
610 |
+
" \"GN\": \"Africa\",\n",
|
611 |
+
" \"GP\": \"North America\",\n",
|
612 |
+
" \"GQ\": \"Africa\",\n",
|
613 |
+
" \"GR\": \"Europe\",\n",
|
614 |
+
" \"GS\": \"Antarctica\",\n",
|
615 |
+
" \"GT\": \"North America\",\n",
|
616 |
+
" \"GU\": \"Australia\",\n",
|
617 |
+
" \"GW\": \"Africa\",\n",
|
618 |
+
" \"GY\": \"South America\",\n",
|
619 |
+
" \"HK\": \"Asia\",\n",
|
620 |
+
" \"HN\": \"North America\",\n",
|
621 |
+
" \"HR\": \"Europe\",\n",
|
622 |
+
" \"HT\": \"North America\",\n",
|
623 |
+
" \"HU\": \"Europe\",\n",
|
624 |
+
" \"ID\": \"Asia\",\n",
|
625 |
+
" \"IE\": \"Europe\",\n",
|
626 |
+
" \"IL\": \"Asia\",\n",
|
627 |
+
" \"IM\": \"Europe\",\n",
|
628 |
+
" \"IN\": \"Asia\",\n",
|
629 |
+
" \"IO\": \"Asia\",\n",
|
630 |
+
" \"IQ\": \"Asia\",\n",
|
631 |
+
" \"IR\": \"Asia\",\n",
|
632 |
+
" \"IS\": \"Europe\",\n",
|
633 |
+
" \"IT\": \"Europe\",\n",
|
634 |
+
" \"JE\": \"Europe\",\n",
|
635 |
+
" \"JM\": \"North America\",\n",
|
636 |
+
" \"JO\": \"Asia\",\n",
|
637 |
+
" \"JP\": \"Asia\",\n",
|
638 |
+
" \"KE\": \"Africa\",\n",
|
639 |
+
" \"KG\": \"Asia\",\n",
|
640 |
+
" \"KH\": \"Asia\",\n",
|
641 |
+
" \"KI\": \"Australia\",\n",
|
642 |
+
" \"KM\": \"Africa\",\n",
|
643 |
+
" \"KN\": \"North America\",\n",
|
644 |
+
" \"KP\": \"Asia\",\n",
|
645 |
+
" \"KR\": \"Asia\",\n",
|
646 |
+
" \"KW\": \"Asia\",\n",
|
647 |
+
" \"KY\": \"North America\",\n",
|
648 |
+
" \"KZ\": \"Asia\",\n",
|
649 |
+
" \"LA\": \"Asia\",\n",
|
650 |
+
" \"LB\": \"Asia\",\n",
|
651 |
+
" \"LC\": \"North America\",\n",
|
652 |
+
" \"LI\": \"Europe\",\n",
|
653 |
+
" \"LK\": \"Asia\",\n",
|
654 |
+
" \"LR\": \"Africa\",\n",
|
655 |
+
" \"LS\": \"Africa\",\n",
|
656 |
+
" \"LT\": \"Europe\",\n",
|
657 |
+
" \"LU\": \"Europe\",\n",
|
658 |
+
" \"LV\": \"Europe\",\n",
|
659 |
+
" \"LY\": \"Africa\",\n",
|
660 |
+
" \"MA\": \"Africa\",\n",
|
661 |
+
" \"MC\": \"Europe\",\n",
|
662 |
+
" \"MD\": \"Europe\",\n",
|
663 |
+
" \"ME\": \"Europe\",\n",
|
664 |
+
" \"MG\": \"Africa\",\n",
|
665 |
+
" \"MH\": \"Australia\",\n",
|
666 |
+
" \"MK\": \"Europe\",\n",
|
667 |
+
" \"ML\": \"Africa\",\n",
|
668 |
+
" \"MM\": \"Asia\",\n",
|
669 |
+
" \"MN\": \"Asia\",\n",
|
670 |
+
" \"MO\": \"Asia\",\n",
|
671 |
+
" \"MP\": \"Australia\",\n",
|
672 |
+
" \"MQ\": \"North America\",\n",
|
673 |
+
" \"MR\": \"Africa\",\n",
|
674 |
+
" \"MS\": \"North America\",\n",
|
675 |
+
" \"MT\": \"Europe\",\n",
|
676 |
+
" \"MU\": \"Africa\",\n",
|
677 |
+
" \"MV\": \"Asia\",\n",
|
678 |
+
" \"MW\": \"Africa\",\n",
|
679 |
+
"}"
|
680 |
+
]
|
681 |
+
},
|
682 |
+
{
|
683 |
+
"cell_type": "code",
|
684 |
+
"source": [
|
685 |
+
"!pip install pycountry_convert"
|
686 |
+
],
|
687 |
+
"metadata": {
|
688 |
+
"id": "B6zoYdhimygr"
|
689 |
+
},
|
690 |
+
"execution_count": null,
|
691 |
+
"outputs": []
|
692 |
+
},
|
693 |
+
{
|
694 |
+
"cell_type": "code",
|
695 |
+
"source": [
|
696 |
+
"import requests\n",
|
697 |
+
"import pycountry_convert as pc\n",
|
698 |
+
"\n",
|
699 |
+
"# Your Google Geocoding API key\n",
|
700 |
+
"api_key = 'YOUR_KEY'\n",
|
701 |
+
"\n",
|
702 |
+
"# Function to fetch detailed address components from coordinates using the Google Geocoding API\n",
|
703 |
+
"def get_address_details(lat, lon, api_key):\n",
|
704 |
+
" url = f\"https://maps.googleapis.com/maps/api/geocode/json?latlng={lat},{lon}&key={api_key}\"\n",
|
705 |
+
" response = requests.get(url)\n",
|
706 |
+
" details = {\"Country\": \"\", \"Continent\": \"\", \"Province/Region\": \"\"}\n",
|
707 |
+
" if response.status_code == 200:\n",
|
708 |
+
" data = response.json()\n",
|
709 |
+
" if data['results']:\n",
|
710 |
+
" for component in data['results'][0]['address_components']:\n",
|
711 |
+
" if \"country\" in component['types']:\n",
|
712 |
+
" details[\"Country\"] = component['long_name']\n",
|
713 |
+
" country_code = component['short_name']\n",
|
714 |
+
" continent = country_to_continent(country_code)\n",
|
715 |
+
" details[\"Continent\"] = continent if continent else \"\"\n",
|
716 |
+
" elif \"administrative_area_level_1\" in component['types']:\n",
|
717 |
+
" details[\"Province/Region\"] = component['long_name']\n",
|
718 |
+
" return details\n",
|
719 |
+
"\n",
|
720 |
+
"def country_to_continent(country_alpha2):\n",
|
721 |
+
" country_continent_code = pc.country_alpha2_to_continent_code(country_alpha2)\n",
|
722 |
+
" country_continent_name = pc.convert_continent_code_to_continent_name(country_continent_code)\n",
|
723 |
+
" return country_continent_name\n"
|
724 |
+
],
|
725 |
+
"metadata": {
|
726 |
+
"id": "zruVyBS-L2KK"
|
727 |
+
},
|
728 |
+
"execution_count": null,
|
729 |
+
"outputs": []
|
730 |
+
},
|
731 |
+
{
|
732 |
+
"cell_type": "code",
|
733 |
+
"execution_count": null,
|
734 |
+
"metadata": {
|
735 |
+
"id": "Qg7Wy5rtLoqm"
|
736 |
+
},
|
737 |
+
"outputs": [],
|
738 |
+
"source": [
|
739 |
+
"# create .txt caption files from google drive\n",
|
740 |
+
"\n",
|
741 |
+
"# in colab, mount google drive folder with path containing images\n",
|
742 |
+
"# in a for loop, iterate over the images\n",
|
743 |
+
" # for each image, create a txt file\n",
|
744 |
+
" # read the coordinates of the image location from the file name\n",
|
745 |
+
" # use the google geocoding API to fetch the address from the coordinates and write that into the txt file\n",
|
746 |
+
" # save the txt file with the same name as the image file\n",
|
747 |
+
"\n",
|
748 |
+
"from google.colab import drive\n",
|
749 |
+
"import os\n",
|
750 |
+
"\n",
|
751 |
+
"drive.mount('/content/drive')\n",
|
752 |
+
"image_folder_path = '/content/drive/My Drive/Princeton/Senior/IW/Data/images'\n",
|
753 |
+
"\n",
|
754 |
+
"\n",
|
755 |
+
"# Iterate over each file in the image folder\n",
|
756 |
+
"for filename in os.listdir(image_folder_path):\n",
|
757 |
+
" if filename.endswith('.jpg'):\n",
|
758 |
+
" # Extracting latitude and longitude from the filename\n",
|
759 |
+
" parts = filename.split('_') # Splitting the filename into parts\n",
|
760 |
+
" try:\n",
|
761 |
+
" # Assuming the last two parts are latitude and longitude\n",
|
762 |
+
" lat, lon = parts[-2], parts[-1].rstrip('.jpg')\n",
|
763 |
+
" lat, lon = float(lat), float(lon)\n",
|
764 |
+
" except ValueError:\n",
|
765 |
+
" print(f\"Skipping {filename}: unable to extract coordinates\")\n",
|
766 |
+
" continue\n",
|
767 |
+
"\n",
|
768 |
+
" # Fetch the address using the Google Geocoding API\n",
|
769 |
+
" details = get_address_details(lat, lon, api_key)\n",
|
770 |
+
"\n",
|
771 |
+
" # Create a text file with the same base name as the image file, but with a .txt extension\n",
|
772 |
+
" txt_filename = os.path.join(image_folder_path, f\"{filename[:-4]}.txt\")\n",
|
773 |
+
"\n",
|
774 |
+
" with open(txt_filename, 'w') as f:\n",
|
775 |
+
" f.write(\"StreetView360X, \")\n",
|
776 |
+
" f.write(f\"{details['Country']}, \")\n",
|
777 |
+
" if details['Continent'] != \"\":\n",
|
778 |
+
" f.write(f\"{details['Continent']}, \")\n",
|
779 |
+
" if details['Province/Region'] != \"\":\n",
|
780 |
+
" f.write(f\"{details['Province/Region']}\")\n",
|
781 |
+
"\n",
|
782 |
+
" print(f\"Address for {filename} written to {txt_filename}\")"
|
783 |
+
]
|
784 |
+
},
|
785 |
+
{
|
786 |
+
"cell_type": "code",
|
787 |
+
"execution_count": null,
|
788 |
+
"metadata": {
|
789 |
+
"id": "IiRq9WJ90vvS",
|
790 |
+
"colab": {
|
791 |
+
"base_uri": "https://localhost:8080/",
|
792 |
+
"height": 35
|
793 |
+
},
|
794 |
+
"outputId": "9a2fff44-1680-4b57-c565-94d1cd4152ce"
|
795 |
+
},
|
796 |
+
"outputs": [
|
797 |
+
{
|
798 |
+
"output_type": "stream",
|
799 |
+
"name": "stdout",
|
800 |
+
"text": [
|
801 |
+
"Mounted at /content/drive\n"
|
802 |
+
]
|
803 |
+
},
|
804 |
+
{
|
805 |
+
"output_type": "display_data",
|
806 |
+
"data": {
|
807 |
+
"text/plain": [
|
808 |
+
"<IPython.core.display.Javascript object>"
|
809 |
+
],
|
810 |
+
"application/javascript": [
|
811 |
+
"\n",
|
812 |
+
" async function download(id, filename, size) {\n",
|
813 |
+
" if (!google.colab.kernel.accessAllowed) {\n",
|
814 |
+
" return;\n",
|
815 |
+
" }\n",
|
816 |
+
" const div = document.createElement('div');\n",
|
817 |
+
" const label = document.createElement('label');\n",
|
818 |
+
" label.textContent = `Downloading \"${filename}\": `;\n",
|
819 |
+
" div.appendChild(label);\n",
|
820 |
+
" const progress = document.createElement('progress');\n",
|
821 |
+
" progress.max = size;\n",
|
822 |
+
" div.appendChild(progress);\n",
|
823 |
+
" document.body.appendChild(div);\n",
|
824 |
+
"\n",
|
825 |
+
" const buffers = [];\n",
|
826 |
+
" let downloaded = 0;\n",
|
827 |
+
"\n",
|
828 |
+
" const channel = await google.colab.kernel.comms.open(id);\n",
|
829 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
830 |
+
" channel.send({})\n",
|
831 |
+
"\n",
|
832 |
+
" for await (const message of channel.messages) {\n",
|
833 |
+
" // Send a message to notify the kernel that we're ready.\n",
|
834 |
+
" channel.send({})\n",
|
835 |
+
" if (message.buffers) {\n",
|
836 |
+
" for (const buffer of message.buffers) {\n",
|
837 |
+
" buffers.push(buffer);\n",
|
838 |
+
" downloaded += buffer.byteLength;\n",
|
839 |
+
" progress.value = downloaded;\n",
|
840 |
+
" }\n",
|
841 |
+
" }\n",
|
842 |
+
" }\n",
|
843 |
+
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
844 |
+
" const a = document.createElement('a');\n",
|
845 |
+
" a.href = window.URL.createObjectURL(blob);\n",
|
846 |
+
" a.download = filename;\n",
|
847 |
+
" div.appendChild(a);\n",
|
848 |
+
" a.click();\n",
|
849 |
+
" div.remove();\n",
|
850 |
+
" }\n",
|
851 |
+
" "
|
852 |
+
]
|
853 |
+
},
|
854 |
+
"metadata": {}
|
855 |
+
},
|
856 |
+
{
|
857 |
+
"output_type": "display_data",
|
858 |
+
"data": {
|
859 |
+
"text/plain": [
|
860 |
+
"<IPython.core.display.Javascript object>"
|
861 |
+
],
|
862 |
+
"application/javascript": [
|
863 |
+
"download(\"download_424ed8d9-85fc-4ec0-ac55-252b959588fe\", \"country_ids\", 45039)"
|
864 |
+
]
|
865 |
+
},
|
866 |
+
"metadata": {}
|
867 |
+
}
|
868 |
+
],
|
869 |
+
"source": [
|
870 |
+
"# read from countries.txt and convert it to list of IDs (removing duplicates)\n",
|
871 |
+
"from google.colab import drive\n",
|
872 |
+
"import json\n",
|
873 |
+
"\n",
|
874 |
+
"drive.mount('/content/drive')\n",
|
875 |
+
"\n",
|
876 |
+
"file_path = '/content/drive/My Drive/Princeton/Senior/IW/panorama ids/countries_5000.txt'\n",
|
877 |
+
"\n",
|
878 |
+
"\n",
|
879 |
+
"def collect_ids(file_path):\n",
|
880 |
+
" with open(file_path, 'r') as file:\n",
|
881 |
+
" data = json.load(file)\n",
|
882 |
+
" del data['missed_countries']\n",
|
883 |
+
" # Collecting all IDs across all countries in a set for uniqueness\n",
|
884 |
+
" all_ids = set()\n",
|
885 |
+
" for country_ids in data.values():\n",
|
886 |
+
" all_ids.update(country_ids)\n",
|
887 |
+
"\n",
|
888 |
+
" return all_ids\n",
|
889 |
+
"\n",
|
890 |
+
"ids_set = collect_ids(file_path)\n",
|
891 |
+
"download_panos_from_ids(ids_set, \"country_ids\")"
|
892 |
+
]
|
893 |
+
},
|
894 |
+
{
|
895 |
+
"cell_type": "code",
|
896 |
+
"source": [
|
897 |
+
"# write all file names in a folder to file_names.txt\n",
|
898 |
+
"\n",
|
899 |
+
"import os\n",
|
900 |
+
"folder_path = 'your_folder_path_here'\n",
|
901 |
+
"file_names = []\n",
|
902 |
+
"\n",
|
903 |
+
"for filename in os.listdir(folder_path):\n",
|
904 |
+
" if os.path.isfile(os.path.join(folder_path, filename)):\n",
|
905 |
+
" file_names.append(filename)\n",
|
906 |
+
"\n",
|
907 |
+
"output_file_path = 'file_names.txt'\n",
|
908 |
+
"\n",
|
909 |
+
"with open(output_file_path, 'w') as file:\n",
|
910 |
+
" for name in file_names:\n",
|
911 |
+
" file.write(f\"{name}\\n\")\n",
|
912 |
+
"\n",
|
913 |
+
"print(f\"Filenames written to {output_file_path}\")\n"
|
914 |
+
],
|
915 |
+
"metadata": {
|
916 |
+
"id": "8R8Ws4cI3oHF"
|
917 |
+
},
|
918 |
+
"execution_count": null,
|
919 |
+
"outputs": []
|
920 |
+
},
|
921 |
+
{
|
922 |
+
"cell_type": "code",
|
923 |
+
"source": [
|
924 |
+
"# create .txt caption files containing location prompts for images from their file names\n",
|
925 |
+
"\n",
|
926 |
+
"import os\n",
|
927 |
+
"import requests\n",
|
928 |
+
"from collections import defaultdict, OrderedDict\n",
|
929 |
+
"from tqdm import tqdm\n",
|
930 |
+
"from google.colab import drive\n",
|
931 |
+
"import json\n",
|
932 |
+
"\n",
|
933 |
+
"drive.mount('/content/drive')\n",
|
934 |
+
"\n",
|
935 |
+
"file_path = '/content/drive/My Drive/Princeton/Senior/IW/file_names.txt'\n",
|
936 |
+
"\n",
|
937 |
+
"output_path= '/content/drive/My Drive/Princeton/Senior/IW/captions'\n",
|
938 |
+
"\n",
|
939 |
+
"metadata_output_path = '/content/drive/My Drive/Princeton/Senior/IW/caption_metadata.txt'\n",
|
940 |
+
"\n",
|
941 |
+
"# Replace with your Google Geocoding API key\n",
|
942 |
+
"api_key = 'YOUR_API_KEY'\n",
|
943 |
+
"\n",
|
944 |
+
"countries = defaultdict(list)\n",
|
945 |
+
"continents = defaultdict(list)\n",
|
946 |
+
"regions = defaultdict(list)\n",
|
947 |
+
"total_images = 0\n",
|
948 |
+
"\n",
|
949 |
+
"line_count = 0\n",
|
950 |
+
"with open(file_path, 'r') as file:\n",
|
951 |
+
" for line in file:\n",
|
952 |
+
" line_count += 1\n",
|
953 |
+
"\n",
|
954 |
+
"with open(file_path, 'r') as file:\n",
|
955 |
+
" with tqdm(total=line_count) as pbar:\n",
|
956 |
+
" for line in file:\n",
|
957 |
+
" pbar.update(1)\n",
|
958 |
+
" filename = line.strip()\n",
|
959 |
+
" parts = filename.split('_')\n",
|
960 |
+
" try:\n",
|
961 |
+
" # Assuming the last two parts are latitude and longitude\n",
|
962 |
+
" lat, lon = parts[-2], parts[-1].rstrip('.jpg')\n",
|
963 |
+
" lat, lon = float(lat), float(lon)\n",
|
964 |
+
" except ValueError:\n",
|
965 |
+
" print(f\"Skipping {filename}: unable to extract coordinates\")\n",
|
966 |
+
" continue\n",
|
967 |
+
"\n",
|
968 |
+
" details = get_address_details(lat, lon, api_key)\n",
|
969 |
+
"\n",
|
970 |
+
" # Create a text file with the same base name as the image file, but with a .txt extension\n",
|
971 |
+
" txt_filename = os.path.join(output_path, f\"{filename[:-4]}.txt\")\n",
|
972 |
+
"\n",
|
973 |
+
" # two options\n",
|
974 |
+
" # option 1: StreetView360X India\n",
|
975 |
+
" with open(txt_filename, 'w') as f:\n",
|
976 |
+
" f.write(\"StreetView360X, \")\n",
|
977 |
+
" f.write(f\"StreetView360X {details['Country']}, \")\n",
|
978 |
+
" if details['Continent'] != \"\":\n",
|
979 |
+
" f.write(f\"StreetView360X {details['Continent']}, \")\n",
|
980 |
+
" if details['Province/Region'] != \"\":\n",
|
981 |
+
" f.write(f\"StreetView360X {details['Province/Region']}\")\n",
|
982 |
+
" # option 2: IndiaStreetView360X\n",
|
983 |
+
" # with open(txt_filename, 'w') as f:\n",
|
984 |
+
" # f.write(\"StreetView360X, \")\n",
|
985 |
+
" # f.write(f\"{details['Country']}StreetView360X, \")\n",
|
986 |
+
" # if details['Continent'] != \"\":\n",
|
987 |
+
" # f.write(f\"{details['Continent']}StreetView360X, \")\n",
|
988 |
+
" # if details['Province/Region'] != \"\":\n",
|
989 |
+
" # f.write(f\"{details['Province/Region']}StreetView360X\")\n",
|
990 |
+
"\n",
|
991 |
+
"\n",
|
992 |
+
" # collect metadata\n",
|
993 |
+
" # add to country, continent, and district counts\n",
|
994 |
+
" countries[details['Country']].append(filename)\n",
|
995 |
+
" if details['Continent'] != \"\":\n",
|
996 |
+
" continents[details['Continent']].append(filename)\n",
|
997 |
+
" if details['Province/Region'] != \"\":\n",
|
998 |
+
" regions[details['Province/Region']].append(filename)\n",
|
999 |
+
"\n",
|
1000 |
+
" total_images += 1\n",
|
1001 |
+
"\n",
|
1002 |
+
"# get countries, continents, and regions, sorted by frequency\n",
|
1003 |
+
"country_counts = {key: len(values) for key, values in countries.items()}\n",
|
1004 |
+
"continent_counts = {key: len(values) for key, values in continents.items()}\n",
|
1005 |
+
"region_counts = {key: len(values) for key, values in regions.items()}\n",
|
1006 |
+
"\n",
|
1007 |
+
"sorted_countries = OrderedDict(sorted(country_counts.items(), key=lambda x: x[1], reverse=True))\n",
|
1008 |
+
"sorted_continents = OrderedDict(sorted(continent_counts.items(), key=lambda x: x[1], reverse=True))\n",
|
1009 |
+
"sorted_regions = OrderedDict(sorted(region_counts.items(), key=lambda x: x[1], reverse=True))\n",
|
1010 |
+
"\n",
|
1011 |
+
"metadata = {\n",
|
1012 |
+
" \"countries\": dict(countries),\n",
|
1013 |
+
" \"continents\": dict(continents),\n",
|
1014 |
+
" \"regions\": dict(regions),\n",
|
1015 |
+
" \"sorted_countries\": dict(sorted_countries),\n",
|
1016 |
+
" \"sorted_continents\": dict(sorted_continents),\n",
|
1017 |
+
" \"sorted_regions\": dict(sorted_regions),\n",
|
1018 |
+
" \"total_images\": total_images\n",
|
1019 |
+
"}\n",
|
1020 |
+
"\n",
|
1021 |
+
"with open(metadata_output_path, 'w') as convert_file:\n",
|
1022 |
+
" json.dump(metadata, convert_file, indent=4)"
|
1023 |
+
],
|
1024 |
+
"metadata": {
|
1025 |
+
"colab": {
|
1026 |
+
"base_uri": "https://localhost:8080/"
|
1027 |
+
},
|
1028 |
+
"id": "MXu2HusJBhPx",
|
1029 |
+
"outputId": "46ad3b77-cfdc-4b00-971c-6030ba3292cc"
|
1030 |
+
},
|
1031 |
+
"execution_count": null,
|
1032 |
+
"outputs": [
|
1033 |
+
{
|
1034 |
+
"output_type": "stream",
|
1035 |
+
"name": "stdout",
|
1036 |
+
"text": [
|
1037 |
+
"Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
|
1038 |
+
]
|
1039 |
+
},
|
1040 |
+
{
|
1041 |
+
"output_type": "stream",
|
1042 |
+
"name": "stderr",
|
1043 |
+
"text": [
|
1044 |
+
"100%|██████████| 6342/6342 [20:57<00:00, 5.04it/s]\n"
|
1045 |
+
]
|
1046 |
+
}
|
1047 |
+
]
|
1048 |
+
},
|
1049 |
+
{
|
1050 |
+
"cell_type": "code",
|
1051 |
+
"source": [
|
1052 |
+
"# fetch X number of real images for the given countries\n",
|
1053 |
+
"\n",
|
1054 |
+
"import json\n",
|
1055 |
+
"from google.colab import drive\n",
|
1056 |
+
"drive.mount('/content/drive')\n",
|
1057 |
+
"\n",
|
1058 |
+
"# read in json file from txt\n",
|
1059 |
+
"json_file = '/content/drive/My Drive/Princeton/Senior/IW/caption_metadata.txt'\n",
|
1060 |
+
"with open(json_file, 'r') as f:\n",
|
1061 |
+
" metadata = json.load(f)\n",
|
1062 |
+
"\n",
|
1063 |
+
"all_files_path = '/content/drive/My Drive/Princeton/Senior/IW/all_files.txt'\n",
|
1064 |
+
"with open(all_files_path, 'r') as f:\n",
|
1065 |
+
" all_files = json.load(f)\n",
|
1066 |
+
"\n",
|
1067 |
+
"all_files = set(all_files)\n",
|
1068 |
+
"\n",
|
1069 |
+
"countries = [\"United States\", \"India\", \"Brazil\", \"France\", \"Russia\", \"Japan\", \"Spain\", \"Canada\", \"Italy\", \"Thailand\", \"Indonesia\", \"Australia\", \"Mexico\", \"Poland\", \"Norway\", \"Germany\", \"T\\u00fcrkiye\", \"Greece\", \"United Kingdom\", \"Philippines\", \"Sweden\", \"Argentina\", \"Cambodia\", \"Taiwan\", \"Finland\", \"South Korea\", \"Malaysia\", \"Romania\", \"South Africa\", \"New Zealand\"]\n",
|
1070 |
+
"continents = [\"Europe\", \"North America\", \"Asia\", \"South America\", \"Oceania\", \"Africa\"]\n",
|
1071 |
+
"regions = [\"Texas\", \"England\", \"California\", \"Nebraska\", \"Ontario\", \"Kansas\", \"New South Wales\", \"Ohio\", \"Maharashtra\", \"Nouvelle-Aquitaine\", \"Florida\", \"Minas Gerais\", \"Michigan\", \"Victoria\", \"Occitanie\", \"New York\", \"Rajasthan\", \"Castilla y Le\\u00f3n\", \"Uttar Pradesh\", \"Alabama\", \"Georgia\", \"Auvergne-Rh\\u00f4ne-Alpes\", \"Karnataka\", \"S\\u00e3o Paulo\"]\n",
|
1072 |
+
"\n",
|
1073 |
+
"IMAGES_PER_COUNTRY = 5\n",
|
1074 |
+
"\n",
|
1075 |
+
"files = []\n",
|
1076 |
+
"for country in countries:\n",
|
1077 |
+
" curr, i = [], 0\n",
|
1078 |
+
" curr_countries = metadata[\"countries\"][country]\n",
|
1079 |
+
" while len(curr) < IMAGES_PER_COUNTRY and i < len(curr_countries):\n",
|
1080 |
+
" if curr_countries[i] in all_files:\n",
|
1081 |
+
" curr.append(curr_countries[i])\n",
|
1082 |
+
" i += 1\n",
|
1083 |
+
"\n",
|
1084 |
+
" files.extend(curr)\n",
|
1085 |
+
"for continent in continents:\n",
|
1086 |
+
" curr, i = [], 0\n",
|
1087 |
+
" curr_countries = metadata[\"continents\"][continent]\n",
|
1088 |
+
" while len(curr) < IMAGES_PER_COUNTRY and i < len(curr_countries):\n",
|
1089 |
+
" if curr_countries[i] in all_files:\n",
|
1090 |
+
" curr.append(curr_countries[i])\n",
|
1091 |
+
" i += 1\n",
|
1092 |
+
" files.extend(curr)\n",
|
1093 |
+
"for region in regions:\n",
|
1094 |
+
" curr, i = [], 0\n",
|
1095 |
+
" curr_countries = metadata[\"regions\"][region]\n",
|
1096 |
+
" while len(curr) < IMAGES_PER_COUNTRY and i < len(curr_countries):\n",
|
1097 |
+
" if curr_countries[i] in all_files:\n",
|
1098 |
+
" curr.append(curr_countries[i])\n",
|
1099 |
+
" i += 1\n",
|
1100 |
+
" files.extend(curr)\n",
|
1101 |
+
"\n",
|
1102 |
+
"print(files)\n",
|
1103 |
+
"print(len(files))\n",
|
1104 |
+
"assert(len(files)==300)\n",
|
1105 |
+
"print(len(set(files)))\n",
|
1106 |
+
"\n",
|
1107 |
+
"\n"
|
1108 |
+
],
|
1109 |
+
"metadata": {
|
1110 |
+
"colab": {
|
1111 |
+
"base_uri": "https://localhost:8080/"
|
1112 |
+
},
|
1113 |
+
"id": "MKhR-hHxxYiT",
|
1114 |
+
"outputId": "5f712d5f-99e2-441c-a654-ba0a31a0e2c5"
|
1115 |
+
},
|
1116 |
+
"execution_count": null,
|
1117 |
+
"outputs": [
|
1118 |
+
{
|
1119 |
+
"output_type": "stream",
|
1120 |
+
"name": "stdout",
|
1121 |
+
"text": [
|
1122 |
+
"Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n",
|
1123 |
+
"['0_3i8lekiiEXayPwus0mPHgg_38.51271605_-109.47755135.jpg', '1005_zz5K3eYzRf_g3BCkiDeMnQ_30.91348322_-90.12831068.jpg', '1008_GajBX64Gi1hZu4y_MvMKmA_48.21059283_-115.85746193.jpg', '100_vrKG71F3S4TLz961hDcbPg_45.46238555_-98.43349365.jpg', '1010_FUz1ZpAgvX1P3JfqcsOEcQ_43.71011725_-82.60973825.jpg', '0_czgxdGu5OGDeM4UMG5PESg_26.34864265_73.04373521.jpg', '1006_eQZfjxW480yE3P4v5zC7bA_14.78602252_76.09818941.jpg', '1007_ewnxwTcOwaXLHSNK2-7IKg_28.84396541_77.57780746.jpg', '1017_eMDtZhx7GqYW0RMH7HISvw_24.29572556_71.51888884.jpg', '1018_4zHrZELhDEmWZ8qkSlmLOw_23.44980291_78.82581227.jpg', '1001_irEnbVOUa_UQl5eywQ-z6Q_-29.47164594_-53.46900690.jpg', '1009_1CKjtZPvexWN1Qp-Fgm0Vg_-6.27612255_-35.49859678.jpg', '1019_qHc6tvdq7JFrC_IPceRO5w_-21.49727805_-41.34124209.jpg', '1029_7jR0qIj7LJjyEdYF108R0w_-2.93338470_-40.28288744.jpg', '1038_WZItHRVLU3Pts32qcH566A_-16.47392581_-39.06383094.jpg', '1003_6Ub2NCPQvEae5xWZNpv36g_44.87134535_1.80392266.jpg', '1023_XgIuN9KD6VBUZz3ItKDRzw_48.54252320_7.42720254.jpg', '1028_Zz0znWLIp53aLgMbVYIv-A_49.97662114_3.38253340.jpg', '1042_5ikLxiY2SgUwfQwaWAqp1w_50.28168626_3.98450178.jpg', '1043_1X_pBCP3a3aJQG617a8q5A_46.21420434_-0.55239215.jpg', '100_Sot4Jx_tz4pMJ8Q-ZEkXuA_54.74903146_74.98965468.jpg', '107_j9lXPLClUMSL25a2VQigmg_57.93023872_56.23611256.jpg', '1085_HOntkxyYRp4rGKmbO0Yx9g_55.53271938_41.96726133.jpg', '1119_3ZIXPv-SJkIR8ea0CfFkCQ_56.22986762_32.79465903.jpg', '1126_dKRfraTin2TfSafYXgrClw_59.43329984_33.76649303.jpg', '1011_924Jf4tar-vBHxrOTBM6Ag_26.33306767_127.86633985.jpg', '1015_HznJK3ryZL1IHoIOpzBUsg_43.88025211_143.99954269.jpg', '1065_qD5yvHVhKN2nl1xrvydKag_35.85022932_140.15008676.jpg', '1077_GuPYpk7fmw3Amp1zETRhIA_43.29234167_141.84510726.jpg', '1080_rLlPe4Eji5jYzqDZ_CXmFw_35.33308459_137.13217967.jpg', '1014_nS_lE-Ll8A-JqcFO1PxKPw_43.35650806_-3.01119126.jpg', '1026_EyzA3nt038MiKR45GXyquw_43.27011376_-3.90744075.jpg', '1030_ZQPrOfD1ZFOvG9dsayjR-A_39.70016849_3.41682049.jpg', '1032_zIx5L2yr2FUC2WF-aegKZw_43.26723296_-6.84991092.jpg', '106_BOEJ_dgBM3hebNAnsj9Qfg_37.49302914_-4.19382083.jpg', '1031_SGgYfWCu1tNzJSmheCyFQQ_46.25131466_-73.61187786.jpg', '1045_-zB-bw6C0KlOioSQvSzLyA_49.15831545_-57.44768654.jpg', '1048_YhwNHawJNg4ZjhyBR0Bibw_44.60011733_-75.69962255.jpg', '1061_tKFUKKdt3iHQuS_J344rjg_43.23607657_-79.80675292.jpg', '1089_BmQmvdHplB2jQFOuyKRrBg_44.56452813_-77.46797742.jpg', '1013_c3l66H7_RMvHWvayuo7n5g_43.28113636_13.33397094.jpg', '103_x1brqqLxhY1NO_3Um1V70A_45.87139502_11.06338048.jpg', '1046_D8PjOM-bU1H8YRlArHHHuw_44.58171318_10.81251184.jpg', '105_s1rD5ZtYl15cikJe-iXrAA_44.35074153_10.63147007.jpg', '1067_H9-ssyP96a9jNq4MO7V22w_41.83534663_12.88904726.jpg', '1006_LUru3bZzCEaTzzOXFNADWg_16.69551734_102.46637881.jpg', '1023_JTAEXoP4a8Wd3RaKhmmcVQ_15.05618299_102.50116024.jpg', '1024_JszNC8YMAuCrRAXYnd_olQ_17.52759082_101.73077359.jpg', '1043_T4E9NS2uzbXvpl8a4597-w_15.27868764_100.79560285.jpg', '1060_qW0D4bdeW0_QGVN9MeEDKA_15.67614573_100.61651821.jpg', '1002_8dY4n23vIXah-4fyZXpQdw_-8.14695691_113.11743561.jpg', '1053_3H0dl3yEk8OrIETV_q_ZyA_-0.35077948_117.43553814.jpg', '1060_ZySBiAl0eRcWnpJwx-VkZg_-0.23962988_117.12734917.jpg', '1089_dYEsFsaOJH5XbclwS04Q-g_-8.21821599_124.54032603.jpg', '1090_0ikZs6ZZggNs_SrDFXAncw_1.22629797_97.41759072.jpg', '1032_alZdIEGwfS_19fNFLrNlMA_-24.18369101_145.73304459.jpg', '1058_3QFl30hRhfTn-DJUE8-blQ_-37.77636864_144.94594390.jpg', '108_sU-HIfhd3bi0jtkPBOh1EQ_-33.95414230_136.24641018.jpg', '1093_V3_EzmS76oylZNzByH15gA_-37.87523837_142.29062445.jpg', '10_aq1JEmI6fjfJ444STr6zCQ_-24.35592418_151.29958021.jpg', '1011_6lHm0n9LhMpnfwepL8YMGg_16.33426699_-91.75046257.jpg', '102_ZFS06zbYaHoA1sHNjjBJ9g_19.04894243_-99.31674502.jpg', '1034_IH9UknfvOM8WXRNyY7J5Hg_20.65034166_-101.51653884.jpg', '1076_X_8ltzA0WxOOporjBkn3Dg_20.64618941_-100.30176436.jpg', '107__YQL8MsPoVdY-_kOm_M0Yw_26.75064373_-106.04783781.jpg', '0_EViu-jCQ3g2sGawYkzeJ3A_54.29258460_18.59956533.jpg', '1035_UKgyMo5_vy0pSESiRBF3Bw_53.57752041_23.10576033.jpg', '1044_ZtHhMSszRlqA1r329fkNHA_51.75002039_22.17306816.jpg', '1055_bPHWVPvAHuUWDI2YOnZNzQ_54.15873142_15.73555626.jpg', '1058_H7mbSRAPSXfQmWh0qOiJ7A_51.77137893_19.34762426.jpg', '1004_6L3RH0WXfUAzH8aPLr1rkA_63.29447409_9.84442952.jpg', '1014_cuoOe6TzmOStpgq2PGa90w_59.66251010_8.03838121.jpg', '1022_YhbC6o1pyHGxYxOOGGLaWw_58.66458778_6.71648133.jpg', '1027_kbPbb_tS-E2SlTlYE1T9iQ_59.74725045_10.20700297.jpg', '1035_BDsCHVrBs-mrW3hti7y-eg_59.26104561_10.41588957.jpg', '1034_QnIBVdxH5bSlwOcK0cy18A_52.75935010_12.42006342.jpg', '1040_OhSAIPqfhC3gb3Y63kloxg_48.52090922_8.06797735.jpg', '1061_EiDOmGAorTrOKBhUo5nUQg_53.88469495_11.65939521.jpg', '1105_VD7bNB5Hj5LbIGNN4jNf8Q_52.16414997_9.91251271.jpg', '1162_IQtyDV8ARkZ8Jkhb87N2Tg_50.82049607_6.97914478.jpg', '1007_XtXzrJnsLs1ncUJPKF_H2g_37.87158765_32.50509251.jpg', '1016_fgkjObU65iOJQu2TfsmFYw_39.27464511_36.74836550.jpg', '1087_swuBY1Jga6eAeEPVsg9IBg_41.30270287_27.23450835.jpg', '1152_35N6-xquiKu3kHmbg8AM0g_39.66461018_31.30555874.jpg', '1172_K02mgmuPhqNTAJimLudXwQ_40.82104439_31.12793844.jpg', '1004_BfObL-IhbFtNZcF7ypRLQw_35.21575227_25.70358029.jpg', '1020_BIfjfIQk-cW--_hc1luh6g_39.75839760_19.69686409.jpg', '1022_7nh2J-tKCkoPI0qTRdnvlQ_40.05348857_20.60172104.jpg', '1026_wJW6W9XCnwr5rpAdhdcu_Q_37.07541234_21.98875465.jpg', '1068_jVaupccUrZpMW2c3eNcM2g_39.99964997_23.57611523.jpg', '105_VwWiqJdHcZXPbCgh9A638g_50.72605973_-3.91284941.jpg', '1206_j0bmjfkO4FKOZHl-UiplZA_57.76819297_-5.59918709.jpg', '1224_8-IwjG-w3qoJEjvqQRIITQ_59.89191504_-1.31217796.jpg', '1284_2I58Zh200gqgC1zRH-CTnA_55.54820198_-1.69327096.jpg', '1325_SxVOX2W8_O-ikDojHTwIAA_53.86624529_-1.91674775.jpg', '1008_gcKoefiZmv-Buyiqt5dpSA_14.61695260_121.13117127.jpg', '101_yEDym0zUKyIQV7fRL5CEdQ_13.87274388_121.22697907.jpg', '1025_TGI2X6ce91DaKnwbShKWjw_11.44589831_125.49356967.jpg', '1052_m2BwFVjC-fobaLRA18Ea-w_15.02380932_120.67601272.jpg', '1066_BdObkdI9DrymfnrtB4kEvw_12.21765729_123.53038555.jpg', '1039_K3i9OpKD7U_QEeN4bwTQJA_59.33611094_18.05648091.jpg', '1040_0H2i06hgm3UFJrCvxm6unw_63.85207019_15.55586700.jpg', '1069_gCt79jy5oJfP5v1ynewkwA_58.93301718_11.26671078.jpg', '1110_GTtneBxfLkbF-7qKhYPxxA_64.58307318_18.68340995.jpg', '1113_GJ_tnrcVxLptItKX27TcOA_58.37897784_12.29833295.jpg', '1033_NDtilt9KFZc8NUCzM_hoEQ_-34.65126636_-58.62257949.jpg', '1056_bW_IQdUbWgBZDfBWdZIa2g_-32.15000677_-64.10942503.jpg', '1072_lu9RPZ722HDU-4MyqBQ3Mg_-30.65214419_-61.04063232.jpg', '1075_eynaN_NREBh4UNQ6-9ItsA_-32.15757145_-61.10995933.jpg', '1131_3w9DCT2tQ1lh7NVI6lYGkw_-32.79945507_-60.72866502.jpg', '100_HZSmQU81IuYnylew6UMhow_11.55327100_105.12172661.jpg', '1024_Z7FvAUP-DbajrEuzIjED1g_13.76109828_103.23446408.jpg', '1071_j6f2WdYulRZnsxiz1IblHA_13.82526979_105.24765125.jpg', '1112_VJoCwVazqnkDAWfNxiV3PA_12.27940747_105.25671327.jpg', '1214_GXB8aDn7c3Nmb88E_zj-aQ_13.36730823_103.84909800.jpg', '1033_qCEjrP1Etqc_lDBLkfW8iw_25.15273960_121.74445940.jpg', '1070_NOLgVM6SQ2YIjajPuvfzww_23.09837776_120.44345873.jpg', '1078_mEjCVxdhEyqPnF_GWxGVWQ_22.92583255_120.65246399.jpg', '1133__xLxiUru_r0ia9VdkTyJ3g_24.72834763_121.73040216.jpg', '1134_o42LUPmwkNj-b4L09J__kA_23.66203003_119.66593745.jpg', '101_FtFQQIrler8RMNnPTh2V2w_63.74999214_25.33328737.jpg', '1062_bVRYJUixUeKtPvEPDezKFg_64.74987766_28.25102699.jpg', '1096_Q9Gb3eahcEjMzksaOrNmTA_63.33499907_26.20828674.jpg', '1099_WUZbSSjbFfS9XVWy5rYREA_61.37352763_21.99394113.jpg', '1127_qzHuJd-jcCkPK6BxolnGjQ_62.94545772_21.54838472.jpg', '1019_Goy3wSYQOMFKY2tkCbq6Pw_37.74975365_127.23740930.jpg', '1021_KsB63xRY_s0IhNbw1kY_Ow_35.72797195_129.31650154.jpg', '1051_je_iFijYk6B7FtkDOiauoQ_37.31891557_127.06572322.jpg', '1092_fkjNRJsqa6deWJuoIS0AyQ_35.85407454_128.43142593.jpg', '1111_Tq1yhipGNqdI3yRmKlrV5w_35.69697187_128.38020757.jpg', '1015_IoY_9sRHuRaXux7PIpraQg_2.29062832_111.83035294.jpg', '1037_0pVyfsfpyaFmNb6uc_sUHw_1.69978266_103.48472342.jpg', '1108_78gucUAjLN_gk3STTC04rg_5.53765880_102.18251622.jpg', '1122_gNQjitFmec20H1V9Ot1Tqg_6.90932575_116.84725951.jpg', '1201_1LMsQH7oRXbiz_ac802_bw_3.21096799_101.67078881.jpg', '1219_7oaC0d5sei_znig87_13Pw_45.76129813_24.82035201.jpg', '1243_iKxTf-Tj-RivErpC1Kj8Lw_45.74377663_24.22531046.jpg', '1245_RU3pw1a8u4p--xqxYV4Tcg_47.08285465_22.11665590.jpg', '1254_z4ncD_vQJBfZcC2s0i22cA_45.58318326_25.45023083.jpg', '1291_fZ_utlwxf5ljY_DbQ3wQwQ_43.90834827_23.11643710.jpg', '1055_jDNFY6cgmYDUA0vmb9tE1g_-33.30002031_26.49991633.jpg', '1071_eoLhcm_IyEgeJeMydU8hQQ_-28.23665167_21.35062608.jpg', '1109_ljTeSrGIBBUFTPHOusxVtw_-30.71143982_25.10158145.jpg', '1125_eMkHu14HeRwkh5kBLV9Qgg_-33.97347855_25.62041721.jpg', '1185_uKVgeJVe-QqXRHZoboCp7w_-29.92013553_30.96470007.jpg', '110_SLwRon_0lmXZ25vlbMvKdg_-37.00852895_175.28979766.jpg', '1182_09KLhbOMrzGDutq64pUOMA_-38.35822830_176.75016100.jpg', '1193_CUwtKxSWJh6VbXBk1LzYEg_-45.82251877_169.53022208.jpg', '1205_ozM80sTxFcJZOLar91n8wg_-36.82818346_174.79026805.jpg', '1214_XqEvP4vw1Sa9UXk4vEXOIA_-38.66821919_174.62015981.jpg', '0_EViu-jCQ3g2sGawYkzeJ3A_54.29258460_18.59956533.jpg', '1000_vndrMkPBye9554GhnjixQg_37.86692756_-25.83342649.jpg', '1001_yjiX86BamJCkU_ZbClHQVA_42.06753405_19.51294901.jpg', '1003_6Ub2NCPQvEae5xWZNpv36g_44.87134535_1.80392266.jpg', '1003_MxJlrisy1jGza9yUiGpDKw_46.25772547_7.36365008.jpg', '0_3i8lekiiEXayPwus0mPHgg_38.51271605_-109.47755135.jpg', '1002_QTDkziH1Hf0H9hSoQibkLg_7.97632837_-80.41662365.jpg', '1005_zz5K3eYzRf_g3BCkiDeMnQ_30.91348322_-90.12831068.jpg', '1008_GajBX64Gi1hZu4y_MvMKmA_48.21059283_-115.85746193.jpg', '100_vrKG71F3S4TLz961hDcbPg_45.46238555_-98.43349365.jpg', '0_czgxdGu5OGDeM4UMG5PESg_26.34864265_73.04373521.jpg', '1002_8dY4n23vIXah-4fyZXpQdw_-8.14695691_113.11743561.jpg', '1006_eQZfjxW480yE3P4v5zC7bA_14.78602252_76.09818941.jpg', '1006_LUru3bZzCEaTzzOXFNADWg_16.69551734_102.46637881.jpg', '1007_ewnxwTcOwaXLHSNK2-7IKg_28.84396541_77.57780746.jpg', '1000_pMgT1G9shhP7Dhpl2QXpgg_-17.29863170_-70.98817317.jpg', '1001_irEnbVOUa_UQl5eywQ-z6Q_-29.47164594_-53.46900690.jpg', '1009_1CKjtZPvexWN1Qp-Fgm0Vg_-6.27612255_-35.49859678.jpg', '1009_xcLxJiRs14g5SC9jr_z75g_-34.48849399_-70.90693910.jpg', '1019_qHc6tvdq7JFrC_IPceRO5w_-21.49727805_-41.34124209.jpg', '1032_alZdIEGwfS_19fNFLrNlMA_-24.18369101_145.73304459.jpg', '1058_3QFl30hRhfTn-DJUE8-blQ_-37.77636864_144.94594390.jpg', '108_sU-HIfhd3bi0jtkPBOh1EQ_-33.95414230_136.24641018.jpg', '1093_V3_EzmS76oylZNzByH15gA_-37.87523837_142.29062445.jpg', '10_aq1JEmI6fjfJ444STr6zCQ_-24.35592418_151.29958021.jpg', '1042_PC3TwhopoQ6kU2OqmWbaHA_7.80867863_-2.10094263.jpg', '1055_jDNFY6cgmYDUA0vmb9tE1g_-33.30002031_26.49991633.jpg', '1071_eoLhcm_IyEgeJeMydU8hQQ_-28.23665167_21.35062608.jpg', '1079_7jgLrcELfSuuZ5Mt9582BQ_-4.46696532_39.48338738.jpg', '1109_ljTeSrGIBBUFTPHOusxVtw_-30.71143982_25.10158145.jpg', '1041_ho3KzyL8L3Hhg7jG2ZxEvw_31.55604632_-97.25221429.jpg', '1064_F_wu_TCrsJcfxSIl4tTHmA_32.42801257_-96.84240176.jpg', '1108_uZ4Ujr-7P9sp5md2is7V3w_33.27234831_-95.58449387.jpg', '114_lx2ZqH3hv8pDqigrt2LeBg_31.13004510_-99.32330345.jpg', '1203_JjofxCXBEuKXk1Ysqd_D3Q_27.22506962_-98.14217248.jpg', '105_VwWiqJdHcZXPbCgh9A638g_50.72605973_-3.91284941.jpg', '1284_2I58Zh200gqgC1zRH-CTnA_55.54820198_-1.69327096.jpg', '1325_SxVOX2W8_O-ikDojHTwIAA_53.86624529_-1.91674775.jpg', '1347_Ka3sx5_paV2ULSHrrupi2Q_50.69809333_-3.67414717.jpg', '1375_6gu7A5SddvSDTRwCgROU3Q_53.71029234_-1.27912877.jpg', '1045_AAWb3LOzxpjbzyw6BTiS3Q_35.46696882_-115.27224440.jpg', '1163_cFIhk4ZK498b50e8Aupqug_36.93454464_-121.76735283.jpg', '1180_p7xAxKZCmIFafR_SJkDHaw_35.14251940_-119.45663538.jpg', '1186_KrAkimkwV3J2aIdotKqLNQ_37.53665317_-121.20525276.jpg', '1240_fegx_jlNHpjoThnzXHgkWw_40.16969016_-120.36891420.jpg', '1031_Sa7JzSIVgr1u1USNW-WW_Q_41.44168003_-99.72539693.jpg', '1128_XcpQWo3T4V22IEsJQDYCYg_41.46185886_-96.77973854.jpg', '1364_-NF2VLntl4gNlXbg_8kFcw_41.24228084_-96.66018645.jpg', '1422_NAZDsv5iy_yQn6jYZzoFFg_42.04215747_-100.83151130.jpg', '1443_R2N86C1Nisbk6L9rxFzsxw_41.43098096_-96.76676386.jpg', '1048_YhwNHawJNg4ZjhyBR0Bibw_44.60011733_-75.69962255.jpg', '1061_tKFUKKdt3iHQuS_J344rjg_43.23607657_-79.80675292.jpg', '1089_BmQmvdHplB2jQFOuyKRrBg_44.56452813_-77.46797742.jpg', '1135_I-0fMXjF_Sl6Kzi6QVwutg_44.36544320_-79.69627478.jpg', '1156_SzAAbOsC8B8JWePf9c3MWg_43.55042701_-79.61589612.jpg', '1083_gBkj2Qd67-qSR_4CKVMWIw_39.39391086_-96.41358154.jpg', '1161_fiTM1xXFPrW2OCP-KsNdkw_37.26785901_-97.76318409.jpg', '1240_2SlEtkfmGMKxMPzTgN3aQg_39.77226289_-100.03511797.jpg', '1329_UD-x4q7agDcPStqCWEKzjA_39.71224141_-97.35981488.jpg', '1498_pPRGNyVbU_NsrRf59V0bDQ_38.98599869_-94.61979706.jpg', '1109_gf2zt57-fv9NtpqaqGC4xA_-35.65429116_147.84469396.jpg', '1115_HIt6Upg2o3q0zknZFfSbmQ_-30.96716596_152.83334742.jpg', '1230_NRdxQMlI5VCJ0tUeFbMTVQ_-33.38148803_148.00127797.jpg', '1281_ID5qdTxGLfvw4aPfRdk4qw_-28.73153164_152.61846866.jpg', '1299_MY8fcCpivQ4DmbGFrUmgbQ_-28.92851513_153.49285591.jpg', '1020_bAJfg-5pjGtzY3TB4m2Zgw_40.88656183_-82.42882971.jpg', '1155_snY56DfNn7lLLjVPSuuXkg_38.83127922_-82.51753568.jpg', '1167_hYhKqekSgY13Qi3W58ujLw_41.24539425_-82.38691166.jpg', '1182_Y2lywy64sxXr1_vDQxndXA_40.79307311_-81.43565045.jpg', '1247_d0_fhB_PJU54SgFAermnKw_41.16708697_-80.69610259.jpg', '1029_zrTk7uLDX6xExB4qZ3uCtA_18.67827302_73.73416972.jpg', '1220_c3eSFrjC94dRQpm4cleKFg_19.10792358_77.49288234.jpg', '1454_lhUIUBqQpUju0WqBBZP1nA_16.99278065_73.29336382.jpg', '151_BYGMzzVEhB9NBxvSZ0DcBA_17.99075804_74.43155213.jpg', '1673_LxEAnOIvX4QTJD6gL6fI2Q_18.96278234_74.75364898.jpg', '1043_1X_pBCP3a3aJQG617a8q5A_46.21420434_-0.55239215.jpg', '1160_wdOv9VgirjEDx2pBDu2-Xw_45.99321611_0.64587533.jpg', '1270_8BCSOlVm-y1fZsWUnvh84g_44.80653350_-0.62930843.jpg', '1282_hnUmyZWlx4BNT4lWP0kshg_45.58319044_1.71979083.jpg', '1309_W8fY2HIQ5mK1xNXvb169PQ_45.12715875_1.58055964.jpg', '102_Nl7vCPBQH8qNgK_u9ISRbA_26.46335459_-80.10290633.jpg', '103_d6XLKlWpampB9jANBDNI_w_26.60708730_-82.11070116.jpg', '1119_3tuRSA0Am1Z8kOwUA5e-IA_29.39128563_-81.63866776.jpg', '1169_ictckD9bcendrROpkhHUBQ_27.49531005_-82.71085548.jpg', '120_akqj_RCfNsVM-Ka6Eaaong_28.30372231_-81.41672396.jpg', '1066_BAeDw8i50UUC6ZnDwJbUjg_-21.28272083_-44.76051177.jpg', '1249_P6EKpg3GZnfrxYZRLHfI9Q_-18.96695802_-43.25607938.jpg', '1268_antKfvwX_KsenqhezIfwMw_-17.85595747_-42.85849559.jpg', '1285_nJQONjK1SFIcBr8nixAljA_-17.31502304_-44.23413915.jpg', '1404_YC4OrX9cZEcYMoqUhme_4A_-20.73407320_-46.60125770.jpg', '1010_FUz1ZpAgvX1P3JfqcsOEcQ_43.71011725_-82.60973825.jpg', '1027_mlFjC-5HbipRtpw13dNBAA_42.55983937_-83.83378278.jpg', '112_keM_WJ9I8ibwSQFwsRg2iA_45.31945799_-85.25889363.jpg', '1499_qHwKn9WUgPRorTmpxxFrCQ_45.40536813_-87.53342374.jpg', '1681_nlkcdcFkc7oUnn_3w1CN7Q_44.97251352_-84.68254912.jpg', '1058_3QFl30hRhfTn-DJUE8-blQ_-37.77636864_144.94594390.jpg', '1093_V3_EzmS76oylZNzByH15gA_-37.87523837_142.29062445.jpg', '1104_83_07y8Mx8fcfRUgQ37N9g_-36.60681919_142.35770258.jpg', '1149_QI9nA5re6N6TePZmStfAAA_-38.00104355_145.19074495.jpg', '1179_gZhfdThAaOpDRgTqjTc76w_-36.75004899_143.83334816.jpg', '1003_6Ub2NCPQvEae5xWZNpv36g_44.87134535_1.80392266.jpg', '109_Sqqd1lK1OW29OD0a4xZySg_43.89094717_2.12904542.jpg', '1352_NfBW_5ZHx4lEjHxckbVayw_44.57465656_2.27104268.jpg', '1401_wuB4NyNynGlCGolPHKhoMw_44.10029923_0.93360995.jpg', '1494__GGSD_AHPygj9s-zKPYQWA_43.18187324_2.36136220.jpg', '102_NBW4pKuCwLnXiou23SetAw_43.88628461_-75.44721170.jpg', '1046_Kf0iwzKPW36kkZ6pGW2D2g_43.15508682_-78.52003190.jpg', '1059_KCpMF74gqrnBq3788ubDaA_42.27453671_-78.67213403.jpg', '1067_idAmfmPM3vJy7lr9pQaMxw_42.67032135_-77.63532371.jpg', '1195_Jo6t6eB9iX3jzdyIGep0iQ_42.09712378_-79.23654269.jpg', '0_czgxdGu5OGDeM4UMG5PESg_26.34864265_73.04373521.jpg', '1018_K_CnadLQtLytSj1_0ItWfw_25.39149086_75.66815178.jpg', '1050_QfEbA5ipMq_aJxYUMp9nZw_29.11263243_75.16590873.jpg', '1101__OAIHD6busATq9O-rflHhA_24.99912602_72.27140492.jpg', '1156_Egsz4Ozloi9hKnovTJzjag_26.92001916_75.80019239.jpg', '1082_hziQdMTjLOF1rOZx3xEZQg_40.93649856_-5.57933611.jpg', '1095_qOZgOVU4bk-AT9vT2hc7mA_42.89729973_-4.88654863.jpg', '127_74cwu8-k-VI0Vkt-2dHQkw_42.83028177_-3.42633341.jpg', '1351_ttzpZtfmFhAUxcxOBnv98A_42.22422601_-3.58946221.jpg', '1366_2JW4ly7WkY6dX4KWMmRP-w_41.09645231_-4.23946487.jpg', '1007_ewnxwTcOwaXLHSNK2-7IKg_28.84396541_77.57780746.jpg', '1174_MF1uy4A861qnCFTm6o-UWQ_26.71556391_84.24101978.jpg', '1484_CmedwdVM6Ttfx8G8RuCfkw_27.70418953_79.62344651.jpg', '150_YnmG2hm9tILSR8mDch3N7A_26.54954609_80.63316950.jpg', '1524_eqz_CidtlD1AfnrvL_CUJw_26.28696774_80.43759541.jpg', '1097_LjsxjYHOXQSmCEG3gbyl0A_31.79686890_-88.23749968.jpg', '1141_ObDFYkNi-BJzOfTEqXCbYg_31.58737316_-85.72534679.jpg', '148_IrxBg6byVMbO0NsVRT1nyA_32.52465198_-85.85111044.jpg', '1565_g6jhDC_AJYHF7LG7iH5wHw_31.97764056_-87.13050595.jpg', '1579_mPziNZ9zkmh8uI9cQSXhtQ_31.22681430_-86.69140337.jpg', '1068_3sO0ZQo3sjhc0IY7lKa-EA_33.79530237_-85.26823597.jpg', '1226_8LIpaca81giERfcgx0jF7A_33.80298946_-84.60292915.jpg', '1678_QchiLZM7Y5gvs-xybJiPAw_34.92516360_-85.24117105.jpg', '176_qbT-lXLHLSO7tC7oUscvYA_33.27927499_-84.87944661.jpg', '1827_EvwGJWpdlkWUdp6rZfLWmw_34.98664344_-84.37116354.jpg', '1094_r_KPCjbpT2lX-8OoFhdnwQ_45.41757879_3.28442160.jpg', '1154_siTahmEBRwB0Grs_D210ng_45.63128136_5.57101479.jpg', '1209_ocxZptpV-rC7purrKEQeEw_46.53090695_3.31630801.jpg', '128_RCGI5mvak7Ly83Hbct28aw_44.94412257_4.73007454.jpg', '1305_UCAt9sq5VZ4J00bjQ2yMyg_44.92210444_2.83748807.jpg', '1006_eQZfjxW480yE3P4v5zC7bA_14.78602252_76.09818941.jpg', '104__Km5hyh3aPiTi8rayfG83Q_13.76075839_76.34866136.jpg', '1121_7_HREIKqxLyexCmJgB2hxw_12.71641372_77.38228883.jpg', '1161_eS-E3F2a9GKG2YX-E4Prmw_14.41521161_75.43938244.jpg', '1211_pa3IO2QP8tboXCvHb-XExw_13.12682489_77.07273565.jpg', '1051_o8hfVlryqeGc9cigZFODDw_-23.57207634_-46.03870867.jpg', '112_vYWsD3Vj7nMc-80MWEj50A_-21.91689200_-47.61703962.jpg', '11_1Unb1cAHVEGv8asYhMGhwg_-23.05666100_-49.62636121.jpg', '130_GAHBr-itzIHXxris6A410g_-21.06397620_-47.74429794.jpg', '138_LJvYcY86FcdHMXq0XLZz0A_-21.63760151_-50.50008216.jpg']\n",
|
1124 |
+
"300\n",
|
1125 |
+
"264\n"
|
1126 |
+
]
|
1127 |
+
}
|
1128 |
+
]
|
1129 |
+
},
|
1130 |
+
{
|
1131 |
+
"cell_type": "code",
|
1132 |
+
"source": [
|
1133 |
+
"!pip install torch-fidelity\n",
|
1134 |
+
"!pip install torchmetrics\n",
|
1135 |
+
"!pip install Pillow"
|
1136 |
+
],
|
1137 |
+
"metadata": {
|
1138 |
+
"id": "f78isuAM8-g0"
|
1139 |
+
},
|
1140 |
+
"execution_count": null,
|
1141 |
+
"outputs": []
|
1142 |
+
},
|
1143 |
+
{
|
1144 |
+
"cell_type": "code",
|
1145 |
+
"source": [
|
1146 |
+
"!pip install pytorch-fid\n",
|
1147 |
+
"!pip install scipy==1.11.1\n",
|
1148 |
+
"!pip install diffusers\n",
|
1149 |
+
"!pip install accelerate"
|
1150 |
+
],
|
1151 |
+
"metadata": {
|
1152 |
+
"id": "YHis5fltJPsW"
|
1153 |
+
},
|
1154 |
+
"execution_count": null,
|
1155 |
+
"outputs": []
|
1156 |
+
},
|
1157 |
+
{
|
1158 |
+
"cell_type": "code",
|
1159 |
+
"source": [
|
1160 |
+
"# calculate FID scores\n",
|
1161 |
+
"\n",
|
1162 |
+
"from google.colab import drive\n",
|
1163 |
+
"drive.mount('/content/drive')\n",
|
1164 |
+
"\n",
|
1165 |
+
"streetview_path = \"/content/drive/My Drive/Princeton/Senior/IW/Data/streetview_clip\"\n",
|
1166 |
+
"sd_path = \"/content/drive/My Drive/Princeton/Senior/IW/Data/sd_clip\"\n",
|
1167 |
+
"ldm3d_path = \"/content/drive/My Drive/Princeton/Senior/IW/Data/ldm3d_clip\"\n",
|
1168 |
+
"dataset_path = \"/content/drive/My Drive/Princeton/Senior/IW/Data/real_images\"\n",
|
1169 |
+
"\n",
|
1170 |
+
"print(\"streetview fid:\")\n",
|
1171 |
+
"!python -m pytorch_fid --device cuda:0 \"/content/drive/My Drive/Princeton/Senior/IW/Data/real_images\" \"/content/drive/My Drive/Princeton/Senior/IW/Data/streetview_clip\"\n",
|
1172 |
+
"print(\"streetview fid:\")\n",
|
1173 |
+
"!python -m pytorch_fid --device cuda:0 \"/content/drive/My Drive/Princeton/Senior/IW/Data/real_images\" \"/content/drive/My Drive/Princeton/Senior/IW/Data/sd_clip\"\n",
|
1174 |
+
"print(\"ldm3d fid:\")\n",
|
1175 |
+
"!python -m pytorch_fid --device cuda:0 \"/content/drive/My Drive/Princeton/Senior/IW/Data/real_images\" \"/content/drive/My Drive/Princeton/Senior/IW/Data/ldm3d_clip\""
|
1176 |
+
],
|
1177 |
+
"metadata": {
|
1178 |
+
"id": "D2ZJFbHvd3bb"
|
1179 |
+
},
|
1180 |
+
"execution_count": null,
|
1181 |
+
"outputs": []
|
1182 |
+
}
|
1183 |
+
],
|
1184 |
+
"metadata": {
|
1185 |
+
"colab": {
|
1186 |
+
"provenance": [],
|
1187 |
+
"machine_shape": "hm",
|
1188 |
+
"gpuType": "A100"
|
1189 |
+
},
|
1190 |
+
"kernelspec": {
|
1191 |
+
"display_name": "Python 3",
|
1192 |
+
"name": "python3"
|
1193 |
+
},
|
1194 |
+
"language_info": {
|
1195 |
+
"name": "python"
|
1196 |
+
},
|
1197 |
+
"accelerator": "GPU"
|
1198 |
+
},
|
1199 |
+
"nbformat": 4,
|
1200 |
+
"nbformat_minor": 0
|
1201 |
+
}
|
evaluate_clip.py
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
|
3 |
+
import numpy as np
|
4 |
+
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
|
7 |
+
from torchmetrics.functional.multimodal import clip_score
|
8 |
+
|
9 |
+
from functools import partial
|
10 |
+
import torch
|
11 |
+
|
12 |
+
|
13 |
+
streetview_path = "Generated Images/streetview_clip"
|
14 |
+
sd_path = "Generated Images/sd_clip"
|
15 |
+
ldm3d_path = "Generated Images/ldm3d_clip"
|
16 |
+
|
17 |
+
clip_score_fn = partial(clip_score, model_name_or_path="checkpoints/clip-vit-base-patch16")
|
18 |
+
device = torch.device("cuda")
|
19 |
+
|
20 |
+
|
21 |
+
def calculate_clip_score(images, prompts):
|
22 |
+
|
23 |
+
images_int = (images * 255).astype("uint8")
|
24 |
+
|
25 |
+
images_tensor = torch.from_numpy(images_int).permute(0, 3, 1, 2).to(device)
|
26 |
+
|
27 |
+
# Calculate the clip score. Assuming the clip_score function handles the device correctly.
|
28 |
+
|
29 |
+
clip_score_value = clip_score_fn(images_tensor, prompts).detach().cpu() # Detach and move back to CPU if needed
|
30 |
+
|
31 |
+
return round(float(clip_score_value), 4)
|
32 |
+
|
33 |
+
|
34 |
+
|
35 |
+
models = [
|
36 |
+
|
37 |
+
(streetview_path, "StreetView360X"),
|
38 |
+
(sd_path, "Stable Diffusion 2.1"),
|
39 |
+
(ldm3d_path, "LDM3D-pano"),
|
40 |
+
|
41 |
+
]
|
42 |
+
|
43 |
+
|
44 |
+
|
45 |
+
for path, name in models:
|
46 |
+
|
47 |
+
files = os.listdir(path)
|
48 |
+
|
49 |
+
imgs = []
|
50 |
+
|
51 |
+
prompts = []
|
52 |
+
|
53 |
+
for file_name in files:
|
54 |
+
|
55 |
+
file_path = os.path.join(path, file_name)
|
56 |
+
|
57 |
+
image = plt.imread(file_path)
|
58 |
+
|
59 |
+
imgs.append(image)
|
60 |
+
|
61 |
+
prompt = file_name.split('_')[1]
|
62 |
+
|
63 |
+
prompts.append(prompt)
|
64 |
+
|
65 |
+
imgs = np.array(imgs, dtype=object)
|
66 |
+
|
67 |
+
clip_score = calculate_clip_score(imgs, prompts)
|
68 |
+
|
69 |
+
print(f"CLIP Score with {name}: {clip_score}")
|
70 |
+
|
71 |
+
|
evaluate_fid.py
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import torch.nn.functional as F
|
2 |
+
|
3 |
+
from torchmetrics.image.fid import FrechetInceptionDistance
|
4 |
+
|
5 |
+
from PIL import Image
|
6 |
+
|
7 |
+
import os
|
8 |
+
|
9 |
+
import torch
|
10 |
+
|
11 |
+
import numpy as np
|
12 |
+
|
13 |
+
|
14 |
+
streetview_path = "Generated Images/streetview_clip"
|
15 |
+
|
16 |
+
sd_path = "Generated Images/sd_clip"
|
17 |
+
|
18 |
+
ldm3d_path = "Generated Images/ldm3d_clip"
|
19 |
+
|
20 |
+
device = torch.device('cuda')
|
21 |
+
|
22 |
+
|
23 |
+
file_names = ['0_3i8lekiiEXayPwus0mPHgg_38.51271605_-109.47755135.jpg', '1005_zz5K3eYzRf_g3BCkiDeMnQ_30.91348322_-90.12831068.jpg', '1008_GajBX64Gi1hZu4y_MvMKmA_48.21059283_-115.85746193.jpg', '100_vrKG71F3S4TLz961hDcbPg_45.46238555_-98.43349365.jpg', '1010_FUz1ZpAgvX1P3JfqcsOEcQ_43.71011725_-82.60973825.jpg', '0_czgxdGu5OGDeM4UMG5PESg_26.34864265_73.04373521.jpg', '1006_eQZfjxW480yE3P4v5zC7bA_14.78602252_76.09818941.jpg', '1007_ewnxwTcOwaXLHSNK2-7IKg_28.84396541_77.57780746.jpg', '1017_eMDtZhx7GqYW0RMH7HISvw_24.29572556_71.51888884.jpg', '1018_4zHrZELhDEmWZ8qkSlmLOw_23.44980291_78.82581227.jpg', '1001_irEnbVOUa_UQl5eywQ-z6Q_-29.47164594_-53.46900690.jpg', '1009_1CKjtZPvexWN1Qp-Fgm0Vg_-6.27612255_-35.49859678.jpg', '1019_qHc6tvdq7JFrC_IPceRO5w_-21.49727805_-41.34124209.jpg', '1029_7jR0qIj7LJjyEdYF108R0w_-2.93338470_-40.28288744.jpg', '1038_WZItHRVLU3Pts32qcH566A_-16.47392581_-39.06383094.jpg', '1003_6Ub2NCPQvEae5xWZNpv36g_44.87134535_1.80392266.jpg', '1023_XgIuN9KD6VBUZz3ItKDRzw_48.54252320_7.42720254.jpg', '1028_Zz0znWLIp53aLgMbVYIv-A_49.97662114_3.38253340.jpg', '1042_5ikLxiY2SgUwfQwaWAqp1w_50.28168626_3.98450178.jpg', '1043_1X_pBCP3a3aJQG617a8q5A_46.21420434_-0.55239215.jpg', '100_Sot4Jx_tz4pMJ8Q-ZEkXuA_54.74903146_74.98965468.jpg', '107_j9lXPLClUMSL25a2VQigmg_57.93023872_56.23611256.jpg', '1085_HOntkxyYRp4rGKmbO0Yx9g_55.53271938_41.96726133.jpg', '1119_3ZIXPv-SJkIR8ea0CfFkCQ_56.22986762_32.79465903.jpg', '1126_dKRfraTin2TfSafYXgrClw_59.43329984_33.76649303.jpg', '1011_924Jf4tar-vBHxrOTBM6Ag_26.33306767_127.86633985.jpg', '1015_HznJK3ryZL1IHoIOpzBUsg_43.88025211_143.99954269.jpg', '1065_qD5yvHVhKN2nl1xrvydKag_35.85022932_140.15008676.jpg', '1077_GuPYpk7fmw3Amp1zETRhIA_43.29234167_141.84510726.jpg', '1080_rLlPe4Eji5jYzqDZ_CXmFw_35.33308459_137.13217967.jpg', '1014_nS_lE-Ll8A-JqcFO1PxKPw_43.35650806_-3.01119126.jpg', '1026_EyzA3nt038MiKR45GXyquw_43.27011376_-3.90744075.jpg', '1030_ZQPrOfD1ZFOvG9dsayjR-A_39.70016849_3.41682049.jpg', '1032_zIx5L2yr2FUC2WF-aegKZw_43.26723296_-6.84991092.jpg', '106_BOEJ_dgBM3hebNAnsj9Qfg_37.49302914_-4.19382083.jpg', '1031_SGgYfWCu1tNzJSmheCyFQQ_46.25131466_-73.61187786.jpg', '1045_-zB-bw6C0KlOioSQvSzLyA_49.15831545_-57.44768654.jpg', '1048_YhwNHawJNg4ZjhyBR0Bibw_44.60011733_-75.69962255.jpg', '1061_tKFUKKdt3iHQuS_J344rjg_43.23607657_-79.80675292.jpg', '1089_BmQmvdHplB2jQFOuyKRrBg_44.56452813_-77.46797742.jpg', '1013_c3l66H7_RMvHWvayuo7n5g_43.28113636_13.33397094.jpg', '103_x1brqqLxhY1NO_3Um1V70A_45.87139502_11.06338048.jpg', '1046_D8PjOM-bU1H8YRlArHHHuw_44.58171318_10.81251184.jpg', '105_s1rD5ZtYl15cikJe-iXrAA_44.35074153_10.63147007.jpg', '1067_H9-ssyP96a9jNq4MO7V22w_41.83534663_12.88904726.jpg', '1006_LUru3bZzCEaTzzOXFNADWg_16.69551734_102.46637881.jpg', '1023_JTAEXoP4a8Wd3RaKhmmcVQ_15.05618299_102.50116024.jpg', '1024_JszNC8YMAuCrRAXYnd_olQ_17.52759082_101.73077359.jpg', '1043_T4E9NS2uzbXvpl8a4597-w_15.27868764_100.79560285.jpg', '1060_qW0D4bdeW0_QGVN9MeEDKA_15.67614573_100.61651821.jpg', '1002_8dY4n23vIXah-4fyZXpQdw_-8.14695691_113.11743561.jpg', '1053_3H0dl3yEk8OrIETV_q_ZyA_-0.35077948_117.43553814.jpg', '1060_ZySBiAl0eRcWnpJwx-VkZg_-0.23962988_117.12734917.jpg', '1089_dYEsFsaOJH5XbclwS04Q-g_-8.21821599_124.54032603.jpg', '1090_0ikZs6ZZggNs_SrDFXAncw_1.22629797_97.41759072.jpg', '1032_alZdIEGwfS_19fNFLrNlMA_-24.18369101_145.73304459.jpg', '1058_3QFl30hRhfTn-DJUE8-blQ_-37.77636864_144.94594390.jpg', '108_sU-HIfhd3bi0jtkPBOh1EQ_-33.95414230_136.24641018.jpg', '1093_V3_EzmS76oylZNzByH15gA_-37.87523837_142.29062445.jpg', '10_aq1JEmI6fjfJ444STr6zCQ_-24.35592418_151.29958021.jpg', '1011_6lHm0n9LhMpnfwepL8YMGg_16.33426699_-91.75046257.jpg', '102_ZFS06zbYaHoA1sHNjjBJ9g_19.04894243_-99.31674502.jpg', '1034_IH9UknfvOM8WXRNyY7J5Hg_20.65034166_-101.51653884.jpg', '1076_X_8ltzA0WxOOporjBkn3Dg_20.64618941_-100.30176436.jpg', '107__YQL8MsPoVdY-_kOm_M0Yw_26.75064373_-106.04783781.jpg', '0_EViu-jCQ3g2sGawYkzeJ3A_54.29258460_18.59956533.jpg', '1035_UKgyMo5_vy0pSESiRBF3Bw_53.57752041_23.10576033.jpg', '1044_ZtHhMSszRlqA1r329fkNHA_51.75002039_22.17306816.jpg', '1055_bPHWVPvAHuUWDI2YOnZNzQ_54.15873142_15.73555626.jpg', '1058_H7mbSRAPSXfQmWh0qOiJ7A_51.77137893_19.34762426.jpg', '1004_6L3RH0WXfUAzH8aPLr1rkA_63.29447409_9.84442952.jpg', '1014_cuoOe6TzmOStpgq2PGa90w_59.66251010_8.03838121.jpg', '1022_YhbC6o1pyHGxYxOOGGLaWw_58.66458778_6.71648133.jpg', '1027_kbPbb_tS-E2SlTlYE1T9iQ_59.74725045_10.20700297.jpg', '1035_BDsCHVrBs-mrW3hti7y-eg_59.26104561_10.41588957.jpg', '1034_QnIBVdxH5bSlwOcK0cy18A_52.75935010_12.42006342.jpg', '1040_OhSAIPqfhC3gb3Y63kloxg_48.52090922_8.06797735.jpg', '1061_EiDOmGAorTrOKBhUo5nUQg_53.88469495_11.65939521.jpg', '1105_VD7bNB5Hj5LbIGNN4jNf8Q_52.16414997_9.91251271.jpg', '1162_IQtyDV8ARkZ8Jkhb87N2Tg_50.82049607_6.97914478.jpg', '1007_XtXzrJnsLs1ncUJPKF_H2g_37.87158765_32.50509251.jpg', '1016_fgkjObU65iOJQu2TfsmFYw_39.27464511_36.74836550.jpg', '1087_swuBY1Jga6eAeEPVsg9IBg_41.30270287_27.23450835.jpg', '1152_35N6-xquiKu3kHmbg8AM0g_39.66461018_31.30555874.jpg', '1172_K02mgmuPhqNTAJimLudXwQ_40.82104439_31.12793844.jpg', '1004_BfObL-IhbFtNZcF7ypRLQw_35.21575227_25.70358029.jpg', '1020_BIfjfIQk-cW--_hc1luh6g_39.75839760_19.69686409.jpg', '1022_7nh2J-tKCkoPI0qTRdnvlQ_40.05348857_20.60172104.jpg', '1026_wJW6W9XCnwr5rpAdhdcu_Q_37.07541234_21.98875465.jpg', '1068_jVaupccUrZpMW2c3eNcM2g_39.99964997_23.57611523.jpg', '105_VwWiqJdHcZXPbCgh9A638g_50.72605973_-3.91284941.jpg', '1206_j0bmjfkO4FKOZHl-UiplZA_57.76819297_-5.59918709.jpg', '1224_8-IwjG-w3qoJEjvqQRIITQ_59.89191504_-1.31217796.jpg', '1284_2I58Zh200gqgC1zRH-CTnA_55.54820198_-1.69327096.jpg', '1325_SxVOX2W8_O-ikDojHTwIAA_53.86624529_-1.91674775.jpg', '1008_gcKoefiZmv-Buyiqt5dpSA_14.61695260_121.13117127.jpg', '101_yEDym0zUKyIQV7fRL5CEdQ_13.87274388_121.22697907.jpg', '1025_TGI2X6ce91DaKnwbShKWjw_11.44589831_125.49356967.jpg', '1052_m2BwFVjC-fobaLRA18Ea-w_15.02380932_120.67601272.jpg', '1066_BdObkdI9DrymfnrtB4kEvw_12.21765729_123.53038555.jpg', '1039_K3i9OpKD7U_QEeN4bwTQJA_59.33611094_18.05648091.jpg', '1040_0H2i06hgm3UFJrCvxm6unw_63.85207019_15.55586700.jpg', '1069_gCt79jy5oJfP5v1ynewkwA_58.93301718_11.26671078.jpg', '1110_GTtneBxfLkbF-7qKhYPxxA_64.58307318_18.68340995.jpg', '1113_GJ_tnrcVxLptItKX27TcOA_58.37897784_12.29833295.jpg', '1033_NDtilt9KFZc8NUCzM_hoEQ_-34.65126636_-58.62257949.jpg', '1056_bW_IQdUbWgBZDfBWdZIa2g_-32.15000677_-64.10942503.jpg', '1072_lu9RPZ722HDU-4MyqBQ3Mg_-30.65214419_-61.04063232.jpg', '1075_eynaN_NREBh4UNQ6-9ItsA_-32.15757145_-61.10995933.jpg', '1131_3w9DCT2tQ1lh7NVI6lYGkw_-32.79945507_-60.72866502.jpg', '100_HZSmQU81IuYnylew6UMhow_11.55327100_105.12172661.jpg', '1024_Z7FvAUP-DbajrEuzIjED1g_13.76109828_103.23446408.jpg', '1071_j6f2WdYulRZnsxiz1IblHA_13.82526979_105.24765125.jpg', '1112_VJoCwVazqnkDAWfNxiV3PA_12.27940747_105.25671327.jpg', '1214_GXB8aDn7c3Nmb88E_zj-aQ_13.36730823_103.84909800.jpg', '1033_qCEjrP1Etqc_lDBLkfW8iw_25.15273960_121.74445940.jpg', '1070_NOLgVM6SQ2YIjajPuvfzww_23.09837776_120.44345873.jpg', '1078_mEjCVxdhEyqPnF_GWxGVWQ_22.92583255_120.65246399.jpg', '1133__xLxiUru_r0ia9VdkTyJ3g_24.72834763_121.73040216.jpg', '1134_o42LUPmwkNj-b4L09J__kA_23.66203003_119.66593745.jpg', '101_FtFQQIrler8RMNnPTh2V2w_63.74999214_25.33328737.jpg', '1062_bVRYJUixUeKtPvEPDezKFg_64.74987766_28.25102699.jpg', '1096_Q9Gb3eahcEjMzksaOrNmTA_63.33499907_26.20828674.jpg', '1099_WUZbSSjbFfS9XVWy5rYREA_61.37352763_21.99394113.jpg', '1127_qzHuJd-jcCkPK6BxolnGjQ_62.94545772_21.54838472.jpg', '1019_Goy3wSYQOMFKY2tkCbq6Pw_37.74975365_127.23740930.jpg', '1021_KsB63xRY_s0IhNbw1kY_Ow_35.72797195_129.31650154.jpg', '1051_je_iFijYk6B7FtkDOiauoQ_37.31891557_127.06572322.jpg', '1092_fkjNRJsqa6deWJuoIS0AyQ_35.85407454_128.43142593.jpg', '1111_Tq1yhipGNqdI3yRmKlrV5w_35.69697187_128.38020757.jpg', '1015_IoY_9sRHuRaXux7PIpraQg_2.29062832_111.83035294.jpg', '1037_0pVyfsfpyaFmNb6uc_sUHw_1.69978266_103.48472342.jpg', '1108_78gucUAjLN_gk3STTC04rg_5.53765880_102.18251622.jpg', '1122_gNQjitFmec20H1V9Ot1Tqg_6.90932575_116.84725951.jpg', '1201_1LMsQH7oRXbiz_ac802_bw_3.21096799_101.67078881.jpg', '1219_7oaC0d5sei_znig87_13Pw_45.76129813_24.82035201.jpg', '1243_iKxTf-Tj-RivErpC1Kj8Lw_45.74377663_24.22531046.jpg', '1245_RU3pw1a8u4p--xqxYV4Tcg_47.08285465_22.11665590.jpg', '1254_z4ncD_vQJBfZcC2s0i22cA_45.58318326_25.45023083.jpg', '1291_fZ_utlwxf5ljY_DbQ3wQwQ_43.90834827_23.11643710.jpg', '1055_jDNFY6cgmYDUA0vmb9tE1g_-33.30002031_26.49991633.jpg', '1071_eoLhcm_IyEgeJeMydU8hQQ_-28.23665167_21.35062608.jpg', '1109_ljTeSrGIBBUFTPHOusxVtw_-30.71143982_25.10158145.jpg', '1125_eMkHu14HeRwkh5kBLV9Qgg_-33.97347855_25.62041721.jpg', '1185_uKVgeJVe-QqXRHZoboCp7w_-29.92013553_30.96470007.jpg', '110_SLwRon_0lmXZ25vlbMvKdg_-37.00852895_175.28979766.jpg', '1182_09KLhbOMrzGDutq64pUOMA_-38.35822830_176.75016100.jpg', '1193_CUwtKxSWJh6VbXBk1LzYEg_-45.82251877_169.53022208.jpg', '1205_ozM80sTxFcJZOLar91n8wg_-36.82818346_174.79026805.jpg', '1214_XqEvP4vw1Sa9UXk4vEXOIA_-38.66821919_174.62015981.jpg', '0_EViu-jCQ3g2sGawYkzeJ3A_54.29258460_18.59956533.jpg', '1000_vndrMkPBye9554GhnjixQg_37.86692756_-25.83342649.jpg', '1001_yjiX86BamJCkU_ZbClHQVA_42.06753405_19.51294901.jpg', '1003_6Ub2NCPQvEae5xWZNpv36g_44.87134535_1.80392266.jpg', '1003_MxJlrisy1jGza9yUiGpDKw_46.25772547_7.36365008.jpg', '0_3i8lekiiEXayPwus0mPHgg_38.51271605_-109.47755135.jpg', '1002_QTDkziH1Hf0H9hSoQibkLg_7.97632837_-80.41662365.jpg', '1005_zz5K3eYzRf_g3BCkiDeMnQ_30.91348322_-90.12831068.jpg', '1008_GajBX64Gi1hZu4y_MvMKmA_48.21059283_-115.85746193.jpg', '100_vrKG71F3S4TLz961hDcbPg_45.46238555_-98.43349365.jpg', '0_czgxdGu5OGDeM4UMG5PESg_26.34864265_73.04373521.jpg', '1002_8dY4n23vIXah-4fyZXpQdw_-8.14695691_113.11743561.jpg', '1006_eQZfjxW480yE3P4v5zC7bA_14.78602252_76.09818941.jpg', '1006_LUru3bZzCEaTzzOXFNADWg_16.69551734_102.46637881.jpg', '1007_ewnxwTcOwaXLHSNK2-7IKg_28.84396541_77.57780746.jpg', '1000_pMgT1G9shhP7Dhpl2QXpgg_-17.29863170_-70.98817317.jpg', '1001_irEnbVOUa_UQl5eywQ-z6Q_-29.47164594_-53.46900690.jpg', '1009_1CKjtZPvexWN1Qp-Fgm0Vg_-6.27612255_-35.49859678.jpg', '1009_xcLxJiRs14g5SC9jr_z75g_-34.48849399_-70.90693910.jpg', '1019_qHc6tvdq7JFrC_IPceRO5w_-21.49727805_-41.34124209.jpg', '1032_alZdIEGwfS_19fNFLrNlMA_-24.18369101_145.73304459.jpg', '1058_3QFl30hRhfTn-DJUE8-blQ_-37.77636864_144.94594390.jpg', '108_sU-HIfhd3bi0jtkPBOh1EQ_-33.95414230_136.24641018.jpg', '1093_V3_EzmS76oylZNzByH15gA_-37.87523837_142.29062445.jpg', '10_aq1JEmI6fjfJ444STr6zCQ_-24.35592418_151.29958021.jpg', '1042_PC3TwhopoQ6kU2OqmWbaHA_7.80867863_-2.10094263.jpg', '1055_jDNFY6cgmYDUA0vmb9tE1g_-33.30002031_26.49991633.jpg', '1071_eoLhcm_IyEgeJeMydU8hQQ_-28.23665167_21.35062608.jpg', '1079_7jgLrcELfSuuZ5Mt9582BQ_-4.46696532_39.48338738.jpg', '1109_ljTeSrGIBBUFTPHOusxVtw_-30.71143982_25.10158145.jpg', '1041_ho3KzyL8L3Hhg7jG2ZxEvw_31.55604632_-97.25221429.jpg', '1064_F_wu_TCrsJcfxSIl4tTHmA_32.42801257_-96.84240176.jpg', '1108_uZ4Ujr-7P9sp5md2is7V3w_33.27234831_-95.58449387.jpg', '114_lx2ZqH3hv8pDqigrt2LeBg_31.13004510_-99.32330345.jpg', '1203_JjofxCXBEuKXk1Ysqd_D3Q_27.22506962_-98.14217248.jpg', '105_VwWiqJdHcZXPbCgh9A638g_50.72605973_-3.91284941.jpg', '1284_2I58Zh200gqgC1zRH-CTnA_55.54820198_-1.69327096.jpg', '1325_SxVOX2W8_O-ikDojHTwIAA_53.86624529_-1.91674775.jpg', '1347_Ka3sx5_paV2ULSHrrupi2Q_50.69809333_-3.67414717.jpg', '1375_6gu7A5SddvSDTRwCgROU3Q_53.71029234_-1.27912877.jpg', '1045_AAWb3LOzxpjbzyw6BTiS3Q_35.46696882_-115.27224440.jpg', '1163_cFIhk4ZK498b50e8Aupqug_36.93454464_-121.76735283.jpg', '1180_p7xAxKZCmIFafR_SJkDHaw_35.14251940_-119.45663538.jpg', '1186_KrAkimkwV3J2aIdotKqLNQ_37.53665317_-121.20525276.jpg', '1240_fegx_jlNHpjoThnzXHgkWw_40.16969016_-120.36891420.jpg', '1031_Sa7JzSIVgr1u1USNW-WW_Q_41.44168003_-99.72539693.jpg', '1128_XcpQWo3T4V22IEsJQDYCYg_41.46185886_-96.77973854.jpg', '1364_-NF2VLntl4gNlXbg_8kFcw_41.24228084_-96.66018645.jpg', '1422_NAZDsv5iy_yQn6jYZzoFFg_42.04215747_-100.83151130.jpg', '1443_R2N86C1Nisbk6L9rxFzsxw_41.43098096_-96.76676386.jpg', '1048_YhwNHawJNg4ZjhyBR0Bibw_44.60011733_-75.69962255.jpg', '1061_tKFUKKdt3iHQuS_J344rjg_43.23607657_-79.80675292.jpg', '1089_BmQmvdHplB2jQFOuyKRrBg_44.56452813_-77.46797742.jpg', '1135_I-0fMXjF_Sl6Kzi6QVwutg_44.36544320_-79.69627478.jpg', '1156_SzAAbOsC8B8JWePf9c3MWg_43.55042701_-79.61589612.jpg', '1083_gBkj2Qd67-qSR_4CKVMWIw_39.39391086_-96.41358154.jpg', '1161_fiTM1xXFPrW2OCP-KsNdkw_37.26785901_-97.76318409.jpg', '1240_2SlEtkfmGMKxMPzTgN3aQg_39.77226289_-100.03511797.jpg', '1329_UD-x4q7agDcPStqCWEKzjA_39.71224141_-97.35981488.jpg', '1498_pPRGNyVbU_NsrRf59V0bDQ_38.98599869_-94.61979706.jpg', '1109_gf2zt57-fv9NtpqaqGC4xA_-35.65429116_147.84469396.jpg', '1115_HIt6Upg2o3q0zknZFfSbmQ_-30.96716596_152.83334742.jpg', '1230_NRdxQMlI5VCJ0tUeFbMTVQ_-33.38148803_148.00127797.jpg', '1281_ID5qdTxGLfvw4aPfRdk4qw_-28.73153164_152.61846866.jpg', '1299_MY8fcCpivQ4DmbGFrUmgbQ_-28.92851513_153.49285591.jpg', '1020_bAJfg-5pjGtzY3TB4m2Zgw_40.88656183_-82.42882971.jpg', '1155_snY56DfNn7lLLjVPSuuXkg_38.83127922_-82.51753568.jpg', '1167_hYhKqekSgY13Qi3W58ujLw_41.24539425_-82.38691166.jpg', '1182_Y2lywy64sxXr1_vDQxndXA_40.79307311_-81.43565045.jpg', '1247_d0_fhB_PJU54SgFAermnKw_41.16708697_-80.69610259.jpg', '1029_zrTk7uLDX6xExB4qZ3uCtA_18.67827302_73.73416972.jpg', '1220_c3eSFrjC94dRQpm4cleKFg_19.10792358_77.49288234.jpg', '1454_lhUIUBqQpUju0WqBBZP1nA_16.99278065_73.29336382.jpg', '151_BYGMzzVEhB9NBxvSZ0DcBA_17.99075804_74.43155213.jpg', '1673_LxEAnOIvX4QTJD6gL6fI2Q_18.96278234_74.75364898.jpg', '1043_1X_pBCP3a3aJQG617a8q5A_46.21420434_-0.55239215.jpg', '1160_wdOv9VgirjEDx2pBDu2-Xw_45.99321611_0.64587533.jpg', '1270_8BCSOlVm-y1fZsWUnvh84g_44.80653350_-0.62930843.jpg', '1282_hnUmyZWlx4BNT4lWP0kshg_45.58319044_1.71979083.jpg', '1309_W8fY2HIQ5mK1xNXvb169PQ_45.12715875_1.58055964.jpg', '102_Nl7vCPBQH8qNgK_u9ISRbA_26.46335459_-80.10290633.jpg', '103_d6XLKlWpampB9jANBDNI_w_26.60708730_-82.11070116.jpg', '1119_3tuRSA0Am1Z8kOwUA5e-IA_29.39128563_-81.63866776.jpg', '1169_ictckD9bcendrROpkhHUBQ_27.49531005_-82.71085548.jpg', '120_akqj_RCfNsVM-Ka6Eaaong_28.30372231_-81.41672396.jpg', '1066_BAeDw8i50UUC6ZnDwJbUjg_-21.28272083_-44.76051177.jpg', '1249_P6EKpg3GZnfrxYZRLHfI9Q_-18.96695802_-43.25607938.jpg', '1268_antKfvwX_KsenqhezIfwMw_-17.85595747_-42.85849559.jpg', '1285_nJQONjK1SFIcBr8nixAljA_-17.31502304_-44.23413915.jpg', '1404_YC4OrX9cZEcYMoqUhme_4A_-20.73407320_-46.60125770.jpg', '1010_FUz1ZpAgvX1P3JfqcsOEcQ_43.71011725_-82.60973825.jpg', '1027_mlFjC-5HbipRtpw13dNBAA_42.55983937_-83.83378278.jpg', '112_keM_WJ9I8ibwSQFwsRg2iA_45.31945799_-85.25889363.jpg', '1499_qHwKn9WUgPRorTmpxxFrCQ_45.40536813_-87.53342374.jpg', '1681_nlkcdcFkc7oUnn_3w1CN7Q_44.97251352_-84.68254912.jpg', '1058_3QFl30hRhfTn-DJUE8-blQ_-37.77636864_144.94594390.jpg', '1093_V3_EzmS76oylZNzByH15gA_-37.87523837_142.29062445.jpg', '1104_83_07y8Mx8fcfRUgQ37N9g_-36.60681919_142.35770258.jpg', '1149_QI9nA5re6N6TePZmStfAAA_-38.00104355_145.19074495.jpg', '1179_gZhfdThAaOpDRgTqjTc76w_-36.75004899_143.83334816.jpg', '1003_6Ub2NCPQvEae5xWZNpv36g_44.87134535_1.80392266.jpg', '109_Sqqd1lK1OW29OD0a4xZySg_43.89094717_2.12904542.jpg', '1352_NfBW_5ZHx4lEjHxckbVayw_44.57465656_2.27104268.jpg', '1401_wuB4NyNynGlCGolPHKhoMw_44.10029923_0.93360995.jpg', '1494__GGSD_AHPygj9s-zKPYQWA_43.18187324_2.36136220.jpg', '102_NBW4pKuCwLnXiou23SetAw_43.88628461_-75.44721170.jpg', '1046_Kf0iwzKPW36kkZ6pGW2D2g_43.15508682_-78.52003190.jpg', '1059_KCpMF74gqrnBq3788ubDaA_42.27453671_-78.67213403.jpg', '1067_idAmfmPM3vJy7lr9pQaMxw_42.67032135_-77.63532371.jpg', '1195_Jo6t6eB9iX3jzdyIGep0iQ_42.09712378_-79.23654269.jpg', '0_czgxdGu5OGDeM4UMG5PESg_26.34864265_73.04373521.jpg', '1018_K_CnadLQtLytSj1_0ItWfw_25.39149086_75.66815178.jpg', '1050_QfEbA5ipMq_aJxYUMp9nZw_29.11263243_75.16590873.jpg', '1101__OAIHD6busATq9O-rflHhA_24.99912602_72.27140492.jpg', '1156_Egsz4Ozloi9hKnovTJzjag_26.92001916_75.80019239.jpg', '1082_hziQdMTjLOF1rOZx3xEZQg_40.93649856_-5.57933611.jpg', '1095_qOZgOVU4bk-AT9vT2hc7mA_42.89729973_-4.88654863.jpg', '127_74cwu8-k-VI0Vkt-2dHQkw_42.83028177_-3.42633341.jpg', '1351_ttzpZtfmFhAUxcxOBnv98A_42.22422601_-3.58946221.jpg', '1366_2JW4ly7WkY6dX4KWMmRP-w_41.09645231_-4.23946487.jpg', '1007_ewnxwTcOwaXLHSNK2-7IKg_28.84396541_77.57780746.jpg', '1174_MF1uy4A861qnCFTm6o-UWQ_26.71556391_84.24101978.jpg', '1484_CmedwdVM6Ttfx8G8RuCfkw_27.70418953_79.62344651.jpg', '150_YnmG2hm9tILSR8mDch3N7A_26.54954609_80.63316950.jpg', '1524_eqz_CidtlD1AfnrvL_CUJw_26.28696774_80.43759541.jpg', '1097_LjsxjYHOXQSmCEG3gbyl0A_31.79686890_-88.23749968.jpg', '1141_ObDFYkNi-BJzOfTEqXCbYg_31.58737316_-85.72534679.jpg', '148_IrxBg6byVMbO0NsVRT1nyA_32.52465198_-85.85111044.jpg', '1565_g6jhDC_AJYHF7LG7iH5wHw_31.97764056_-87.13050595.jpg', '1579_mPziNZ9zkmh8uI9cQSXhtQ_31.22681430_-86.69140337.jpg', '1068_3sO0ZQo3sjhc0IY7lKa-EA_33.79530237_-85.26823597.jpg', '1226_8LIpaca81giERfcgx0jF7A_33.80298946_-84.60292915.jpg', '1678_QchiLZM7Y5gvs-xybJiPAw_34.92516360_-85.24117105.jpg', '176_qbT-lXLHLSO7tC7oUscvYA_33.27927499_-84.87944661.jpg', '1827_EvwGJWpdlkWUdp6rZfLWmw_34.98664344_-84.37116354.jpg', '1094_r_KPCjbpT2lX-8OoFhdnwQ_45.41757879_3.28442160.jpg', '1154_siTahmEBRwB0Grs_D210ng_45.63128136_5.57101479.jpg', '1209_ocxZptpV-rC7purrKEQeEw_46.53090695_3.31630801.jpg', '128_RCGI5mvak7Ly83Hbct28aw_44.94412257_4.73007454.jpg', '1305_UCAt9sq5VZ4J00bjQ2yMyg_44.92210444_2.83748807.jpg', '1006_eQZfjxW480yE3P4v5zC7bA_14.78602252_76.09818941.jpg', '104__Km5hyh3aPiTi8rayfG83Q_13.76075839_76.34866136.jpg', '1121_7_HREIKqxLyexCmJgB2hxw_12.71641372_77.38228883.jpg', '1161_eS-E3F2a9GKG2YX-E4Prmw_14.41521161_75.43938244.jpg', '1211_pa3IO2QP8tboXCvHb-XExw_13.12682489_77.07273565.jpg', '1051_o8hfVlryqeGc9cigZFODDw_-23.57207634_-46.03870867.jpg', '112_vYWsD3Vj7nMc-80MWEj50A_-21.91689200_-47.61703962.jpg', '11_1Unb1cAHVEGv8asYhMGhwg_-23.05666100_-49.62636121.jpg', '130_GAHBr-itzIHXxris6A410g_-21.06397620_-47.74429794.jpg', '138_LJvYcY86FcdHMXq0XLZz0A_-21.63760151_-50.50008216.jpg']
|
24 |
+
|
25 |
+
|
26 |
+
|
27 |
+
dataset_path = "real_images"
|
28 |
+
|
29 |
+
image_paths = [os.path.join(dataset_path, x) for x in file_names]
|
30 |
+
|
31 |
+
|
32 |
+
|
33 |
+
real_images = [np.array(Image.open(path).convert("RGB")) for path in image_paths]
|
34 |
+
|
35 |
+
|
36 |
+
|
37 |
+
def preprocess_image(image):
|
38 |
+
|
39 |
+
image = torch.tensor(image, device=device, dtype=torch.float32).unsqueeze(0)
|
40 |
+
|
41 |
+
image = image.permute(0, 3, 1, 2) / 255.0
|
42 |
+
|
43 |
+
resized_image = F.interpolate(image, size=(768, 1536), mode='bilinear', align_corners=False)
|
44 |
+
|
45 |
+
return resized_image
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
real_images = torch.cat([preprocess_image(image) for image in real_images])
|
50 |
+
|
51 |
+
print(real_images.shape)
|
52 |
+
|
53 |
+
|
54 |
+
|
55 |
+
# read in generated images
|
56 |
+
|
57 |
+
models = [
|
58 |
+
|
59 |
+
(streetview_path, "StreetView360X"),
|
60 |
+
|
61 |
+
(sd_path, "Stable Diffusion 2.1"),
|
62 |
+
|
63 |
+
(ldm3d_path, "LDM3D-pano"),
|
64 |
+
|
65 |
+
]
|
66 |
+
|
67 |
+
|
68 |
+
|
69 |
+
for path, name in models:
|
70 |
+
|
71 |
+
image_paths = sorted([os.path.join(path, x) for x in os.listdir(path)], key=lambda a: int(a.replace(path, "").split("_")[0][1:]))
|
72 |
+
|
73 |
+
assert(len(image_paths) == len(real_images))
|
74 |
+
|
75 |
+
fake_images = [np.array(Image.open(path).convert("RGB")) for path in image_paths]
|
76 |
+
|
77 |
+
fake_images = np.stack(fake_images, axis=0)
|
78 |
+
fake_images = torch.tensor(fake_images, device=device, dtype=torch.float32)
|
79 |
+
|
80 |
+
fake_images = fake_images.permute(0, 3, 1, 2) / 255.0
|
81 |
+
|
82 |
+
print(fake_images.shape)
|
83 |
+
|
84 |
+
fid = FrechetInceptionDistance(normalize=True).to(device)
|
85 |
+
|
86 |
+
fid.update(real_images, real=True)
|
87 |
+
|
88 |
+
fid.update(fake_images, real=False)
|
89 |
+
|
90 |
+
print(f"FID for {name}: {float(fid.compute())}")
|
91 |
+
|
92 |
+
|
get_filenames.py
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# read filenames and return a .txt (do locally instead of on colab)
|
2 |
+
import os
|
3 |
+
|
4 |
+
# Replace 'your_folder_path_here' with the path to your directory
|
5 |
+
folder_path = 'combined'
|
6 |
+
file_names = []
|
7 |
+
|
8 |
+
# List all files in the directory and append them to the file_names list
|
9 |
+
for filename in os.listdir(folder_path):
|
10 |
+
if os.path.isfile(os.path.join(folder_path, filename)):
|
11 |
+
file_names.append(filename)
|
12 |
+
|
13 |
+
# Specify the name of the text file where the filenames will be written
|
14 |
+
output_file_path = 'file_names.txt'
|
15 |
+
|
16 |
+
# Write the filenames to the specified text file
|
17 |
+
with open(output_file_path, 'w') as file:
|
18 |
+
for name in file_names:
|
19 |
+
file.write(f"{name}\n")
|
20 |
+
|
21 |
+
print(f"Filenames written to {output_file_path}")
|
inference.py
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
from datetime import datetime
|
3 |
+
from diffusers import StableDiffusionPipeline, StableDiffusionLDM3DPipeline
|
4 |
+
|
5 |
+
streetview_path="streetview-v4-10000-images.safetensors"
|
6 |
+
sd_diffusers_path = "checkpoints/v2-1_768-nonema-pruned.safetensors"
|
7 |
+
ldm3d_path = "checkpoints/ldm3d-pano"
|
8 |
+
|
9 |
+
prompt_file_path = "prompts/combined_prompts_plain.txt"
|
10 |
+
|
11 |
+
|
12 |
+
num_inference_steps= 50
|
13 |
+
|
14 |
+
sample_basename = "streetview"
|
15 |
+
|
16 |
+
n_prompt = "bad, deformed, ugly, low quality, underexposed, overexposed, grainy, cartoon, anime"
|
17 |
+
|
18 |
+
original_config_file="v2-inference-v.yaml"
|
19 |
+
|
20 |
+
HEIGHT = 768
|
21 |
+
|
22 |
+
WIDTH = 2 * HEIGHT
|
23 |
+
|
24 |
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
25 |
+
|
26 |
+
output_directory = f'Generated Images/ldm3d'
|
27 |
+
|
28 |
+
# Create the directory if it does not exist
|
29 |
+
os.makedirs(output_directory, exist_ok=True)
|
30 |
+
|
31 |
+
# streetview and sd21
|
32 |
+
#pipe = StableDiffusionPipeline.from_single_file(streetview_path, use_auth_token=False, local_files_only=True, original_config_file=original_config_file)
|
33 |
+
|
34 |
+
#ldm3d-pano
|
35 |
+
pipe = StableDiffusionLDM3DPipeline.from_pretrained(ldm3d_path, use_auth_token=False, local_files_only=True, original_config_file=original_config_file)
|
36 |
+
|
37 |
+
pipe = pipe.to("cuda")
|
38 |
+
|
39 |
+
with open(prompt_file_path, 'r') as file:
|
40 |
+
|
41 |
+
prompts = file.readlines()
|
42 |
+
|
43 |
+
for i, prompt in enumerate(prompts, start=1):
|
44 |
+
|
45 |
+
prompt = prompt.strip()
|
46 |
+
sample_name = f"{i}_{prompt}_{HEIGHT}_{WIDTH}.png"
|
47 |
+
|
48 |
+
save_path = os.path.join(output_directory, sample_name)
|
49 |
+
|
50 |
+
# streetview and sd21
|
51 |
+
#image = pipe(prompt=prompt, num_inference_steps=num_inference_steps, negative_prompt=n_prompt, height=HEIGHT, width=WIDTH).images[0]
|
52 |
+
|
53 |
+
# ldm3d
|
54 |
+
image = pipe(prompt=prompt, num_inference_steps=num_inference_steps, negative_prompt=n_prompt, height=HEIGHT, width=WIDTH).rgb[0]
|
55 |
+
|
56 |
+
image.save(save_path)
|
57 |
+
|
job.slurm
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
|
3 |
+
#SBATCH --job-name=py-matinv # create a short name for your job
|
4 |
+
|
5 |
+
#SBATCH --nodes=1 # node count
|
6 |
+
|
7 |
+
#SBATCH --ntasks=1 # total number of tasks across all nodes
|
8 |
+
|
9 |
+
#SBATCH --cpus-per-task=1 # cpu-cores per task (>1 if multi-threaded tasks)
|
10 |
+
|
11 |
+
#SBATCH --mem-per-cpu=50G # memory per cpu-core (4G is default)
|
12 |
+
|
13 |
+
#SBATCH --gres=gpu:1 # number of gpus per node
|
14 |
+
|
15 |
+
#SBATCH --time=40:00:00 # total run time limit (HH:MM:SS)
|
16 |
+
|
17 |
+
#SBATCH --mail-type=begin # send email when job begins
|
18 |
+
|
19 |
+
#SBATCH --mail-type=end # send email when job ends
|
20 |
+
|
21 |
+
#SBATCH --mail-type=fail # send email if job fails
|
22 |
+
|
23 |
+
#SBATCH --mail-user=eshen@princeton.edu
|
24 |
+
|
25 |
+
#SBATCH --constraint=gpu80
|
26 |
+
|
27 |
+
module purge
|
28 |
+
|
29 |
+
module load anaconda3/2024.2
|
30 |
+
|
31 |
+
conda activate tf2-gpu
|
32 |
+
|
33 |
+
conda activate ed2
|
34 |
+
|
35 |
+
pip install -r requirements.txt
|
36 |
+
|
37 |
+
|
38 |
+
|
39 |
+
python train.py --config train.json
|
panorama heatmap.png
ADDED
prompts.zip
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:44b91b739497d5c83b81f277697f17889330d554578f23276360ebbb10642a8a
|
3 |
+
size 3554
|
resize.py
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
from PIL import Image
|
3 |
+
|
4 |
+
def resize_images(directory):
|
5 |
+
# Directory where the resized images will be saved
|
6 |
+
output_dir = os.path.join(directory, 'resized_images')
|
7 |
+
if not os.path.exists(output_dir):
|
8 |
+
os.makedirs(output_dir)
|
9 |
+
|
10 |
+
# Image extensions to look for
|
11 |
+
valid_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.tiff', '.bmp')
|
12 |
+
|
13 |
+
for filename in os.listdir(directory):
|
14 |
+
if filename.lower().endswith(valid_extensions):
|
15 |
+
original_path = os.path.join(directory, filename)
|
16 |
+
resized_path = os.path.join(output_dir, filename)
|
17 |
+
|
18 |
+
try:
|
19 |
+
with Image.open(original_path) as img:
|
20 |
+
# Resize the image
|
21 |
+
img = img.resize((1536, 768), Image.LANCZOS)
|
22 |
+
img.save(resized_path)
|
23 |
+
print(f"Resized and saved {filename} to {resized_path}")
|
24 |
+
except Exception as e:
|
25 |
+
print(f"Error processing {filename}: {e}")
|
26 |
+
|
27 |
+
# Replace '/path/to/your/directory' with the path to the directory containing your images
|
28 |
+
directory_path = 'real_images'
|
29 |
+
resize_images(directory_path)
|
seeded_inference.py
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import torch
|
3 |
+
from datetime import datetime
|
4 |
+
|
5 |
+
from diffusers import StableDiffusionPipeline, StableDiffusionLDM3DPipeline
|
6 |
+
|
7 |
+
streetview_path="streetview-v4-10000-images.safetensors"
|
8 |
+
|
9 |
+
sd_diffusers_path = "checkpoints/v2-1_768-nonema-pruned.safetensors"
|
10 |
+
|
11 |
+
ldm3d_path = "checkpoints/ldm3d-pano"
|
12 |
+
|
13 |
+
prompt_file_path = "prompts/clip_score_prompts.txt"
|
14 |
+
|
15 |
+
num_inference_steps= 40
|
16 |
+
|
17 |
+
sample_basename = "streetview"
|
18 |
+
|
19 |
+
n_prompt = "bad, deformed, ugly, low quality, underexposed, overexposed, grainy, cartoon, anime"
|
20 |
+
|
21 |
+
original_config_file="v2-inference-v.yaml"
|
22 |
+
|
23 |
+
HEIGHT = 768
|
24 |
+
WIDTH = 2 * HEIGHT
|
25 |
+
|
26 |
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
27 |
+
|
28 |
+
output_directory = f'Generated Images/sd_clip'
|
29 |
+
|
30 |
+
# Create the directory if it does not exist
|
31 |
+
os.makedirs(output_directory, exist_ok=True)
|
32 |
+
|
33 |
+
# streetview and sd21
|
34 |
+
|
35 |
+
pipe = StableDiffusionPipeline.from_single_file(sd_diffusers_path, use_auth_token=False, local_files_only=True, original_config_file=original_config_file)
|
36 |
+
|
37 |
+
#ldm3d-pano
|
38 |
+
|
39 |
+
#pipe = StableDiffusionLDM3DPipeline.from_pretrained(ldm3d_path, use_auth_token=False, local_files_only=True, original_config_file=original_config_file)
|
40 |
+
|
41 |
+
pipe = pipe.to("cuda")
|
42 |
+
|
43 |
+
with open(prompt_file_path, 'r') as file:
|
44 |
+
|
45 |
+
prompts = file.readlines()
|
46 |
+
|
47 |
+
|
48 |
+
IMAGES_PER_PROMPT = 5
|
49 |
+
|
50 |
+
generators = [torch.Generator(device='cuda').manual_seed(i) for i in range(IMAGES_PER_PROMPT)]
|
51 |
+
|
52 |
+
|
53 |
+
for i, prompt in enumerate(prompts):
|
54 |
+
|
55 |
+
prompt = prompt.strip()
|
56 |
+
|
57 |
+
for j in range(IMAGES_PER_PROMPT):
|
58 |
+
|
59 |
+
sample_name = f"{i*IMAGES_PER_PROMPT + j}_{prompt}_{HEIGHT}_{WIDTH}.png"
|
60 |
+
save_path = os.path.join(output_directory, sample_name)
|
61 |
+
# streetview and sd21
|
62 |
+
image = pipe(prompt=prompt, generator=generators[j], num_inference_steps=num_inference_steps, negative_prompt=n_prompt, height=HEIGHT, width=WIDTH).images[0]
|
63 |
+
# ldm3d
|
64 |
+
#image = pipe(prompt=prompt, generator=generators[j], num_inference_steps=num_inference_steps, negative_prompt=n_prompt, height=HEIGHT, width=WIDTH).rgb[0]
|
65 |
+
image.save(save_path)
|
streetview360x-v4-10000-images.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:98aafb85af4fc692b5cfc85f835ef15f6bd01a793f352dd22fb15a3a683291b3
|
3 |
+
size 2580068366
|