地球引擎有一个用户界面API,允许用户直接从JavaScript代码编辑器中构建和发布交互式Web应用。许多读者会在其他章节中遇到对ui.Chart的调用,但还有更多的界面功能可用。特别是,用户可以利用ui函数来为他们的地球引擎脚本构建整个图形用户界面(GUI)。GUI可以包括简单的部件(如标签、按钮、复选框、滑块、文本框)以及更复杂的部件(如图表、地图、面板)来控制GUI布局。关于ui部件的完整列表和关于面板的更多信息可以在下面的链接中找到。一旦GUI构建完成,用户可以通过点击代码编辑器中脚本面板上方的应用程序按钮,从JavaScript代码编辑器中发布应用程序。
Widgets: https://developers.google.com/earth-engine/guides/ui_widgets
Panels: https://developers.google.com/earth-engine/guides/ui_panels
与地球引擎的JavaScript API不同,地球引擎的Python API并没有提供构建交互式用户界面的功能。幸运的是,Jupyter生态系统有ipywidgets,这是一个在Jupyter笔记本中创建交互式用户界面控件(如按钮、滑块、复选框、文本框、下拉列表)的架构,可以与Python代码通信。将图形部件集成到Jupyter笔记本的工作流程中,允许用户配置特设的控制面板,使用图形部件控件交互式地扫过参数。一个非常强大的部件是输出部件,它可以用来显示由IPython生成的丰富的输出,如文本、图像、图表和视频。完整的widget列表和关于输出widget的更多信息可以在下面的链接中找到。通过整合ipyleaflet(用于创建交互式地图)和ipywidgets(用于设计交互式用户界面),geemap Python软件包(https://geemap.org)使得通过网络浏览器在适合交互式探索、教学和分享的Jupyter环境中探索和分析大规模地球引擎数据集变得更加容易。用户可以使用geemap建立交互式地球引擎应用程序,只需最少的编码。
Widgets: https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html
Output: Output widgets: leveraging Jupyter’s display system — Jupyter Widgets 8.0.2 documentation
问题:
我正在开发一个应用程序,显示用户绘制的 AOI 中红树林的 NDVI 变化。这部分运行良好,但我们要求允许用户为他们的 AOI 上传他们自己的 shapefile(如项目站点)。有没有办法使用 Google Drive 来做到这一点?
但是上面都有一个问题,也就是我们可以通过程序来构建数据集,但是无法允许用户上传自己的研究区。
解决方案:EE applications are anonymous; there is no way to upload using them.
To do this, you must build your application outside of EE(and handle the uploads yourself)
EE 应用程序是匿名的;没有办法使用它们上传,要完成这项工作,您必须在 EE 之外构建您的应用程序(并自己处理上传)
所以当我们制作程序的时候,要么使用GEE已经提供的数据集,要么,公开自己的数据集,这样才能使程序正常 运行,所以大家在开始建立程序的时候,一定要首先确定数据集然后再考虑如何去建立的问题。