AI Earth——1990-2022年全国月度气象数据检索应用app

应用结果

代码 

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

# 定义初始化的函数
def page_reset_callback():
    st.session_state['region_province_select'] = '请选择'
    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(year, month,parameter):
    # 拼接AIE 数据查询SDK语句
    aie_init()
    feature_collection = aie.FeatureCollection('China_Province')

    aie_map = aie.Map(
            center=feature_collection.getCenter(),
            height=800,
            zoom=3)

    region_vis_params = {
            'color': '#00FF00'
    }
    
    aie_map.addLayer(
            feature_collection,
            region_vis_params,
            '行政区划边界',
            bounds=feature_collection.getBounds()
    )

    year_mon = year + month
    image = aie.Image('ERA5_LAND_MONTHLY_' + year_mon ).clipToCollection(feature_collection)

#这里是复选框内容的选项
    if parameter=="temperature_2m" or parameter=="dewpoint_temperature_2m" or parameter=="soil_temperature_level_1" or parameter=="soil_temperature_level_2" or parameter=="soil_temperature_level_3" or parameter=="soil_temperature_level_4":
        para_image = image.select([parameter]).subtract(aie.Image.constant(273.15))
#这里我们选择后让其影像转化为摄氏度℃
    
#设定可视化参数
        vis_temp = {
        'min': -10,
        'max': 30,
        'palette': [
            "#000080","#0000D9","#4000FF","#8000FF","#0080FF", "#00FF80",
            "#00FF80","#80FF00","#DAFF00","#FFFF00","#FFF500","#FFDA00",
            "#FFB000","#FFA400","#FF4F00","#FF2500","#FF0A00","#FF00FF",
        ]
        }
#设定图层
        aie_map.addLayer(
        para_image,
        vis_temp,
        parameter +'(°C)',
        bounds=para_image.getBounds()
        )  
        ### 绘制图例 设定图例,这里从ipyleaflet导入图例
        from ipyleaflet import LegendControl  
