Skip to content

Errors with using Lat or/and Long values in "Time and Position" window #310

@elpiankova

Description

@elpiankova

I found few cases when Latitude and Longitude filters in "Time and Position" window works incorrect. Maybe there are more cases.

  • When I input/choose 0 to one or more fields for Latitude and Longitude ranges in "Time and Position" window, and It seems like button "Search" doesn't work at all: I don't see searching spinner in Search result window and I don't see any request at server side. The interface looks like:
    Screenshot from 2019-06-14 17-15-19

  • Empty result for Potential, no error in server logs:
    [14/Jun/2019 14:09:32] "GET /en/api/data/?space_project=1&time_begin=1314662400&time_end=1351728000&polygon=MULTIPOLYGON(((-180+-1,180+-1,180+10,-180+10,-180+-1))) HTTP/1.0" 200 52

  • When I choose interval from -90 to +90 from -180 to +1 for Long (the same with from -1 to 180 long), empty result for Potential and next error at server:

Internal Server Error: /en/api/data/
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
psycopg2.InternalError: Antipodal (180 degrees long) edge detected!


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py", line 83, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 483, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 443, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 480, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py", line 42, in list
    page = self.paginate_queryset(queryset)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/generics.py", line 172, in paginate_queryset
    return self.paginator.paginate_queryset(queryset, self.request, view=self)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/pagination.py", line 340, in paginate_queryset
    self.count = _get_count(queryset)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/pagination.py", line 53, in _get_count
    return queryset.count()
  File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 369, in count
    return self.query.get_count(using=self.db)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 476, in get_count
    number = obj.get_aggregation(using, ['__count'])['__count']
  File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 457, in get_aggregation
    result = compiler.execute_sql(SINGLE)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
django.db.utils.InternalError: Antipodal (180 degrees long) edge detected!

[14/Jun/2019 14:00:22] "GET /en/api/data/?space_project=1&time_begin=1314662400&time_end=1351728000&polygon=MULTIPOLYGON(((-180+-90,1+-90,1+90,-180+90,-180+-90))) HTTP/1.0" 500 14706
  • When I choose interval from 10 to -1 from -180 to -1 for Long (the same with from -1 to 180 long), empty result for Potential and next error at server:
[14/Jun/2019 13:52:57] "GET /en/api/data/?space_project=1&time_begin=1314662400&time_end=1351728000&polygon=MULTIPOLYGON(((-180+-1,1+-1,1+10,-180+10,-180+-1))) HTTP/1.0" 500 14238
Internal Server Error: /en/api/data/
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py", line 83, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 483, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 443, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 480, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py", line 45, in list
    return self.get_paginated_response(serializer.data)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py", line 729, in data
    ret = super(ListSerializer, self).data
  File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py", line 262, in data
    self._data = self.to_representation(self.instance)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py", line 647, in to_representation
    self.child.to_representation(item) for item in iterable
  File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py", line 647, in <listcomp>
    self.child.to_representation(item) for item in iterable
  File "/usr/local/lib/python3.6/site-packages/rest_framework/serializers.py", line 500, in to_representation
    ret[field.field_name] = field.to_representation(attribute)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/fields.py", line 1747, in to_representation
    return method(value)
  File "/usr/src/app/promis/backend_api/serializer.py", line 328, in get_selection
    res = sorted(x for x in gen_selection())
  File "/usr/src/app/promis/backend_api/serializer.py", line 328, in <genexpr>
    res = sorted(x for x in gen_selection())
  File "/usr/src/app/promis/backend_api/serializer.py", line 303, in gen_selection
    sect_start, sect_end = sect[0][2], sect[-1][2]
  File "/usr/local/lib/python3.6/site-packages/django/contrib/gis/geos/mutable_list.py", line 80, in __getitem__
    index = self._checkindex(index)
  File "/usr/local/lib/python3.6/site-packages/django/contrib/gis/geos/mutable_list.py", line 248, in _checkindex
    raise IndexError('invalid index: %s' % str(index))
IndexError: invalid index: 0
[14/Jun/2019 13:53:02] "GET /en/api/data/?space_project=1&time_begin=1314662400&time_end=1351728000&polygon=MULTIPOLYGON(((-180+-1,1+-1,1+10,-180+10,-180+-1))) HTTP/1.0" 500 14238

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions