Ошибка Sineinelsat Python API в запросе пересекаются
Я столкнулся с проблемой при поиске изображения, которое содержит конкретные координаты. Я не могу заставить функцию пересечения работать с API.
Я получаю это сообщение об ошибке:
sentinelsat.sentinel.SentinelAPIError: HTTP status 200 OK: Invalid query string. Check the parameters and format.
так как я могу получить запрос для работы с пересечением??
Используемый код:
from sentinelsat import SentinelAPI, read_geojson, geojson_to_wkt
from datetime import date
from shapely.geometry import box, Polygon
api = SentinelAPI('myusername', 'mypassword','https://scihub.copernicus.eu/dhus')
footprint='footprint:"intersects(POLYGON((0 0,1 1,0 1,0 0)))"'
products = api.query(footprint,
date=('20180901', date(2018, 9, 3)),
area_relation='Intersects',
platformname='Sentinel-2',
cloudcoverpercentage=(0, 10))
print(products)
#this works
#api.download_all(products)
Есть идеи, как это решить?
2 ответа
Замещать
footprint='footprint:"intersects(POLYGON((0 0,1 1,0 1,0 0)))"'
с
footprint='POLYGON((0 0,1 1,0 1,0 0))'
Я не знаю, приведены ли эти цифры только для справки, но для этого полигона нет результатов. Чтобы увидеть результаты для другой области, попробуйте
footprint='POLYGON((0 0,1 1,0 1,0 0))'
products = api.query(footprint,
date=('20180901', date(2018, 9, 5)),
area_relation='Intersects',
platformname='Sentinel-2',
cloudcoverpercentage=(0, 10))
В соответствии с официальными документами стража, вы можете выбирать между тремя различными типами area_relation внутри вашего запроса. Я думаю, что вы должны оставить только след, содержащий полигон:
Intersects: true if the AOI and the footprint intersect (default) Contains: true if the AOI is inside the footprint IsWithin: true if the footprint is inside the AOI
Если это что-то похожее на другие реализации OpenGIS, я думаю, вам нужно заключить в кавычки сечение многоугольника, то есть пересечений ('POLYGON((0 0,1 1,0 1,0 0))')