打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
什么?仅仅花费10秒钟就可以直接利用Google Earth Engine精美的SCI期刊论文插图

我们知道,想发表SCI期刊论文,除了需要非常好的idea以及非常严谨且优美的写作之外,还需要在论文的图表等方面下功夫。很多时候,一张图做好了,审稿人看到了会心情愉悦,论文发表后作者本身也会觉得是一种享受。

一直以来,高质量的SCI期刊图表都是在本地做的。为了制作精美的图片,需要把数据都在本地准备好。例如,我们想实现下面的图片,就需要下载DEM数据到本地然后再出图,这种方式还是比较繁琐的。

既然Google Earth Engine已经把各类遥感影像数据以及一些高级算法都集成到GEE云平台了,那么有没有可能把作图等环节也搬到GEE云平台上呢?一直以来,我们都以为GEE出图比较丑,不适合做这些高质量的精美图片。但是,最近发现我们错了,使用GEE依然能够做出非常好看的SCI期刊图片

比如,参考上图右半部分的研究区图片,我们可以在GEE上直接利用DEM数据做出如下的图片。两者图片虽然在局部地区存在一些差异,但基本上实现了最初的功能。最主要的是,整个作图过程仅仅花费了10.5秒便完成了

接下来,我们就详细介绍如何在GEE上面实现这一精美的图片。需要指出的是,这个图片不是用JavaScript网页版本的GEE做出的,而是使用的Python版本。我们使用的IDE是VS Code,配置起来也很方便。我们最新的寒假课程就讲授了如何使用VS Code访问GEE以及有关配置问题(见寒假加油|人工智能与云平台大数据图像处理基础和提升研修班)。

第一步,导入需要的模块

这里主要是cartopy、geemap和cartoee等模块,其中cartoee模块已经内嵌到geemap,无需再安装。本地安装geemap的时候,只需使用 pip install geemap -i https://pypi.douban.com/simple/即可完成安装。

import ee
import geemap
from geemap import cartoee
import cartopy
import cartopy.crs as ccrs
import matplotlib.pyplot as plt

第二步,授权GEE的访问

主要是让本地的IDE能够访问GEE数据,使用的是下面语句:

# geemap.ee_initialize()
geemap.set_proxy(port=33210)
ee.Authenticate()
ee.Initialize(project='ee-scistudy')

注意,这里的port后面的端口是每个人魔法的端口,project后面的项目号则是自己的project名称。这里我们就不赘叙了,有不懂的请联系小编加群咨询。

第三步,调用dem数据和矢量数据,并在地图中先加载看一下效果,代码如下:

roi = ee.FeatureCollection('users/studyroomGEE/A_Paper/PSPR/HLJProvince')
Map = geemap.Map()
Map.add_basemap('Esri.WorldImagery')
Map.add_basemap('OpenTopoMap')

styleHLJ = {'color''FF0000''width'2'lineType''solid''fillColor''00000000'}
HLJShp = roi

chinaProvince = ee.FeatureCollection('users/studyroomGEE/ChinaShp/ChinaProvince')
styleChina = {'color''0000FF''width'1'fillColor''00000000'}

Map.addLayer(chinaProvince.style(**styleChina), {}, 'chinaProvince')
Map.addLayer(HLJShp.style(**styleHLJ), {}, 'HLJ')

# get an image
srtm = ee.Image('CGIAR/SRTM90_V4').clip(roi)

vis_params = {
    'min'0.0,
    'max'1643,
    'palette': [
        'FFFFFF',
        'CE7E45',
        'DF923D',
        'F1B555',
        'FCD163',
        '99B718',
        '74A901',
        '66A000',
        '529400',
        '3E8601',
        '207401',
        '056201',
        '004C00',
        '023B01',
        '012E01',
        '011D01',
        '011301',
    ],
}

srtm = srtm.visualize(**vis_params)
imgBlend = srtm.blend(chinaProvince.style(**styleChina)).blend(HLJShp.style(**styleHLJ))


Map.addLayer(imgBlend, {}, 'imgBlend')
Map.centerObject(roi)

Map

过这一步可以得到下面的地图。在线加载出这个地图表明距离最后的成功就不远了。

最后一步,将上面的地图使用plt制作成我们需要的图片,代码如下:

bbox = [135.8,39,120.2,55]

import matplotlib.pyplot as plt
import cartopy.io.img_tiles as cimgt

plt.rcParams['font.family'] = 'Times New Roman' 
#  统一设置
from proplot import rc

# 统一设置字体

rc['tick.labelsize'] = 20
# 统一设置xy轴名称的字体大小
rc['axes.labelsize'] = 20
# # 统一设置轴刻度标签的字体粗细
rc['axes.labelweight'] = 'bold'
# 统一设置xy轴名称的字体粗细
rc['tick.labelweight'] = 'bold'


fig = plt.figure(figsize=(2022),facecolor='white')

ax = cartoee.get_map(imgBlend, region=bbox)

cb = cartoee.add_colorbar(ax,vis_params=vis_params,loc='right',orientation='vertical')

# ax.set_title(label='Study Area', fontsize=20)


# add gridlines to the map at a specified interval
cartoee.add_gridlines(ax, interval=[22], linestyle='--')

plt.show()

经过这么几步,我们就可以在GEE中做出上文中出现的精美图片。而且大家在做这种图的时候,还可以自己加地图以及换成别的不同的类型,比如地形图DTM可以换成下面的NDVI图,或者是土地利用的图片。整个过程十分的快捷方便,真的是太舒服了!!!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
GEE Pytorch | 利用深度学习实现土地利用分类(上)
【英语词汇】“ee”实用英语
随意乐呵乐呵(58)
gee
GEE
gee、
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服