AI Earth——基于决策树模型淮河流域冬小麦提取应用app

应用介绍:

本应用依据利用Landsat-8数据,基于潘力、夏浩铭、王瑞萌等研究论文(基于Google Earth Engine 的淮河流域越冬作物种植面积制图)中提出的利用作物在不同物候期内卫星影像的光谱存在差异的特征,通过计算作物时间序列的皈依化植被指数(NDVI),选取越冬作物生长旺盛期NDVI 最大值、越冬作物播种期和收获期中相应的NDVI 最小值和中位数,在像元尺度上构建越冬作物决策树提取算法,实现淮河流域冬小麦的提取。

代码

#常规导入安装包
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__)

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

#进行初始化设定

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 get_default_aie_map():
    aie_map = aie.Map(
            center=[116.383331,39.916668],
            height=800,
            zoom=4)
    return aie_map.to_html()

#设定研究区选择,但是这只加载一次,算是固定的哈数,这里只加载一次
@st.cache_resource
def load_area_select_options():
    file_path = current_work_dir + "/pro_city.json"
    with open(file_path, 'r', encoding="utf-8") as reader:
        area_arr = json.loads(reader.read())
        area_dic = {}
        for item in area_arr:
            province_name = item['levelOneAreaName']
            city_name = item['levelTwoAreaName']
         
            if not province_name in area_dic:
                area_dic[province_name] = {}
            
            cities = area_dic[province_name]
            if not city_name in cities:
                cities[city_name] = {}
        
        return area_dic

# 设定默认的按你牛选项,
def page_reset_callback():
    st.session_state['region_province_select'] = '河南省'
    st.session_state['region_city_select'] = '请选择'
    st.session_state['year'] = 2017
    st.session_state['render_map_html'] = get_default_aie_map()

# 定义ndvi函数
def get_ndvi(image):
    ndvi = image.normalizedDifference(['SR_B5', 'SR_B4'])
    return ndvi  

#定义数据筛选的函数
def getl8_ndvi(region,start_date,end_date):
    dataset = aie.ImageCo
  • 37
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值