Fel*_*ffa 11 sql weather opendata google-bigquery
BigQuery将NOAA的gsod数据作为公共数据集加载 - 从1929年开始:https://www.reddit.com/r/bigquery/comments/2ts9wo/noaa_gsod_weather_data_loaded_into_bigquery/
如何检索任何城市的历史数据?
Fel*_*ffa 13
2017年更新:标准SQL和最新表:
SELECT *
FROM `fh-bigquery.weather_gsod.all`
WHERE name='SAN FRANCISCO INTERNATIONAL A'
ORDER BY date DESC
Run Code Online (Sandbox Code Playgroud)
另外一个例子,展示这十年来芝加哥最寒冷的日子:
SELECT name, state, ARRAY_AGG(STRUCT(date,temp) ORDER BY temp DESC LIMIT 5) top_hot, MAX(date) active_until
FROM `fh-bigquery.weather_gsod.all`
WHERE name LIKE 'SAN FRANC%'
AND date > '1980-01-01'
GROUP BY 1,2
ORDER BY active_until DESC
Run Code Online (Sandbox Code Playgroud)
要检索任何城市的历史天气,首先我们需要找到该城市的哪些电台报告.该表[fh-bigquery:weather_gsod.stations]包含已知电台的名称,其状态(如果在美国),国家/地区和其他详细信息.
因此,要查找德克萨斯州奥斯汀的所有电台,我们将使用如下查询:
WITH city AS (SELECT ST_GEOGPOINT(-122.465, 37.807))
SELECT name, state, ARRAY_AGG(STRUCT(date,temp) ORDER BY temp DESC LIMIT 5) top_hot, MAX(date) station_until
FROM `fh-bigquery.weather_gsod.all_geoclustered`
WHERE EXTRACT(YEAR FROM date) > 1980
AND ST_DISTANCE(point_gis, (SELECT * FROM city)) < 40000
GROUP BY name, state
HAVING EXTRACT(YEAR FROM station_until)>2018
ORDER BY ST_DISTANCE(ANY_VALUE(point_gis), (SELECT * FROM city))
LIMIT 5
Run Code Online (Sandbox Code Playgroud)
这种方法有两个问题需要解决:
要解决第二个问题,我们需要将站表与我们正在寻找的实际数据相连接.以下查询查找奥斯汀周围的站点,该列c查看2015年期间有多少天具有实际数据:
SELECT TIMESTAMP(CONCAT(year,'-',mo,'-',da)) day, AVG(min) min, AVG(max) max, AVG(IF(prcp=99.99,0,prcp)) prcp
FROM `bigquery-public-data.noaa_gsod.gsod2016`
WHERE stn='722540' AND wban='13904'
GROUP BY 1
ORDER BY day
Run Code Online (Sandbox Code Playgroud)
非常好!我们在2015年找到4个站点,提供Austin的数据.
请注意,我们必须以一种特殊的方式对待"下雨":当一个站点不监视下雨时null,它会将其标记为99.99.我们的查询会过滤掉这些值.
现在我们知道了这些站的stn和wban数字,我们可以选择其中任何一个并可视化结果:
#standardSQL
SELECT year, FORMAT('%s%s',mo,da) day ,min
FROM `fh-bigquery.weather_gsod.stations` a
JOIN `bigquery-public-data.noaa_gsod.gsod201*` b
ON a.usaf=b.stn AND a.wban=b.wban
WHERE name='CHICAGO/O HARE ARPT'
AND min!=9999.9
AND mo<'03'
ORDER BY 1,2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3603 次 |
| 最近记录: |