Fiona驱动程序通过URL下载文件时出错



这很容易测试是否出现错误:

import geopandas as gpd
gdf = gpd.read_file('https://hepgis.fhwa.dot.gov/fhwagis/AltFuels_Rounds1-5_2021-05-25.zip')
File "fiona/ogrext.pyx", line 540, in fiona.ogrext.Session.start
File "fiona/_shim.pyx", line 90, in fiona._shim.gdal_open_vector
fiona.errors.DriverError: '/vsimem/6101ab5f23764c15b5fe47aa52a049d6' not recognized as a supported file format.

有趣的是,我最近收到了其他URL的这个错误,并认为URL有问题。但是,现在我怀疑其他事情正在发生,因为它发生在不止一个URL上。另一方面,有些URL没有这个问题。还有一件有趣的事情,这个错误只是偶尔发生。例如,如果我重新运行该命令,它可能会工作20次中的1次。

我的Fiona版本:fiona 1.8.20 py39hea8b339_1二次锻造

任何帮助都将不胜感激。

正在调查,URL不会返回zip文件。请参阅下面的代码,它实际上返回了一个HTML输入页面。。。

import geopandas as gpd
import requests, io
from pathlib import Path
from zipfile import ZipFile, BadZipFile
import urllib
import fiona
url = "https://hepgis.fhwa.dot.gov/fhwagis/AltFuels_Rounds1-5_2021-05-25.zip"
try:
gdf = gpd.read_file(url)
except Exception:
f = Path.cwd().joinpath(urllib.parse.urlparse(url).path.split("/")[-1])
r = requests.get(url, stream=True, headers={"User-Agent": "XY"})
with open(f, "wb") as fd:
for chunk in r.iter_content(chunk_size=128):
fd.write(chunk)
try:
zfile = ZipFile(f)
zfile.extractall(f.stem)
except BadZipFile:
with open(f) as fh:
print(fh.read())

最新更新