zoukankan      html  css  js  c++  java
  • Google Earth Engine学习笔记

      背景:去年的一个项目要影像对比功能,本来数据都是客户航拍的,18年的影像数据已经航拍到了,结果去年管控不让拍了,所以这个艰巨的任务就落到我身上了。试过太乐地图(暂时不能下载历史影像,下载到的是18年的数据,毫无意义,原本的数据就是2018年的),后来试了中科图新的LocaSpace(下载后拼接为tif后有的png丢失,并且拼接后无法正常用geoserver发布),后来打算用bigMap,咨询了淘宝客服key要3500元左右,可以下载谷歌历史影像,但是当地19年年底的影像只有19级,有点模糊,我突然领悟到级别不是下载器说了算,而是本来谷歌数据决定的,本来都打算要买了,想通了这一点后,觉得没有买的必要性,后来发现了免费的红豆地球,下载到了那部分历史影像,本来我是非常讨厌这款软件的作者的,在群里乱踢人。不过这次倒是解了我燃眉之急。

      Google Earth Engine,需要Scientific Internet,这还是一留学美国博士推荐的,打算这周趁着有点时间研究下,之前略微了解一些了,对于遥感小白来说,先学会下载数据再说。

      一.先注册账号

        我大概用的谷歌账号直接注册的,填一些必要的信息就行了。

        后续:今天突然发现,我注册的竟然没通过,据说要教育邮箱才好通过,只能后面再说了!

        https://medium.com/google-earth

        https://www.bilibili.com/video/av48083555/?p=2

        https://www.bilibili.com/video/av25240619/

        2020.5.21 

        事情有了进展,我的账号本来是通过的,我以为没通过,因为用的时候报错 token、auth这种字眼,就觉得是权限问题。所以自己重新注册了个谷歌账号,特意用了英文名字,注册GEE时还把地区设为美国,机构设为美国的某所大学,提交后,得到反馈,说是没通过,具体邮件如下:

      

       大概意思就是:感谢您的应用使用Earth Engine。很遗憾,我们无法使用所提供的信息来验证您的帐户。为了增加验证的可能性,请使用以下方式注册:与公认的研究或教育组织相关的电子邮件,您的全名,您的组织的全名(即无缩写)以及您要完成的工作的详细说明与地球引擎。您可能需要在隐身窗口中执行此操作。真诚的地球引擎小组

      从GEE群里看到的情况是只要是.edu的邮箱基本秒过,问过一个教师行业的朋友,竟然也没有edu邮箱,以前觉得这种邮箱没啥用,到了关键时刻还真需要这个,据说有好多优惠,比如亚马逊prime,office。

      当看完这封邮件,回想起跟之前的邮件不一样,突然觉得,之前应是审核通过了,之前收到的邮件内容为:

      

      大概意思是:欢迎,你可以访问GEE的那些功能网站,建议先看看相关文档。

      既然已经获取到许可了,就去随便找个例子先试试:

      

       执行后:

      

       这说明是可以用的。

      总结:从GEE群里得知现在申请要教育邮箱才行,其它的很难通过,申请被驳回的邮件来看,也验证了这一点,具体解决办法要么找朋友的教育邮箱,据说国内的就行;要么去某购物网站买个临时用用,这种不安全,容易挂掉。我自己的用的是Gmail邮箱,5月初申请的,也通过了,找了下原因,当时注册GEE填资料也是随便填了下,国家还写了中国,那么原因只有一个了,我的谷歌邮箱是2015年的,算是老账号了,新申请的邮箱去注册GEE,直接被驳回,所以猜测gmail老账号通过率也很高。这个是之前做亚马逊时得到的经验,好多店家会养号,越是老账号,官方会人为你的信用更高,不会乱来。所以有条件的可以多申请一个谷歌账号,放那养着。

      二.进入代码编辑平台

        

        

    2020.5.26

        

      今天看到这个例子惊艳到我了,所以想用这个例子来探索学习的思路。

      左侧是示例代码;中间是代码块;右侧是输出的图表,图表右上角有个分享的按钮,点击后跳转网页可以保存图片或者输出csv;下方layer1是高程图,layer2是添加的点坐标(样式红色的点),layer旁边有滑块,可以调节图层的透明度。

      现在结合代码和右边输出的图表,详细解析一下代码。

      这代码打眼上去就很亲切,JavaScript,跟webGIS开发一样的思路,除了print函数没用过之外,别的都熟悉,看到print又以为是Python,但看到声明变量用var,Python貌似是不用var的,又查阅了官网,可以确定是JS代码。

     Python代码和js代码都用过,以前觉得这两种语言太不正规了,最开始接触的是C语言,C#这种强类型语言,对弱类型的语言内心是不认可的,没想到几年后,Python很火,js在前端也是最火的,C#好多公司已经不用了,改用java。

      现在直接分析代码(根据自己的开发经验所述,暂时没时间细看文档):

      代码第三行,大概意思就是根据参数的名字来获取这张影像,声明一个变量elevation,将这张影像(对象)赋值给这个变量。如果我们不知道这个函数的意思,可以去查一下官方的reference

         

      4~23行,声明一个数组,这个数组共有9个点要素(有坐标有名字)。我们可以再去查一下ee.Feature()和ee.Geometry.Point(),根据这个例子,我们基本就知道怎么用了,细节的东西当然还是要去看reference。

      25行,声明一个ee.FeatureCollection(),看字面意思是要素集合,就是把那9个点要素放到这个集合里。

      27~32行,声明一个chart,里面的前两个参数是上面声明的,根据这个影像和点集获取到这9个位置的高程,比例尺为200,X坐标显示点名称。

      33~41行,再对这个chart设置几个可选的属性,依次为标题,Y坐标轴的标题,图例,线宽,点的大小。

      43行,打印chart,chart就出现在右侧控制台窗口,这点让我这个初学者觉得很神奇,谷歌简直太强大了。

      45~46行,在地图上添加高程图层、点集图层,设置中心点坐标和缩放级别。

       其实接触到GEE的最初的目的是下载影像,后面再研究吧,接下来要看官网的这几个东西,才能学好,目前,我们已经算是入门了。

      

       三.在QGIS中使用GEE

      先收藏几个不错的网址:

      在QGIS中使用Google Earth Engine的270多个Python示例的集合

      使用Google Earth Engine创建地图

      qgis-earthengine-examples

      qgis-earthengine-plugin

      qgis-earthengine-plugin官方

      无法安装Google Earth Engine插件

       2020.6.4

      解决问题:安装MiniConda    安装navigator

           WUR地理脚本

           https://geoscripting-wur.github.io/Earth_Engine/

            https://github.com/gee-community/qgis-earthengine-plugin/issues/35

    https://github.com/gee-community/qgis-earthengine-plugin/issues?q=is%3Aissue+is%3Aclosed

    参考网址:

         

    ·      GEE学习笔记 一:GEE简单介绍

         GEE学习笔记 二:编辑器操作界面介绍

         Google Earth Engine学习笔记——介绍和入门

         GEE文档地址

         好消息!基于QGIS的Google Earth Engine插件已发布

         高等教育的地球引擎资源

         Python gee

         earth lab

           bountysource

         八千鸟的博客

         

  • 相关阅读:
    Java输入/输出
    JSP第二天 JavaBean加强
    JSP 第一天学习
    java集合
    Github配置SSH Keys
    Android Fragment学习笔记
    Android开源资源整理
    centos终端显示字母重叠
    好用的log查看工具log2console
    .NET 日期转换
  • 原文地址:https://www.cnblogs.com/youzi-xuchongyou/p/12911614.html
Copyright © 2011-2022 走看看