《基础水文数据库》应用软件-水文预报中PA值计算
http://dl2.csdn.net/down4/20070627/27214747569.rar
编制水文预报 方案过程中,需要计算PA值,也就是前期影响,这个软件(代码)直接读取《基础水文数据库》(ODBC方式)和权重,计算区间PA值。
实际效果:本软件在2007年淮河预报方案(信阳)修订过程中,投入使用,节约了大量时间,软件稳定可靠。
软件安装:
南方片资料整汇编软件+本软件
需要声明的是:你的数据库中要有历史数据。
使用方法:在已经安装南方片软件的情况下,复制就可以使用,在使用前请配置COFIG.ini文件
1 在“预报站点分布图”中填加雨量点比如
息县=息县,50220150,50220350,50220550,50220750,50220850,50221900,50222450,50225600,50222850,50223650,50223900,50225350,50224350,50224650,50224750,50225050
2 在“预报站点权重”写上权重,比如
长台关=0.095,0.126,0.117,0.118,0.107,0.089,0.114,0.18,0.054
3 在“预报雨量PA时段”增加预报时段,也就是需要计算的时间,比如
长台关=2000,20000505,20000828,0,2002,20020501,20020625,0,2003,20030701,20031005,70,2004,20040629,20040803,0,2005,20050605,20050828,0
4 在“预报雨量PA特征值”增加 修改产流参数K、Im值,比如
长台关=0,70,.93,.93,.93,.93,.93,.85,.85,.85,.85,.85,.93,.93
然后就可以计算了
附录部分源代码
Private Sub cmd_预报_PA_Click()
'预报雨量PA时段
Dim SqlTemp As String
Dim StrLine As String
Dim 临时年份 As String
Dim 临时起月日 As String
Dim 临时止月日 As String
Dim 站号列表() As String
Dim ii, jj, KK As Long
Dim 数据列表() As String
Dim 时段雨量合计 As Double
Dim 极值日期(4) As String '最大日期,最大时间,最小日期,最小时间
Dim 总行数 As Long
Dim 数据排序(5000, 5) As String
Dim PA特征表() As String
Dim StartDateTime As Date
Dim EndDateTime As Date
Dim kkk, jjj, iii, lll As Integer
Dim 时间指针 As Date
On Error GoTo errorER
SqlTemp = "DP"
If Len(SqlTemp) < 1 Then 漂浮提示 "哈哈 请选择 表": Exit Sub
' SQLTEMP = Mid(SQLTEMP, InStr(SQLTEMP, "<") + 1, InStr(SQLTEMP, ">") - InStr(SQLTEMP, "<") - 1)
站号列表 = Split(FCm_预报_站.Text, ",")
StrLine = GetValue(App.path & "/config.ini", "预报雨量PA特征值", 站号列表(0), "")
PA特征表 = Split(StrLine, ",")
'GoTo 900
DrawProcEx Picture5, 1 / 100, &H800000, "连接数据库": DoEvents
mnucnrsOpen (0)
Open App.path & "/" & 站号列表(0) & "前期影响雨量文件.txt" For Output As #1
For i = 1 To LV_预报_PA.ListItems.Count 'N个场次
临时年份 = Left(LV_预报_PA.ListItems(i), 4)
临时起月日 = Mid(LV_预报_PA.ListItems(i).SubItems(1), 5, 4)
临时止月日 = Mid(LV_预报_PA.ListItems(i).SubItems(2), 5, 4)
PA特征表(0) = (LV_预报_PA.ListItems(i).SubItems(3))
If Chk_预报_PA调过读取数据库.Value = 1 Then GoTo 880
StartDateTime = CDate(临时年份 & "-" & Left(临时起月日, 2) & "-" & Right(临时起月日, 2)) ' & " " & Mid(LV_预报_PA.ListItems(i).SubItems(1), 9, 2) & ":00")
EndDateTime = CDate(临时年份 & "-" & Left(临时止月日, 2) & "-" & Right(临时止月日, 2)) '& " " & Mid(LV_预报_场次.ListItems(i).SubItems(2), 9, 2) & ":00")
时间指针 = StartDateTime
' For iii = 0 To UBound(权重列表) + 2
' 数据排序(iii, 1) = ""
' Next
KK = DateDiff("d", StartDateTime, EndDateTime)
For kkk = 0 To KK
数据排序(kkk, 0) = Format(DateAdd("d", kkk, StartDateTime), "yyyy-mm-dd")
Next
For k = 0 To UBound(站号列表()) - 1
DrawProcEx Picture5, k / (UBound(站号列表()) - 1), &H800000, "读取数据库数据": DoEvents
LV_预报_PA.ListItems(i).Selected = True
LV_预报_PA.SetFocus
rStr = "SELECT Distinct * FROM " & SqlTemp & _
" where stcd like '" & 站号列表(k + 1) & _
"'and yr like '" & 临时年份 & _
"'and mO >= '" & (Int(临时起月日 / 100)) & "' and mO <= '" & (Int(临时止月日 / 100)) & _
"' Order by mo"
rs.Open rStr, cn, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockOptimistic, adCmdText
If (Not rs.BOF And Not rs.EOF) Then
rs.MoveFirst
Do While (Not rs.BOF And Not rs.EOF)
For j = 3 To rs.Fields.Count - 2 Step 2
时间指针 = CDate(rs(1) & "-" & rs(2) & "-01")
KK = Day(DateAdd("d", -1, DateAdd("m", 1, 时间指针))) '每个月最后的日期
If ((j - 1) / 2) <= KK Then
时间指针 = CDate(rs(1) & "-" & rs(2) & "-" & ((j - 1) / 2))
KK = DateDiff("d", StartDateTime, 时间指针)
If ((rs(j) & "") <> "") Then
If KK >= 0 Then
If KK = 0 Then '第一条记录
数据排序(KK, 1) = IIf((Val(rs(j)) + Val(PA特征表(0))) * Val(PA特征表(Val(rs(2)) + 1)) > Val(PA特征表(1)), Val(PA特征表(1)), (Val(rs(j)) + Val(PA特征表(0))) * Val(PA特征表(Val(rs(2)) + 1)))
数据排序(KK, 0) = 数据排序(KK, 0) & "," & rs(j) & "," & PA特征表(0)
Else
If Day(时间指针) = 1 Then '每个月1日 是前一个月雨量
数据排序(KK, 1) = IIf((Val(rs(j)) + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)))) > Val(PA特征表(1)), Val(PA特征表(1)), (Val(rs(j)) + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)))))
数据排序(KK, 0) = 数据排序(KK, 0) & "," & rs(j) & "," & Format(数据排序(KK - 1, 1), "0.0")
Else
数据排序(KK, 1) = IIf((Val(rs(j)) + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)) + 1)) > Val(PA特征表(1)), Val(PA特征表(1)), (Val(rs(j)) + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)) + 1)))
数据排序(KK, 0) = 数据排序(KK, 0) & "," & rs(j) & "," & Format(数据排序(KK - 1, 1), "0.0")
End If
End If
End If
'Print #1, rs(0) & "," & rs(1) & "," & rs(2) & "," & (j - 1) / 2 & ",";
'Print #1, rs(j)
Else
If KK >= 0 Then
If KK = 0 Then '第一条记录
数据排序(KK, 1) = IIf((0 + Val(PA特征表(0))) * Val(PA特征表(Val(rs(2)) + 1)) > Val(PA特征表(1)), Val(PA特征表(1)), (0 + Val(PA特征表(0))) * Val(PA特征表(Val(rs(2)) + 1)))
数据排序(KK, 0) = 数据排序(KK, 0) & ",0," & PA特征表(0)
Else
If Day(时间指针) = 1 Then '每个月1日 是前一个月雨量
数据排序(KK, 1) = IIf((0 + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)))) > Val(PA特征表(1)), Val(PA特征表(1)), (0 + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)))))
数据排序(KK, 0) = 数据排序(KK, 0) & ",0," & Format(数据排序(KK - 1, 1), "0.0")
Else
数据排序(KK, 1) = IIf((0 + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)) + 1)) > Val(PA特征表(1)), Val(PA特征表(1)), (0 + Val(数据排序(KK - 1, 1))) * Val(PA特征表(Val(rs(2)) + 1)))
数据排序(KK, 0) = 数据排序(KK, 0) & ",0," & Format(数据排序(KK - 1, 1), "0.0")
End If
End If
End If
'If kk >= 0 Then 数据排序(kk, 0) = 数据排序(kk, 0) & ","
'Print #1, ""
End If
End If
Next
'Print #1, ""
rs.MoveNext
Loop
End If
'Print #1, ""
mnursClose
Next
KK = DateDiff("d", StartDateTime, EndDateTime)
For kkk = 0 To KK
Print #1, (数据排序(kkk, 0))
Next
' Close #1
' '一个场次一个文件
880: DrawProcEx Picture5, i / (LV_预报_PA.ListItems.Count + 1), &H800000, "整理分析": DoEvents
Next
mnursClose
mnucnClose
Close #1
Close #2
DrawProcEx Picture5, 1 / 1, &H800000, "整理完成": DoEvents
漂浮提示 "累呀,不过还是完成了!"
Exit Sub
errorER:
Close #1
Close #2
漂浮提示 "在测站信息中搜索时遇到了错误 类型:" & str(Err.Number) & vbCrLf
LogSmgText = LogSmgText & "在测站信息中搜索时遇到了错误,类型:" & str(Err.Number) & vbCrLf
MsgBox "在测站信息中搜索时遇到了错误,类型:" & Err.Description, vbOKOnly & vbCritical, "查询信息"
mnursClose
mnucnClose
End Sub
《基础水文数据库》应用软件-水文预报中PA值计算相关推荐
- python中delta是什么意思_python – 根据dataframe中的值计算delta
我有这个DataFrame(这只是一个例子,而不是真实的数据): In [1]: import pandas as pd my_data = [{'client_id' : '001', 'items ...
- 如何掌握SWAT模型在水文水资源、面源污染模拟中的实践技术?
目前,水环境问题逐渐成为制约社会经济和环境可持续发展的重要因素.根据国内外研究表明,受全球环境变化和经济快速发展的影响,面源污染已逐渐成为水环境污染的第一因素.但面源污染由于具有排放分散.隐蔽,排污随 ...
- 地理信息系统(ArcGIS)在水文水资源、水环境中的实践技术应用及案例分析
目录 专题一 ArcGIS:数据管理 专题二 ArcGIS:数据转换 专题三 ArcGIS:地图制作 专题四 水文水环境数据编辑与管理 专题五 水文水环境数据处理与分析 专题六 ArcGIS水文分析及 ...
- 地理信息系统(ArcGIS)在水文水资源、水环境中的实践
随着全球工业.经济的发展,水短缺.水污染等问题日益突出.为此,2015年国务院正式印发<水污染防治行动计划>(简称"水十条").同时,李克强总理2016工作政府报告中指 ...
- 计算机专业知识和水文工作相结合,水文水资源论文
水文水资源论文1 0引言 众所周知,自然生态界中地下水和地表水的质量会随着时间与空间时时变化.这种动态变化取决于自然因素也受影响于人为因素.所以,水文水资源的检测就可以了解和掌握这种水质和水量的动态变 ...
- 计算机文化基础第二次作业-简答题,中传2018年秋计算机文化基础第二次作业-简答题...
<中传2018年秋计算机文化基础第二次作业-简答题>由会员分享,可在线阅读,更多相关<中传2018年秋计算机文化基础第二次作业-简答题(7页珍藏版)>请在人人文库网上搜索. 1 ...
- Python基础与拾遗2:Python中的字符串与字符串格式化
Python基础与拾遗2:Python中的字符串与字符串格式化 常见的字符串常量与表达式 字符串转义 索引和分片 原处修改字符串 字符串格式化 格式化表达式 格式化调用方法 添加具体格式化 本篇博文, ...
- ArcGIS水文分析实战教程(9)雨量计算与流量统计
ArcGIS水文分析实战教程(9)雨量计算与流量统计 本章导读:降水是水文循环中重要的一环,降水包括雨.雪.雾.露.雹等,本章介绍的是降雨的环节.通过雨量站与插值的方式,实现雨量的空间分布就算,为水文 ...
- 计算机应用基础中什么是桌面,福师《计算机应用基础》在线作业二 Windows中进行系统设置的工具集是 用户可以根据自己的爱好更改显示器 键盘 鼠标器 桌面等硬件的设置...
福师<计算机应用基础>在线作业二 Windows中进行系统设置的工具集是 用户可以根据自己的爱好更改显示器 键盘 鼠标器 桌面等硬件的设置 (12页) 本资源提供全文预览,点击全文预览即可 ...
最新文章
- 外省籍进城务工人员随迁子女在浙江就地升学政策出台
- 企业级监控软件Zabbix搭建部署之使用mutt+msmtp配置Zabbix邮件报警
- python基础知识点整理-Python知识点整理(day1)
- s4-4 以太网概述
- Asp.net Core 2.1新功能Generic Host(通用主机)深度学习
- 致驱动工程师的一封信
- python画窗口_pyqt中图案如何画在子窗口上
- typescript 博客_如何使用Typescript自动化博客发布过程
- assert函数的作用
- arch linux添加用户,Users and groups (简体中文)
- vim文本编辑器的使用
- 在自定义类中使用HttpContext和Page等对象的方法
- flutter之从零开始搭建(一)之 BottomNavigationBar
- 效果图渲染器详解,出图最快的竟然是它!
- 2021年全球起酥油收入大约4171.6百万美元,预计2028年达到5052.7百万美元,2022至2028期间,年复合增长率CAGR为 2.8%
- 普通SSD大量拷贝数据速度变慢?
- java数据容器_Java容器概览
- 彻底解决高版本 mac Kernel_task占CPU问题
- smallworld 下的magik module 的logger和service provider
- Lombok基本使用方法