欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

GEE:创建新的Feature并设置相应属性

时间:2023-05-27

Although patience and persistence is a painful thing, but it can gradually bring you good.—— Ovid

忍耐和坚持虽是痛苦的事情,但却能渐渐地为你带来好处。——奥维德


一、问题

Earth Engine 中的一个Feature被定义为 GeoJSON 特征。具体来说,a Feature是具有geometry存储 Geometry对象(或 null)的properties属性和存储其他属性字典的属性的对象。

但如何在GEE中创建一个Feature,并为其赋予相应的属性?

二、函数及用法

ee.Feature() 三、操作实例 1、创建空Feature

python代码如下:

# Feature不需要 a Geometry并且可以简单地包装一个属性字典# 该情形可应用于数据的分析,以这种方式创建特征对于导出# 具有Dictionary结果(例如image.reduceRegion())的长时间运行的计算很有用。dict = {'foo':ee.Number(8).add(88), 'bar':'nihao'}numFeature = ee.Feature(None, dict)numFeature.getInfo()

2、创建带Geometry及属性的Feature

python代码如下:

# Earth Engine 中的AFeature被定义为 GeoJSON 特征。具体来说,aFeature是具有geometry存储 Geometry对象(或 null)的properties属性和存储其他属性字典的属性的对象。# 要创建 a Feature,请为构造函数提供 Geometry 和(可选)其他属性的字典polygon = ee.Geometry.Polygon([[-35, -10], [35, -10], [35, 10], [-35, 10], [-35, -10]])polyFeature = ee.Feature(polygon, {'foo':42, 'bar':'tart'})Map = geemap.Map()Map.addLayer(polyFeature, {}, 'Feature')Map

 结果如下:

 3、为Feature添加属性及查询

python代码如下:

# 每个Feature都有一个Geometry存储在 geometry属性中的主节点。其他几何图形可以存储在其他属性中。 # Geometry还存在诸如交集和缓冲区之类的方法, Feature以方便获取主对象Geometry,应用操作并将结果设置为新的主对象Geometry。# 结果将保留Feature调用该方法的所有其他属性。还有一些方法可以获取和设置Feature、feature = ee.Feature(ee.Geometry.Point([-122.22599, 37.17605])) .set('genus', 'Pine') .set('species', 'Green')prop1 = feature.get('species')print(prop1.getInfo())# 设置新的属性feature = feature.set('presence', 1)prop2 = feature.get('presence')print(prop2.getInfo())

四、小结 利用ee.Feature()可方便的实现Feature的创建,采用set方法将属性字典添加到属性中,利用get()方法查询相应的属性需要理解创建空Feature的方法,利用该方法结合ee.reduceRegion()能够灵活地实现时间序列结果的处理与分析。

参考:

https://developers.google.com/earth-engine/apidocs/ee-feature?hl=enhttps://developers.google.com/earth-engine/guides/featureshttps://github.com/giswqs/earthengine-py-notebooks/blob/master/FeatureCollection/creating_feature.ipynb

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。