docs: def within_bbox(self, bbox):
          """
          :param bbox:
              a quartet (min_lon, min_lat, max_lon, max_lat)
          :returns:
              site IDs within the bounding box
          """
          min_lon, min_lat, max_lon, max_lat = bbox
          lons, lats = self.array['lon'], self.array['lat']
          if cross_idl(lons.min(), lons.max()) or cross_idl(min_lon, max_lon):
              lons = lons % 360
              min_lon, max_lon = min_lon % 360, max_lon % 360
          mask = (min_lon < lons) * (lons < max_lon) * \
                 (min_lat < lats) * (lats < max_lat)
          return mask.nonzero()[0]