加快对组的解析?

2024-04-20 01:34:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要处理这个网站(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次一天。有没有我没有想到的更快的选择?你知道吗


Tags: 文件httpscomdata网站wwwftpprod
1条回答
网友
1楼 · 发布于 2024-04-20 01:34:25

您可以下载匹配的.idx文件,该文件提供主文件中的偏移量和大小。然后,您可以确定所需的文件部分,并使用Only download a part of the document using python requests的可接受答案中提到的技术来获取这些位。你知道吗

您可能需要做一些额外的处理,以便能够使用pygrib读取它。最简单的选择是下载您感兴趣的文件头和位,并将它们合并到一个单独的文件中,在您不感兴趣的地方使用填充。你知道吗

顺便说一句,你根本不需要漂亮的汤加工!requests.get响应的content部分就是您要查找的数据。你知道吗

其他信息:

来自评论:

对于将来遇到这个问题的人,对于grib文件,这里是我发现的这个概念的工作概要:gist.github.com/blaylockbk/…P.V.

相关问题 更多 >