Ejemplo n.º 1
0
 def _get_annotations(self, inst):
     """ Get annotations of the inst pandas Series object """
     params = {
         "beginDT":
         unix_time_millis(
             parser.parse(
                 inst.begin_date).replace(tzinfo=pytz.UTC)),  # noqa
         "endDT":
         unix_time_millis(
             parser.parse(inst.end_date).replace(tzinfo=pytz.UTC)),  # noqa
         "method":
         inst.stream_method,
         "refdes":
         inst.reference_designator,
         "stream":
         inst.stream_rd,
     }
     rannotations = fetch_url(
         requests.Request(
             "GET",
             self._OOI_M2M_ANNOTATIONS,
             auth=(self.ooi_username, self.ooi_token),
             params=params,
         ).prepare(),
         session=self._session,
     )
     if rannotations:
         return parse_annotations_json(rannotations.json())
     return None
Ejemplo n.º 2
0
 def _perform_request(self, arg):
     """ Function that perform task from queue """
     # when this exits, the print_lock is released
     with print_lock:
         req = fetch_url(prepped_request=arg, session=self._session)
         if req.json():
             jsonres = req.json()
             if "status_code" in jsonres:
                 jsonres["request_url"] = req.url
             self._raw_data.append(jsonres)
         logger.debug(arg)
Ejemplo n.º 3
0
    def _get_global_ranges(self):
        """ Get global ranges in OOI """
        if self._rglobal_range:
            rglobal_range = self._rglobal_range
        else:
            rglobal_range = fetch_url(
                requests.Request("GET", self._OOI_GLOBAL_RANGE).prepare(),
                session=self._session,
            )
            self._rglobal_range = rglobal_range
        global_ranges = pd.read_csv(StringIO(rglobal_range.text))

        return parse_global_range_dataframe(global_ranges)
Ejemplo n.º 4
0
 def _get_deployments(self, inst):
     """ Get deployment of the inst pandas Series object """
     params = {"refdes": inst.reference_designator}
     rdeployments = fetch_url(
         requests.Request(
             "GET",
             self._OOI_M2M_DEPLOYMENT_QUERY,  # noqa
             auth=(self.ooi_username, self.ooi_token),
             params=params,
         ).prepare(),
         session=self._session,
     )
     if rdeployments:
         return parse_deployments_json(rdeployments.json(), inst)
     return None
Ejemplo n.º 5
0
 def _get_vocab(self):
     """ Get vocabulary """
     if self._rvocab:
         rvocab = self._rvocab
     else:
         rvocab = fetch_url(
             requests.Request(
                 "GET",
                 self._OOI_M2M_VOCAB,
                 auth=(self.ooi_username, self.ooi_token),
             ).prepare(),
             session=self._session,
         )
         self._rvocab = rvocab
     return pd.DataFrame(rvocab.json())
Ejemplo n.º 6
0
 def _get_streams(self):
     """ Get OOI Streams """
     if self._rstreams:
         rstreams = self._rstreams
     else:
         rstreams = fetch_url(
             requests.Request(
                 "GET",
                 self._OOI_M2M_STREAMS,
                 auth=(self.ooi_username, self.ooi_token),
             ).prepare(),
             session=self._session,
         )
         self._rstreams = rstreams
     streamsdf = pd.DataFrame.from_records(rstreams.json()).copy()
     return parse_streams_dataframe(streamsdf)
Ejemplo n.º 7
0
 def _fetch_monthly_stats(self, inst):
     """ Fetched monthly stats for instrument object """
     rmstats = fetch_url(
         requests.Request(
             "GET",
             f"{self._OOI_VISUALOCEAN_M_STATS}/{inst.reference_designator}.json",
         ).prepare(),  # noqa
         session=self._session,
     )
     mstatsdf = pd.DataFrame(rmstats.json()).copy()
     mstatsdf.loc[:, "percentage"] = mstatsdf.percentage.apply(
         lambda row: row * 100.0)
     mstatsdf.loc[:, "reference_designator"] = inst.reference_designator
     return mstatsdf.rename(
         {
             "stream": "stream_rd",
             "method": "stream_method"
         }, axis=1)
Ejemplo n.º 8
0
    def _get_instruments_catalog(self):
        """ Get instruments catalog """
        if self._rtoc:
            rtoc = self._rtoc
        else:
            rtoc = fetch_url(
                requests.Request(
                    "GET",
                    self._OOI_M2M_TOC,
                    auth=(self.ooi_username, self.ooi_token),
                ).prepare(),
                session=self._session,
            )
            self._rtoc = rtoc

        toc_json = rtoc.json()
        instruments_json = toc_json["instruments"]
        return parse_toc_instruments(instruments_json)