MCPcopy Create free account
hub / github.com/MarcCoru/locationencoder / load_inat_location_data

Function load_inat_location_data

data/inat2018_loader.py:202–266  ·  view source on GitHub ↗
(ip_dir, loc_file_name, ann_file_name, remove_empty=True)

Source from the content-addressed store, hash-verified

200 np.save(logits_file, logits)
201
202def load_inat_location_data(ip_dir, loc_file_name, ann_file_name, remove_empty=True):
203 print('Loading ' + os.path.basename(loc_file_name))
204
205 # load location info
206 with open(ip_dir + loc_file_name) as da:
207 loc_data = json.load(da)
208 loc_data_dict = dict(zip([ll['id'] for ll in loc_data], loc_data))
209
210 if '_large' in loc_file_name:
211 # special case where the loc data also includes meta data such as class
212 locs = [[ll['lon'], ll['lat']] for ll in loc_data]
213 dates = [ll['date_c'] for ll in loc_data]
214 classes = [ll['class'] for ll in loc_data]
215 users = [ll['user_id'] for ll in loc_data]
216 keep_inds = np.arange(len(locs))
217 print('\t {} valid entries'.format(len(locs)))
218
219 else:
220 # otherwise load regualar iNat data
221
222 # load annotation info
223 with open(ip_dir + ann_file_name) as da:
224 data = json.load(da)
225
226 ids = [tt['id'] for tt in data['images']]
227 ids_all = [ii['image_id'] for ii in data['annotations']]
228 classes_all = [ii['category_id'] for ii in data['annotations']]
229 classes_mapping = dict(zip(ids_all, classes_all))
230
231 # store locations and associated classes
232 locs = []
233 classes = []
234 users = []
235 dates = []
236 miss_cnt = 0
237 keep_inds = []
238 dataids = []
239 for ii, tt in enumerate(ids):
240
241 if remove_empty and ((loc_data_dict[tt]['lon'] is None) or (loc_data_dict[tt]['user_id'] is None)):
242 miss_cnt += 1
243 else:
244 if (loc_data_dict[tt]['lon'] is None):
245 loc = [np.nan, np.nan]
246 else:
247 loc = [loc_data_dict[tt]['lon'], loc_data_dict[tt]['lat']]
248
249 if (loc_data_dict[tt]['user_id'] is None):
250 u_id = -1
251 else:
252 u_id = loc_data_dict[tt]['user_id']
253
254 locs.append(loc)
255 classes.append(classes_mapping[int(tt)])
256 users.append(u_id)
257 dates.append(loc_data_dict[tt]['date_c'])
258 keep_inds.append(ii)
259 dataids.append(tt)

Callers 2

__init__Method · 0.85
setupMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected