diff --git a/ravenpy/models/importers.py b/ravenpy/models/importers.py index 9c60e609..64933764 100644 --- a/ravenpy/models/importers.py +++ b/ravenpy/models/importers.py @@ -775,13 +775,13 @@ def _check_gridcell_in_proximity_of_shape( class NcDataImporter: def __init__(self, fns): - self.fns = map(Path, fns) + self.fns = fns self.attrs = {} self._extract_nc_attrs(self.fns) def _extract_nc_attrs(self, fns): for fn in fns: - if ".nc" in fn.suffix: + if Path(fn).suffix.startswith(".nc"): with xr.open_dataset(fn) as ds: # Check if any alternate variable name is in the file. for var, alt_names in rv.alternate_nc_names.items(): diff --git a/tests/test_emulators.py b/tests/test_emulators.py index a2376b32..eddea891 100644 --- a/tests/test_emulators.py +++ b/tests/test_emulators.py @@ -2,12 +2,12 @@ import os import tempfile import zipfile -from dataclasses import replace from pathlib import Path import numpy as np import pytest import xarray as xr +from dataclasses import replace from ravenpy.models import ( GR4JCN, @@ -44,6 +44,9 @@ "raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc" ) +# Link to THREDDS Data Server netCDF testdata +TDS = "https://pavics.ouranos.ca/twitcher/ows/proxy/thredds/dodsC/birdhouse/testdata/raven" + @pytest.fixture def input2d(tmpdir): @@ -647,6 +650,24 @@ def test_parallel_basins(self, input2d): z = zipfile.ZipFile(model.outputs["rv_config"]) assert len(z.filelist) == 10 + @pytest.mark.online + def test_dap(self): + """Test Raven with DAP link instead of local netCDF file.""" + model = GR4JCN() + config = dict( + start_date=dt.datetime(2000, 1, 1), + end_date=dt.datetime(2002, 1, 1), + run_name="test", + name="Salmon", + hrus=(GR4JCN.LandHRU(**salmon_land_hru_1),), + params=model.params(0.529, -3.396, 407.29, 1.072, 16.9, 0.947), + ) + + ts = ( + f"{TDS}/raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc" + ) + model(ts, **config) + class TestGR4JCN_OST: def test_simple(self):