Python水循环标准化对比算法实现

🎯要点

  1. 算法区分不同水循环数据类型:地下水、河水、降水、气温和其他,并使用相应标准化降水指数、标准化地下水指数、标准化河流水位指数和标准化降水蒸散指数。
  2. 绘制和计算特定的时间序列比较统计学相关性。
  3. 使用相关矩阵可视化集水区和显示空间信息。

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python地图表示

Altair 是一个基于 Vega 和 Vega-Lite(来自 JS)的声明式图形可视化库,而 Vega 和 Vega-Lite 又基于 D3.js。它允许将交叉地图与其他类型的图形相关联,如以下示例所示:

import altair as alt
url_geojson = 'mallorca_geoson.json'
data_geojson = alt.Data(url=url_geojson, format=alt.DataFormat(property=' features',type='jjson'))
mallorca = alt.Chart(data_geojson).mark_geoshape(stroke="gray", color="white", strokeWidth=0.5)
#D Data
coord_mask = (pluvio.COORD_X >= 2.2) & (pluvio.COORD_X <= 3.5)&\(pluvio.COORD \overline{Y}>=38.\theta)&(pluvio.COORD_
mallorca_pluvio = pluvio.\्रoc[coord_mask, : ]
#Plots
brush = alt.selection_interval(encodings=["longitude", "latitude"], empty=False)
pluviometros = alt.Chärt(mallorca_pluvio) \.mark circle(size=50)\.encode(longitude =' COORD X:Q',latitude='COORD \Y:Q',tooltip=['NOMBRE:N', 'ALTITUD:Q'],color=alt.condition(brush, alt.value("red"), alt.value("lightgray"))) \.project("equalEarth") \.properties(width=500, height=350) \. add params(brush)
bars = alt.Chart(mallorca_pluvio) \.mark_bar() \.encode(x=alt.X("ALTITUD:Q"),bin(extent=[0,700]),y=" count (ALTITUD):0",color=alt.value("steelblue"))left_map = mallorca + pluviometros
bars_overlay = bars.encode(color=alt.value("red")).transform_filter(brush)
right bars = alt. layer(bars, bars_overlay)
left_map | (bars + right_bars)

为简洁起见,下面仅使用 2013 年的数据为每种车辆类型生成一张图表。

import altair as alt
# Base chart
url_geojson = 'mallorca_geoson.json'
data_geojson = alt. Data(url=url_geojson, format=alt.DataFormat(property='features',type='json'))
mallorca = alt.Chart(data_geojson), mark_geoshape(stroke="gray", strokeWidth=0.2)data = data. loc[data. year == 2013, :]options = ["cars", "scooters", "motorbikes", "vans", "trucks"]
mallorca \.transform_lookup(lookup="properties, neighbourhood",from_alt.LookupData(data=data, key="municipality", fields=["municipality"] + vehic)) \.encode(alt.Color(alt, repeat('row'), type='quantitative'),tooltip=["municipality:N", alt.Tooltip(alt.repeat('row'), type='quantitative')]) \.project(type="equalEarth") \.properties(width=400, height=200) \.repeat(row=options) \.resolve_scale(color='independent')

Plotly 允许以与 Altair 提供的类似交互的方式表示地图,此外还可以通过 mapbox API 访问 Carto 和 OpenStreet 地图。

import plotly.express as px
fig = px.scatter_mapbox(pluvio,lat=pluvio. COORD Y,lon=pluvio.COORD_X,hover_name="NOMBRE",hover data="ALTITUD",mapbox_style="carto-positron",center={"lat": 39.5, "lon": 2.85},zoom=8)
fig.show()

下面的交互式地图与 Dash 集成,包含额外的交互,可让您探索多年来不同车辆的数量。

import json
from dash import Dash, dcc, html, Input, Output
with open('mallorca_geoson.json') as file:mallorca_geoson = json.load(file)
app = Dash (__name__)
app.layout = html.Div([html.H4('Vehicles per 1000 inhab.'),html.P("Select a vehicle:"),dcc.RadioItems(id='mapbox-mallorca geoson-choropleth-x-vehicle',options=["cars", "scooters", "motorbikes", "vans", "trucks"],value="cars",inline=True),dcc.Graph(id="mapbox-mallorca geoson-choropleth-x-graph"),
])
@app.callback(Output("mapbox-mallorca_geoson-choropleth-x-graph", "figure"),Input("mapbox-mallorca_geoson-choropleth-x-vehicle", "value"))
def display choropleth(vehicle):fig = px.choropleth_mapbox(data, geojson=mallorca_geoson, color=vehicle,color continuous scale="Viridis",locatīons="municípality",featureidkey="properties.neighbourhood",center={"lat": 39.5, "lon": 2.85},zoom=7.5,animation_frame="year")fig.update_layout(margin={"r":0,"tt":\theta,"l":0,"b":0},mapbox_accesstoken=token)return fig
if __name___= "__main__":app.run_server (debug=True)

Bokeh 是一个用于创建交互式 JS 可视化的 Python 库,它不基于 D3.js。如果 Plotly 与包含 Flask Web 服务器的 Dash 集成,那么 Bokeh 则使用 Tornado Web 服务器,后者在后端使用 WebSockets。WebSockets 是有状态的且异步的。

from bokeh.io import output_file, show, output_notebook
from bokeh.layouts import column
from bokeh.models import WMTSTileSource, ColumnDataSource, LinearColorMapper, ColorBar, Select, I
HoverTool, PrintfTickFormatter
from bokeh.models.widgets import RadioButtonGroup
from bokeh.palettes import Viridis6
from bokeh.plotting import figure, show
from numpy import pi, tan, log
import json
output notebook()
def transform_to_mercator(data, lat, lon):k=637813data["x"] = data[lon] * k * pi / 180.data["y"] = log(tan((90 + data[lat]) * p1 / 360.)) * kreturn data
bokeh_pluvio = transform_to_mercator(pluvio, "COORD_Y", "COORD_X")
x_range, y_range = ((250000, 390000), (4750000, 4850000))
tooltips = [("Name", "@NOMBRE"), ("Altitud", "@ALTITUD"), ("(Lon, Lat)", "($x, $y)")]
source = ColumnDataSource(data=bokeh_pluvio)
hover = HoverTool(tooltips=tooltips)
p = figure(tools="pan, wheel_zoom, hover, reset",x_range =x_range,y_range=y_range,x_axis_type="mercator",y_axis_type="mercator",
)p.circle(source=source, fill_color="blue", size=10)
url="http://a.basemaps.cartocdn.com/rastertiles/voyager/{Z}/{X}/{Y}.png"
attribution = "Credit: Carto, under CC BY 3.0. Data by OSM, under ODbL"
p.add_tile(WMTSTileSource(url=url, attribution=attribution))
show(p)

👉参阅、更新:计算思维 | 亚图跨际

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

推荐:五种限流(Rate Limiting)算法

推荐&#xff1a;五种限流(Rate Limiting)算法&#xff0c;发现一个不错的讲这个算法的UP,地址是&#xff1a;05~五种限流(Rate Limiting)算法_哔哩哔哩_bilibili https://www.bilibili.com/video/BV11k4SerE74/ 全部用动画展示&#xff0c;十分生动&#xff0c;比如漏桶算法&…

短剧小程序短剧APP在线追剧APP网剧推广分销微短剧小剧场小程序集师知识付费集师短剧小程序集师小剧场小程序集师在线追剧小程序源码

一、产品简介功能介绍 集师专属搭建您的独有短剧/追剧/小剧场小程序或APP平台 二、短剧软件私域运营解决方案 针对短剧类小程序的运营&#xff0c;以下提出10条具体的方案&#xff1a; 明确定位与目标用户&#xff1a; 对短剧类小程序进行明确定位&#xff0c;了解目标用户群体…

【AI知识点】置信区间(Confidence Interval)

置信区间&#xff08;Confidence Interval, CI&#xff09; 是统计学中用于估计总体参数的范围。它给出了一个区间&#xff0c;并且这个区间包含总体参数的概率等于某个指定的置信水平&#xff08;通常是 90%、95% 或 99%&#xff09;。与点估计不同&#xff0c;置信区间通过区…

开源的云平台有哪些?

开源云平台为用户提供了构建、管理和运行云基础设施及应用的能力&#xff0c;同时允许社区参与开发和改进。以下是一些知名的开源云平台&#xff1a; 1. OpenStack 简介&#xff1a;OpenStack&#xff1a;一个广泛使用的开源云平台&#xff0c;它由多个组件组成&#xff0c;提…

深度学习中的结构化概率模型 - 结构化概率模型的深度学习方法篇

序言 在深度学习的广阔领域中&#xff0c;结构化概率模型&#xff08; Structured Probabilistic Model \text{Structured Probabilistic Model} Structured Probabilistic Model&#xff09;扮演着至关重要的角色。这类模型利用图论中的图结构来表示概率分布中随机变量之间的…

精品WordPress主题/响应式个人博客主题Kratos

Kratos 是一款专注于用户阅读体验的响应式 WordPress 主题&#xff0c;整体布局简洁大方&#xff0c;针对资源加载进行了优化。 Kratos主题基于Bootstrap和Font Awesome的WordPress一个干净&#xff0c;简单且响应迅速的博客主题&#xff0c;Vtrois创建和维护&#xff0c; 主…

Markdown实用语法汇总

说明&#xff1a; 本来只展示本人常用的、markdown特有优势的一些语法。表格输入markdown的弱项&#xff0c;不作介绍&#xff0c;借助软件创建即可。引用图片、音频、视频等&#xff0c;虽然很方便&#xff0c;但是内容集成度不高&#xff0c;需要上传发布的时候很不方便&…

学习C语言(23)

整理今天的学习内容 1.文件的概念 使用文件是为了将数据永久化地保存 按照文件功能&#xff0c;在程序设计中一般把文件分成两类&#xff1a; 每个文件都有一个唯一的文字标识&#xff0c;文字标识常被称为文件名&#xff0c;文件名包含文件路径&#xff0c;文件名主干和文件…

Apollo9.0 Planning2.0决策规划算法代码详细解析 (4): PlanningComponent::Proc()

&#x1f31f; 面向自动驾驶规划算法工程师的专属指南 &#x1f31f; 欢迎来到《Apollo9.0 Planning2.0决策规划算法代码详细解析》专栏&#xff01;本专栏专为自动驾驶规划算法工程师量身打造&#xff0c;旨在通过深入剖析Apollo9.0开源自动驾驶软件栈中的Planning2.0模块&am…

vAPI靶场

前言 自行去搭建vAPI靶场&#xff0c;配合postman使用 vapi1 创建用户 第一个用户 {"username": "shi","name": "shi1","course": "nihao","id": 10 } 第二个用户 {"username": "hui…

论文理解【LLM-CV】—— 【MAE】Masked Autoencoders Are Scalable Vision Learners

文章链接&#xff1a;Masked Autoencoders Are Scalable Vision Learners代码&#xff1a;GitHub - facebookresearch/mae发表&#xff1a;CVPR 2022领域&#xff1a;LLM CV一句话总结&#xff1a;本文提出的 MAE 是一种将 Transformer 模型用作 CV backbone 的方法&#xff0c…

制作一个流水灯,控制发光二极管由上至下再由下至上反复循环点亮显示,每次点亮一个发光二级管(Proteus 与Keil uVision联合仿真)

一、代码编写 &#xff08;1&#xff09;编写程序来控制发光二极管由上至下的反复循环流水点亮&#xff0c;每次点亮一个发光二极管。 #define uchar unsigned char // 定义uchar为unsigned char类型uchar tab[] {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0x7f, 0x…

一个不错的 SQL 编码风格的指南

前言 SQL语句的编写对于我们后端开发者而言是一个必备的技巧&#xff0c;在日常工作中&#xff0c;SQL语言编写的质量不仅仅会影响到团队的合作效率与项目的可维护性&#xff0c;还直接关系到数据库的性能优化与数据安全。今天大姚给大家分享一个不错的 SQL 编码风格的指南&am…

【Qt】控件概述(4)—— 输出类控件

输出类控件 1. QLineEdit——单行输入框2. QTextEdit——多行输入框3. QComboBox——下拉框4. QSpinBox——微调框5. QDateEdit && QTimeEdit && QDateTimeEdit6 QDial——旋钮7. QSlider——滑动条 1. QLineEdit——单行输入框 QLineEdit是一个单行的输入框&…

定时器实验(Proteus 与Keil uVision联合仿真)

一、 &#xff08;1&#xff09;设置TMOD寄存器 T0工作在方式1&#xff0c;应使TMOD寄存器的M1、M001&#xff1b;应设置C/T*0&#xff0c;为定时器模式&#xff1b;对T0的运行控制仅由TR0来控制&#xff0c;应使相应的GATE位为0。定时器T1不使用&#xff0c;各相关位均设为…

执行路径带空格的服务漏洞

原理 当系统管理员配置Windows服务时&#xff0c;必须指定要执行的命令&#xff0c;或者运行可执行文件的路径。 当Windows服务运行时&#xff0c;会发生以下两种情况之一。 1、如果给出了可执行文件&#xff0c;并且引用了完整路径&#xff0c;则系统会按字面解释它并执行 …

Listen1 0.8.2| 免费无广告,整合多平台音乐,界面简洁,操作便捷。

Listen 1 是一款开源且免费的跨平台音乐播放器&#xff0c;它能够整合多个主流音乐平台的资源&#xff0c;让你在一个应用中就能听到来自不同平台的歌曲。无论你是网易云音乐、QQ音乐还是虾米音乐的用户&#xff0c;你都可以通过 Listen 1 来享受无缝的音乐体验。它支持网易云音…

【每天学个新注解】Day 16 Lombok注解简解(十五)—@FieldNameConstants

FieldNameConstants 根据属性名生成常量类的常量。 1、如何使用 加在需要根据属性名生成常量的属性上。 2、代码示例 例&#xff1a; FieldNameConstants public class Test {private String iAmAField;private int andSoAmI;FieldNameConstants.Exclude private int asA…

【机器学习(十一)】糖尿病数据集分类预测案例分析—XGBoost分类算法—Sentosa_DSML社区版

文章目录 一、XGBoost算法二、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入和统计分析(二)数据预处理(三)模型训练与评估(四)模型可视化 三、总结 一、XGBoost算法 关于集成学习中的XGBoost算法原理&#xff0c;已经进行了介绍与总结&#xff0c;相关内容可参考【…

openEuler 24.03 (LTS) 部署 K8s(v1.31.1) 高可用集群(Kubespray Ansible 方式)

写在前面 实验需要一个 CNI 为 flannel 的 K8s 集群之前有一个 calico 的版本有些旧了,所以国庆部署了一个v1.31.1 版本 3 * master 5 * work时间关系直接用的工具 kubespray博文内容为部署过程以及一些躺坑分享需要科学上网理解不足小伙伴帮忙指正 &#x1f603;,生活加油 99…