AI Earth 利用streamlit库快速构建可视化引用app

举报
此星光明 发表于 2023/11/13 22:17:27 2023/11/13
【摘要】 streamlit库Streamlit 是一个开源的 Python 库,可用于快速创建美观、自定义的 Web 应用程序。它具有以下优势前言 – 人工智能教程:易于使用:只需编写 Python 代码,Streamlit 就会处理其余工作。无需学习任何新语言或框架。Streamlit 应用程序响应迅速,可在任何设备上运行。功能强大:您可以使用 Streamlit 创建复杂、精致的 Web 应用...
streamlit库
Streamlit 是一个开源的 Python 库,可用于快速创建美观、自定义的 Web 应用程序。它具有以下优势前言 – 人工智能教程
  • 易于使用:只需编写 Python 代码,Streamlit 就会处理其余工作。无需学习任何新语言或框架。Streamlit 应用程序响应迅速,可在任何设备上运行。
  • 功能强大:您可以使用 Streamlit 创建复杂、精致的 Web 应用程序。Streamlit 是可扩展的,因此您可以添加自己的自定义组件。Streamlit 与各种流行的 Python 库集成,例如 Pandas、Matplotlib 和 Seaborn。
以下是一些使用 Streamlit 的具体原因:
  • 数据可视化:Streamlit 可用于创建交互式仪表板来可视化数据。这对于数据科学家、业务分析师和其他需要可视化数据的人来说非常有用。
  • 机器学习部署:Streamlit 可用于将机器学习模型部署为 Web 应用程序。这使您可以轻松地与他人共享您的模型,并使他们能够使用您的模型进行预测。
  • 教育:Streamlit 可用于创建交互式学习体验。这对于教育工作者来说非常有用,他们希望以一种吸引人的方式向学生传授信息。
总而言之,Streamlit 是一个强大、易于使用的工具,可用于创建各种 Web 应用程序。如果您是数据科学家、机器学习工程师或教育工作者,那么 Streamlit 值得一试。
官方文档:Streamlit documentation 里面有对每个函数的详细解释和演示代码。或者大家可以去参照中文教程https://jiaocheng.streamlit.app/
以下是简单的一些案例。
st.title():APP应用标题 st.header():一级标题 st.subheader():二级标题 st.text():文本信息 st.code():同时可设置代码的语言 st.latex():latex 公式编辑 st.write('Streamlit') st.caption():文本 #APP应用中相关的其它控件 st.sidebar:侧边栏 st.columns:列容器,处在同一个 columns 内组件,按照从左至右顺序展示 st.expander:隐藏信息,点击后可展开展示详细内容,如:展示更多 st.container:包含多组件的容器 st.empty:包含单组件的容器
Tip1:创建应用名称和基础设定
这里我们首先设定一个应用的名称,和License以及应用的简单描述,图片硬件配置和SDK的这里可以选择使用streamlit和使用Gradio两个包选择。
Tip2:文件配置须知
应用需要一个基本配置。可以用下面代码体验配置过程,将创建“app.py”文件并使用这段代码,它能帮您实现在地图中寻找特定地点的功能。

Tip3:创建配置文件
app.py”文件是应用中可视化界面参数的重要组成。确认内容无误后,点击创建将保存当前参数配置到这个文件。
这里我们需要进行AI Earth SDK 的token获取,也就是你账号得有权限,登录下面的网站来获取你的token
AIE开发者SDK初始化。 请登录后访问https://engine-aiearth.aliyun.com/#/utility/auth-token 获取认证token, 并将token设置为系统环境变量(变量名为SDK_TOKEN),以便下述代码获取并初始化SDK。

这里有一个提示:
警告: 您在此处生成的token令牌将允许您在非AI Earth地球科学云平台官方IDE环境下使用AI Earth SDK能力。如果您没有相关需求,或者您不理解上述警告,请勿继续生成token令牌! 这里有一个限制就是时效性(一周):
token令牌默认将在一周后自动失效(有效期至2023年11月20日 05:36:24),过期后请在此页面重新生成。 如需更新token令牌,请点击更新按钮,更新后旧的token令牌将立即失效。

 代码:

import os
import streamlit as st
import streamlit.components.v1 as components
import aie

# 隐藏页面右上角的action bar按钮 
hide_streamlit_action_button = """ 
<style> 
#MainMenu {visibility: hidden;} 
</style> 
"""
st.set_page_config(layout="wide", page_title="AIE AppHub") 
st.markdown(hide_streamlit_action_button, unsafe_allow_html=True) 

# 初始化&用户token 
def aie_init():
 ''' 
 AIE开发者SDK初始化。 
请登录后访问https://engine-aiearth.aliyun.com/#/utility/auth-token  获取认证token, 
并将token设置为系统环境变量(变量名为SDK_TOKEN),以便下述代码获取并初始化SDK。
''' 
token = "**********************"   ## 请替换您帐号下有效的token 
aie.Authenticate(token=token) 
aie.Initialize() 

#  APP  
st.header('Sentinel-2 L2A Image Visualization') 
aie_init()
img = aie.Image('S2B_MSIL2A_20230314T023529_N0509_R089_T51RTP_20230314T054643').select(['B4', 'B3', 'B2']) 
aie_map = aie.Map( 
center=img.getCenter(),
height=800,
zoom=10
)

vis_params = {
'min': 0,
'max': 2000
}

aie_map.addLayer(
img,
vis_params,
'SENTINEL_MSIL2A',
bounds=img.getBounds()
)

components.html(aie_map.to_html(), height=780, scrolling=False)

Tip4:进行应用发布
请确保您的文件中已包含可运行的app.py文件,并且全部文件均已完成安全合规校验。这里我们可以直接发布应用了。

Tip5:共享您的应用
恭喜您已经成功创建了一个应用!如果想让更多人使用该应用,可以将应用共享。这里你提交的应用需要得几分钟,然后就可以在线查看了。并且可以通过链接分享。



最后成功发布后的应用:

共享中链接:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。