ee.FeatureCollection.runBigQuery

Runs a BigQuery query, fetches the results and presents the them as a FeatureCollection.
Usage Returns
ee.FeatureCollection.runBigQuery(query, geometryColumn , maxBytesBilled ) FeatureCollection
Argument Type Details
query
String GoogleSQL query to perform on the BigQuery resources.
geometryColumn
String, default: null The name of the column to use as the main feature geometry. If not specified, the first geometry column will be used.
maxBytesBilled
Long, default: 100000000000 Maximum number of bytes billed while processing the query. Any BigQuery job that exceeds this limit will fail and won't be billed.

Examples

Code Editor (JavaScript)

 // Get places from Overture Maps Dataset in BigQuery public data. 
 Map 
 . 
 setCenter 
 ( 
 - 
 3.69 
 , 
  
 40.41 
 , 
  
 12 
 ) 
 var 
  
 mapGeometry 
 = 
  
 ee 
 . 
 Geometry 
 ( 
 Map 
 . 
 getBounds 
 ( 
 true 
 )). 
 toGeoJSONString 
 (); 
 var 
  
 sql 
  
 = 
  
 "SELECT geometry, names.primary as name, categories.primary as category " 
  
 + 
  
 " FROM bigquery-public-data.overture_maps.place " 
  
 + 
  
 " WHERE ST_INTERSECTS(geometry, ST_GEOGFROMGEOJSON('" 
  
 + 
  
 mapGeometry 
 + 
  
 "'))" 
 ; 
 var 
  
 features 
  
 = 
  
 ee 
 . 
 FeatureCollection 
 . 
 runBigQuery 
 ({ 
  
 query 
 : 
  
 sql 
 , 
  
 geometryColumn 
 : 
  
 'geometry' 
 }); 
 // Display all relevant features on the map. 
 Map 
 . 
 addLayer 
 ( 
 features 
 , 
  
 { 
 'color' 
 : 
  
 'black' 
 }, 
  
 'Places from Overture Maps Dataset' 
 ); 
 // Create a histogram of the categories and print it. 
 var 
  
 propertyOfInterest 
  
 = 
  
 'category' 
 ; 
 var 
  
 histogram 
  
 = 
  
 features 
 . 
 filter 
 ( 
 ee 
 . 
 Filter 
 . 
 notNull 
 ([ 
 propertyOfInterest 
 ])) 
  
 . 
 aggregate_histogram 
 ( 
 propertyOfInterest 
 ); 
 print 
 ( 
 histogram 
 ); 
 // Create a frequency chart for the histogram. 
 var 
  
 categories 
  
 = 
  
 histogram 
 . 
 keys 
 (). 
 map 
 ( 
 function 
 ( 
 k 
 ) 
  
 { 
  
 return 
  
 ee 
 . 
 Feature 
 ( 
 null 
 , 
  
 { 
  
 key 
 : 
  
 k 
 , 
  
 value 
 : 
  
 histogram 
 . 
 get 
 ( 
 k 
 ) 
  
 }); 
 }); 
 var 
  
 sortedCategories 
  
 = 
  
 ee 
 . 
 FeatureCollection 
 ( 
 categories 
 ). 
 sort 
 ( 
 'value' 
 , 
  
 false 
 ); 
 print 
 ( 
 ui 
 . 
 Chart 
 . 
 feature 
 . 
 byFeature 
 ( 
 sortedCategories 
 ). 
 setChartType 
 ( 
 'Table' 
 )); 

Python setup

See the Python Environment page for information on the Python API and using geemap for interactive development.

 import 
  
 ee 
 import 
  
 geemap.core 
  
 as 
  
 geemap 

Colab (Python)

 import 
  
 json 
 import 
  
 pandas 
  
 as 
  
 pd 
 # Get places from Overture Maps Dataset in BigQuery public data. 
 location 
 = 
 ee 
 . 
 Geometry 
 . 
 Point 
 ( 
 - 
 3.69 
 , 
 40.41 
 ) 
 map_geometry 
 = 
 json 
 . 
 dumps 
 ( 
 location 
 . 
 buffer 
 ( 
 5e3 
 ) 
 . 
 getInfo 
 ()) 
 sql 
 = 
 f 
 """SELECT geometry, names.primary as name, categories.primary as category 
 FROM bigquery-public-data.overture_maps.place 
 WHERE ST_INTERSECTS(geometry, ST_GEOGFROMGEOJSON(' 
 { 
 map_geometry 
 } 
 '))""" 
 features 
 = 
 ee 
 . 
 FeatureCollection 
 . 
 runBigQuery 
 ( 
 query 
 = 
 sql 
 , 
 geometryColumn 
 = 
 "geometry" 
 ) 
 # Display all relevant features on the map. 
 m 
 = 
 geemap 
 . 
 Map 
 () 
 m 
 . 
 center_object 
 ( 
 location 
 , 
 13 
 ) 
 m 
 . 
 add_layer 
 ( 
 features 
 , 
 { 
 'color' 
 : 
 'black' 
 }, 
 'Places from Overture Maps Dataset' 
 ) 
 display 
 ( 
 m 
 ) 
 # Create a histogram of the place categories. 
 property_of_interest 
 = 
 'category' 
 histogram 
 = 
 ( 
 features 
 . 
 filter 
 ( 
 ee 
 . 
 Filter 
 . 
 notNull 
 ([ 
 property_of_interest 
 ]) 
 ) 
 . 
 aggregate_histogram 
 ( 
 property_of_interest 
 ) 
 ) 
 . 
 getInfo 
 () 
 # Display the histogram as a pandas DataFrame. 
 df 
 = 
 pd 
 . 
 DataFrame 
 ( 
 list 
 ( 
 histogram 
 . 
 items 
 ()), 
 columns 
 = 
 [ 
 'category' 
 , 
 'frequency' 
 ]) 
 df 
 = 
 df 
 . 
 sort_values 
 ( 
 by 
 = 
 [ 
 'frequency' 
 ], 
 ascending 
 = 
 False 
 , 
 ignore_index 
 = 
 True 
 ) 
 display 
 ( 
 df 
 ) 
Create a Mobile Website
View Site in Mobile | Classic
Share by: