![](/img/trans.png)
[英]Convert earth engine feature collection to a dataframe in python
[英]Convert geopandas dataframe to GEE feature collection using python
給定一個geopandas dataframe(例如包含幾何字段的df),以下是將其轉換為ee.FeatureCollection的最簡單方法嗎?
import ee
features=[]
for index, row in df.iterrows():
g=ee.Geometry.Point([row['geometry'].x,row['geometry'].y])
# Define feature with a geometry and 'name' field from the dataframe
feature = ee.Feature(g,{'name':ee.String(row['name'])})
features.append(feature)
fc = ee.FeatureCollection(features)
如果要將點地理數據框 (GeoPandas) 轉換為 ee.FeatureCollection,可以使用此函數:
import geopandas as gpd
import numpy as np
from functools import reduce
from geopandas import GeoDataFrame
from shapely.geometry import Point,Polygon
def make_points(gdf):
g = [i for i in gdf.geometry]
features=[]
for i in range(len(g)):
g = [i for i in gdf.geometry]
x,y = g[i].coords.xy
cords = np.dstack((x,y)).tolist()
double_list = reduce(lambda x,y: x+y, cords)
single_list = reduce(lambda x,y: x+y, double_list)
g=ee.Geometry.Point(single_list)
feature = ee.Feature(g)
features.append(feature)
#print("done")
ee_object = ee.FeatureCollection(features)
return ee_object
points_features_collections = make_points(points_gdf)
做這個功能我基於這個參考
您可以從json
object 構建FeatureCollection
。 因此,如果您的幾何數據文件類型是GeoJson
,您可以執行以下操作:
# import libraries
import ee
import json
# initialize earth engine client
ee.Initialize()
# load your gemotry data (which should be in GeoJson file)
with open("my_geometry_data.geojson") as f:
geojson = json.load(f)
# construct a FeatureCollection object from the json object
fc = ee.FeatureCollection(geojson)
如果您的幾何數據格式不同( shapefile
、 geopackage
),您可以先將其保存到GeoJson
,然后構建FeatureCollection
object。
最后,如果您不想編寫任何轉換代碼,只想將Geopandas.GeoDataFrame
立即轉換為ee.FeatureCollection
,您可以使用 python package: geemap
geemap
有幾個 function 用於將幾何數據轉換為FeatureCollection
,反之亦然。 您可以在此處查看示例。 在您的情況下,您需要使用geopandas_to_ee
function,因此您的代碼如下所示:
# import libraries
import ee
import geemap
import geopandas as gpd
# initialize earth engine client
ee.Initialize()
# load your gemotry data using GeoPandas (which can be stored in different formats)
gdf = gpd.read_file("my_geometry_file.geojson")
# convert to FeatureCollection using one line of code
fc = geemap.geopandas_to_ee(gdf)
請注意,在后台, geemap
正在將GeoDataFrame
轉換為json
文件,然后遵循我上面提到的第一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.