欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

gee学习笔记 第二天

发布时间:2024/1/18 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 gee学习笔记 第二天 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

gee学习笔记 第二天

文章目录

  • gee学习笔记 第二天
  • 前言
  • 一、继续熟悉jupyter lab notebook
  • 二、获取和找到数据
    • 1、选定区域和设置过滤器


前言

第二天
学习如何准备水煮鱼的材料,也就是准备和简单的处理项目所需的原始数据


一、继续熟悉jupyter lab notebook

还是打开miniconda的命令行,输入两行代码,打开jupyter lab

在摸索之后我才明白,每一行代码块都需要单独的运行,比如说第一行的import geemap,如果说你不去点击运行这一行代码,geemap的库就无法引入,后续代码就会报错.第二行代码和第一天一样需要添加代理获得gee的api.

如图片所示ipyleaflet是一种地图的模式,也是吴秋生老师所说的用的较多的一种模式

可以通过上图的代码直接打开对应坐标缩放比例的地图,在python中单独运行变量就会将变量内容打印出来,所以在代码块中才会单独打Map,
如果一次性打开了几个地图,那么对这几个地图中的一个的操作也会影响到其他的地图,比如说缩放一个地图,那么其他的所以地图也会耕者缩放.
这个是测量的图标,我们可以使用这个功能来获得经纬度.

这个是draw_ctrl
这个是data_ctrl
这个就是toolbar_ctrl
我们可以设置在地图上要不要这几个控件.
Map = geemap.Map(data_ctrl=False, toolbar_ctrl=False, draw_ctrl=False) Map

轻便模式,只有放大缩小.
Map = geemap.Map(lite_mode=True) Map

同理运行Folium如下:

不在库中的地图可以通过如下的方式添加

二、获取和找到数据


这里需要先初试ee的服务,而且
image = ee.Image('USGS/SRTMGL1_003')意为获取id为USGS/SRTMGL1_003的数据,但是这个数据是存储在gee的云服务器上的,我们需要这个数据的id来找到他.
要想看到这个数据的内部,不能单纯的输入image这样的话只是会把image这个指针指向的地址打印出来,如果想要看到数据内部的具体信息我们需要
image.getInfo()

如果还需要可视化的使用如下的代码,整体的流程如下,首先找到想要获取的数据的id,获得id之后访问服务器的数据,选用合适的可视化方案,将图层添加到地图上,显示地图.

Map = geemap.Map(center=[21.79, 70.87], zoom=3) image = ee.Image('USGS/SRTMGL1_003') vis_params = {'min': 0,'max': 6000,'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5'], } Map.addLayer(image, vis_params, 'SRTM') Map

结果如下图:


这是数据集和数据集的可视化

Map = geemap.Map() collection = ee.ImageCollection('COPERNICUS/S2_SR') image = collection.median()//这里是取中值vis = {'min': 0.0,'max': 3000,'bands': ['B4', 'B3', 'B2'], }Map.setCenter(83.277, 17.7009, 12) Map.addLayer(image, vis, 'Sentinel-2') Map

运行结果如下:

1、选定区域和设置过滤器

首先我们打开一副地图并选定区域(左边的工具栏可以用矩形,圆圈,选点等等)

Map.user_roi可以获得选定区域的信息,下面使用getInfo方法打印出来

使用过滤器设置过滤时间,然后打印数据集筛选之后的数据数量

collection = ee.ImageCollection('COPERNICUS/S2_SR').filterDate('2021-01-01','2021-02-01') //filterDate中的2021-02-01这一天不包括在内,也就是只有一月的数据 collection.size().getInfo()

下面将前面选定的区域信息也加到过滤器中

collection = ee.ImageCollection('COPERNICUS/S2_SR').filterDate('2021-01-01','2021-02-01').filterBounds(Map.user_roi) collection.size().getInfo()


可以看到数据的数量大大的减少了
下面是老师的完整代码示例,可以修改vis的参数改变可视化的结果,包括波段、透明度、最小最大值等等。

Map = geemap.Map() collection = (ee.ImageCollection('COPERNICUS/S2_SR').filterDate('2021-01-01', '2022-01-01').filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 5)) ) image = collection.median()vis = {'min': 0.0,'max': 3000,'bands': ['B4', 'B3', 'B2'], }Map.setCenter(83.277, 17.7009, 12) Map.addLayer(image, vis, 'Sentinel-2') Map

下面演示如何搜索并添加数据到图层上,最后显示在地图里。

第一步先打开一个地图

第二部打开搜索找到需要的数据

第三步选择参数生成可视化图层,加载到地图上

Map = geemap.Map(center=[28.00142, -81.7424], zoom=13) Map.add_basemap('HYBRID') image=ee.Image('CGIAR/SRTM90_V4') Map.addLayer(image,{'min':0,'max':5000,'palette':'terrain'},'SRTM') Map

总结

以上是生活随笔为你收集整理的gee学习笔记 第二天的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。