Skip to main content
Notice removed Draw attention by user1186
Bounty Ended with Noel Gorelick's answer chosen by user1186
Tweeted twitter.com/StackGIS/status/1372789936873566211
Notice added Draw attention by user1186
Bounty Started worth 250 reputation by user1186

I have found some sample code that returns features from a GEE image to a pandas dataframe based on specific points in my feature collection.

The challenge is I need the geometry on these points to be returned next to the features in the dataframe so that I can spatially join it to another dataset.

Please advise as to how this can be done.

import ee
import pandas as pd

ee.Initialize()
districts = points_features_collections

#selecting images with a data/time stamp and averaging results
chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").select('precipitation').filterDate('2018-01-01', '2018-12-31').mean() 
evi = ee.ImageCollection('MODIS/006/MOD13A2').select('EVI').filterDate('2018-01-01', '2018-12-31').mean()


composite = ee.Image.cat([chirps, evi]) #concat multiple images into one

#stores multiple regions as one in a feature collection
dist_stats = composite.reduceRegions(districts, 'mean', 5000)

dist_stats = dist_stats.select(['precipitation', 'EVI'], ['tot_rainfall', 'med_evi'], retainGeometry=False).getInfo()

dtstats_df = pd.DataFrame()
for dist in dist_stats['features']:
   df = pd.DataFrame([dist['properties']],columns=dist['properties'].keys())
   dtstats_df = pd.concat([dtstats_df, df], sort=True, axis=0)

dtstats_df = dtstats_df[['tot_rainfall', 'med_evi']]
dtstats_df

import ee
import pandas as pd

ee.Initialize()
districts = points_features_collections

# selecting images with a data/time stamp and averaging results
chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").select('precipitation').filterDate('2018-01-01', '2018-12-31').mean() 
evi = ee.ImageCollection('MODIS/006/MOD13A2').select('EVI').filterDate('2018-01-01', '2018-12-31').mean()


composite = ee.Image.cat([chirps, evi]) #concat multiple images into one

# stores multiple regions as one in a feature collection
dist_stats = composite.reduceRegions(districts, 'mean', 5000)

dist_stats = dist_stats.select(['precipitation', 'EVI'], ['tot_rainfall', 'med_evi'], retainGeometry=False).getInfo()

dtstats_df = pd.DataFrame()
for dist in dist_stats['features']:
   df = pd.DataFrame([dist['properties']],columns=dist['properties'].keys())
   dtstats_df = pd.concat([dtstats_df, df], sort=True, axis=0)

dtstats_df = dtstats_df[['tot_rainfall', 'med_evi']]
dtstats_df

Results:

tot_rainfall    med_evi
0   1.233124    2018.826087
0   1.175122    1761.086957
0   1.233124    2018.826087

I have found some sample code that returns features from a GEE image to a pandas dataframe based on specific points in my feature collection.

The challenge is I need the geometry on these points to be returned next to the features in the dataframe so that I can spatially join it to another dataset.

Please advise as to how this can be done.

import ee
import pandas as pd

ee.Initialize()
districts = points_features_collections

#selecting images with a data/time stamp and averaging results
chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").select('precipitation').filterDate('2018-01-01', '2018-12-31').mean() 
evi = ee.ImageCollection('MODIS/006/MOD13A2').select('EVI').filterDate('2018-01-01', '2018-12-31').mean()


composite = ee.Image.cat([chirps, evi]) #concat multiple images into one

#stores multiple regions as one in a feature collection
dist_stats = composite.reduceRegions(districts, 'mean', 5000)

dist_stats = dist_stats.select(['precipitation', 'EVI'], ['tot_rainfall', 'med_evi'], retainGeometry=False).getInfo()

dtstats_df = pd.DataFrame()
for dist in dist_stats['features']:
   df = pd.DataFrame([dist['properties']],columns=dist['properties'].keys())
   dtstats_df = pd.concat([dtstats_df, df], sort=True, axis=0)

dtstats_df = dtstats_df[['tot_rainfall', 'med_evi']]
dtstats_df

Results:

tot_rainfall    med_evi
0   1.233124    2018.826087
0   1.175122    1761.086957
0   1.233124    2018.826087

I have found some sample code that returns features from a GEE image to a pandas dataframe based on specific points in my feature collection.

The challenge is I need the geometry on these points to be returned next to the features in the dataframe so that I can spatially join it to another dataset.

Please advise as to how this can be done.

import ee
import pandas as pd

ee.Initialize()
districts = points_features_collections

# selecting images with a data/time stamp and averaging results
chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").select('precipitation').filterDate('2018-01-01', '2018-12-31').mean() 
evi = ee.ImageCollection('MODIS/006/MOD13A2').select('EVI').filterDate('2018-01-01', '2018-12-31').mean()


composite = ee.Image.cat([chirps, evi]) #concat multiple images into one

# stores multiple regions as one in a feature collection
dist_stats = composite.reduceRegions(districts, 'mean', 5000)

dist_stats = dist_stats.select(['precipitation', 'EVI'], ['tot_rainfall', 'med_evi'], retainGeometry=False).getInfo()

dtstats_df = pd.DataFrame()
for dist in dist_stats['features']:
   df = pd.DataFrame([dist['properties']],columns=dist['properties'].keys())
   dtstats_df = pd.concat([dtstats_df, df], sort=True, axis=0)

dtstats_df = dtstats_df[['tot_rainfall', 'med_evi']]
dtstats_df

Results:

tot_rainfall    med_evi
0   1.233124    2018.826087
0   1.175122    1761.086957
0   1.233124    2018.826087
Source Link

Return Geometry in a Pandas Dataframe Google Earth Engine

I have found some sample code that returns features from a GEE image to a pandas dataframe based on specific points in my feature collection.

The challenge is I need the geometry on these points to be returned next to the features in the dataframe so that I can spatially join it to another dataset.

Please advise as to how this can be done.

import ee
import pandas as pd

ee.Initialize()
districts = points_features_collections

#selecting images with a data/time stamp and averaging results
chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").select('precipitation').filterDate('2018-01-01', '2018-12-31').mean() 
evi = ee.ImageCollection('MODIS/006/MOD13A2').select('EVI').filterDate('2018-01-01', '2018-12-31').mean()


composite = ee.Image.cat([chirps, evi]) #concat multiple images into one

#stores multiple regions as one in a feature collection
dist_stats = composite.reduceRegions(districts, 'mean', 5000)

dist_stats = dist_stats.select(['precipitation', 'EVI'], ['tot_rainfall', 'med_evi'], retainGeometry=False).getInfo()

dtstats_df = pd.DataFrame()
for dist in dist_stats['features']:
   df = pd.DataFrame([dist['properties']],columns=dist['properties'].keys())
   dtstats_df = pd.concat([dtstats_df, df], sort=True, axis=0)

dtstats_df = dtstats_df[['tot_rainfall', 'med_evi']]
dtstats_df

Results:

tot_rainfall    med_evi
0   1.233124    2018.826087
0   1.175122    1761.086957
0   1.233124    2018.826087