-
Notifications
You must be signed in to change notification settings - Fork 12
Closed
Description
I’m encountering an Internal Server Error when querying the Esri 10m Land Use dataset via the API.
The issue does not occur with the collection "esa-cci-lc", which suggests that the problem might be specific to the "io-lulc-annual-v02" collection.
The issue can be reproduced with the following code snippet:
import pystac_client
import planetary_computer
collection = "io-lulc-annual-v02" # it works with "esa-cci-lc"
date_range = "2017/2024"
geometry = {
"type": "Polygon",
"coordinates": (
(
(101.73491035020805, 4.696557725917117),
(101.73491035020805, 4.694507651101134),
(101.737283130389, 4.6945076511034),
(101.73728313038987, 4.696557725917117),
(101.73491035020805, 4.696557725917117),
),
),
}
catalog = pystac_client.Client.open(
"https://planetarycomputer.microsoft.com/api/stac/v1/",
modifier=planetary_computer.sign_inplace,
)
search = catalog.search(
collections=[catalog.get_collection(collection)],
intersects=geometry,
datetime=date_range,
)
list(search.items())
Exception Traceback:
---------------------------------------------------------------------------
APIError Traceback (most recent call last)
Cell In[116], [line 28](vscode-notebook-cell:?execution_count=116&line=28)
[19](vscode-notebook-cell:?execution_count=116&line=19) catalog = pystac_client.Client.open(
[20](vscode-notebook-cell:?execution_count=116&line=20) "https://planetarycomputer.microsoft.com/api/stac/v1/",
[21](vscode-notebook-cell:?execution_count=116&line=21) modifier=planetary_computer.sign_inplace,
[22](vscode-notebook-cell:?execution_count=116&line=22) )
[23](vscode-notebook-cell:?execution_count=116&line=23) search = catalog.search(
[24](vscode-notebook-cell:?execution_count=116&line=24) collections=[catalog.get_collection(collection)],
[25](vscode-notebook-cell:?execution_count=116&line=25) intersects=geometry,
[26](vscode-notebook-cell:?execution_count=116&line=26) datetime=date_range,
[27](vscode-notebook-cell:?execution_count=116&line=27) )
---> [28](vscode-notebook-cell:?execution_count=116&line=28) list(search.items())
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:694, in ItemSearch.items(self)
[687](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:687) def items(self) -> Iterator[Item]:
[688](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:688) """Iterator that yields :class:`pystac.Item` instances for each item matching
[689](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:689) the given search parameters.
[690](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:690)
[691](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:691) Yields:
[692](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:692) Item : each Item matching the search criteria
[693](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:693) """
--> [694](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:694) for item in self.items_as_dicts():
[695](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:695) # already signed in items_as_dicts
[696](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:696) yield Item.from_dict(item, root=self.client, preserve_dict=False)
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:705, in ItemSearch.items_as_dicts(self)
[698](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:698) def items_as_dicts(self) -> Iterator[Dict[str, Any]]:
[699](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:699) """Iterator that yields :class:`dict` instances for each item matching
[700](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:700) the given search parameters.
[701](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:701)
[702](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:702) Yields:
[703](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:703) Item : each Item matching the search criteria
[704](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:704) """
--> [705](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:705) for page in self.pages_as_dicts():
[706](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:706) for item in page.get("features", []):
[707](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:707) # already signed in pages_as_dicts
[708](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:708) yield item
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:737, in ItemSearch.pages_as_dicts(self)
[735](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:735) if isinstance(self._stac_io, StacApiIO):
[736](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:736) num_items = 0
--> [737](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:737) for page in self._stac_io.get_pages(
[738](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:738) self.url, self.method, self.get_parameters()
[739](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:739) ):
[740](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:740) call_modifier(self.modifier, page)
[741](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/item_search.py:741) features = page.get("features", [])
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:308, in StacApiIO.get_pages(self, url, method, parameters)
[296](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:296) def get_pages(
[297](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:297) self,
[298](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:298) url: str,
[299](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:299) method: Optional[str] = None,
[300](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:300) parameters: Optional[Dict[str, Any]] = None,
[301](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:301) ) -> Iterator[Dict[str, Any]]:
[302](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:302) """Iterator that yields dictionaries for each page at a STAC paging
[303](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:303) endpoint, e.g., /collections, /search
[304](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:304)
[305](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:305) Return:
[306](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:306) Dict[str, Any] : JSON content from a single page
[307](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:307) """
--> [308](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:308) page = self.read_json(url, method=method, parameters=parameters)
[309](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:309) if not (page.get("features") or page.get("collections")):
[310](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:310) return None
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:205, in StacIO.read_json(self, source, *args, **kwargs)
[188](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:188) def read_json(self, source: HREF, *args: Any, **kwargs: Any) -> dict[str, Any]:
[189](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:189) """Read a dict from the given source.
[190](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:190)
[191](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:191) See :func:`StacIO.read_text <pystac.StacIO.read_text>` for usage of
(...)
[203](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:203) given source.
[204](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:204) """
--> [205](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:205) txt = self.read_text(source, *args, **kwargs)
[206](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac/stac_io.py:206) return self.json_loads(txt)
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:171, in StacApiIO.read_text(self, source, *args, **kwargs)
[169](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:169) href = str(source)
[170](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:170) if _is_url(href):
--> [171](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:171) return self.request(href, *args, **kwargs)
[172](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:172) else:
[173](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:173) with open(href) as f:
File ~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:223, in StacApiIO.request(self, href, method, headers, parameters)
[221](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:221) raise APIError(str(err))
[222](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:222) if resp.status_code != 200:
--> [223](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:223) raise APIError.from_response(resp)
[224](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:224) try:
[225](https://file+.vscode-resource.vscode-cdn.net/Users/thimmzwiener/farmon/farmon-webapp/regenrate_azure_function_app/src/reports/data/~/miniforge3/envs/farmon/lib/python3.10/site-packages/pystac_client/stac_api_io.py:225) return resp.content.decode("utf-8")
APIError: Internal Server Error
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels