【问题标题】:SentinelAPIError. HTTP status 200 OK: API response not valid. JSON decoding failed哨兵API错误。 HTTP 状态 200 OK:API 响应无效。 JSON解码失败
【发布时间】:2020-12-29 11:16:22
【问题描述】:

我一直在尝试使用 python 通过 sentinel2 API 获取数据,但我无法通过 geojson 格式获取数据。它不断地抛出一个 “SentinelAPIError:HTTP 状态 200 OK:API 响应无效。JSON 解码失败。”

我彻底遵循了文档,但我不断收到同样的错误。我可以获取 Point 数据,但无法获取 geojson 数据。

感谢您在这方面的帮助。这是代码的sn-p。 "

    if self.boundary.endswith('.geojson'):
        
        
        footprint = geojson_to_wkt(read_geojson(self.boundary))

        
        products = api.query(footprint,
                             
                     date=(self.start_date,self.end_date),

                     platformname = 'Sentinel-2',

                     cloud_cover= (0,self.cloud_cover))
        

        products_gdf = api.to_geodataframe(products)

"

这是错误。


/usr/local/lib/python3.6/dist-packages/sentinelsat/sentinel.py in _load_subquery(self, query, order_by, limit, offset)
    394             json_feed = response.json()["feed"]
--> 395             if json_feed["opensearch:totalResults"] is None:
    396                 # We are using some unintended behavior of the server that a null is

KeyError: 'opensearch:totalResults'
During handling of the above exception, another exception occurred:

SentinelAPIError                          Traceback (most recent call last)
4 fr
/usr/local/lib/python3.6/dist-packages/sentinelsat/sentinel.py in _load_subquery(self, query, order_by, limit, offset)
    401             total_results = int(json_feed["opensearch:totalResults"])
    402         except (ValueError, KeyError):
--> 403             raise SentinelAPIError("API response not valid. JSON decoding failed.", response)
    404 
    405         products = json_feed.get("entry", [])

SentinelAPIError: HTTP status 200 OK: API response not valid. JSON decoding failed.

谢谢。

【问题讨论】:

  • 简单的说它得到的字典没有opensearch:totalResults的key

标签: python gis satellite sentinel2 sentinelsat


【解决方案1】:

您的.geojson 文件似乎无法解码。 首先检查已创建文件的编码 - 语言。如果这没有帮助,

检查您的 .geojson 是否类似于以下格式:

{ "type": "FeatureCollection", “特征”: [ { “类型”:“特征”, “特性”: {}, “几何学”: { “类型”:“多边形”, “坐标”:[ [ [ 23.642578125, 37.93553306183642 ], [ 23.8018798828125, 37.93553306183642 ], [ 23.8018798828125, 38.026458711461245 ], [ 23.642578125, 38.026458711461245 ], [ 23.642578125, 37.93553306183642 ] ] ] } } ] }

您可以在this页面中快速生成.geojson文件。

【讨论】:

  • 感谢您的回复。原来我的问题是我没有使用为 API 创建的正确变量。我写了self.cloud_cover,本来应该是cloudcoverpercentage
【解决方案2】:

原来我的问题是我没有使用为 API 创建的正确变量。我写了self.cloud_cover,本来应该是self.cloudcoverpercentage。我在文档中跳过了。

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 2021-10-21
    • 1970-01-01
    • 2023-03-29
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    相关资源
    最近更新 更多