土壤水分及其频谱分析

news2024/11/16 23:43:34

祁连山综合观测网:黑河流域地表过程综合观测网(混合林站自动气象站-2018)

import pandas as pd
df=pd.read_excel(r'C:\Users\mengx\Desktop\土壤水分的频谱分析\祁连山综合观测网:黑河流域地表过程综合观测网(混合林站自动气象站-2018)\2018年黑河流域地表过程综合观测网混合林站AWS.xlsx')

将所有包含-6999异常值的数据行都删除

df=df[~df.isin([-6999])].dropna()
df.describe()
WS_28mWD_28mTa_28mRH_28mRainPressIRT_1IRT_2PAR_downPAR_up...Ts_2cmTs_4cmTs_10cmTs_20cmTs_40cmTs_60cmTs_100cmTs_160cmTs_200cmTs_240cm
count48710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.000000...48710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.00000048710.000000
mean4.077554175.66267011.46109929.8166940.001866916.70948513.92778614.165521426.74744232.581842...10.47096311.0228718.77416610.76458610.53416710.35092110.11735310.08864710.13512813.152512
std2.02504995.16417014.14413318.6376590.0882659.25047015.52700715.768607585.46988945.463257...13.38366712.1791419.83800010.81810810.2460149.1316197.5946715.5223014.8682854.268635
min0.0000000.000000-26.4913900.5509200.000000894.720520-25.433640-24.5636700.0000000.000000...-19.066890-13.060090-19.140970-7.747810-17.799430-1.8051500.3013002.4700003.3550007.149000
25%2.91383276.3878831.01112215.4441680.000000909.3849802.4745152.6086150.0000000.000000...0.1393901.1098180.1020100.4402000.413803-0.1888682.0799254.5880005.3120009.640000
50%3.803475204.70812013.56813025.0735100.000000916.59921515.22360515.28893526.8966951.065090...11.53513511.8348309.17653011.08592511.20822510.59916510.0921809.8700009.85000011.890000
75%4.955337258.73937522.89003839.2743380.000000923.32568825.73942826.046557800.48271061.899407...22.17579022.66081018.13523321.46400820.83912819.36252017.38198215.32000015.20000017.240000
max16.303840359.20432037.903010100.00000013.700000948.23279051.11845059.2402302451.167240275.145080...37.44456033.80546029.10305033.12983029.75950027.53802026.39447019.91000017.18000021.910000

8 rows × 39 columns

#取出全部的含水率数据
ms=df.iloc[:,19:29]
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决汉字显示为□指定默认字体为黑体。
plt.rcParams['axes.unicode_minus'] = False
#不同深度的含水率变化
ms.plot()
plt.legend(loc=2, bbox_to_anchor=(1.05,0.7),borderaxespad = 0.)
plt.title(r'各深度的土壤水分')
plt.grid()

在这里插入图片描述

import matplotlib.pyplot as plt
# plt.plot(df["Ms_160cm"],'-k')
# plt.plot(df["Ms_4cm"],'-r')
# plt.title('4cm和160cm深度的土壤水分')
plt.plot(df["Rain"],'--g')
plt.grid()
plt.show()

在这里插入图片描述

#看一看谱密度
import pandas as pd
df=pd.read_excel(r'C:\Users\mengx\Desktop\2018年黑河流域地表过程综合观测网混合林站AWS.xlsx')
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
# 删除-6999
df=df[~df.isin([-6999])].dropna()
p,f=plt.psd(df["Ms_4cm"], NFFT=10000, Fs=2, window=mlab.window_none, pad_to=None,return_line=False)
plt.title('4cm的功率谱密度')
Text(0.5, 1.0, '4cm的功率谱密度')

在这里插入图片描述

#看一看谱密度
import pandas as pd
df=pd.read_excel(r'C:\Users\mengx\Desktop\土壤水分的频谱分析\2018年黑河流域地表过程综合观测网混合林站AWS.xlsx')
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['STSong']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
plt.rcParams['font.size']=14#设置全局字体
import matplotlib.mlab as mlab
# 删除-6999
df=df[~df.isin([-6999])].dropna()
p,f=plt.psd(df["Rain"], NFFT=5096, Fs=1, window=mlab.window_none, pad_to=None,return_line=False)
plt.title('降雨的功率谱密度')
fig2=plt.figure(2)
plt.loglog(f,p)
plt.grid()

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

df.shape
(48710, 40)
df=pd.concat([pd.DataFrame(f),pd.DataFrame(p)],axis=1)
df=df[~df.isin([0])].dropna()
import numpy as np
plt.loglog(df.iloc[:,0],df.iloc[:,1])
plt.grid()
from scipy import optimize
def f_1(x, A, B):
    return A * x + B
A1, B1 = optimize.curve_fit(f_1, np.log10(df.iloc[1000:,0]),np.log10(df.iloc[1000:,1]))[0]
def f_2(x, A, B):
    return A * x + B
A2, B2 = optimize.curve_fit(f_2, np.log10(df.iloc[:400,0]),np.log10(df.iloc[:400,1]))[0]
print(A1,B1)
print(A2,B2)
x1=np.arange(np.log10(df.iloc[:,0]).min(),np.log10(df.iloc[:,0]).max(),0.02)
# print(x1)
y1 =f_1(x1,A1,B1)
y2 =f_2(x1,A2,B2)
#绘图
plt.loglog(10**x1,10**(y1))
plt.loglog(10**x1,10**(y2))
plt.text(10e-4,10e-3,r'$\beta 1=$'+str(A1)[1:7])
plt.text(10e-4,10e-1,r'$\beta 2=$'+str(A2)[1:7])
plt.show()
-0.9056930734066293 -2.49921212944677
-0.13419953778885224 -1.6300723085417057

在这里插入图片描述

黑河上游生态水文传感器网络逐时土壤水分观测数据集(2013-2017)

import pandas as pd
four_year=pd.read_csv(r'C:\Users\mengx\Desktop\土壤水分的频谱分析\2013-2018_all.csv').dropna(axis=0)
import matplotlib.pyplot as plt
plt.figure(figsize=(15,3))
plt.plot(four_year.iloc[:,2])
plt.show()

在这里插入图片描述

import matplotlib.mlab as mlab
p,f=plt.psd(four_year.iloc[:,2], NFFT=20000, Fs=1, window=mlab.window_none, pad_to=None,return_line=False)

在这里插入图片描述

删除0元素所在的行

df=pd.concat([pd.DataFrame(f),pd.DataFrame(p)],axis=1)
df=df[~df.isin([0])].dropna()

拟合对数坐标下的斜率

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['STSong']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
plt.rcParams['font.size']=14#设置全局字体
plt.loglog(df.iloc[:,0],df.iloc[:,1])
plt.grid()
from scipy import optimize
def f_1(x, A, B):
    return A * x + B
A1, B1 = optimize.curve_fit(f_1, np.log10(df.iloc[:,0]),np.log10(df.iloc[:,1]))[0]
print(A1,B1)
x1=np.arange(np.log10(df.iloc[:,0]).min(),np.log10(df.iloc[:,0]).max(),0.02)
# print(x1)
y1 =f_1(x1,A1,B1)
#绘图
plt.loglog(10**x1,10**(y1))
plt.text(10e-4,10e-4,r'$\beta=$'+str(A1)[:7])
plt.show()
-2.065160490229184 -5.742930857784623

在这里插入图片描述

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

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

相关文章

RocketMQ之消费者,重平衡机制与流程详解附带源码解析

1. 背景 本文是 RocketMQ 消费者系列的第三篇,介绍消费者重平衡。 我把 RocketMQ 消费分成如下几个步骤 重平衡 消费者拉取消息 Broker 接收拉取请求后从存储中查询消息并返回 消费者消费消息 其中重平衡是消费者开始消费的起点。 1.1 重平衡的含义 RocketMQ 的 To…

【单片机毕业设计选题24052】-基于STM32的智能书桌设计

系统功能: 基于stm32单片机的智能书桌设计 1.手动:升降桌,调整桌面高度,实现升降功能, 2.自动:光敏控制灯的亮度 手动:开关灯 3.自动:检测学习姿势报警,超声波检测人是否坐的太…

【单片机毕业设计选题24051】-基于STM32的温室大棚控制系统

系统功能: 1、检测环境温湿度,土壤湿度,光照强度和二氧化碳浓度并在OLED和APP上显示。 2、当空气温度过高时则打开风扇通风。 3、当空气湿度过低时打开加湿器加湿。 4、土壤湿度过低,打开水泵。 5、光照不足则打开LED,反之则关闭…

麒麟系统设置中添加打印机按钮无响应的解决办法

原文链接:麒麟系统设置中添加打印机按钮无响应的解决办法 Hello,大家好啊!今天给大家带来一篇关于在麒麟桌面操作系统上点击设置中的添加打印机按钮无响应的解决办法的文章。打印机是我们日常办公的重要工具,如果添加打印机按钮无…

昇思25天学习打卡营第15天|应用实践之ShuffleNet图像分类

