论文部分内容阅读
摘要:在介绍Mathematica进行天气数据下载的基本知识、语法规则基础上,结合实际应用介绍正确使用Mathematica和GoogleEarth进行天气数据下载的方法。
关键词:Mathematica;GoogleEarth;天气数据;下载;应用
Abstract: in this paper on the weather data download Mathematica the basic knowledge, grammar rules basis, combining with the actual applications right use of Mathematica and on the weather data download GoogleEarth method.
Keywords: Mathematica; GoogleEarth; The weather data; Download; application
中图分类号:P44文献标识码:A 文章编号:
Mathematica在6.0版本以后,增加了自然科学数据下载功能,天气数据下载即为其一,可以提供世界范围内标准气象台站当前和历史天气数据,包括ICAO、WMO、NCDC、业余气象台站天气资料。本文旨在讲述天气数据下载基本知识、语法规则以及如何正确进行天气数据下载。
1 基本知识
1.1 可提供的数据类型
Mathematica可提供的天气数据类型包括气象观测值、台站属性值,因此数据实用。
1.1.1 气象观测值
气象观测值数据包括瞬时、时段观测值和时段特征值。
1)瞬时观测值,见表1—1。
表1—1 瞬时观测值数据说明表
1.2 数据下载语法
Mathematica语法严格,英文名称必须按照上述4表,引号、大括号、方括号必须配对,各属性项以逗号进行分隔。
1.2.1 站点查询
输入:WeatherData[]
输出:{"2NC0","3CO4","ABDA2",……,"ZYTX","ZYYY"}
该语句列出目前Mathematica所能提供的数据的气象台站代码,目前站数为21922站。
1.2.2 数据范围查询
输入:WeatherData["WMO58251","DateRange"]
输出:{{1956,8,20,0,0,0},{2011,8,7,21,0,0}}
说明:WMO58251为东台站,数据可查询范围为1956.08.20.0:00至2011.08.07.21:00,时效性较好。
1.2.3 列出天气数据
输入:DateList[WeatherData["WMO58251","TotalPrecipitation",{{1960,1,1},{2009,12,31},"Day"}]]
输出:DateList[{{{1960,1,1},0},……,{{1960,1,7},0},{{1960,1,8},0.13},……,{{2009,12,31},0}}]
说明:列出WMO58251站1960.01.01—2009.12.31逐日降水量数据。
此外,Mathematica也可以直接根据数据绘制相应的图形,并可以为其它办公软件直接引用。
1.2.4 寻找气象台站
要寻找某地周围的气象台站,就必须知道此地的地名或者地理坐标,如
输入:WeatherData[{33,120}]
输出:WMO58251
说明:北纬、东经为正;南纬、西经为负。
2 实际应用
Mathematica比较适用于较大地区的天气数据分析与研究工作。现以研究江苏省气候变化为例,介绍一下如何利用Mathematica和GoogleEarth来进行数据的下载。
2.1 气象台站确定
相比于使用汉语拼音,采用地理坐标来确定气象台站是比较好的方法,确定地理坐标最为便利的工具是GoogleEarth。
运行GoogleEarth,知道的江苏省地理中心坐标大概为(33N,119E),下面根据中心坐标来确定下载周围最近的30个气象台站的资料。
输入:WeatherData[{{33,119},30}]
输出:
{"WMO58138","WMO58241","WMO58141","WMO58251","WMO58122","ZSCG","ZSNJ","WMO58150","WMO58221","WMO58343","ZSLG","WMO58345","WMO58259","WMO58040","WMO58338","ZSOF","WMO58215","ZSXZ","WMO58027","WMO58358","WMO58265","WMO54929","WMO54945","WMO58362","WMO58015","ZSSS","WMO58203","WMO58314","WMO58102","ZSHC"}
此时,就可以根据上述30台站代码进行数据下载了。
2.2 台站位置确定
从2.1例子输出数据看,没有办法知道它们分别是什么台站、位置在哪里,因此还要分别找出它们的坐标才能确定它们所对应的气象台站及其地理位置,才可以进行等值线绘制、数据处理等等。现以WMO58251为例。
输入:WeatherData["WMO58251","Coordinates"]
输出:{32.85,120.283}
说明:北纬32.85度,东经120.283度
根据输出坐标,使用GoogleEarth进行标注,知道該站为东台站。再对其余各站进行标注,就可以得到及周边地区30个气象台站的信息。
表2—1 及周边地区30个气象台站信息表
根据Mathematica语法规则,可以编制批处理文件来进行巨量天气数据下载,下载时仅需要在相应位置按Shift-Enter再根据提示轻点鼠标即可。
注:文章内所有公式及图表请用PDF形式查看。
关键词:Mathematica;GoogleEarth;天气数据;下载;应用
Abstract: in this paper on the weather data download Mathematica the basic knowledge, grammar rules basis, combining with the actual applications right use of Mathematica and on the weather data download GoogleEarth method.
Keywords: Mathematica; GoogleEarth; The weather data; Download; application
中图分类号:P44文献标识码:A 文章编号:
Mathematica在6.0版本以后,增加了自然科学数据下载功能,天气数据下载即为其一,可以提供世界范围内标准气象台站当前和历史天气数据,包括ICAO、WMO、NCDC、业余气象台站天气资料。本文旨在讲述天气数据下载基本知识、语法规则以及如何正确进行天气数据下载。
1 基本知识
1.1 可提供的数据类型
Mathematica可提供的天气数据类型包括气象观测值、台站属性值,因此数据实用。
1.1.1 气象观测值
气象观测值数据包括瞬时、时段观测值和时段特征值。
1)瞬时观测值,见表1—1。
表1—1 瞬时观测值数据说明表
1.2 数据下载语法
Mathematica语法严格,英文名称必须按照上述4表,引号、大括号、方括号必须配对,各属性项以逗号进行分隔。
1.2.1 站点查询
输入:WeatherData[]
输出:{"2NC0","3CO4","ABDA2",……,"ZYTX","ZYYY"}
该语句列出目前Mathematica所能提供的数据的气象台站代码,目前站数为21922站。
1.2.2 数据范围查询
输入:WeatherData["WMO58251","DateRange"]
输出:{{1956,8,20,0,0,0},{2011,8,7,21,0,0}}
说明:WMO58251为东台站,数据可查询范围为1956.08.20.0:00至2011.08.07.21:00,时效性较好。
1.2.3 列出天气数据
输入:DateList[WeatherData["WMO58251","TotalPrecipitation",{{1960,1,1},{2009,12,31},"Day"}]]
输出:DateList[{{{1960,1,1},0},……,{{1960,1,7},0},{{1960,1,8},0.13},……,{{2009,12,31},0}}]
说明:列出WMO58251站1960.01.01—2009.12.31逐日降水量数据。
此外,Mathematica也可以直接根据数据绘制相应的图形,并可以为其它办公软件直接引用。
1.2.4 寻找气象台站
要寻找某地周围的气象台站,就必须知道此地的地名或者地理坐标,如
输入:WeatherData[{33,120}]
输出:WMO58251
说明:北纬、东经为正;南纬、西经为负。
2 实际应用
Mathematica比较适用于较大地区的天气数据分析与研究工作。现以研究江苏省气候变化为例,介绍一下如何利用Mathematica和GoogleEarth来进行数据的下载。
2.1 气象台站确定
相比于使用汉语拼音,采用地理坐标来确定气象台站是比较好的方法,确定地理坐标最为便利的工具是GoogleEarth。
运行GoogleEarth,知道的江苏省地理中心坐标大概为(33N,119E),下面根据中心坐标来确定下载周围最近的30个气象台站的资料。
输入:WeatherData[{{33,119},30}]
输出:
{"WMO58138","WMO58241","WMO58141","WMO58251","WMO58122","ZSCG","ZSNJ","WMO58150","WMO58221","WMO58343","ZSLG","WMO58345","WMO58259","WMO58040","WMO58338","ZSOF","WMO58215","ZSXZ","WMO58027","WMO58358","WMO58265","WMO54929","WMO54945","WMO58362","WMO58015","ZSSS","WMO58203","WMO58314","WMO58102","ZSHC"}
此时,就可以根据上述30台站代码进行数据下载了。
2.2 台站位置确定
从2.1例子输出数据看,没有办法知道它们分别是什么台站、位置在哪里,因此还要分别找出它们的坐标才能确定它们所对应的气象台站及其地理位置,才可以进行等值线绘制、数据处理等等。现以WMO58251为例。
输入:WeatherData["WMO58251","Coordinates"]
输出:{32.85,120.283}
说明:北纬32.85度,东经120.283度
根据输出坐标,使用GoogleEarth进行标注,知道該站为东台站。再对其余各站进行标注,就可以得到及周边地区30个气象台站的信息。
表2—1 及周边地区30个气象台站信息表
根据Mathematica语法规则,可以编制批处理文件来进行巨量天气数据下载,下载时仅需要在相应位置按Shift-Enter再根据提示轻点鼠标即可。
注:文章内所有公式及图表请用PDF形式查看。