前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Google Earth Engine谷歌地球引擎矢量数据裁剪栅格数据

Google Earth Engine谷歌地球引擎矢量数据裁剪栅格数据

作者头像
疯狂学习GIS
发布2021-07-21 09:48:03
发布2021-07-21 09:48:03
1.5K00
代码可运行
举报
文章被收录于专栏:疯狂学习GIS疯狂学习GIS
运行总次数:0
代码可运行

  本文主要对GEE中依据矢量数据裁剪栅格数据的操作加以介绍。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第三篇,更多GEE文章请参考专栏:GEE学习与应用(https://blog.csdn.net/zhebushibiaoshifu/category_11081040.html)。

  首先,依据Google Earth Engine谷歌地球引擎数据导入与筛选显示中内容,我们将Landsat 8 Collection 1 Tier 1的大气表观反射率TOA Reflectance产品导入GEE。

  随后,依据同样方法搜索United States Counties,并选择2018年数据。该数据是美国普查局(United States Census Bureau)发布的2018年主要合法边界划分数据,简单来说就是划分美国各州郡县级地理实体的矢量边界数据。

  点击数据名称即可查看其信息,例如可以看到其“Name”字段为郡县级地理实体的名称。

  点击“IMPORT”将这一数据导入GEE。

  依据前述推文中方法,对这一矢量数据加以重命名。

  点击var County旁的箭头,我们即可查看其各类属性信息。

  操作过程中如果需要再次查看数据介绍,我们直接点击其名称即可。

  输入代码,将这一矢量数据在地图中显示出来。

代码语言:javascript
代码运行次数:0
运行
复制
Map.addLayer(County);

  即可看到美国郡县级地理实体的边界信息。接下来,我们将依据FIPS(Federal Information Processing System)编码对某一个单独州内的全部郡县加以提取。本文我们就以美国中西部的堪萨斯州为例进行操作。

  FIPS编码是美国国内各地区各自的唯一编码,用以区分不同地理实体。每个州各自均有一个唯一的二位FIPS编码,每个州下的所有郡县级地区同样有各自唯一的五位FIPS编码(其中前两位是一样的,都是该州所属FIPS编码)。显然,如果需要提取某一个州的全部郡县,我们需要依据矢量边界地图中FIPS编码相关的属性加以操作。

  点击图层名称,查看图层属性;可以看到,我们所导入的矢量边界地图中“GEOID”字段是我们需要的FIPS编码属性字段。

  注释掉前面Map.addLayer(County);这一句代码,写下如下所示的新代码:

代码语言:javascript
代码运行次数:0
运行
复制
var kansas=County.filterMetadata('GEOID','starts_with','20');
Map.addLayer(kansas,{},'Kansas');
print(kansas)

  其中,.filterMetadata()函数是对数据的属性字段加以筛选,其第一个参数'GEOID'表示需要参与筛选的字段名称;第二个参数'starts_with'表示地理要素筛选方式,此外包括'equals''less_than''not_ends_with'等等关系表达式,本文中'starts_with'表示选择“以此开头”的地理要素;第三个'20'表示具体的数值。总的来说,上述这句筛选代码含义就是:在County所表示的全部郡县中,筛选'GEOID'字段中以'20'开头('starts_with')的所有郡县。

  此外,后两句代码在Google Earth Engine谷歌地球引擎数据导入与筛选显示中有所介绍,这里不再赘述。

  下图即为执行上述代码后所得结果,可以看到在地图中显示的仅为属于堪萨斯州的郡县。在这里为了更好显示每一句代码的含义,分别用不同颜色绘制了笔迹和框图,每一处笔迹对应的代码所得结果就是该颜色所对应的框中所展示内容。

  此外,如果我们不清楚矢量图层中每一个字段具体的形式,可以选择“Inspector”后,用鼠标随意选中某一个矢量区域,并在右上角查看其具体信息。

  接下来,我们基于上述堪萨斯州郡县对Landsat 8栅格数据加以裁剪。首先将Landsat 8数据重命名。

随后,依据Google Earth Engine谷歌地球引擎数据导入与筛选显示中所示内容对其加以时间处理与平均求取。

代码语言:javascript
代码运行次数:0
运行
复制
var landsat_8_mon_kansas=Landsat_8.filterDate('2020-4-1','2020-4-30').mean().clip(kansas);
Map.addLayer(landsat_8_mon_kansas);

  可以看到,具体的裁剪操作其实非常简单,只需要在得到的求取平均后的栅格数据后添加.clip()函数即可,其中括号内即为所需进行裁剪的边界。

  我们基于Google Earth Engine谷歌地球引擎数据导入与筛选显示中所述方法,对得到的数据进行一些可视化处理,可以使得裁剪结果更为清晰,如下所示。

欢迎关注CSDN/公众号/知乎:疯狂学习GIS

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 疯狂学习GIS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档