基本介绍 今天的应用实践的领域是计算机视觉领域,更确切的说是图像分类任务,不过,与昨日不同的是,今天所使用的模型是ShuffleNet模型。ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一…

柳永,市井生活的吟游者

柳永,原名柳三变,字景庄,后改名为柳永,字耆卿,约生于宋太宗雍熙元年(公元984年),卒于宋仁宗皇祐五年(公元1053年),享年69岁。他是北宋著名词人&am…

最近换工作的一些启示,清华学姐篇

最近更新频率慢下来了,一部分原因是沉迷运动不能自拔,还有一部分原因是业余分出来很大的精力来拓展个人的边界,希望在工作之外取得一些成绩,写作上耽误了不少,很难做到日更。 所以整体上今年更新频率较低,但…

重载、覆盖(重写)、重定义(同名隐藏)的区别 (超详解)

📚 重载(Overloading)、覆盖(Overriding)、重定义(Hiding)是面向对象编程中常见的概念,它们分别用于描述不同情况下函数或方法的行为。 目录 重载(Overloading&#xff…

Zynq系列FPGA实现SDI视频编解码+图像缩放+多路视频拼接,基于GTX高速接口,提供8套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的FPGA图像缩放方案本方案的无缩放应用本方案在Xilinx--Kintex系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡器GTX 解串与串化SMPTE SD/HD/3G SDI IP核BT1120转RGB自研…

一个简单的 Vue 组件例子

https://andi.cn/page/621509.html

17.分频器设计拓展练习-任意分频通用模块

(1)Verilog代码: module divider_n(clk,reset_n,clk_out);input clk;input reset_n;output clk_out;wire clk_out1;wire clk_out2;wire [9:0]n;wire m;assign n 9;assign m n % 2;divider_even divider_even_inst(.clk(clk),.reset_n(reset_n),.n(n),.en(!m),.cl…

多租户hive数仓

1、概念 多租户对应的是单租户,本篇文章重点讲解多租户,单租户为了解内容。 1.1 多租户 多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业…

解锁Playwright新技能:输入框处理技巧全解析

感谢您抽出 来阅读此文 声明:文章中引用的视频为微信群里面的山豆根大佬原创所录制哟~免费视频录制剪辑不易,请大家多多支持。 并且,大佬为这一系列的视频创作还专门购买了服务器搭建了一个实战项目和练习元素定位的网站。网站的具体信息可…

仅需10行代码,Python带你玩转编程世界!

更多Python学习内容:ipengtao.com Python作为一种简单易学且功能强大的编程语言,其简洁的语法和丰富的库可以在很少的代码行数内实现许多有趣且实用的功能。本文将展示一些通过10行以内的Python代码实现的有趣项目,从简单的数学计算到数据可视…

江协科技51单片机学习- p25 无源蜂鸣器

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

SpringAOP的坑

AOP中几种常见的通知类型及其基本作用: Before:前置通知,在目标方法执行之前执行。After:后置通知,无论方法执行结果如何(包括异常),都会在目标方法执行之后执行。AfterReturning&a…

暑期旅游怎么玩?开发旅游小程序让出行变简单

暑假正值旅游旺季,旅游小程序的出现为旅行带来了许多便利。随着移动互联网的发展,旅游行业也在不断寻求创新与变革。旅游小程序为游客提供了更加便捷的旅行体验,通过旅游小程序,用户可以了解旅游信息、旅游服务、在线咨询等&#…

谷粒商城学习笔记-19-快速开发-逆向生成所有微服务基本CRUD代码

文章目录 一,使用逆向工程步骤梳理1,修改逆向工程的application.yml配置2,修改逆向工程的generator.properties配置3,以Debug模式启动逆向工程4,使用逆向工程生成代码5,整合生成的代码到对应的模块中 二&am…

前端面试题25(css常用的预处理器)

在前端开发领域,CSS预处理器在面试中经常被提及,其中最流行的三种预处理器是Sass、LESS和Stylus。下面分别介绍它们的特点和优势: 1. Sass(Syntactically Awesome Style Sheets) 优势: 变量:允…

[工具类]Java 合并、拆分PPT幻灯片

本文将介绍在Java程序中如何来合并及拆分PPT文档的方法。示例大纲: 1. 合并 1.1 将指定幻灯片合并到文档 1.2 合并多个幻灯片文档为一个文档 2. 拆分 2.1 按幻灯片每一页单独拆分为一个文档 2.2 按指定幻灯片页数范围来拆分为多个文档 使用工具:F…