def query(self, *query): """ Query data from the VSO with the new API. Takes a variable number of attributes as parameter, which are chained together using AND. The new query language allows complex queries to be easily formed. Examples -------- Query all data from eit or aia between 2010-01-01T00:00 and 2010-01-01T01:00. >>> client.query( ... vso.Time(datetime(2010, 1, 1), datetime(2010, 1, 1, 1)), ... vso.Instrument('eit') | vso.Instrument('aia') ... ) Returns ------- out : :py:class:`QueryResult` (enhanced list) of matched items. Return value of same type as the one of :py:meth:`VSOClient.query`. """ query = and_(*query) responses = [] for block in walker.create(query, self.api): try: responses.append( self.api.service.Query( self.make('QueryRequest', block=block))) except TypeNotFound: pass except Exception as ex: response = QueryResponse.create(self.merge(responses)) response.add_error(ex) return QueryResponse.create(self.merge(responses))
def query(self, *query): """ Query data from the VSO with the new API. Takes a variable number of attributes as parameter, which are chained together using AND. The new query language allows complex queries to be easily formed. Examples -------- Query all data from eit or aia between 2010-01-01T00:00 and 2010-01-01T01:00. >>> client.query( ... vso.Time(datetime(2010, 1, 1), datetime(2010, 1, 1, 1)), ... vso.Instrument('eit') | vso.Instrument('aia') ... ) Returns ------- out : :py:class:`QueryResult` (enhanced list) of matched items. Return value of same type as the one of :py:meth:`VSOClient.query`. """ query = and_(*query) responses = [] for block in walker.create(query, self.api): try: responses.append(self.api.service.Query(self.make("QueryRequest", block=block))) except TypeNotFound: pass except Exception as ex: response = QueryResponse.create(self.merge(responses)) response.add_error(ex) return QueryResponse.create(self.merge(responses))
def search(self, *query): """ Query data from the VSO with the new API. Takes a variable number of attributes as parameter, which are chained together using AND. The new query language allows complex queries to be easily formed. Examples -------- Query all data from eit or aia between 2010-01-01T00:00 and 2010-01-01T01:00. >>> from datetime import datetime >>> from sunpy.net import vso >>> client = vso.VSOClient() # doctest: +REMOTE_DATA >>> client.search( ... vso.attrs.Time(datetime(2010, 1, 1), datetime(2010, 1, 1, 1)), ... vso.attrs.Instrument('eit') | vso.attrs.Instrument('aia')) # doctest: +REMOTE_DATA <QTable length=5> Start Time [1] End Time [1] Source ... Type Wavelength [2] ... Angstrom str19 str19 str4 ... str8 float64 ------------------- ------------------- ------ ... -------- -------------- 2010-01-01 00:00:08 2010-01-01 00:00:20 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:12:08 2010-01-01 00:12:20 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:24:10 2010-01-01 00:24:22 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:36:08 2010-01-01 00:36:20 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:48:09 2010-01-01 00:48:21 SOHO ... FULLDISK 195.0 .. 195.0 Returns ------- out : :py:class:`QueryResult` (enhanced list) Matched items. Return value is of same type as the one of :py:meth:`VSOClient.search`. """ query = and_(*query) QueryRequest = self.api.get_type('VSO:QueryRequest') VSOQueryResponse = self.api.get_type('VSO:QueryResponse') responses = [] for block in walker.create(query, self.api): try: query_response = self.api.service.Query( QueryRequest(block=block)) for resp in query_response: if resp["error"]: warnings.warn(resp["error"], SunpyUserWarning) responses.append(VSOQueryResponse(query_response)) except Exception as ex: response = QueryResponse.create(self.merge(responses)) response.add_error(ex) return QueryResponse.create(self.merge(responses))
def search(self, *query): """ Query data from the VSO with the new API. Takes a variable number of attributes as parameter, which are chained together using AND. The new query language allows complex queries to be easily formed. Examples -------- Query all data from eit or aia between 2010-01-01T00:00 and 2010-01-01T01:00. >>> from datetime import datetime >>> from sunpy.net import vso >>> client = vso.VSOClient() # doctest: +REMOTE_DATA >>> client.search( ... vso.attrs.Time(datetime(2010, 1, 1), datetime(2010, 1, 1, 1)), ... vso.attrs.Instrument('eit') | vso.attrs.Instrument('aia')) # doctest: +REMOTE_DATA <QTable length=5> Start Time [1] End Time [1] Source ... Type Wavelength [2] ... Angstrom str19 str19 str4 ... str8 float64 ------------------- ------------------- ------ ... -------- -------------- 2010-01-01 00:00:08 2010-01-01 00:00:20 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:12:08 2010-01-01 00:12:20 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:24:10 2010-01-01 00:24:22 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:36:08 2010-01-01 00:36:20 SOHO ... FULLDISK 195.0 .. 195.0 2010-01-01 00:48:09 2010-01-01 00:48:21 SOHO ... FULLDISK 195.0 .. 195.0 Returns ------- out : :py:class:`QueryResult` (enhanced list) Matched items. Return value is of same type as the one of :py:meth:`VSOClient.search`. """ query = and_(*query) QueryRequest = self.api.get_type('VSO:QueryRequest') VSOQueryResponse = self.api.get_type('VSO:QueryResponse') responses = [] for block in walker.create(query, self.api): try: responses.append( VSOQueryResponse(self.api.service.Query( QueryRequest(block=block) )) ) except Exception as ex: response = QueryResponse.create(self.merge(responses)) response.add_error(ex) return QueryResponse.create(self.merge(responses))
def query(self, *query): """ Query data from the VSO with the new API. Takes a variable number of attributes as parameter, which are chained together using AND. The new query language allows complex queries to be easily formed. Examples -------- Query all data from eit or aia between 2010-01-01T00:00 and 2010-01-01T01:00. >>> from datetime import datetime >>> from sunpy.net import vso >>> client = vso.VSOClient() >>> client.query( ... vso.attrs.Time(datetime(2010, 1, 1), datetime(2010, 1, 1, 1)), ... vso.attrs.Instrument('eit') | vso.attrs.Instrument('aia')) # doctest: +NORMALIZE_WHITESPACE <Table masked=False length=5> Start Time [1] End Time [1] Source Instrument Type string152 string152 string32 string24 string64 ------------------- ------------------- -------- ---------- -------- 2010-01-01 00:00:08 2010-01-01 00:00:20 SOHO EIT FULLDISK 2010-01-01 00:12:08 2010-01-01 00:12:20 SOHO EIT FULLDISK 2010-01-01 00:24:10 2010-01-01 00:24:22 SOHO EIT FULLDISK 2010-01-01 00:36:08 2010-01-01 00:36:20 SOHO EIT FULLDISK 2010-01-01 00:48:09 2010-01-01 00:48:21 SOHO EIT FULLDISK Returns ------- out : :py:class:`QueryResult` (enhanced list) of matched items. Return value of same type as the one of :py:meth:`VSOClient.query`. """ query = and_(*query) responses = [] for block in walker.create(query, self.api): try: responses.append( self.api.service.Query( self.make('QueryRequest', block=block) ) ) except TypeNotFound: pass except Exception as ex: response = QueryResponse.create(self.merge(responses)) response.add_error(ex) return QueryResponse.create(self.merge(responses))