def parse_station(self, metadata, data): """ Creates a Station object from metadata and data for the station - metadata: NerrStation object - data: list of NerrData objects returns a Station object """ if not isinstance(metadata, NerrStation) or not isinstance(data, list) or len(data) < 1: return None retval = Station() retval.uid = metadata.code retval.name = metadata.name retval.description = str('%s-%s' % (metadata.id,metadata.code)) point_dict = dict() for d in data: for value_date in d.value_and_utc(): if value_date[0] is not None: param = d.get_top_param() if value_date[1] not in point_dict: point_dict[value_date[1]] = Point() point_dict[value_date[1]].time = value_date[1] if param.upper() == 'DEPTH': point_dict[value_date[1]].location = Location(metadata.location.longitude, metadata.location.latitude, float(value_date[0])) else: point_dict[value_date[1]].add_member(dict(name=param,value=value_date[0],unit=unit(param))) for point in point_dict.values(): retval.add_element(point) retval.set_location(Location(metadata.location.longitude, metadata.location.latitude)) return retval