I try to code Mosaicking a Image Collection by Date (day) in Google Earth Engine this issue with Python.
#Load Sentinel 1 and filter data
def load_dataset(ImageCollection_ID,begin,end,aoi):
ic = ee.ImageCollection(ImageCollection_ID).filterDate(begin,end).filterBounds(aoi)
return ic
def filter_sentinel1(ImageCollection,polarisation,instrumentMode,resolution):
ic = ImageCollection.filter(ee.Filter.listContains('transmitterReceiverPolarisation',polarisation)).filter(ee.Filter.eq('instrumentMode',instrumentMode)).filterMetadata('resolution_meters','equals', resolution)
return ic
def seperate_look_angels(ImageCollection,polarisation):
Ascending = ImageCollection.filter(ee.Filter.eq('orbitProperties_pass', 'ASCENDING')).select(polarisation)
Descending = ImageCollection.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING')).select(polarisation)
return Ascending,Descending
def get_properties(ImageCollection):
features = ImageCollection.getInfo()['features']
dict_list = []
for f in features:
prop = f['properties']
dict_list.append(prop)
df = pd.DataFrame.from_records(dict_list).drop(['system:footprint','transmitterReceiverPolarisation'],axis=1)
#Pandas Series of unique distinc values in df
unique = df.nunique()
im_id_list = [item.get('id') for item in ImageCollection.getInfo().get('features')]
date_list = [datetime.datetime.strptime(x[35:43],'%Y%m%d') for x in im_id_list]
#property_names = list(df.columns.values)
return unique, im_id_list, date_list
def make_mosaic(date):
date = ee.Date(date['value'])
filterCollection = VV_Ascending.filterDate(date, date.advance(1,'day'))
image = ee.Image(filterCollection.mosaic()).copyProperties(filterCollection.first(),["system:time_start"])
return image
#Time of interest
begin = ee.Date.fromYMD(2016,1,1)
end = ee.Date.fromYMD(2016,3,1)
date_range = end.difference(begin, 'day')
#Source dataset
ried_225_222 = ee.FeatureCollection('users/tillmueller1990/ried_225_222')
sentinel1 = load_dataset('COPERNICUS/S1_GRD',begin,end,ried_225_222)
#Filter dataset for High resolution and Vertical transmitt vertical receive
sentinel1_VV = filter_sentinel1(sentinel1,'VV','IW',10)
#Filter for different look angles
VV_Ascending,VV_Descending = seperate_look_angels(sentinel1_VV,'VV')
#Get list of ids,dates and unique count of prop
unique, im_id_list, date_list = get_properties(VV_Ascending)
date_list = ee.List([ee.Date(x) for x in date_list])
newList = ee.List([])
for date in date_list.getInfo():
mosaic = ee.Image(make_mosaic(date))
print(mosaic.getInfo())
newList.add(mosaic)
newcol = ee.ImageCollection(newList)
print(newcol.getInfo())
the function make_mosaic(date) return for every date a image. The output of print(mosaic.getInfo()) is
{'type': 'Image', 'bands': [{'id': 'VV', 'data_type': {'type': 'PixelType', 'precision': 'double'}, 'crs': 'EPSG:4326', 'crs_transform': [1.0, 0.0, 0.0, 0.0, 1.0, 0.0]}], 'properties': {'system:time_start': 1452618462260.0}}
I try to add this image to an empty ee.List([])
named newList
to call later ee.ImageCollection(newList)
but the newList
remains empty. Why i cant add the images to the list with newList.add(mosaic)
?