ee.FeatureCollection.runBigQuery

يُجري طلب بحث في BigQuery، ويُحضر النتائج ويعرضها كمجموعة ميزات.

الاستخدامالمرتجعات
ee.FeatureCollection.runBigQuery(query, geometryColumn, maxBytesBilled)FeatureCollection
الوسيطةالنوعالتفاصيل
queryسلسلةطلب GoogleSQL المطلوب تنفيذه على موارد BigQuery
geometryColumnسلسلة، القيمة التلقائية: فارغةاسم العمود الذي سيتم استخدامه كشكل العنصر الرئيسي. في حال عدم تحديده، سيتم استخدام عمود الهندسة الأول.
maxBytesBilledطويلة، الإعداد التلقائي: 100000000000الحد الأقصى لعدد البايتات التي يتم تحصيل رسومها أثناء معالجة طلب البحث ولن يتمّ تحصيل رسوم منك مقابل أيّ مهمة في BigQuery تتجاوز هذا الحدّ.

أمثلة

محرِّر الرموز البرمجية (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)