ee.FeatureCollection.runBigQuery

מריצים שאילתה ב-BigQuery, מאחזרים את התוצאות ומציגים אותן כ-FeatureCollection.

שימושהחזרות
ee.FeatureCollection.runBigQuery(query, geometryColumn, maxBytesBilled)FeatureCollection
ארגומנטסוגפרטים
queryמחרוזתשאילתת GoogleSQL לביצוע במשאבי BigQuery.
geometryColumnמחרוזת, ברירת המחדל: nullהשם של העמודה שישמשת כגיאומטריה של המאפיין הראשי. אם לא מציינים ערך, המערכת משתמשת בעמודת הגיאומטריה הראשונה.
maxBytesBilledארוך, ברירת המחדל: 100000000000מספר הבייטים המקסימלי שחויב במהלך עיבוד השאילתה. כל משימה ב-BigQuery שתחרוג מהמגבלה הזו תיכשל ולא תחויב.

דוגמאות

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

בדף סביבת Python מפורט מידע על Python API ועל השימוש ב-geemap לפיתוח אינטראקטיבי.

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)