From 0a2a57c89a1b71db3c953106baffa3901cb25830 Mon Sep 17 00:00:00 2001 From: hrfuller Date: Mon, 17 Jul 2017 22:56:33 +0000 Subject: [PATCH] add derived_bands methods --- descarteslabs/services/metadata.py | 33 ++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/descarteslabs/services/metadata.py b/descarteslabs/services/metadata.py index 1c0612f0..d6c001d6 100644 --- a/descarteslabs/services/metadata.py +++ b/descarteslabs/services/metadata.py @@ -59,7 +59,7 @@ def sources(self): return r.json() def bands(self, products=None, limit=None, offset=None, wavelength=None, resolution=None, tags=None): - """Seach for imagery data bands that you have access to. + """Search for imagery data bands that you have access to. :param list(str) products: A list of product(s) to return bands for. :param int limit: Number of results to return. @@ -82,6 +82,26 @@ def bands(self, products=None, limit=None, offset=None, wavelength=None, resolut r = self.session.post('/bands/search', json=kwargs) return r.json() + def derived_bands(self, bands=None, limit=None, offset=None): + """Search for predefined derived bands that you have access to. + + :param list(str) bands: A list of source bands that must be part of + the derived band i.e ["nir"] + :param int limit: Number of results to return. + :param int offset: Index to start at when returning results. + """ + params = ['bands', 'limit', 'offset'] + + args = locals() + kwargs = { + param: args[param] + for param in params + if args[param] is not None + } + + r = self.session.post('/bands/derived/search', json=kwargs) + return r.json() + def products(self, bands=None, limit=None, offset=None): """Search products that are available on the platform. @@ -119,7 +139,7 @@ def available_products(self): return r.json() - def translate(const_id): + def translate(self, const_id): """Translate a deprecated constellation identifier into a new-style product identifier. @@ -525,3 +545,12 @@ def get_band(self, band_id): """ r = self.session.get('/bands/%s' % band_id) return r.json() + + def get_derived_band(self, derived_band_id): + """Get information about a single product. + + :param str derived_band_id: Derived band identifier. + + """ + r = self.session.get('/bands/derived/%s' % derived_band_id) + return r.json()