DFO-Ocean-Navigator / Ocean-Data-Map-Project

The Ocean Navigator is an online tool that is used to help visualise scientific research data. a users guide is available at https://dfo-ocean-navigator.github.io/Ocean-Navigator-Manual/ and the tool is live at
http://navigator.oceansdata.ca
GNU General Public License v3.0
49 stars 20 forks source link

Cannot compare GIOPS and RIOPS data in area window #942

Closed JustinElms closed 2 years ago

JustinElms commented 2 years ago

Describe the bug Users cannot compare GIOPS 10 day forecast lat lon data with RIOPS forecast 3d polar stereographic data from the area window. When selecting an area (area must intersect data in both models) the query fails regardless of variables and area selected. Traceback below:

Traceback (most recent call last):
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/sentry_sdk/integrations/flask.py", line 90, in sentry_patched_wsgi_app
    environ, start_response
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/sentry_sdk/integrations/wsgi.py", line 131, in __call__
    reraise(*_capture_exception(hub))
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/sentry_sdk/_compat.py", line 54, in reraise
    raise value
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/sentry_sdk/integrations/wsgi.py", line 127, in __call__
    _sentry_start_response, start_response, transaction
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/sentry_sdk/integrations/flask.py", line 89, in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1997, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
    response = self.handle_exception(e)
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/ubuntu/tools/miniconda/3/amd64/envs/navigator/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/ubuntu/Ocean-Data-Map-Project/routes/api_v1_0.py", line 575, in plot_v1_0
    img, mime, filename = plotter.run()
  File "/home/ubuntu/Ocean-Data-Map-Project/plotting/plotter.py", line 57, in run
    _ = self.prepare_plot()
  File "/home/ubuntu/Ocean-Data-Map-Project/plotting/plotter.py", line 50, in prepare_plot
    self.load_data()
  File "/home/ubuntu/Ocean-Data-Map-Project/plotting/map.py", line 375, in load_data
    self.neighbours,
  File "/home/ubuntu/Ocean-Data-Map-Project/data/model.py", line 126, in get_area
    latitude, longitude, depth, variable, time, return_depth=return_depth
  File "/home/ubuntu/Ocean-Data-Map-Project/data/mercator.py", line 201, in get_point
    starttime_idx = self.nc_data.timestamp_to_time_index(starttime)
  File "/home/ubuntu/Ocean-Data-Map-Project/data/netcdf_data.py", line 180, in timestamp_to_time_index
    return result if result.shape[0] > 1 else result[0]
IndexError: index 0 is out of bounds for axis 0 with size 0

To Reproduce Select any area that intersects data from both RIOPS and GIOPS models then click plot if the area window isn't automatically opened. Click compare datasets and select RIOPS Forecast 3D Polar Stereographic from the Right Map Dataset selector.

Expected behavior After completing the steps above a plot of the variable difference should be displayed.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

JustinElms commented 2 years ago

Seems like this issue has been resolved, perhaps due to the UI refactor or packages updates.