def test_time_validstr(): obs_st, obs_end = val.temporal(['2019-02-22', '2019-02-28'], '13:50:59', '23:15:00') exp_start = dt.datetime(2019, 2, 22, 13, 50, 59) exp_end = dt.datetime(2019, 2, 28, 23, 15) assert obs_st == exp_start assert obs_end == exp_end
def test_time_validstr(): obs_st, obs_end = val.temporal(["2019-02-22", "2019-02-28"], "13:50:59", "23:15:00") exp_start = dt.datetime(2019, 2, 22, 13, 50, 59) exp_end = dt.datetime(2019, 2, 28, 23, 15) assert obs_st == exp_start assert obs_end == exp_end
def __init__( self, dataset=None, spatial_extent=None, date_range=None, start_time=None, end_time=None, version=None, cycles=None, tracks=None, files=None, ): # warnings.filterwarnings("always") # warnings.warn("Please note: as of 2020-05-05, a major reorganization of the core icepyx.query code may result in errors produced by now depricated functions. Please see our documentation pages or example notebooks for updates.") if ( (dataset is None or spatial_extent is None) and (date_range is None or cycles is None or tracks is None) and files is None ): raise ValueError( "Please provide the required inputs. Use help([function]) to view the function's documentation" ) if files is not None: self._source = "files" # self.file_vars = Variables(self._source) else: self._source = "order" # self.order_vars = Variables(self._source) # self.variables = Variables(self._source) self._dset = is2ref._validate_dataset(dataset) self.extent_type, self._spat_extent, self._geom_filepath = val.spatial( spatial_extent ) if date_range: self._start, self._end = val.temporal(date_range, start_time, end_time) self._version = val.dset_version(self.latest_version(), version) # build list of available CMR parameters if reducing by cycle or RGT # or a list of explicitly named files (full or partial names) # DevGoal: add file name search to optional queries if cycles or tracks: # get lists of available ICESat-2 cycles and tracks self._cycles = val.cycles(cycles) self._tracks = val.tracks(tracks) # create list of CMR parameters for granule name self._readable_granule_name = apifmt._fmt_readable_granules( self._dset, cycles=self.cycles, tracks=self.tracks )
def __init__( self, spatial_extent=None, date_range=None, start_time=None, end_time=None ): # validate & init spatial extent self.extent_type, self._spat_extent, self._geom_filepath = val.spatial( spatial_extent ) # valiidate and init temporal constraints if date_range: self._start, self._end = val.temporal(date_range, start_time, end_time)
def __init__( self, dataset=None, spatial_extent=None, date_range=None, start_time=None, end_time=None, version=None, files=None, ): warnings.filterwarnings("always") warnings.warn( "Please note: as of 2020-05-05, a major reorganization of the core icepyx.icesat2data code may result in errors produced by now depricated functions. Please see our documentation pages or example notebooks for updates." ) if (dataset is None or spatial_extent is None or date_range is None) and files is None: raise ValueError( "Please provide the required inputs. Use help([function]) to view the function's documentation" ) if files is not None: self._source = 'files' # self.file_vars = Variables(self._source) else: self._source = 'order' # self.order_vars = Variables(self._source) # self.variables = Variables(self._source) self._dset = is2ref._validate_dataset(dataset) self.extent_type, self._spat_extent, self._geom_filepath = val.spatial( spatial_extent) self._start, self._end = val.temporal(date_range, start_time, end_time) self._version = val.dset_version(self.latest_version(), version)
def test_endtime_validstr(): ermsg = "Please enter your end time as a string" with pytest.raises(TypeError, match=ermsg): val.temporal(["2019-02-22", "2019-02-28"], "00:15:00", 235959)
def test_starttime_validstr(): ermsg = "Please enter your start time as a string" with pytest.raises(TypeError, match=ermsg): val.temporal(["2019-02-22", "2019-02-28"], 121500, None)
def test_time_defaults(): obs_st, obs_end = val.temporal(["2019-02-22", "2019-02-28"], None, None) exp_start = dt.datetime(2019, 2, 22, 00, 00, 00) exp_end = dt.datetime(2019, 2, 28, 23, 59, 59) assert obs_st == exp_start assert obs_end == exp_end
def test_bad_date_range(): ermsg = "Your date range list is the wrong length. It should have start and end dates only." with pytest.raises(ValueError, match=ermsg): val.temporal(["2019-02-22"], None, None)
def test_date_range_order(): ermsg = "Your date range is invalid" with pytest.raises(AssertionError, match=ermsg): val.temporal(["2019-03-22", "2019-02-28"], None, None)
def test_endtime_validstr(): ermsg = "Please enter your end time as a string" with pytest.raises(TypeError, match=ermsg): val.temporal(['2019-02-22', '2019-02-28'], '00:15:00', 235959)
def __init__( self, dataset=None, spatial_extent=None, date_range=None, start_time=None, end_time=None, version=None, cycles=None, tracks=None, orbit_number=None, files=None, ): # warnings.filterwarnings("always") # warnings.warn("Please note: as of 2020-05-05, a major reorganization of the core icepyx.query code may result in errors produced by now depricated functions. Please see our documentation pages or example notebooks for updates.") if (dataset is None or spatial_extent is None or date_range is None) and files is None: raise ValueError( "Please provide the required inputs. Use help([function]) to view the function's documentation" ) if files is not None: self._source = "files" # self.file_vars = Variables(self._source) else: self._source = "order" # self.order_vars = Variables(self._source) # self.variables = Variables(self._source) self._dset = is2ref._validate_dataset(dataset) self.extent_type, self._spat_extent, self._geom_filepath = val.spatial( spatial_extent) self._start, self._end = val.temporal(date_range, start_time, end_time) self._version = val.dset_version(self.latest_version(), version) # list of CMR orbit number parameters self._orbit_number = [] # get list of available ICESat-2 cycles and tracks all_cycles, all_tracks = self.avail_granules(ids=False, cycles=True, tracks=True) self._cycles = val.cycles(all_cycles, cycles) self._tracks = val.tracks(all_tracks, tracks) # build list of available CMR orbit number if reducing by cycle or RGT if cycles or tracks: # for each available cycle of interest for c in self.cycles: # for each available track of interest for t in self.tracks: self._orbit_number.append( int(t) + (int(c) - 1) * 1387 + 201) # update the CMR parameters for orbit_number self.CMRparams['orbit_number'] = self.orbit_number # update required parameters (number of pages) self._reqparams.build_params() # update the list of available granules self.granules.get_avail(self.CMRparams, self.reqparams)