def parse_constraints(self, environ): dataset = copy.deepcopy(self.dataset) projection, selection = parse_qs(environ.get('QUERY_STRING', '')) list_of_var = [] if projection: for var in projection: var_name = var[len(var)-1][0] if var_name in list_of_var: continue list_of_var.append(var_name) if var_name in ['lat', 'lon']: if var_name == 'lon': dataset[var_name] = BaseType(name=var_name, data=self.lons, shape=self.lons.shape, dimensions=('lon',), type=self.lons.dtype.char) elif var_name == 'lat': dataset[var_name] = BaseType(name=var_name, data=self.lats, shape=self.lats.shape, dimensions=('lat',), type=self.lats.dtype.char) else: data = self.get_data_for_parameter(var_name, None) dataset[var_name] = BaseType(name=var_name, data=data, shape=data.shape, dimensions=('lat', 'lon'), type=data.dtype.char) return constrain(dataset, environ.get('QUERY_STRING', ''))
def parse_constraints(self, environ): dataset = copy.deepcopy(self.dataset) projection, selection = parse_qs(environ.get('QUERY_STRING', '')) list_of_var = [] if projection: for var in projection: var_name = var[len(var) - 1][0] if var_name in list_of_var: continue list_of_var.append(var_name) if var_name in ['lat', 'lon']: if var_name == 'lon': dataset[var_name] = BaseType(name=var_name, data=self.lons, shape=self.lons.shape, dimensions=('lon', ), type=self.lons.dtype.char) elif var_name == 'lat': dataset[var_name] = BaseType(name=var_name, data=self.lats, shape=self.lats.shape, dimensions=('lat', ), type=self.lats.dtype.char) else: data = self.get_data_for_parameter(var_name, None) dataset[var_name] = BaseType(name=var_name, data=data, shape=data.shape, dimensions=('lat', 'lon'), type=data.dtype.char) return constrain(dataset, environ.get('QUERY_STRING', ''))
def parse_constraints(self, environ): """ Parse the request. This method uses the magic ``constrain`` function, which handles arbitrary datasets/constraint expressions according to the DAP spec. """ environ['x-wsgiorg.throw_errors'] = self.debug new_dataset = constrain(self.dataset, environ.get('QUERY_STRING', '')) if hasattr(self.dataset, 'close'): self.dataset.close() return new_dataset
def parse_constraints(self, environ): try: f = fCNV(self.filepath) except: message = 'Unable to open file %s.' % self.filepath print self.filepath raise OpenFileError(message) # ==== #s = StructureType(name='s') dataset = SequenceType(name=f.attributes['filename'], attributes=f.attributes) for k in f.keys(): dataset[k] = BaseType(name=k, data=f[k], shape=f[k].shape, type=f[k].dtype.char) #, attributes=f.attributes) # ==== return constrain(dataset, environ.get('QUERY_STRING', ''))
def parse_constraints(self, environ): try: f = fCNV(self.filepath) except: message = 'Unable to open file %s.' % self.filepath print self.filepath raise OpenFileError(message) # ==== #s = StructureType(name='s') dataset = SequenceType(name=f.attributes['filename'], attributes=f.attributes) for k in f.keys(): dataset[k] = BaseType( name=k, data=f[k], shape=f[k].shape, type=f[k].dtype.char) #, attributes=f.attributes) # ==== return constrain(dataset, environ.get('QUERY_STRING', ''))
dataset[seq_name][name] = BaseType(name=name, data=data, type=self.get_numpy_type(data), attributes=attrs) if isinstance(pc.param_type,RecordType): try: result = [] for ddict in data: d = ['_'.join([k,v]) for k,v in ddict.iteritems()] result = result + d result = np.asanyarray(result) except Exception, e: result = np.asanyarray(['None' for d in data]) ttype = self.get_numpy_type(result) dataset[seq_name][name] = BaseType(name=name, data=result, type=ttype, attributes=attrs) except Exception, e: log.exception('Problem reading cov %s %s', cov.name, e) continue return constrain(dataset, environ.get('QUERY_STRING', '')) def get_numpy_type(self, data): result = data.dtype.char if self.is_basestring(data): result = 'S' elif self.is_float(data): result = 'd' elif self.is_int(data): result = 'i' elif result not in ('d', 'f', 'h', 'i','b','H','I','B','S'): raise TypeNotSupportedError() return result def is_basestring(self, data): for d in data: