构造分钟降水R01文件

2024-02-20 16:20
文章标签 构造 分钟 降水 r01

本文主要是介绍构造分钟降水R01文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

格式为:四川省降水强度数据集

目的:主要练习提取降水强度,而创建随机的分钟降水文件。

处理:

雨量筒降水不需要,统一处理为666666。

无降水与缺测(标志2,3)增加出现概率,以符合正常情况,同时两种不同标志不能相邻同时出现。

        private static void Main(string[] args){string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "R01.txt");StringBuilder sb = new StringBuilder();//创建开始与结束日期DateTime startDay = new DateTime(2001, 1, 1, 20, 1, 0);//气象日,日界20时,20:01-20:00为一天DateTime endDay = new DateTime(2001, 12, 31, 20, 0, 0);DateTime curDay = startDay.Date;Random r = new Random();int pre = r.Next(100);//先产生一个,后面产生的比较与之不同if (pre > 80) pre = 3;else if (pre > 6) pre = 2;int z;while (curDay <= endDay.Date){//设置一天的时间段 20:01-20:00DateTime curTime = new DateTime(curDay.Year, curDay.Month, curDay.Day, 20, 1, 0);DateTime endTime = curTime.AddDays(1).AddMinutes(-1);sb.Append($"{curDay:yyyy MM dd} 1 666666 ");while (curTime <= endTime){do{z = r.Next(100);//种类if (z > 80) z = 3;else if (z > 6) z = 2;} while (pre == z);pre = z;//生成z  数据段的开始,=0,1正常,=2无降水,=3缺测,=5正常,=6翻斗式。sb.Append(z + " ");sb.Append(curTime.ToString("HHmm "));// 生成 t1t1t1t1TimeSpan ts = endTime - curTime;//19:55-20:00 55-60共6分钟,但差值是5int ts1 = (int)ts.TotalMinutes;//5int len;         //产生原剩余分钟数2倍的随机数 ,为的是尽快结束if (z == 2 || z == 3) len = r.Next(2 * ts1) + 10;else len = r.Next(ts1 / 2) + 10;Console.WriteLine(curTime.ToString("yyyyMMdd hh:mm ") + z.ToString());if (z == 2 || z == 3)//缺测无降水情况{if (len < ts1)//4<5{curTime = curTime.AddMinutes(len);sb.Append(curTime.ToString("HHmm "));}else{sb.AppendLine(endTime.ToString("HHmm"));break;}}else{//19:55-20:00  ts1=5实际为6分钟if (len < ts1)//3<5{curTime = curTime.AddMinutes(len);sb.Append(curTime.ToString("HHmm "));for (int i = 0; i < len; i++){sb.Append(r.Next(1, 200).ToString("000 "));//0.01mm}}else{sb.Append(endTime.ToString("HHmm "));for (int i = 0; i < ts1 + 1; i++)//5:0-4   6:0-5=>55-60{sb.Append(r.Next(1, 200).ToString("000 "));}sb.Remove(sb.Length - 1, 1);//删除多余空格,添加回车sb.AppendLine();break;}}}curDay = curDay.AddDays(1);}File.WriteAllText(filePath, sb.ToString(), Encoding.UTF8);}

结果:

这篇关于构造分钟降水R01文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728807

相关文章

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

C++中类的构造函数调用顺序

当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的 构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止。 简而言之,对象是由“底层向上”开始构造的。因为,构造函数一开始构造时,总是 要调用它的基类的构造函数,然后才开始执行其构造函数体,调用直接基类构造函数时, 如果无专门说明,就调用直接基类的默认构造函数。在对象析构时,其顺序正好相反。

Java构造和解析Json数据的两种方法(json-lib构造和解析Json数据, org.json构造和解析Json数据)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面首先介绍用json-lib构造和解析Json数据的方法示例。 一、介绍       JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json

JobScheduler 调用导致的运行时长30分钟的功耗问题

一、SDK 的使用情况与功耗影响 案例是否导致功耗变大onStartJob return true 且子线程没有调用jobFinished()告知系统功耗变大,最长带来30分钟的partial wakelock 长持锁onStartJob return true 且子线程调用jobFinished()告知系统功耗有影响,主要线程执行时长,标准是30秒内onStartJob return fals

【超简单】1分钟解决ppt全文字体一键设置

省流 ppt的全部字体需要在“幻灯片母版”里面,“自定义字体”去设置好标题与正文的字体之后才算全部设置完毕 “视图”---“幻灯片母版” 找到“字体”---“自定义字体” 设置好中文和西文的字体,都可以按照自己的选择来,保存即可 吐槽 之所以发这么一个基础的帖子是因为,之前全网到处搜都没看到成功设置了的,其实才发现在自定义里面得多一步这个才可以,还好早发现了,希望能

CF #278 (Div. 2) B.(暴力枚举+推导公式+数学构造)

B. Candy Boxes time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/488/problem/B There

MemSQL Start[c]UP 2.0 - Round 1A(构造)

题目链接:http://codeforces.com/problemset/problem/452/A 解题思路: 打个表暴力查找匹配。 完整代码: #include <algorithm>#include <iostream>#include <cstring>#include <complex>#include <cstdio>#include <strin

Codeforces Round #281 (Div. 2)A(构造+暴力模拟)

题目链接:http://codeforces.com/problemset/problem/493/A 解题思路: 暴力的判断,分三种情况去判断即可。注意如果之前已经被罚下场后,那么在后面的罚下情况不应该算在输出结果内。 完整代码: #include <algorithm>#include <iostream>#include <cstring>#include <co

Codeforces Round #233 (Div. 2)A(构造)

题目链接:http://codeforces.com/contest/399/problem/A 解题思路: 构造出来即可,考虑p-k和p+k两个边界分别于1和n作比较,对左右符号特殊处理。 完整代码: #include <algorithm>#include <iostream>#include <cstring>#include <complex>#include