无法使用Python解压缩下载的文件-Sentinel卫星数据

时间:2019-10-08 08:00:09

标签: python zip geospatial unzip

我无法解压缩从Copernicus Open Access Hub下载的.zip文件。我检索了文件,然后尝试使用以下Python脚本将其解压缩:

from sentinelsat.sentinel import SentinelAPI
import zipfile

user = 's5pguest' 
password = 's5pguest' 

api = SentinelAPI(user, password, 'https://s5phub.copernicus.eu/dhus')

api.download("cb078cce-ed6e-46a7-a614-e13830b2a74a")

# The file is succesfully downloaded

zip_ref = zipfile.ZipFile("S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip", 'r')
zip_ref.extractall()
zip_ref.close()

文件已成功下载,但是当尝试解压缩时我得到:

BadZipFile                                Traceback (most recent call last)
<ipython-input-3-45c213a35459> in <module>
      9 api.download("cb078cce-ed6e-46a7-a614-e13830b2a74a")
     10 
---> 11 zip_ref = zipfile.ZipFile("S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip", 'r')
     12 zip_ref.extractall()
     13 zip_ref.close()

~/anaconda3/lib/python3.6/zipfile.py in __init__(self, file, mode, compression, allowZip64)
   1129         try:
   1130             if mode == 'r':
-> 1131                 self._RealGetContents()
   1132             elif mode in ('w', 'x'):
   1133                 # set the modified flag so central directory gets written

~/anaconda3/lib/python3.6/zipfile.py in _RealGetContents(self)
   1196             raise BadZipFile("File is not a zip file")
   1197         if not endrec:
-> 1198             raise BadZipFile("File is not a zip file")
   1199         if self.debug > 1:
   1200             print(endrec)

BadZipFile: File is not a zip file

如果我尝试使用解压缩从终端解压缩此文件,则会得到:

End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip or
        S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip.zip, and cannot find S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip.ZIP, period.

如果我尝试使用7zip,我会得到:

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=it_IT.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

Processing archive: S5P_NRTI_L2__CO_____20191004T113803_20191004T114303_10230_01_010302_20191004T122457.zip

Error: Can not open file as archive

似乎文件已损坏,但是如果我尝试下载其他文件,该错误仍然存​​在。 我也尝试过用“ doc.zip”之类的简单名称更改名称,但没有成功。 我被困住了,有什么想法吗?

我正在关注本教程https://github.com/acgeospatial/Satellite_Imagery_Python/blob/master/SentinelSat_Demo.ipynb

2 个答案:

答案 0 :(得分:0)

我认为您的文件可能不是zip文件。 转到该文件属性,然后检查其 .zip 格式是否为

Running proof

我也想提及一下,我无法打开您提到的存储库。

如果您搜索 7zip 错误: Google error search

答案 1 :(得分:0)

有一个错误:https://github.com/sentinelsat/sentinelsat/issues/270 该文件的扩展名不正确。如果我手动将扩展名从.zip更改为.nc,并尝试使用查看器脚本打开它,那么它将起作用。我想知道我链接的教程如何工作。