用Python下载美国国家气候数据中心(NCDC)的气候数据
美国国家气候数据中心的官网地址是https://www.ncdc.noaa.gov/
气候数据的下载地址是:
长格式:ftp://ftp.ncdc.noaa.gov/pub/data/noaa/,这种就是《hadoop权威指南》所使用的数据集格式。
短格式:ftp://ftp.ncdc.noaa.gov/pub/data/noaa/isd-lite/
这两个地址是在网上查到的,从官网怎样找到,我没有发现。
浏览器打开这个网址以后,是以年份为目录的目录列表,从1901年开始,一直到今年,2019年。
每个目录里面是形如029070-99999-1901.gz这样的数据,数量不等,年份越晚,文件越多,应当是因为技术越来越发达,数据量也随之增大。
显然,这样的数据是不可能手工下载的,网上也没找到正确的下载地址,写个程序自己下吧。
参考了这篇文档https://blog.csdn.net/LIHUINIHAO/article/details/38315231,做了一些修改。此文档中的地址目前已无效,我将其改为ftp.ncdc.noaa.gov。
在开发环境中运行。
- import sys
- import os
- from ftplib import FTP
- #服务器链接
- def ftpconnect():
- ftp_server = "ftp.ncdc.noaa.gov"
- usrname = ""
- password = ""
- ftp = FTP()
- ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
- port=21
- time=30
- ftp.connect(ftp_server,port,time)
- ftp.login(usrname,password)
- return ftp
- #开始下载文件
- def downloadfile():
- ftp = ftpconnect()
- #print ftp.getwelcome() #显示ftp服务器欢迎信息
- datapath = "/pub/data/noaa/isd-lite/"
- #起始年份和终止年份,酌情修改
- beginyear = 1934
- endyear = 1950
- # year=int(sys.argv[1]) #年份循环
- currentyear = beginyear #当前执行年份
- # while year<=int(sys.argv[2]):
- while currentyear <= int(endyear):
- path = datapath + str(currentyear)
- ftp.cwd('/pub/data/noaa/isd-lite/' + str(currentyear)) #
- li = ftp.nlst(path)
- #创建指定年份的目录
- # path = sys.argv[3]+'/'
- path = "weatherdata" + '/'
- dir = str(currentyear)
- new_path = os.path.join(path, dir)
- if not os.path.isdir(new_path):
- os.makedirs(new_path)
- for eachFile in li:
- localpaths = eachFile.split("/")
- localpath = localpaths[len(localpaths)-1]
- # localpath=new_path + '/'+ str(currentyear) + '--'+localpath#把日期放在最前面,方便排序
- localpath=new_path + '/' + localpath #不必用日期排序,第一节是流水号,已自带排序功能
- bufsize = 1024 #设置缓冲块大小
- fp = open(localpath,'wb') #以写模式在本地打开文件
- ftp.retrbinary('RETR ' + eachFile,fp.write,bufsize) #接收服务器上文件并写入本地文件
- currentyear = currentyear+1
- ftp.set_debuglevel(0) #关闭调试
- # fp.close()
- ftp.quit() #退出ftp服务器
- if __name__=="__main__":
- downloadfile()
用Python下载美国国家气候数据中心(NCDC)的气候数据的更多相关文章
- Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
打开一篇篇 IT 技术文章,你总能够看到“大规模”.“海量请求”这些字眼.如今,这些功能强大的互联网应用,都运行在大规模数据中心上,然而,对于大规模数据中心,你又了解多少呢?实际上,除了阅读一些科技文 ...
- 5G到来,数据中心如何变革?
导读 5G将要到来,除改变人们的工作生活外,其带宽.延时.连接特性也逼迫着数据中心变革,以满足5G时代需求.具体而言,5G将从形状规模.硬件组成及软件规模三面变革数据中心. 5G带来什么 高带宽.低延 ...
- 转-Uptime与数据中心等级认证
1 数据中心等级认证 随着数据中心的蓬勃发展,越来越多的标准被制定出具.其中,Uptime Tier认证在业内是认同度最高的标准.以前,Uptime在中国的宣传很少,很多人对Uptime及其认证体系不 ...
- Alibaba Cluster Data 开源:270GB 数据揭秘你不知道的阿里巴巴数据中心
打开一篇篇 IT 技术文章,你总能够看到“大规模”.“海量请求”这些字眼.如今,这些功能强大的互联网应用,都运行在大规模数据中心上,然而,对于大规模数据中心,你又了解多少呢?实际上,除了阅读一些科技文 ...
- 透过微软研究院在“数据中心网络”的重大进展看SIGCOMM 2013
2013" title="透过微软研究院在"数据中心网络"的重大进展看SIGCOMM 2013"> 编者按:于8月12日至16日在香港举行的SI ...
- SQL Azure (17) SQL Azure V12 - 跨数据中心标准地域复制(Standard Geo-Replication)
<Windows Azure Platform 系列文章目录> 熟悉Microsoft Azure平台的读者都了解,Azure SQL Database提供不同等级的,跨数据中心的异地冗余 ...
- Google数据中心B4网络具体实现
① 背景介绍 Google的网络有两种,一种是数据中心内部网络,另外一种是WAN网,其中WAN网又分为两种:一是数据中心之间的互联网络,属于内部网络(G-Scale Network),另外一种是面向I ...
- 云计算和大数据时代网络技术揭秘(八)数据中心存储FCoE
数据中心存储演化——FCoE 数据中心三大基础:主机 网络 存储 在云计算推动下,存储基础架构在发生演变 传统存储结构DAS.SAN在发展中遇到了布线复杂.能耗增多的缺点(原生性),需要对架构做根 ...
- SDN理解:云数据中心底层网络架构
目录 - 目录 - 云数据中心流量类型 - NSX整体网络结构 - 管理网络(API网络) - 租户网络 - 外联网络 - 存储网络 - openstack整体网络结构 - 管理网络:(上图中蓝线) ...
随机推荐
- [转]/etc/passwd文件解析
/etc/passwd文件内容如下 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daem ...
- Go 程序的性能调试问题
英文原文:Debugging performance issues in Go programs 假设你手上有个Go语言编写的程序,你打算提升它的性能.目前有一些工具可以为此提供帮助.这些工具能帮你发 ...
- angularjs入门初体验
1. http://www.zouyesheng.com/angular.html#toc39
- Hyper-V 怎样拷贝文件至虚拟硬盘并附加到虚拟机上
对于大文件来说,通过远程桌面拷贝是件麻烦的事情,虽然简单,但速度受限太多,不推荐使用. 我工作中对于大文件的拷贝,通过创建一个新的虚拟硬盘(VHD),再把大文件拷贝至虚拟硬盘中,最后附加到虚拟机上. ...
- 阿里云 ssh 登陆请使用(公)ip
一直以为要要登陆使用的是私有的ip,最后才发现是使用共有ip, 如图 47.52.69.151 > ssh root@47.52.69.151 > 输入密码
- 当visual studio的数据库项目遇到SQL71501
这是因为数据库项目缺少login用户. 加上就好了,注意要加sql server用户. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5 ...
- d3实现的力向导图
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Gtk-WARNING**:无法在模块路径中找到主题引擎:“pixmap”的解决
Gtk-WARNING**:无法在模块路径中找到主题引擎:“pixmap”的解决 解决以上问题, 只需要安装 gnome-themes-standard 即可 如果终端中提示: (gvim:23 ...
- Go-MySQL-Driver
1.下载Go-Mysql-Driver go get github.com/go-sql-driver/mysql 2.引入import import( "database/sql" ...
- WebView与 JS 交互方式
前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由Android的WebView实现的,其中涉及到Android客户端与 ...