atviriduomenys / spinta

Spinta is a framework to describe, extract and publish data (a DEP Framework).
MIT License
11 stars 4 forks source link

Klaida su skirtingais bbox parametrais geometry summary endpointe #523

Closed sirex closed 11 months ago

sirex commented 11 months ago

https://test.data.gov.lt/datasets/1906/models/MeteorologineAikstele/koord/

Patraukus žemėlapį į šoną, dingsta pinai.

Čia spintos pusėje su šiuo modeliu, naudojant bbox atributą gaunama klaida, pvz.: https://get.data.gov.lt/datasets/gov/lhmt/klimatologija/MeteorologineAikstele/:summary/koord?bbox(0,0,180,180) image

Taip pat visur bbox neveikia panaudojus neigiamą koordinatę: https://get.data.gov.lt/datasets/gov/lhmt/klimatologija/MeteorologineAikstele/:summary/koord?bbox(-10,0,180,180) image

Originally posted by @adp-atea in https://github.com/atviriduomenys/katalogas/issues/339#issuecomment-1759149911

Serverio loguose randu:

[ERROR] Exception in ASGI application
Traceback (most recent call last):
  File "sqlalchemy/engine/base.py", line 1705, in _execute_context
    self.dialect.do_execute(
  File "sqlalchemy/engine/default.py", line 716, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.InternalError_: Operation on mixed SRID geometries
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "spinta/api.py", line 95, in homepage
    return await create_http_response(context, params, request)
  File "spinta/utils/response.py", line 139, in create_http_response
    return await commands.summary(
  File "spinta/commands/read.py", line 455, in summary
    return render(context, request, model, params, rows, action=action)
  File "spinta/renderer.py", line 23, in render
    return commands.render(
  File "spinta/formats/json/commands.py", line 25, in render
    return _render(
  File "spinta/formats/json/commands.py", line 52, in _render
    aiter(peek_and_stream(fmt(data))),
  File "spinta/utils/response.py", line 232, in peek_and_stream
    peek = list(itertools.islice(stream, 2))
  File "spinta/formats/json/components.py", line 19, in __call__
    for i, row in enumerate(data):
  File "spinta/backends/postgresql/commands/summary.py", line 441, in summary
    count_exec = connection.execute(f'SELECT COUNT(DISTINCT "{prop}") FROM "{model}" {bounding_box}')
  File "sqlalchemy/engine/base.py", line 1185, in execute
    return self._exec_driver_sql(
  File "sqlalchemy/engine/base.py", line 1484, in _exec_driver_sql
    ret = self._execute_context(
  File "sqlalchemy/engine/base.py", line 1748, in _execute_context
    self._handle_dbapi_exception(
  File "sqlalchemy/engine/base.py", line 1929, in _handle_dbapi_exception
    util.raise_(
  File "sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "sqlalchemy/engine/base.py", line 1705, in _execute_context
    self.dialect.do_execute(
  File "sqlalchemy/engine/default.py", line 716, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.InternalError: (psycopg2.errors.InternalError_) Operation on mixed SRID geometries
SQL:
   SELECT COUNT(DISTINCT "koord")
   FROM "datasets/gov/lhmt/klimatologija/MeteorologineAikstele"
   WHERE ST_Intersects("koord", ST_MakeEnvelope(0, 0, 180, 180, 4326))
sirex commented 11 months ago

Dubliuoja https://github.com/atviriduomenys/spinta/issues/520