मैंने खुद को यही सवाल पूछते हुए पाया, और भविष्य के गोगलर्स के लिए अपना अनुभव साझा करूंगा।
डाटा के स्रोत
मुझे कच्चा डेटा चाहिए था, और बहुत सारे ... एक एपीआई नहीं होता। मुझे सीधे स्रोत की ओर जाने की जरूरत थी। सभी डेटा के लिए सबसे अच्छा स्रोत या तो NCEP या NCDC NOMADS सर्वर था:
http://nomads.ncdc.noaa.gov/dods/ <- ऐतिहासिक डेटा के लिए अच्छा
http://nomads.ncep.noaa.gov/dods/ <- हाल के डेटा के लिए अच्छा है
(नोट: एक टिप्पणीकार ने संकेत दिया कि अब आपको http के बजाय https का उपयोग करना चाहिए। मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन यदि आपको समस्या हो रही है, तो कोशिश करें!)
डेटा की मात्रा का अंदाजा लगाने के लिए, उनका डेटा 1979 तक वापस चला जाता है! यदि आप कनाडा और अमेरिका की तलाश कर रहे हैं, तो उत्तर अमेरिकी क्षेत्रीय Reanalysis डाटासेट शायद आपका सबसे अच्छा जवाब है।
डेटा का उपयोग करना
मैं एक बड़ा अजगर उपयोगकर्ता हूँ, और या तो pydap या NetCDF उपयोग करने के लिए अच्छे उपकरण की तरह लग रहा था। बिना किसी विशेष कारण के, मैंने पिडैप के साथ खेलना शुरू किया।
खानाबदोश वेबसाइट से किसी विशेष स्थान के लिए सभी तापमान डेटा कैसे प्राप्त करें, इसका एक उदाहरण देने के लिए, अजगर में निम्नलिखित प्रयास करें:
from pydap.client import open_url
# setup the connection
url = 'http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/narr-a_221_197901dd_hh00_000'
modelconn = open_url(url)
tmp2m = modelconn['tmp2m']
# grab the data
lat_index = 200 # you could tie this to tmp2m.lat[:]
lon_index = 200 # you could tie this to tmp2m.lon[:]
print tmp2m.array[:,lat_index,lon_index]
उपरोक्त स्निपेट आपको जनवरी, 1979 के पूरे महीने के लिए एक समय श्रृंखला (हर तीन घंटे) डेटा मिलेगा! यदि आपको कई स्थानों या सभी महीनों की आवश्यकता है, तो उपरोक्त कोड को आसानी से समायोजित करने के लिए संशोधित किया जाएगा।
सुपर-डेटा के लिए ... और उससे आगे!
मैं वहाँ रुककर खुश नहीं था। मुझे यह डेटा SQL डेटाबेस में चाहिए था ताकि मैं इसे आसानी से स्लाइस कर पाऊं। यह सब करने के लिए एक बढ़िया विकल्प अजगर पूर्वानुमान मॉड्यूल है।
प्रकटीकरण: मैंने मॉड्यूल के पीछे कोड को एक साथ रखा। कोड सभी खुले स्रोत हैं - आप इसे अपनी आवश्यकताओं को पूरा करने के लिए बेहतर तरीके से संशोधित कर सकते हैं (शायद आप मंगल ग्रह के लिए पूर्वानुमान लगा रहे हैं?) या अपनी परियोजना के लिए थोड़ा स्निपेट बाहर खींच सकते हैं।
मेरा लक्ष्य रैपिड रिफ्रेश मॉडल (यदि आप वर्तमान मौसम के बारे में सटीक जानकारी चाहते हैं तो अपना सर्वश्रेष्ठ दांव) से नवीनतम पूर्वानुमान प्राप्त कर सकते हैं:
from forecasting import Model
rap = Model('rap')
rap.connect(database='weather', user='chef')
fields = ['tmp2m']
rap.transfer(fields)
और फिर अच्छे 'ओले यूएसए' के मानचित्र पर डेटा को प्लॉट करने के लिए:
प्लॉट के लिए डेटा सीधे SQL से आया और वांछित किसी भी प्रकार के डेटा को बाहर निकालने के लिए क्वेरी को आसानी से संशोधित कर सकता है।
यदि उपरोक्त उदाहरण पर्याप्त नहीं है, तो दस्तावेज़ीकरण देखें, जहां आप अधिक उदाहरण पा सकते हैं।