In [1]:
import requests
import json
import pandas as pd
import numpy as np

token = 'RiQdQYKoEqYhQXPXuoNoonkzYPajlwIr'
headers = {'token': token}

url = 'http://www.ncdc.noaa.gov/cdo-web/api/v2/stations?'
url += 'datasetid=NORMAL_DLY'
url += '&extent=' + '35.10,-111.75,35.30,-111.5'
url += '&limit=100'

r = requests.get(url, headers=headers)
data_ = r.json()
stations = pd.io.json.json_normalize(data_['results'])

stations_list = list(stations['id'])

In [463]:
stations_list


Out[463]:
[u'GHCND:USC00023009',
 u'GHCND:USC00023160',
 u'GHCND:USC00029156',
 u'GHCND:USW00003103']

In [499]:
stationID = ''

for st in stations_list:
    stationID = stationID + '&stationid=' + st
    

startDate = '2010-01-01'
endDate = '2010-12-31'

url = 'http://www.ncdc.noaa.gov/cdo-web/api/v2/data?'
url += 'datasetid=NORMAL_DLY'
url += '&datatypeid=DLY-TAVG-NORMAL'
url += stationID
url += '&startdate=' + startDate
url += '&enddate=' + endDate
url += '&limit=1000&offset=1001'

r = requests.get(url, headers=headers)

data_ = r.json()
data = pd.io.json.json_normalize(data_['results'])

data['datetime']=pd.to_datetime(data['date'])

In [500]:
data


Out[500]:
attributes datatype date station value datetime
0 R DLY-TAVG-NORMAL 2010-09-08T00:00:00 GHCND:USC00023009 575 2010-09-08
1 S DLY-TAVG-NORMAL 2010-09-08T00:00:00 GHCND:USC00023160 565 2010-09-08
2 Q DLY-TAVG-NORMAL 2010-09-08T00:00:00 GHCND:USC00029156 646 2010-09-08
3 R DLY-TAVG-NORMAL 2010-09-08T00:00:00 GHCND:USW00003103 600 2010-09-08
4 R DLY-TAVG-NORMAL 2010-09-09T00:00:00 GHCND:USC00023009 572 2010-09-09
5 S DLY-TAVG-NORMAL 2010-09-09T00:00:00 GHCND:USC00023160 562 2010-09-09
6 Q DLY-TAVG-NORMAL 2010-09-09T00:00:00 GHCND:USC00029156 643 2010-09-09
7 R DLY-TAVG-NORMAL 2010-09-09T00:00:00 GHCND:USW00003103 597 2010-09-09
8 R DLY-TAVG-NORMAL 2010-09-10T00:00:00 GHCND:USC00023009 570 2010-09-10
9 S DLY-TAVG-NORMAL 2010-09-10T00:00:00 GHCND:USC00023160 559 2010-09-10
10 Q DLY-TAVG-NORMAL 2010-09-10T00:00:00 GHCND:USC00029156 640 2010-09-10
11 R DLY-TAVG-NORMAL 2010-09-10T00:00:00 GHCND:USW00003103 595 2010-09-10
12 R DLY-TAVG-NORMAL 2010-09-11T00:00:00 GHCND:USC00023009 567 2010-09-11
13 S DLY-TAVG-NORMAL 2010-09-11T00:00:00 GHCND:USC00023160 556 2010-09-11
14 Q DLY-TAVG-NORMAL 2010-09-11T00:00:00 GHCND:USC00029156 638 2010-09-11
15 R DLY-TAVG-NORMAL 2010-09-11T00:00:00 GHCND:USW00003103 592 2010-09-11
16 R DLY-TAVG-NORMAL 2010-09-12T00:00:00 GHCND:USC00023009 564 2010-09-12
17 S DLY-TAVG-NORMAL 2010-09-12T00:00:00 GHCND:USC00023160 553 2010-09-12
18 Q DLY-TAVG-NORMAL 2010-09-12T00:00:00 GHCND:USC00029156 635 2010-09-12
19 R DLY-TAVG-NORMAL 2010-09-12T00:00:00 GHCND:USW00003103 588 2010-09-12
20 R DLY-TAVG-NORMAL 2010-09-13T00:00:00 GHCND:USC00023009 561 2010-09-13
21 S DLY-TAVG-NORMAL 2010-09-13T00:00:00 GHCND:USC00023160 550 2010-09-13
22 Q DLY-TAVG-NORMAL 2010-09-13T00:00:00 GHCND:USC00029156 632 2010-09-13
23 R DLY-TAVG-NORMAL 2010-09-13T00:00:00 GHCND:USW00003103 585 2010-09-13
24 R DLY-TAVG-NORMAL 2010-09-14T00:00:00 GHCND:USC00023009 558 2010-09-14
25 S DLY-TAVG-NORMAL 2010-09-14T00:00:00 GHCND:USC00023160 547 2010-09-14
26 Q DLY-TAVG-NORMAL 2010-09-14T00:00:00 GHCND:USC00029156 628 2010-09-14
27 R DLY-TAVG-NORMAL 2010-09-14T00:00:00 GHCND:USW00003103 582 2010-09-14
28 R DLY-TAVG-NORMAL 2010-09-15T00:00:00 GHCND:USC00023009 555 2010-09-15
29 S DLY-TAVG-NORMAL 2010-09-15T00:00:00 GHCND:USC00023160 544 2010-09-15
... ... ... ... ... ... ...
430 Q DLY-TAVG-NORMAL 2010-12-24T00:00:00 GHCND:USC00029156 303 2010-12-24
431 S DLY-TAVG-NORMAL 2010-12-24T00:00:00 GHCND:USW00003103 290 2010-12-24
432 R DLY-TAVG-NORMAL 2010-12-25T00:00:00 GHCND:USC00023009 264 2010-12-25
433 S DLY-TAVG-NORMAL 2010-12-25T00:00:00 GHCND:USC00023160 261 2010-12-25
434 Q DLY-TAVG-NORMAL 2010-12-25T00:00:00 GHCND:USC00029156 303 2010-12-25
435 S DLY-TAVG-NORMAL 2010-12-25T00:00:00 GHCND:USW00003103 290 2010-12-25
436 R DLY-TAVG-NORMAL 2010-12-26T00:00:00 GHCND:USC00023009 263 2010-12-26
437 S DLY-TAVG-NORMAL 2010-12-26T00:00:00 GHCND:USC00023160 261 2010-12-26
438 Q DLY-TAVG-NORMAL 2010-12-26T00:00:00 GHCND:USC00029156 302 2010-12-26
439 S DLY-TAVG-NORMAL 2010-12-26T00:00:00 GHCND:USW00003103 290 2010-12-26
440 R DLY-TAVG-NORMAL 2010-12-27T00:00:00 GHCND:USC00023009 263 2010-12-27
441 S DLY-TAVG-NORMAL 2010-12-27T00:00:00 GHCND:USC00023160 261 2010-12-27
442 Q DLY-TAVG-NORMAL 2010-12-27T00:00:00 GHCND:USC00029156 302 2010-12-27
443 S DLY-TAVG-NORMAL 2010-12-27T00:00:00 GHCND:USW00003103 290 2010-12-27
444 R DLY-TAVG-NORMAL 2010-12-28T00:00:00 GHCND:USC00023009 263 2010-12-28
445 S DLY-TAVG-NORMAL 2010-12-28T00:00:00 GHCND:USC00023160 261 2010-12-28
446 Q DLY-TAVG-NORMAL 2010-12-28T00:00:00 GHCND:USC00029156 302 2010-12-28
447 S DLY-TAVG-NORMAL 2010-12-28T00:00:00 GHCND:USW00003103 291 2010-12-28
448 R DLY-TAVG-NORMAL 2010-12-29T00:00:00 GHCND:USC00023009 263 2010-12-29
449 S DLY-TAVG-NORMAL 2010-12-29T00:00:00 GHCND:USC00023160 262 2010-12-29
450 Q DLY-TAVG-NORMAL 2010-12-29T00:00:00 GHCND:USC00029156 301 2010-12-29
451 S DLY-TAVG-NORMAL 2010-12-29T00:00:00 GHCND:USW00003103 291 2010-12-29
452 R DLY-TAVG-NORMAL 2010-12-30T00:00:00 GHCND:USC00023009 263 2010-12-30
453 S DLY-TAVG-NORMAL 2010-12-30T00:00:00 GHCND:USC00023160 262 2010-12-30
454 Q DLY-TAVG-NORMAL 2010-12-30T00:00:00 GHCND:USC00029156 301 2010-12-30
455 S DLY-TAVG-NORMAL 2010-12-30T00:00:00 GHCND:USW00003103 292 2010-12-30
456 R DLY-TAVG-NORMAL 2010-12-31T00:00:00 GHCND:USC00023009 264 2010-12-31
457 S DLY-TAVG-NORMAL 2010-12-31T00:00:00 GHCND:USC00023160 263 2010-12-31
458 Q DLY-TAVG-NORMAL 2010-12-31T00:00:00 GHCND:USC00029156 301 2010-12-31
459 S DLY-TAVG-NORMAL 2010-12-31T00:00:00 GHCND:USW00003103 292 2010-12-31

460 rows × 6 columns


In [501]:
%matplotlib inline
data.plot('datetime', 'value', style='ko-')


Out[501]:
<matplotlib.axes._subplots.AxesSubplot at 0x10c7a1810>

In [454]:
stations_list


Out[454]:
[u'GHCND:USC00023009',
 u'GHCND:USC00023160',
 u'GHCND:USC00029156',
 u'GHCND:USW00003103']

In [469]:
temp_data = np.zeros((4,365))

In [470]:
temp_data


Out[470]:
array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

In [514]:
t4 = data[data['station'] == stations_list[3]]

In [515]:
temp_data[3,250:] = np.array(t4['value'])

In [516]:
temp_data


Out[516]:
array([[ 264.,  264.,  264., ...,  263.,  263.,  264.],
       [ 263.,  264.,  264., ...,  262.,  262.,  263.],
       [ 301.,  302.,  302., ...,  301.,  301.,  301.],
       [ 292.,  293.,  293., ...,  291.,  292.,  292.]])

In [524]:
np.savetxt('data/temperature.csv',temp_data,fmt='%.2f',delimiter=',')

In [ ]: