def _resample_temporal(self, region, shapefile=None): """Helper method that calls temporal resampling routines. Parameters: region : str Identifier of the region in the shapefile. If the default shapefile is used, this would be the FIPS country code. shapefile : str, optional Path to shape file, uses "world country admin boundary shapefile" by default. """ src_file = self._get_tmp_filepath('spatial', region) if not os.path.exists(src_file): print '[Info] No data available for this period' return False data = {} variables, _, period = nc.get_properties(src_file) dtindex = dt.get_dtindex(self.dest_temp_res, period[0], period[1]) for date in dtindex: # skip if data for period is not complete # if date > period[1]: # continue if self.dest_temp_res == 'dekad': if date.day < 21: begin = datetime(date.year, date.month, date.day - 10 + 1) else: begin = datetime(date.year, date.month, 21) end = date else: begin = period[0] end = date data = {} metadata = {} for var in variables: img, _, _, meta = \ nc.read_variable(src_file, var, begin, end) metadata[var] = meta data[var] = average_layers(img, self.dest_nan_value) dest_file = self.src_file[region] nc.save_image(data, date, region, metadata, dest_file, self.dest_start_date, self.dest_sp_res, self.dest_nan_value, shapefile, self.dest_temp_res) # delete intermediate netCDF file print '' os.unlink(src_file)
def test_read_variable(self): save_image(self.image, self.timestamp, self.region, self.metadata, self.testfilename, self.start_date, self.sp_res, temp_res=self.temp_res) image, lon, lat, metadata = read_variable(self.testfilename, self.variable, self.timestamp) nptest.assert_array_equal(image, self.data) nptest.assert_array_equal(lon, self.lon) nptest.assert_array_equal(lat, self.lat) assert metadata == self.metadata[self.variable]