Bootstrap

AI Earth——中国城市绿地对大气污染干沉降作用估计数据集(DDEP)应用APP

基于数学模型量化植被的干沉降过程,突破传统站点尺度研究的局限性,结合多源卫星遥感产品形成2000-2020年中国城市绿地对PM2.5和PM10的干沉降量估计栅格数据集,对城市大气污染防治、绿地区域规划和城市可持续发展有重要意义. 

应用结果

代码

#导入安装包
import os
import json
import datetime
import streamlit as st
import streamlit.components.v1 as components
import traceback
from PIL import Image

import aie

#这里我们进行分析
#获取指定链接的文件信息
current_work_dir = os.path.dirname(__file__)
#加载地图
collection_id = 'TJNU_3JECO_CHINA_DDEP_V01'

# 隐藏页面右上角的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)

# 调整页面顶部边距
st.markdown(" <style> div[class^='css-1544g2n'] { padding-top: 1px; } </style> ", unsafe_allow_html=True)
st.markdown(" <style> div[class^='block-container'] { padding-top: 1px; } </style> ", unsafe_allow_html=True)

#初始化aie函数
def aie_init():
    '''
    AIE开发者SDK初始化
    请登录后访问https://engine-aiearth.aliyun.com/#/utility/auth-token  获取认证token,
    并将token设置为系统环境变量(变量名为SDK_TOKEN),以便下述代码获取并初始化SDK。
    '''
    token = os.environ.get("SDK_TOKEN")  # 请至应用空间设置-环境变量中添加SDK_TOKEN
    aie.Authenticate(token=token)
    aie.Initialize()

# 设定默认的函数,但是每次运行只一次
@st.cache_resource
def load_logo():
    logo = Image.open(current_work_dir + '/logo.png')
    return logo

# 设定默认的函数,但是每次运行只一次
@st.cache_resource
def get_default_aie_map():
    aie_map = aie.Map(
            center=[111.98,33.50],
            height=800,
            zoom=4)
    return aie_map.to_html()

# 设定默认参数,也就是初始状态下的结果
def page_reset_callback():
    st.session_state['parameter'] = 'PM25'
    st.session_state['time_picker'] = [datetime.date(2020, 1, 1), datetime.date(2020, 1, 31)]
    st.session_state['render_map_html'] = get_default_aie_map()

# 这里设定默认的地图参数
def aie_map_layer_assemble(start_date, end_date,band):
    # 拼接AIE 数据查询SDK语句
    aie_init()
    feature_collection = aie.FeatureCollection('China_Province')
    image_collection = aie.ImageCollection(collection_id) \
                          .filterDate(start_date.strftime('%Y-%m-%d'), end_date.strftime('%Y-%m-%d')) \
                       
    
    aie_map = aie.Map
;