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

news2024/11/26 23:37:46

🎯要点

  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=637813
    data["x"] = data[lon] * k * pi / 180.
    data["y"] = log(tan((90 + data[lat]) * p1 / 360.)) * k
    return 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.coloradmin.cn/o/2192881.html

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

相关文章

每日OJ题_牛客_最长无重复子数组_滑动窗口_C++_Java

目录 牛客_最长无重复子数组_滑动窗口 题目解析 C代码1暴力 C代码2滑动窗口 Java代码滑动窗口 牛客_最长无重复子数组_滑动窗口 最长无重复子数组_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a; 给定一个长度为n的数组arr&#xff0c;返回arr的最长无重复元素子数组…

【Linux】Ubuntu20.04上使用RabbitVCS的图形化SVN

文章目录 1、RabbitVCS1.1、RabbitVCS 介绍1.2、RabbitVCS 主要功能1.3、Ubuntu下 TortoiseSVN 替代者 2、安装2.1、命令安装2.2、安装使用2.3、使用权限 3、解决SVN无法保存密码问题3.1、问题描述3.2、解决方法 1、RabbitVCS 1.1、RabbitVCS 介绍 它是一款Linux系统下的图形…

jsencrypt实现js加密的另外一种方式(使用node-jsencrypt库)

在上一篇文章中&#xff0c;实现了使用jsencrypt模块RSA加密实现。 参考链接&#xff1a;记录使用crypto-js、jsencrypt实现js加密的方法-CSDN博客 在实现的过程中&#xff0c;会提示出错&#xff1a;ReferenceError: window is not defined &#xff0c;而且需要修改jsencry…

网站建设开发方法

在这个充满激烈竞争的网络世界&#xff0c;如何通过网站建设开发&#xff0c;打造一个引人注目、功能强大的在线空间&#xff0c;成为了许多人关注的焦点。 1. 初衷与定位&#xff1a; 在进行网站建设开发之前&#xff0c;首先需要明确网站的初衷和定位。是作为企业的官方展示…

AcWing 662:点的坐标 ← 结构体 or 三目运算符

【题目来源】https://www.acwing.com/problem/content/664/【题目描述】 给定两个保留一位小数的浮点数 X,Y&#xff0c;用来表示一个点的横纵坐标。 请你判断该点在坐标系中的位置。 【输入格式】 共一行&#xff0c;包含两个浮点数 X,Y&#xff0c;表示点的横纵坐标。【输出格…

ElasticSearch备考 -- Async search

一、题目 通过异步方式查询earthquakes索引下Magnitude大于5的数据 二、思考 正常的查询大家可能会用的多一点&#xff0c;这种异步查询为数据量比较大的查询在后台执行&#xff0c;不用同步等待结果&#xff0c;待执行完成在获取结果。 三、解题 Step 1、准备基础数据 # D…

【CV】带你跑通过线检测项目unbox_yolov5_deepsort_counting

文章目录 &#x1f315;运行结果&#x1f315;我的配置&#x1f315;下载项目&#x1f315;安装依赖&#x1f319;创建激活虚拟环境&#x1f319;pip install -r requirements.txt &#x1f315;确保有参数ckpt.t7和测试数据集test.mp4&#x1f315;运行&#x1f319;出现报错T…

Leecode热题100-560.和为k的子数组

给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [1,2,3], k…

k8s实战-1

k8s实战-1 一、资源创建方式1.命令行2.yaml 二、命名空间三、Pod总结 一、资源创建方式 1.命令行 就是直接通过命令的方式创建&#xff0c;比如我要创建namespace&#xff0c; kubectl create namespace hello删除&#xff1a; kubectl delete -f hello2.yaml 简单来说&am…

PCL 1.8.1 + VTK 1.8.0 + QT5.14.2+ VS2017 环境搭建

先看看效果: PCL 1.8.1下载安装: Tags PointCloudLibrary/pcl GitHub 安装完成后: 如果VTK想重新编译的,可以看我的这篇博客:

AI 智能名片商城小程序源码:构建 F2B2b2C 用户触达新生态

一、引言 1.1 研究背景 在当今数字化时代&#xff0c;企业对于用户的触达变得愈发关键。F2B2b2C 模式作为一种新兴的商业模式&#xff0c;旨在通过整合厂商&#xff08;F&#xff09;、批发商&#xff08;B&#xff09;、零售商&#xff08;b&#xff09;和消费者&#xff08…

南昌网站建设让你的企业网站更具竞争力

南昌网站建设让你的企业网站更具竞争力 在当今竞争激烈的市场环境中&#xff0c;一个高质量的网站不仅是企业形象的展示平台&#xff0c;更是吸引客户、提升业绩的重要工具。南昌作为江西的省会城市&#xff0c;互联网产业的蓬勃发展为企业网站建设提供了良好的机遇。 首先&am…

车载电子电气架构--- 车载诊断DTC全覆盖分类

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

如何使用ssm实现基于Java的校园二手物品交易平台的设计与实现+vue

TOC ssm789基于Java的校园二手物品交易平台的设计与实现vue 绪论 1.1 研究背景 在这个推荐个性化的时代&#xff0c;采用新技术开发一个校园二手物品交易平台来分享和展示内容是一个永恒不变的需求。本次设计的校园二手物品交易平台有管理员&#xff0c;商家&#xff0c;用…

Leetcode - 周赛417

目录 一&#xff0c;3304. 找出第 K 个字符 I 二&#xff0c;3305. 元音辅音字符串计数 I 三&#xff0c;3307. 找出第 K 个字符 II 一&#xff0c;3304. 找出第 K 个字符 I 本题数据范围小&#xff0c;可以直接模拟&#xff0c;代码如下&#xff1a; class Solution {publ…

鸿蒙harmonyos next flutter混合开发之开发FFI plugin

创建FFI plugin summation&#xff0c;默认创建的FFI plugin是求两个数的和 flutter create --templateplugin_ffi summation --platformsandroid,ios,ohos 创建my_application flutter create --org com.example my_application 在my_application项目中文件pubspec.yaml引…

缓存数据减轻服务器压力

问题:不是所有的数据都需要请求后端的 不是所有的数据都需要请求后端的,有些数据是重复的、可以复用的解决方案:缓存 实现思路:每一个分类为一个key,一个可以下面可以有很多菜品 前端是按照分类查询的,所以我们需要通过分类来缓存缓存代码 /*** 根据分类id查询菜品** @pa…

《计算机原理与系统结构》学习系列——计算机的算数运算(下)

系列文章目录 目录 浮点数的表示和运算浮点数的表示浮点数的规格化浮点数标准IEEE754浮点数表示范围浮点数的转换浮点数的运算浮点数加法浮点数加法的硬件实现 精度浮点乘法浮点运算硬件 MIPS中的浮点指令 浮点数的表示和运算 浮点数的表示 表达非整型的数 可以表达很小和很大…

重磅来袭!CMSIS-DAP 脱机烧录器 EasyFlasher 发布~

重磅来袭&#xff01;CMSIS-DAP 脱机烧录器 EasyFlasher 发布~ 目录 重磅来袭&#xff01;CMSIS-DAP 脱机烧录器 EasyFlasher 发布~相关文章1、前言1、产品特点2、功能说明3、支持芯片4、关于烧录5、写在最后 某宝店铺&#xff1a;觉皇工作室 购买链接&#xff1a;https://item…