ee.FeatureCollection.runBigQuery

Menjalankan kueri BigQuery, mengambil hasilnya, dan menampilkannya sebagai FeatureCollection.

PenggunaanHasil
ee.FeatureCollection.runBigQuery(query, geometryColumn, maxBytesBilled)FeatureCollection
ArgumenJenisDetail
queryStringKueri GoogleSQL yang akan dijalankan pada resource BigQuery.
geometryColumnString, default: nullNama kolom yang akan digunakan sebagai geometri fitur utama. Jika tidak ditentukan, kolom geometri pertama akan digunakan.
maxBytesBilledPanjang, default: 100000000000Jumlah maksimum byte yang ditagih saat memproses kueri. Setiap tugas BigQuery yang melebihi batas ini akan gagal dan tidak akan ditagih.

Contoh

Editor Kode (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'));

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

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)