<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_coordinates_for_dataset_key(self, dsid):
 """Get the coordinate dataset keys for `dsid`. Wraps the base class method in order to load geolocation files from the geo reference attribute in the datasets file. """

        coords = super(VIIRSSDRReader, self)._get_coordinates_for_dataset_key(dsid)
        for c_id in coords:
            c_info = self.ids[c_id]  # c_info['dataset_groups'] should be a list of 2 elements
            self._get_file_handlers(c_id)
            if len(c_info['dataset_groups']) == 1:  # filtering already done
                continue
            try:
                req_geo, rem_geo = self._get_req_rem_geo(c_info)
            except ValueError:  # DNB
                continue

            # check the dataset file for the geolocation filename
            geo_filenames = self._load_from_geo_ref(dsid)
            if not geo_filenames:
                c_info['dataset_groups'] = [rem_geo]
            else:
                # concatenate all values
                new_fhs = sum(self.create_filehandlers(geo_filenames).values(), [])
                desired, other = split_desired_other(new_fhs, req_geo, rem_geo)
                if desired:
                    c_info['dataset_groups'].remove(rem_geo)
                else:
                    c_info['dataset_groups'].remove(req_geo)

        return coords