NCCC気象データのダウンロード方法
2032 ワード
Hadoop権威ガイドでは、NCCC気象データをダウンロードする必要があります.ダウンロード先は次のとおりです.ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/
isd-lite/
しかし、私たちが開いた後、すべてのファイルは.gzフォーマットは多く、ダウンロードを1つずつ保存することはできません.
pythonで作成した一括ダウンロードデータファイルのコードを以下に示します.
#!/usr/bin/python
#-*- coding: utf-8 -*-
import sys
import os
from ftplib import FTP
#ftp
def ftpconnect():
ftp_server = 'ftp3.ncdc.noaa.gov'
username = ''
password = ''
ftp=FTP()
ftp.set_debuglevel(2) # 2,
ftp.connect(ftp_server,21) #
ftp.login(username,password) # ,
return ftp
#
def downloadfile():
ftp = ftpconnect()
#print ftp.getwelcome() # ftp
datapath = "/pub/data/noaa/isd-lite/"
year=int(sys.argv[1]) #
currentyear = year #
while year<=int(sys.argv[2]):
path=datapath+str(year)
li = ftp.nlst(path)
#
path = sys.argv[3]+'/'
dir = str(year)
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(year) + '--'+localpath# ,
bufsize = 1024 #
fp = open(localpath,'wb') #
ftp.retrbinary('RETR ' + eachFile,fp.write,bufsize) #
year=year+1
ftp.set_debuglevel(0) #
fp.close()
ftp.quit() # ftp
if __name__=="__main__":
downloadfile()
上記コードをに保存する.pyファイル
cmdでpyファイルを実行し、上記コードは入力パラメータを受信する
次のコマンドを実行します.
python.exe ncdc_download.py 1901 2014 weatherdata
python.exe//pythonインストール後のファイル
ncdc_download.py//上記コードファイル
1901//ダウンロード開始年
2014//ダウンロード年まで
weatherdata//指定したダウンロードディレクトリ(手動で自分で作成する)