def build_img_coll(self, year=None, separate=False, use_closest_image=False): if year is not None: if not isinstance(year, int): raise ValueError( 'Expected year to be integral. Got: {}'.format( type(year))) self.start_date = str(year) + '-1-1' self.end_date = str(year) + '-12-31' self.urban = ee.ImageCollection('JRC/GHSL/P2016/SMOD_POP_GLOBE_V1') if use_closest_image: center_date = get_center_date(self.start_date, self.end_date) self.urban = ee.ImageCollection( get_closest_to_date(self.urban, center_date)) else: self.urban = self.urban.filterDate(self.start_date, self.end_date) if separate: self.urban = self.urban.map(self.separate_urban_bands) else: self.urban = self.urban.map(self.rename_GHLS_Urban) self.urban = self.urban.sort('system:time_start')
def build_img_coll(self): dmsp_original = ee.FeatureCollection( "NOAA/DMSP-OLS/CALIBRATED_LIGHTS_V4") center_date = get_center_date(self.start_date, self.end_date) dmsp_img = get_closest_to_date(dmsp_original, center_date) dmsp_img = dmsp_img.select(['avg_vis'], ['DMSP']) dmsp = ee.ImageCollection([dmsp_img]) zeros_image = ee.Image(0).reproject( ee.Image(dmsp_original.first()).projection()).select([0], ['DMSP']) zeros_image = zeros_image.set('system:time_start', ee.Date('2014-01-01').millis()) zeros_image = zeros_image.set('system:time_end', ee.Date('3000-01-01').millis()) zeros_image_coll = ee.ImageCollection([zeros_image]) requested_daterange = ee.DateRange(self.start_date, self.end_date) viirs_start = ee.Date('2014-1-1') use_zeros_image = requested_daterange.contains(viirs_start) start_year = ee.Number(ee.Date(self.start_date).get('year')) viirs_start_year = ee.Number(viirs_start.get('year')) use_zeros_image2 = start_year.gte(viirs_start_year) dmsp = ee.Algorithms.If(use_zeros_image, zeros_image_coll, dmsp) dmsp = ee.Algorithms.If(use_zeros_image2, zeros_image_coll, dmsp) self.dmsp = ee.ImageCollection(dmsp)