美国国家气候数据中心的官网地址是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。

在开发环境中运行。

  1. import sys
  2. import os
  3. from ftplib import FTP
  4.  
  5. #服务器链接
  6. def ftpconnect():
  7. ftp_server = "ftp.ncdc.noaa.gov"
  8. usrname = ""
  9. password = ""
  10. ftp = FTP()
  11.  
  12. ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
  13.  
  14. port=21
  15. time=30
  16. ftp.connect(ftp_server,port,time)
  17. ftp.login(usrname,password)
  18.  
  19. return ftp
  20.  
  21. #开始下载文件
  22. def downloadfile():
  23. ftp = ftpconnect()
  24. #print ftp.getwelcome() #显示ftp服务器欢迎信息
  25. datapath = "/pub/data/noaa/isd-lite/"
  26.  
  27. #起始年份和终止年份,酌情修改
  28. beginyear = 1934
  29. endyear = 1950
  30.  
  31. # year=int(sys.argv[1]) #年份循环
  32.  
  33. currentyear = beginyear #当前执行年份
  34.  
  35. # while year<=int(sys.argv[2]):
  36. while currentyear <= int(endyear):
  37. path = datapath + str(currentyear)
  38.  
  39. ftp.cwd('/pub/data/noaa/isd-lite/' + str(currentyear)) #
  40.  
  41. li = ftp.nlst(path)
  42.  
  43. #创建指定年份的目录
  44. # path = sys.argv[3]+'/'
  45. path = "weatherdata" + '/'
  46.  
  47. dir = str(currentyear)
  48. new_path = os.path.join(path, dir)
  49. if not os.path.isdir(new_path):
  50. os.makedirs(new_path)
  51.  
  52. for eachFile in li:
  53. localpaths = eachFile.split("/")
  54. localpath = localpaths[len(localpaths)-1]
  55. # localpath=new_path + '/'+ str(currentyear) + '--'+localpath#把日期放在最前面,方便排序
  56. localpath=new_path + '/' + localpath #不必用日期排序,第一节是流水号,已自带排序功能
  57. bufsize = 1024 #设置缓冲块大小
  58. fp = open(localpath,'wb') #以写模式在本地打开文件
  59. ftp.retrbinary('RETR ' + eachFile,fp.write,bufsize) #接收服务器上文件并写入本地文件
  60. currentyear = currentyear+1
  61. ftp.set_debuglevel(0) #关闭调试
  62. # fp.close()
  63. ftp.quit() #退出ftp服务器
  64.  
  65. if __name__=="__main__":
  66. downloadfile()

用Python下载美国国家气候数据中心(NCDC)的气候数据的更多相关文章

  1. Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心

    打开一篇篇 IT 技术文章,你总能够看到“大规模”.“海量请求”这些字眼.如今,这些功能强大的互联网应用,都运行在大规模数据中心上,然而,对于大规模数据中心,你又了解多少呢?实际上,除了阅读一些科技文 ...

  2. 5G到来,数据中心如何变革?

    导读 5G将要到来,除改变人们的工作生活外,其带宽.延时.连接特性也逼迫着数据中心变革,以满足5G时代需求.具体而言,5G将从形状规模.硬件组成及软件规模三面变革数据中心. 5G带来什么 高带宽.低延 ...

  3. 转-Uptime与数据中心等级认证

    1 数据中心等级认证 随着数据中心的蓬勃发展,越来越多的标准被制定出具.其中,Uptime Tier认证在业内是认同度最高的标准.以前,Uptime在中国的宣传很少,很多人对Uptime及其认证体系不 ...

  4. Alibaba Cluster Data 开源:270GB 数据揭秘你不知道的阿里巴巴数据中心

    打开一篇篇 IT 技术文章,你总能够看到“大规模”.“海量请求”这些字眼.如今,这些功能强大的互联网应用,都运行在大规模数据中心上,然而,对于大规模数据中心,你又了解多少呢?实际上,除了阅读一些科技文 ...

  5. 透过微软研究院在“数据中心网络”的重大进展看SIGCOMM 2013

    2013" title="透过微软研究院在"数据中心网络"的重大进展看SIGCOMM 2013"> 编者按:于8月12日至16日在香港举行的SI ...

  6. SQL Azure (17) SQL Azure V12 - 跨数据中心标准地域复制(Standard Geo-Replication)

    <Windows Azure Platform 系列文章目录> 熟悉Microsoft Azure平台的读者都了解,Azure SQL Database提供不同等级的,跨数据中心的异地冗余 ...

  7. Google数据中心B4网络具体实现

    ① 背景介绍 Google的网络有两种,一种是数据中心内部网络,另外一种是WAN网,其中WAN网又分为两种:一是数据中心之间的互联网络,属于内部网络(G-Scale Network),另外一种是面向I ...

  8. 云计算和大数据时代网络技术揭秘(八)数据中心存储FCoE

    数据中心存储演化——FCoE   数据中心三大基础:主机 网络 存储 在云计算推动下,存储基础架构在发生演变 传统存储结构DAS.SAN在发展中遇到了布线复杂.能耗增多的缺点(原生性),需要对架构做根 ...

  9. SDN理解:云数据中心底层网络架构

    目录 - 目录 - 云数据中心流量类型 - NSX整体网络结构 - 管理网络(API网络) - 租户网络 - 外联网络 - 存储网络 - openstack整体网络结构 - 管理网络:(上图中蓝线) ...

随机推荐

  1. [转]/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 ...

  2. Go 程序的性能调试问题

    英文原文:Debugging performance issues in Go programs 假设你手上有个Go语言编写的程序,你打算提升它的性能.目前有一些工具可以为此提供帮助.这些工具能帮你发 ...

  3. angularjs入门初体验

    1. http://www.zouyesheng.com/angular.html#toc39

  4. Hyper-V 怎样拷贝文件至虚拟硬盘并附加到虚拟机上

    对于大文件来说,通过远程桌面拷贝是件麻烦的事情,虽然简单,但速度受限太多,不推荐使用. 我工作中对于大文件的拷贝,通过创建一个新的虚拟硬盘(VHD),再把大文件拷贝至虚拟硬盘中,最后附加到虚拟机上. ...

  5. 阿里云 ssh 登陆请使用(公)ip

    一直以为要要登陆使用的是私有的ip,最后才发现是使用共有ip, 如图 47.52.69.151 > ssh root@47.52.69.151 > 输入密码

  6. 当visual studio的数据库项目遇到SQL71501

    这是因为数据库项目缺少login用户. 加上就好了,注意要加sql server用户. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5 ...

  7. d3实现的力向导图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. Gtk-WARNING**:无法在模块路径中找到主题引擎:“pixmap”的解决

    Gtk-WARNING**:无法在模块路径中找到主题引擎:“pixmap”的解决  解决以上问题, 只需要安装 gnome-themes-standard 即可 如果终端中提示:   (gvim:23 ...

  9. Go-MySQL-Driver

    1.下载Go-Mysql-Driver go get github.com/go-sql-driver/mysql 2.引入import import( "database/sql" ...

  10. WebView与 JS 交互方式

    前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由Android的WebView实现的,其中涉及到Android客户端与 ...