Esempio n. 1
0
    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)