#这里图例展示和颜色      
        legend = LegendControl({
                        '  < -10  ':'#000080',
                        '-10 - -5':'#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/786595.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简单的Java面向对象小游戏并使用三层架构(表示层、业务逻辑层、数据访问层)

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

AE-时间轴的基础操作

目录 预览&#xff08;快捷键空格&#xff09; 调整时间线显示比例&#xff08;Alt鼠标滚轮&#xff09; 控制预览长度&#xff08;B/N&#xff09; 逐帧移动&#xff08;笔记本&#xff1a;按住fn上下方向键&#xff09; 视频剪切&#xff08;ctrlshiftD&#xff09; 剪…

数据结构:顺序表+链表

数据结构&#xff1a;顺序表链表 一。顺序表&#xff1a; 首先在了解顺序表和链表之前&#xff0c;先了解一下线性表&#xff0c;**线性表&#xff08;linear list&#xff09;**是n个具有相同特征元素的有限序列 &#xff0c;在逻辑上是线性结构&#xff0c;也就是一条连续的…

深入剖析预处理

目录 1.预定义符号 2.#define 定义常量 3.#define定义宏 4.带有副作用的宏参数 5.宏替换的规则 6.宏函数的对比 7.#和## 7.1 #运算符 7.2 ## 运算符 8.命名约定 9.#undef 10.命令行定义 11.条件编译 12.头文件的包含 12.1 头文件被包含的方式&#xff1a; 12.1…

React setState

老生常谈之setState 是同步的还是异步的&#xff1f; 设想setState是同步的&#xff0c;那也就是每次调用setState都要进行新旧虚拟DOM的对比&#xff0c;然后将差异化的dom更新到页面上&#xff0c;性能损耗很大 所以react把setState设置为了异步&#xff0c;当状态更新时不…

基于springboot+vue实现的厨艺交流平台(文末源码+Lw)093

93基于SpringBootVue的实现的厨艺交流平台&#xff08;源码数据库万字Lun文流程图ER图结构图演示视频软件包&#xff09; 系统功能&#xff1a; 这次开发的厨艺交流平台功能有个人中心&#xff0c;食材分类管理&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜谱信…

【Axure】产品原型如何在谷歌浏览器中打开

作为一名前端开发来说&#xff0c;在拿到产品的原型图后&#xff0c;如何打开&#xff1f;直接用谷歌浏览器打开&#xff0c;是打不开的&#xff0c;需要安装对应的插件。但是谷歌插件市场在不翻墙的情况下&#xff0c;是没有办法直接打开的&#xff0c;分享一种超级简单的方法…

Softmax回归中的损失函数

目录 一、损失函数介绍&#xff1a; 因为Softmax回归时逻辑回归的推广&#xff0c;所以Softmax回归的损失函数是逻辑回归损失函数的推广。 原文链接&#xff1a;逻辑回归中的损失函数 一、损失函数介绍&#xff1a; 与回归问题成本函数不同的是&#xff0c;Softmax回归模型&a…

python-小杨的储蓄(赛氪OJ)

题目描述 小杨共有 N 个储蓄罐&#xff0c;编号从 0 到 N−1。从第 1 天开始&#xff0c;小杨每天都会往存钱罐里存钱。具体来说&#xff0c;第 i 天他会挑选一个存钱罐 ai​&#xff0c;并存入 i 元钱。过了 D 天后&#xff0c;他已经忘记每个储蓄罐里都存了多少钱了&#xff…

如何网页在线编辑微软Office Word,并导出为PDF格式。

随着互联网技术的不断发展&#xff0c;越来越多的企业开始采用在线办公模式&#xff0c;微软Office Word 是最好用的文档编辑工具&#xff0c;然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的&#xff0c;如果可以实现Web在线预览编辑Of…

Vue3 pdf.js将二进制文件流转成pdf预览

好久没写东西&#xff0c;19年之前写过一篇Vue2将pdf二进制文件流转换成pdf文件&#xff0c;如果Vue2换成Vue3了&#xff0c;顺带来一篇文章&#xff0c;pdf.js这个东西用来解决内网pdf预览&#xff0c;是个不错的选择。 首先去pdfjs官网&#xff0c;下载需要的文件 然后将下载…

通用后台管理(二)——项目搭建

目录 前言 一、安装vue-cli依赖 1、使用yarn下载vue-cli 2、使用npm下载 3、检查一下是否下载成功 二、创建项目 1、创建项目&#xff0c;my-app是项目名称 2、 这里选择vue 2&#xff0c;蓝色表示选中的。 3、启动项目 三、下载项目依赖 四、配置项目 1、修改esli…

哪些独立站外链策略最有效?

在当前的SEO领域中&#xff0c;独立站外链策略的效果差异很大&#xff0c;但GPB外链无疑是其中最为有效的一种。GPB外链&#xff0c;指的是通过高质量、包收录且dofollow的顶级域名独立站来获得外链&#xff0c;这种外链策略能够显著提升目标网站的整体排名数据。 关键词排名的…

最全 Steam 流操作!!!Java Stream 流操作常用 API

文章目录 Java Stream 流操作常用 API一、准备工作二、Stream 常用 API1、sorted 排序2、list 转为 map(并解决重复key问题)3、filter 方法过滤指定查询条件4、根据指定列分组5、通过 map 获取指定列集合6、根据 List 中 Object 某个属性去重7、list 统计&#xff08;求和、最大…

Nignx配置

Nginx配置之nginx.conf文件解析及配置 1、nginx.conf文件解析 user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;# multi_accept on; }http {### Basic Settings###开启文件的高效传输…

RK3568------Openharmony 4.0-Release WIFI/BT模组适配

RK3568------Openharmony 4.0-Release WIFI/BT模组(ap6236)适配 文章目录 RK3568------Openharmony 4.0-Release WIFI/BT模组(ap6236)适配前言一、驱动移植二、设备树配置三 、内核配置四、遇到的问题五、效果展示总结 前言 随着RK3568适配工作的推进&#xff0c;整体适配工作…

差分+前缀和习题集

&#xff08;luogu题号&#xff09; P6568 [NOI Online #3 提高组] 水壶 思路分析 前缀和优化问题。 其实题意就是让你求有k1个数的区间和最大值&#xff0c;那么直接前缀和优化&#xff0c;就可以通过本题。 代码 #include<bits/stdc.h> using namespace std;const in…

spring的bean注册

bean注册 第三方jar包的类想添加到ioc中&#xff0c;加不了Component该怎么办呢。 可以使用Bean和Import引入jar包&#xff0c;可以使用maven安装到本地仓库。 修改bean的名字&#xff1a;Bean("aaa")使用ioc的已经存在的bean对象&#xff0c;如Country&#xff1a;p…

【数据分享】1981—2023年中国逐日归一化植被指数(NDVI)栅格数据

NDVI&#xff0c;全名为Normalized Difference Vegetation Index&#xff0c;中文名称为归一化植被指数。这个指数可以用来定性和定量评价植被覆盖及其生长活力&#xff0c;我们也可以简单地将它理解为体现植被密度和健康状况的一个指标。 本次我们给大家分享的是1981年6月24日…

VSCode用ssh连接ubuntu虚拟机实现远程访问文件夹

1. ubuntu安装ssh服务 1.1 安装 sudo apt-get install ssh sudo apt-get install openssh-server1.2 启动ssh服务 sudo service ssh start sudo service ssh status # 查看状态 ## 或者用下面方式重启ssh服务 ## /etc/init.d/ssh restart1.3 ssh服务加入开机启动 sudo syst…