我试图找到一种自动下载卫星图像来创建数据库的方法。我正在弄清楚这一点,并从哨兵卫星API开始,由于它的特殊性,它没有太多的地方。我的步骤是:我使用这个站点https://geojson.io来选择一个多边形,并下载一个geojson文件。我把它加到地质数据库(地质公园)上,很显然,实际上没有任何理由。接下来,我使用多边形将其添加到查询(api.query)中,获取产品,遍历它们,检查它们是否在线,并尝试下载它们,但我得到了以下错误(对于所有的在线产品):
0 POLYGON ((-53.27854 -24.97081, -53.30223 -24.9...
Querying products: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 362/362 [00:06<00:00, 42.74product/s]
title ... geometry
f8184c3e-6760-461c-af2b-5cb3183f864d S2A_MSIL2A_20211126T134211_N0301_R124_T22JBT_2... ... MULTIPOLYGON (((-52.89090 -25.39290, -52.87585...
f2a70ef8-b6ba-4612-8f3a-b4ec4d60ebc3 S2A_MSIL2A_20211126T134211_N0301_R124_T21JZN_2... ... MULTIPOLYGON (((-54.01898 -25.37484, -52.92975...
47d725db-7753-4407-9d67-90ec12053fac S2B_MSIL2A_20211121T134209_N0301_R124_T21JZN_2... ... MULTIPOLYGON (((-54.01898 -25.37484, -52.92975...
b3a96909-c276-498e-ad77-4fc89675fa19 S2B_MSIL2A_20211121T134209_N0301_R124_T22JBT_2... ... MULTIPOLYGON (((-52.89090 -25.39290, -52.87585...
6ddcee95-edc5-4a33-b5a3-820dbbee3431 S2A_MSIL2A_20211116T134211_N0301_R124_T22JBT_2... ... MULTIPOLYGON (((-52.89090 -25.39290, -52.87585...
... ... ... ...
b5b00501-8c99-4a89-87c1-dc99c421cbd7 S2B_MSIL2A_20190615T134219_N0212_R124_T21JZN_2... ... MULTIPOLYGON (((-54.01898 -25.37484, -52.92975...
1cb316a6-025a-40e6-a051-6b3eb13a91d4 S2A_MSIL2A_20190610T134211_N0212_R124_T22JBT_2... ... MULTIPOLYGON (((-52.89090 -25.39290, -52.87585...
3b6181b8-459c-4a04-aa9e-ad8e1329a5e3 S2A_MSIL2A_20190610T134211_N0212_R124_T21JZN_2... ... MULTIPOLYGON (((-54.01898 -25.37484, -52.92975...
f8dddff3-e1da-4d7c-ae85-aa8aced8e337 S2B_MSIL2A_20190605T134219_N0212_R124_T21JZN_2... ... MULTIPOLYGON (((-54.01898 -25.37484, -52.92975...
d75470e8-bd80-42d0-9129-41db94aa292f S2B_MSIL2A_20190605T134219_N0212_R124_T22JBT_2... ... MULTIPOLYGON (((-52.89090 -25.39290, -52.87585...
[362 rows x 41 columns]
Product ' 0 '
Product ' 1 '
Product: f2a70ef8-b6ba-4612-8f3a-b4ec4d60ebc3 is online.
Downloading S2A_MSIL2A_20211126T134211_N0301_R124_T21JZN_20211126T160417.zip: 0%| | 0.00/1.19G [00:00<?, ?B/s]
Traceback (most recent call last):
File "c:\Users\phzoz\PythonProjects\Sentinel\main.py", line 32, in <module>
api.download(product, directory_path="Data", checksum=True)
File "C:\Users\phzoz\anaconda3\envs\sentinel\lib\site-packages\sentinelsat\sentinel.py", line 590, in download
return downloader.download(id, directory_path)
File "C:\Users\phzoz\anaconda3\envs\sentinel\lib\site-packages\sentinelsat\download.py", line 150, in download
self._download_common(product_info, path, stop_event)
File "C:\Users\phzoz\anaconda3\envs\sentinel\lib\site-packages\sentinelsat\download.py", line 229, in _download_common
raise InvalidChecksumError("File corrupt: checksums do not match")
sentinelsat.exceptions.InvalidChecksumError: File corrupt: checksums do not match下面是代码摘要:
api = SentinelAPI(user, password, "https://scihub.copernicus.eu/dhus")
gjPath = "Data/files_geojson/map.geojson"
gdf = geopandas.read_file(gjPath)
print(gdf)
footprint = None
for i in gdf["geometry"]:
footprint = i
#("20190601", "20190626")
products = api.query(footprint, date=("20190601", "20211201"), platformname="Sentinel-2", processinglevel="Level-2A")
productsGDF = api.to_geodataframe(products)
print(productsGDF)
for i, product in enumerate(products):
print("Product '", i, "'")
if api.is_online(product):
print("Product:", str(product), " is online.")
api.download(product, directory_path="Data", checksum=True)我不明白是否需要指导API来提出请求或什么的,因为产品是真正可用的,但是文档似乎说您可以直接使用它,而且我也不知道校验和意味着什么,显然是某种传输验证。
发布于 2022-06-11 17:59:51
显然问题已经解决了,几天后继续使用不同的json文件(不执行geodataframe部分)和使用校验和下载的下载正常情况下,在第一次初始更改之后(因为它仍然以缓慢的速度下降,只是启用了校验和),我想这既是我使用数据和api的方式的问题,也是当时的一些连接问题。
https://stackoverflow.com/questions/72549869
复制相似问题