如何获取GFS数据未来一周的预报之温湿廓线
温湿廓线
Siphon是一个用于访问大气和海洋数据源的Python库。它提供了易于使用的工具,可以从THREDDS数据服务器中自动获取、解析和检索数据。Siphon库旨在使使用Python进行科学数据分析变得更加容易。
Siphon库主要提供以下功能:
1、Catalog检索:Siphon可以连接到THREDDS(Thematic Real-time Environmental Distributed Data Services)目录,帮助用户轻松地搜索和发现可用的数据集。
2、数据访问:Siphon通过使用NetCDF Subset Service (NCSS)和NetCDF OPeNDAP (DODS)协议从数据服务器中获取数据。
3、数据解析:Siphon提供了一组工具来解析获取的数据,并将其转换为NumPy数组或Pandas数据框。
4、数据检验:Siphon提供了一些工具,可以帮助用户验证数据是否满足预期格式和要求。
Siphon库广泛应用于气象和海洋学领域,以及其他需要使用大量科学数据的领域。它简化了数据获取和处理的过程,使得用户可以更高效地进行科学研究和分析。
总之,Siphon是一个强大的Python库,为科学家和工程师提供了从THREDDS目录和数据服务器中获取数据的简单方法,并提供了工具来解析、检验和分析这些数据。
下面基于官方示例略作修改,修改主要因过时而报错的代码
进行数据索引与作图
数据索引
In :
from datetime import datetime
import matplotlib.pyplot as plt
from siphon.catalog import TDSCatalog
In :best_gfs = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/NCEP/GFS/'
'Global_0p5deg/catalog.xml?dataset=grib/NCEP/GFS/Global_0p5deg/Best')
print(best_gfs.datasets)['Best GFS Half Degree Forecast Time Series']
In :
best_ds = best_gfs.datasets
ncss = best_ds.subset()
然后,我们可以使用“ncss”对象创建一个新的查询对象,该对象
便于向服务器请求数据。
设置坐标为 115E 40N
In :
query = ncss.query()
query.lonlat_point(115, 40).time(datetime.utcnow())
query.accept('netcdf4')
query.variables('Temperature_isobaric', 'Relative_humidity_isobaric')
var=Temperature_isobaric&var=Relative_humidity_isobaric&time=2024-02-11T08%3A39%3A29.333010&longitude=115&latitude=40&accept=netcdf4
In :data = ncss.get_data(query)
list(data.variables)
['latitude',
'longitude',
'stationAltitude',
'station_id',
'station_description',
'profileId',
'nobs',
'profileTime',
'stationIndex',
'altitude',
'Temperature_isobaric',
'Relative_humidity_isobaric']我们将提取要使用的变量以及压力值。要获取
压力的正确变量的名称(与温度和
相对湿度,我们看一下“坐标”属性。最后一个变量
“坐标”中列出的是压力维度。
In :
temp = data.variables['Temperature_isobaric']
relh = data.variables['Relative_humidity_isobaric']
press_name = relh.coordinates.split()[-1]
press = data.variables
press_vals = press[:].squeeze()
作图
点击链接可在线运行程序
文章来源于公众号:气python风雨
页:
[1]