这节介绍下FeatureCollection相关操作。以行政区域矢量数据为例,介绍如何导入行政区域矢量数据并进行相关操作~
FeatureCollection数据
首先导入行政矢量数据,在GEE中是FeatureCollection类型,大家可以自己在网上找到相关资源下载后自己upload到GEE平台上。这里提供麻辣GIS的下载链接。
为了进一步展示效果,导入了夜光遥感数据进行后续处理。
var viirsnight = ee.ImageCollection("NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG"),
province = ee.FeatureCollection("users/daviddoyle1/Province_region");
这是upload后属性界面:
有乱码貌似是因为中文问题,暂没有处理。
print(province,'Province')
在javascript平台print出来,可以看到共34个省级行政区:
筛选
接着举几个筛选的例子。先上代码
// filterMetadata()通过属性筛选
var XJ=province.filterMetadata('ID','equals','Xinjiang')
print('XinJiang',XJ)
// .limit(筛选数量、筛选字段(可选)、排序方式(可选,默认从小到大True))
var province_limit=province.limit(5,'X',false) // 根据X轴筛选
print('province_limit',province_limit)
// 根据空间位置筛选
var CQ_Point =ee.Geometry.Point([106.92371845031437, 29.430312117372274]);
var CQ = province.filterBounds(CQ_Point);
print('ChongQing',CQ)
简而言之,可以通过属性、空间位置等信息进行筛选,然后也可以批量筛选。
print结果如下:
要素信息
当我们输错信息筛选时,比如将’Xinjiang’输成’XinJiang’,这时候不会报错,但是我们输出的结果就是0element,即没有任何元素通过筛选。
那么进行属性筛选时如何找到我们目标区域对应的属性呢,这个时候就需要掌握要素信息相关的函数了。
先放一大串代码:
//要素信息提取(复制)
var China_ID = province.select(['ID']);
var China_NAME = province.select(['NAME']);
print(China_ID,"ID");
print(China_NAME,"NAME");
//要素信息筛选(去除重复字段)
var China_ID2 = province.distinct(['ID']);
print(China_ID2,"ID2");