气象要素数据提取程序
作者:http://hongbozhang.net/wph/
程序简介:此程序用于自动提取由中国科学院青藏高原研究所阳坤研究员课题组制备的“中国区域高时空分辨率地面气象要素驱动数据集”(ITPCAS CMFD)
适用对象:无特殊需要的简单数据提取(即不想使用Java、Fortran、Python、C/C++、IDL等编程读取该数据集的同学)
特点:(1)基于采样点坐标,由nc数据输出csv文本数据;(2)将nc数据转换成带地理坐标系的通用Tiff格式
程序作者:zhanghongbo (zhanghongbo@itpcas.ac.cn)
程序界面:
使用方法及描述:
本程序有两种提取模式,分别是“采样点模式”和“区域模式”, 顾名思义,即可以进行针对采样点的批量提取和基于指定经纬度范围的区域提取。详述如下,
1、采样点模式
采样点模式指的是:根据用户输入的采样点坐标(可以输入任意多的采样点,即可以进行批处理),提取对应采样点的指定气象要素值。
步骤:
(1)指定输入目录:
如下图,输入目录下有两个CMFD数据集中的nc文件
由文件名可以看出,这两个文件是1984年3月和4月的降水数据
(2)指定输出目录:
简单起见,我把输出目录设置为与输入目录相同
(3)指定时区:
ITPCASCMFD数据是基于格林尼治时间制备的,所以为了与北京时间或西藏地方时的数据相对应,程序中提供了“输出时区”的设置
如上图,我将“输出时区”设置为8,即程序将会根据北京时间对原始数据自动进行时间上的推移
(4)设置采样点参数文件
为了简化实现,采样点参数文件使用的是特定格式的excel表格文件作为输入,如下图
程序自带一个名为“parameter.xls”的模板参数文件,用户只需根据自身需要修改该参数文件的内容即可。
在variable关键字的右边第一列输入想要提取的气象变量的变量名,有效的变量名只能是CMFD数据集中提供的气象变量,如下表
气象要素 | 变量名 | 单位 | 物理意义 |
近地面气温 | temp | K | 瞬时近地面(2m)气温 |
地表气压 | pres | Pa | 瞬时地表气压 |
近地面空气比湿 | shum | kg/ kg | 瞬时近地面空气比湿 |
近地面全风速 | wind | m /s | 瞬时近地面(风速仪高度)全风速 |
向下短波辐射 | srad | W /平方米 | 3 小时平均 (-1.5hr ~ +1.5hr) 向下短波辐射 |
向下长波辐射 | lrad | W /平方米 | 3 小时平均 (-1.5hr ~ +1.5hr) 向下长波辐射。 |
降水率 | prec | mm/hr | 3 小时平均 (-3.0hr ~ 0.0hr) 降水率。 |
在“start”和”end”之间输入所有想要提取的采样点的经纬度坐标(先经度,后纬度),然后,在之后的第三列可以输入一个互不相同的“站点标签”,用于区分位置非常接近的站点并且便于查看输出结果。注意的是:用户需自行保证start和end之间没有空行
修改之后记得保存,并将该文件指定为采样点文件,如下
(5)点击运行
由于只提取两个月的数据而且只有两个站点,只用时2秒。
在指定的输出目录下查看结果,
结果文件的命名格式为:站点标签_经度_纬度.csv
如果不指定站点标签的话,将只有“经度_纬度.csv”,对于未知十分接近的站点,虽然经纬度输出可以达到小数点5位,基本上不会出现位置重合的情况,但是,用户可能会不小心输入重复的站点坐标,而且输入站点名称更利于查看结果。所以,推荐在参数文件中经纬度之后的第三列输入“站点标签”
(6)后处理
打开任一结果文件,
结果的输出格式为:年,月,日,第1个3小时记录,第2个三小时记录,,,第8个3小时记录。
如果只需要日数据,那么在Excel中,输入相应的统计公式然后自动填充即可
然而,很多情况下,需要月尺度或年尺度的数据,所以,针对本程序的输出结果,我又写了四个简单的月尺度和年尺度的统计小程序,如下:
从下到下,依次是:月累加、月平均、年累加和年平均
因为计算的是降水量,故而以“月累加”为例,将”Monthly_accumulation.exe”文件拷到结果文件所在的目录,双击该程序
程序会自动搜索本目录内符合程序数据结果格式的csv文件,需要注意的是:在运行该程序的时候不要使用excel打开结果文件,否则程序会异常退出
输出的月尺度结果为:
这里需要特别注意的是:虽然我们只输入了1984年3和4月的CMFD数据,但是,由于输出时区设置为8,结果文件中就会多出下个月1号的两个3小时数据,如下图
与之对应的,3月1号的最初两个3小时数据是缺失的,如下
程序以“-32767”作为缺测标识
这四个月尺度和年尺度计算程序会自动忽略缺测值,但是,如果设置了“输出时区”,请记住结果文件中最后一个月的结果是“无效”的。
最后,另一个需要特别注意的问题是气象变量的“单位”,比如,降水的单位是“毫米每小时”,然而,其在原数据集中是以每3小时一个记录存储的,因此在采样点模式下,本程序自动将每条降水记录乘以3。但是,本程序只对较为常用的降水数据做了这种特殊处理,所以用户可能需要根据自己的需要对结果文件进行一些必要的处理。此外,在“区域模式”中,并没有对降水做乘以3的处理,因为使用GIS处理时可以很方便的对栅格进行各种数学运算。
2、区域模式
区域模式主要是针对GIS处理,ITPCAS CMFD数据集是使用NetCDF格式存储的,在进行常规GIS处理时很不方便,使用Arcgis这种桌面版GIS软件处理时,速度较慢、不稳定而且操作也很繁琐。所以,本程序提供了 自动将数据格式转换为方便GIS做区域分析的tif格式 的功能。
使用步骤如下:
(1)设置输入、输出目录、输出时区:
同采样点模式
(2)设置“统计”:
与采样点模式不同,区域模式需要指定统计策略,如下图:
有三种统计方式:3小时、日平均、日加和。各自含义如下,
3小时:即保持数据集的原始时间分辨率,以每三小时一个记录进行输出
日平均:将每天的8个3小时记录加和之后除以8
日加和:将每天的8个3小时记录进行加和
本案例提取的是降水,因而使用“日加和”方式,需要注意的是,如前所述,实际的日降水量还要乘以3
(3)设置“还原”
设置此项的由来:
ITPCASCMFD数据在存储时是以短整型格式存储的,该值并不是气象变量的真值,需要进行val * scale + offset的计算之后才能“还原”成为真实的浮点型数据。之前设置此项,是为了节省数据存储空间,但是实际提取时,由于我使用了LZW压缩算法,得到的结果文件并不大,因而,推荐勾选该项以直接获得有意义的数据。
(4)设置“区域范围”
点击输入框,就会弹出输入范围的设置界面,如下
设置后东西南北的经纬度界限之后,请记得点击“save”保存设置
但是,实际上,结果文件的存储空间并不大,所以这里并不推荐设置区域范围(如果不设置区域范围,程序将会输出全范围即全中国的数据),点击任意其他输入框即可取消区域范围的输入界面。
本案例留空
(5)点击“运行”
程序以较快的速度完成了任务
查看结果文件:
结果文件的命名格式为:变量名+年+月+日.tif,可以看到,单个全范围的文件也只有几百KB
然后,使用Arcgis可以很方便的打开一个结果文件进行查看,
上图是使用该程序提取的北京时间1984年3月18日的日降水量分布
程序在输出tif文件时,使用的是wgs84地理坐标系,如下
其经纬度范围严格遵循原数据集。
总的来说,这个程序的特点就是小巧灵快( 自以为, )
最后,由于种种原因,其实我根本用不到自己写的这个程序,所以我就在右上角题了四个小字,如果觉得碍眼,点击该处即可取消显示。。。
2015.1.30更新内容:
1、修正“采样点模式”中,“Yearly_average”输出结果为乱码的BUG
2、修正“区域模式”中,每月第一天数据有误的BUG
3、为“区域模式”添加了年尺度和月尺度的统计功能
主程序下载: https://pan.baidu.com/s/1MDCEuZ3RIONtZ4TxkFZqnw (提取码: pq5n)
为采样点模式写的四个小工具下载地址:http://pan.baidu.com/s/1dDtQEbB
POSTED IN: C#
气象要素数据提取程序相关推荐
- 图像haar特征提取 c语言,基于C语言的特征点提取程序 本程序是利用C语言对各种信号数据的特征点提取程序 - 下载 - 搜珍网...
基于C语言的特征点提取程序\修改后 特征点提取程序\提取特征点\Debug\football.ilk 基于C语言的特征点提取程序\修改后 特征点提取程序\提取特征点\Debug\football.ob ...
- ADO.NET—数据提供程序(连接类)
.NET Framework 数据提供程序是专门为数据处理以及快速地只进.只读访问数据而设计的组件. 一.Connection 1.介绍 开启程序和数据库之间的连结 ADO.NET底层 可自己产生对象 ...
- 注册表数据提取工具RegRipper
注册表数据提取工具RegRipper 注册表是Windows操作系统一个数据库,用来存储系统和应用程序设置信息.注册表信息分别保存在操作系统中的6个Hive文件中.获取这几个文件,就可以从中提取注册表 ...
- Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取、存储和可视化展示
Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取.存储和可视化展示 1. 前言 2. Node_exporter 2.1 安装 node_expor ...
- Spring XD用于数据提取
Spring XD是一个功能强大的工具,它是一组可安装的Spring Boot服务,可以独立运行,在YARN或EC2之上运行. Spring XD还包括一个管理UI网站和一个用于作业和流管理的命令行工 ...
- mysql表数据提取工具,Jailer数据提取
软件简介 Jailer工具一款功能强大的数据提取工具,此次小编给大家推荐的这款新版的软件中增加了在数据浏览器界面编辑和执行任意 SQL 语句的功能,通过也可以基于行对 SQL 语句执行结果的数据进行编 ...
- python网络爬虫系列(六)——数据提取 lxml模块
一.数据提取-lxml模块 知识点 了解 lxml模块和xpath语法的关系 了解 lxml模块的使用场景 了解 lxml模块的安装 了解 谷歌浏览器xpath helper插件的安装和使用 掌握 x ...
- 非结构化数据和结构化数据提取
页面解析和数据提取 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的数据. 非结构化数据:先有数据,再有结构, 结构化数据: ...
- 官方数据:程序员年纪越大越出色、越稀有
导读:本文是从<It's official: developers get better with age. And scarcer>这篇文章翻译而来,译文来自外刊IT评论<官方数据 ...
- 当你学会这项python数据提取神器时,请做好升职准备!
Jsonpath 详解 一.什么是 jsonpath ● JsonPath 是一种信息抽取类库,是从 JSON 文档中抽取指定信息的工具,提供多种语言实现版本,包括:JavaScript.Python ...
最新文章
- PTA数据结构与算法题目集(中文)7-38
- android android:process=,关于android:Android-appprocess的使用
- Windows server用好windows server backup,发挥个人电脑该有的系统还原功能
- Adams中的阻尼比样条设置
- movie计算机英语作文,一篇“Movie Review英语作文
- 公务员注册账号,密码
- 我最喜欢的IntelliJ IDEA功能
- web开发软件,8个优秀的CSS实践,附面试题
- DP! | 不要怂!
- HTML转义字符最全集合
- 商务数据分析与应用学习笔记
- 【数字电子技术 Digital Electronic Technology 7】——时序逻辑电路分析 之 计数器完全攻略
- 基于mvc设计模式下的商品管理平台
- linux一句话精彩问答(05年新版)
- Unity 数据存储与读取_JSON
- Android Studio 选项菜单和动画结合_安卓手机关于“开发者选项”你该知道的几件事...
- 微信 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}
- MySQL定时任务(EVENT|事件)如何配置,必会技能!
- 你会在 JitPack 上创建依赖库吗?
- 谁是古代最风流的首席娱乐官?
热门文章
- 如何基于 k8s 开发高可靠服务?容器云牛人有话说
- Java中哈希算法总结
- 关于淘宝爬虫实现的总结和反思
- java面向对象(一)
- 计算机毕业设计SSM电影网站系统设计【附源码数据库】
- 985计算机硕士和985硕士土木,土木硕士,普通211,两篇SCI 和5篇EI,可以审核985博士吗?...
- 基于SchedulingConfigurer实现多定时任务注册及动态修改执行周期
- 七彩背景颜色的设置以及时间的设置
- 要想摆脱35岁这个坎,程序员应该专注哪些“不变 ”的底层知识
- [mycat1.6] java.sql.SQLTransientConnectionException: Hika riPool-1 - Connection is not avai