我需要处理这个网站(https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.20190814/06/)的天气数据,每个文件大约有300MB。一旦我下载了这个文件,我只需要读入它的一个子集。我觉得下载的速度太慢了,所以我打算用BeautifulSoup直接从网站上读取数据,就像这样
from bs4 import BeautifulSoup
import requests
url = 'https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.20190814/06/gfs.t06z.pgrb2.0p25.f000'
response = requests.get(url)
soup = BeautifulSoup(response.content, features='lxml')
然后使用pygrib
库读入生成的.grib(天气数据格式)文件的子集。
然而,这也被证明是太慢,大约需要5分钟的事情,将需要做50次一天。有没有我没有想到的更快的选择?你知道吗
您可以下载匹配的
.idx
文件,该文件提供主文件中的偏移量和大小。然后,您可以确定所需的文件部分,并使用Only download a part of the document using python requests的可接受答案中提到的技术来获取这些位。你知道吗您可能需要做一些额外的处理,以便能够使用
pygrib
读取它。最简单的选择是下载您感兴趣的文件头和位,并将它们合并到一个单独的文件中,在您不感兴趣的地方使用填充。你知道吗顺便说一句,你根本不需要漂亮的汤加工!
requests.get
响应的content
部分就是您要查找的数据。你知道吗其他信息:
来自评论:
对于将来遇到这个问题的人,对于grib文件,这里是我发现的这个概念的工作概要:gist.github.com/blaylockbk/…–P.V.
相关问题 更多 >
编程相关推荐