coveralls: ## Pull Request Test Coverage Report for [Build 1069](https://coveralls.io/builds/25607282)

* **6** of **6**   **(100.0%)**  changed or added relevant lines in **4** files are covered.
* No unchanged relevant lines lost coverage.
* Overall coverage remained the same at **92.521%**

---



|  Totals | [![Coverage Status](https://coveralls.io/builds/25607282/badge)](https://coveralls.io/builds/25607282) |
| :-- | --: |
| Change from base [Build 1058](https://coveralls.io/builds/25372759): |  0.0% |
| Covered Lines: | 1336 |
| Relevant Lines: | 1444 |

---
##### 💛  - [Coveralls](https://coveralls.io)

tlogan2000: FYI - PCC has indivudual tmin and tmax thresholds ...
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index ac3a75cd..4be835ef 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -2,7 +2,7 @@
 * Python version:
 * Operating System:
 
-### Description 
+### Description
 <!--Describe what you were trying to get done.
 Tell us what happened, what went wrong, and what you expected to happen.-->
 
diff --git a/docs/index.rst b/docs/index.rst
index 9ce43858..45822ea0 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -22,4 +22,3 @@ Indices and tables
 * :ref:`genindex`
 * :ref:`modindex`
 * :ref:`search`
-
diff --git a/docs/itable.py b/docs/itable.py
index a8331230..b664f67e 100644
--- a/docs/itable.py
+++ b/docs/itable.py
@@ -19,13 +19,17 @@ def _get_indicators(modules):
 def _indicator_table():
     """Return a sequence of dicts storing metadata about all available indices."""
     from xclim import atmos
-    import inspect2
+    import inspect
 
     inds = _get_indicators([atmos])
     table = []
     for ind in inds:
         # Apply default values
-        args = {name: p.default for (name, p) in ind._sig.parameters.items() if p.default != inspect2._empty}
+        args = {
+            name: p.default
+            for (name, p) in ind._sig.parameters.items()
+            if p.default != inspect._empty
+        }
         table.append(ind.json(args))
     return table
 
diff --git a/docs/itable.rst b/docs/itable.rst
index 632d104a..6f0270dc 100644
--- a/docs/itable.rst
+++ b/docs/itable.rst
@@ -33,6 +33,3 @@ Table of indicators
       background-color: #dddddd;
     }
    </style>
-
-
-
diff --git a/docs/rstjinja.py b/docs/rstjinja.py
index 1b7725b1..521a6009 100644
--- a/docs/rstjinja.py
+++ b/docs/rstjinja.py
@@ -3,14 +3,12 @@ def rstjinja(app, docname, source):
     Render our pages as a jinja template for fancy templating goodness.
     """
     # Make sure we're outputting HTML
-    if app.builder.format != 'html':
+    if app.builder.format != "html":
         return
     src = source[0]
-    rendered = app.builder.templates.render_string(
-        src, app.config.html_context
-    )
+    rendered = app.builder.templates.render_string(src, app.config.html_context)
     source[0] = rendered
-    
+
 
 def setup(app):
     app.connect("source-read", rstjinja)
diff --git a/setup.cfg b/setup.cfg
index 754e5414..a5a9975c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -41,6 +41,7 @@ ignore =
 	F401
 	F403
 	W503
+    W504
 
 [aliases]
 test = pytest
diff --git a/xclim/atmos/__init__.py b/xclim/atmos/__init__.py
index 583a091f..6edcff11 100644
--- a/xclim/atmos/__init__.py
+++ b/xclim/atmos/__init__.py
@@ -10,5 +10,5 @@ The concept followed here is to define Indicator subclasses for each input varia
 for each indicator.
 
 """
-from ._temperature import *
 from ._precip import *
+from ._temperature import *
diff --git a/xclim/atmos/_temperature.py b/xclim/atmos/_temperature.py
index d13e8894..539c6293 100644
--- a/xclim/atmos/_temperature.py
+++ b/xclim/atmos/_temperature.py
@@ -306,7 +306,7 @@ daily_freezethaw_cycles = TasminTasmax(
     standard_name="daily_freezethaw_cycles",
     long_name="daily freezethaw cycles",
     description="{freq} number of days with a diurnal freeze-thaw cycle "
-    ": Tmax > 0℃ and Tmin < 0℃.",
+    ": Tmax > {thresh_tasmax} and Tmin <= {thresh_tasmin}.",
     cell_methods="",
     compute=indices.daily_freezethaw_cycles,
 )
diff --git a/xclim/indices/__init__.py b/xclim/indices/__init__.py
index 7905c777..96463f9f 100644
--- a/xclim/indices/__init__.py
+++ b/xclim/indices/__init__.py
@@ -1,5 +1,4 @@
 # -*- coding: utf-8 -*-
-
 """
 Indices library
 ===============
@@ -68,9 +67,9 @@ Indice descriptions
 .. _`NumPy`: https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard
 """
 
+from ._multivariate import *
 from ._simple import *
 from ._threshold import *
-from ._multivariate import *
 
 # TODO: Define a unit conversion system for temperature [K, C, F] and precipitation [mm h-1, Kg m-2 s-1] metrics
 # TODO: Move utility functions to another file.
diff --git a/xclim/indices/_multivariate.py b/xclim/indices/_multivariate.py
index ef34fe6c..969f59eb 100644
--- a/xclim/indices/_multivariate.py
+++ b/xclim/indices/_multivariate.py
@@ -1,4 +1,5 @@
 import logging
+import warnings
 
 import numpy as np
 import xarray as xr
@@ -153,11 +154,23 @@ def cold_and_dry_days(tas, tgin25, pr, wet25, freq="YS"):
     # return c.resample(time=freq).sum(dim='time')
 
 
-@declare_units("days", tasmax="[temperature]", tasmin="[temperature]")
-def daily_freezethaw_cycles(tasmax, tasmin, freq="YS"):
+@declare_units(
+    "days",
+    tasmax="[temperature]",
+    tasmin="[temperature]",
+    thresh_tasmax="[temperature]",
+    thresh_tasmin="[temperature]",
+)
+def daily_freezethaw_cycles(
+    tasmax,
+    tasmin,
+    thresh_tasmax="UNSET 0 degC",
+    thresh_tasmin="UNSET 0 degC",
+    freq="YS",
+):
     r"""Number of days with a diurnal freeze-thaw cycle
 
-    The number of days where Tmax > 0℃ and Tmin < 0℃.
+    The number of days where Tmax > thresh_tasmax and Tmin <= thresh_tasmin.
 
     Parameters
     ----------
@@ -165,6 +178,10 @@ def daily_freezethaw_cycles(tasmax, tasmin, freq="YS"):
       Maximum daily temperature [℃] or [K]
     tasmin : xarray.DataArray
       Minimum daily temperature values [℃] or [K]
+    thresh_tasmax : str
+      The temperature threshold needed to trigger a thaw event [℃] or [K]. Default : '0 degC'
+    thresh_tasmin : str
+      The temperature threshold needed to trigger a freeze event [℃] or [K]. Default : '0 degC'
     freq : str
       Resampling frequency
 
@@ -185,9 +202,18 @@ def daily_freezethaw_cycles(tasmax, tasmin, freq="YS"):
 
     where :math:`[P]` is 1 if :math:`P` is true, and 0 if false.
     """
-    frz = utils.convert_units_to("0 degC", tasmax)
-    ft = (tasmin < frz) * (tasmax > frz) * 1
+    if thresh_tasmax.startswith("UNSET ") or thresh_tasmin.startswith("UNSET"):
+        thresh_tasmax, thresh_tasmin = (
+            thresh_tasmax.replace("UNSET ", ""),
+            thresh_tasmin.replace("UNSET ", ""),
+        )
+
+    thaw_threshold = utils.convert_units_to(thresh_tasmax, tasmax)
+    freeze_threshold = utils.convert_units_to(thresh_tasmin, tasmin)
+
+    ft = (tasmin <= freeze_threshold) * (tasmax > thaw_threshold) * 1
     out = ft.resample(time=freq).sum(dim="time")
+
     return out
 
 
diff --git a/xclim/indices/_threshold.py b/xclim/indices/_threshold.py
index 373af4a3..e93a7e57 100644
--- a/xclim/indices/_threshold.py
+++ b/xclim/indices/_threshold.py
@@ -40,7 +40,7 @@ __all__ = [
     "tropical_nights",
 ]
 
-
+# TODO: Add docstring for window
 @declare_units("days", tas="[temperature]", thresh="[temperature]")
 def cold_spell_days(tas, thresh="-10 degC", window=5, freq="AS-JUL"):
     r"""Cold spell days
diff --git a/xclim/utils.py b/xclim/utils.py
index b7235bc7..7b67e380 100644
--- a/xclim/utils.py
+++ b/xclim/utils.py
@@ -253,6 +253,16 @@ def _check_units(val, dim):
     if dim is None or val is None:
         return
 
+    if str(val).startswith("UNSET "):
+        from warnings import warn
+
+        warnings.warn(
+            "This index calculation will soon require user-specified thresholds.",
+            FutureWarning,
+            stacklevel=4,
+        )
+        val = str(val).replace("UNSET ", "")
+
     # TODO remove backwards compatibility of int/float thresholds after v1.0 release
     if isinstance(val, (int, float)):
         return

Harmonize freeze-thaw cycle computation with PCC
PCC is using thresholds different than 0. 
diff --git a/tests/test_indices.py b/tests/test_indices.py
index d48b249a..cd5f7604 100644
--- a/tests/test_indices.py
+++ b/tests/test_indices.py
@@ -220,7 +220,27 @@ class TestDailyFreezeThawCycles:
 
         mn = tasmin_series(mn + K2C)
         mx = tasmax_series(mx + K2C)
-        out = xci.daily_freezethaw_cycles(mx, mn, "M")
+        out = xci.daily_freezethaw_cycles(mx, mn, freq="M")
+        np.testing.assert_array_equal(out[:2], [5, 1])
+        np.testing.assert_array_equal(out[2:], 0)
+
+    def test_zeroed_thresholds(self, tasmin_series, tasmax_series):
+        mn = np.zeros(365)
+        mx = np.zeros(365)
+
+        # 5 days in 1st month
+        mn[10:20] -= 1
+        mx[10:15] += 1
+
+        # 1 day in 2nd month
+        mn[40:44] += [1, 1, -1, -1]
+        mx[40:44] += [1, -1, 1, -1]
+
+        mn = tasmin_series(mn + K2C)
+        mx = tasmax_series(mx + K2C)
+        out = xci.daily_freezethaw_cycles(
+            mx, mn, thresh_tasmax="0 degC", thresh_tasmin="0 degC", freq="M"
+        )
         np.testing.assert_array_equal(out[:2], [5, 1])
         np.testing.assert_array_equal(out[2:], 0)
 
diff --git a/tests/test_temperature.py b/tests/test_temperature.py
index 49f2e668..7d64a219 100644
--- a/tests/test_temperature.py
+++ b/tests/test_temperature.py
@@ -706,13 +706,19 @@ class TestDailyFreezeThaw:
         # put a nan somewhere
         tasmin.values[180, 1, 0] = np.nan
 
-        frzthw = atmos.daily_freezethaw_cycles(tasmax, tasmin, freq="YS")
+        with pytest.warns(FutureWarning) as record:
+            frzthw = atmos.daily_freezethaw_cycles(tasmax, tasmin, freq="YS")
 
         min1 = tasmin.values[:, 0, 0]
         max1 = tasmax.values[:, 0, 0]
 
         frzthw1 = ((min1 < K2C) * (max1 > K2C) * 1.0).sum()
 
+        assert (
+            "This index calculation will soon require user-specified thresholds."
+            in [str(q.message) for q in record]
+        )
+
         assert np.allclose(frzthw1, frzthw.values[0, 0, 0])
 
         assert np.isnan(frzthw.values[0, 1, 0])
@@ -729,13 +735,25 @@ class TestDailyFreezeThaw:
         # put a nan somewhere
         tasmin.values[180, 1, 0] = np.nan
 
-        frzthw = atmos.daily_freezethaw_cycles(tasmax, tasmin, freq="YS")
+        with pytest.warns(None) as record:
+            frzthw = atmos.daily_freezethaw_cycles(
+                tasmax,
+                tasmin,
+                thresh_tasmax="0 degC",
+                thresh_tasmin="0 degC",
+                freq="YS",
+            )
 
         min1 = tasmin.values[:, 0, 0]
         max1 = tasmax.values[:, 0, 0]
 
         frzthw1 = ((min1 < 0) * (max1 > 0) * 1.0).sum()
 
+        assert (
+            "This index calculation will soon require user-specified thresholds."
+            not in [str(q.message) for q in record]
+        )
+
         assert np.allclose(frzthw1, frzthw.values[0, 0, 0])
 
         assert np.isnan(frzthw.values[0, 1, 0])

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov
apt-get update apt-get install -y gcc pandoc liblapack-dev libblas-dev libhdf5-serial-dev netcdf-bin libnetcdf-dev
3.6
requirements_dev.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
bleach==4.1.0
bokeh==2.3.3
boltons==23.1.1
Bottleneck==1.4.0
bump2version==1.0.1
bumpversion==0.6.0
certifi==2021.5.30
cffi==1.15.1
cfgv==3.3.1
cftime==1.6.0
charset-normalizer==2.0.12
click==8.0.4
cloudpickle==2.2.1
colorama==0.4.5
contextvars==2.4
coverage==6.2
cryptography==40.0.2
dask==2021.3.0
distlib==0.3.9
distributed==2021.3.0
docutils==0.18.1
filelock==3.4.1
flake8==5.0.4
fsspec==2022.1.0
HeapDict==1.0.1
identify==2.4.4
idna==3.10
immutables==0.19
importlib-metadata==4.2.0
importlib-resources==5.2.3
iniconfig==1.1.1
jeepney==0.7.1
Jinja2==3.0.3
keyring==23.4.1
locket==1.0.0
MarkupSafe==2.0.1
mccabe==0.7.0
msgpack==1.0.5
netCDF4==1.6.2
nodeenv==1.6.0
numpy==1.19.5
packaging==21.3
pandas==1.1.5
partd==1.2.0
Pillow==8.4.0
Pint==0.17
pkginfo==1.10.0
platformdirs==2.4.0
pluggy==1.0.0
pre-commit==2.17.0
psutil==7.0.0
py==1.11.0
pycodestyle==2.9.1
pycparser==2.21
pyflakes==2.5.0
Pygments==2.14.0
pyparsing==3.1.4
pyproj==3.0.1
pytest==7.0.1
pytest-cov==4.0.0
pytest-runner==5.3.2
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.1
readme-renderer==34.0
requests==2.27.1
requests-toolbelt==1.0.0
rfc3986==1.5.0
scipy==1.5.4
SecretStorage==3.3.3
six==1.17.0
sortedcontainers==2.4.0
tblib==1.7.0
toml==0.10.2
tomli==1.2.3
toolz==0.12.0
tornado==6.1
tox==3.28.0
tqdm==4.64.1
twine==3.8.0
typing_extensions==4.1.1
urllib3==1.26.20
virtualenv==20.16.2
watchdog==2.3.1
webencodings==0.5.1
xarray==0.16.2
-e git+https://github.com/Ouranosinc/xclim.git@1fd3ef228ee48f547167bc43afa89615bdafb30b#egg=xclim
zict==2.1.0
zipp==3.6.0

name: xclim
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - bleach==4.1.0
      - bokeh==2.3.3
      - boltons==23.1.1
      - bottleneck==1.4.0
      - bump2version==1.0.1
      - bumpversion==0.6.0
      - cffi==1.15.1
      - cfgv==3.3.1
      - cftime==1.6.0
      - charset-normalizer==2.0.12
      - click==8.0.4
      - cloudpickle==2.2.1
      - colorama==0.4.5
      - contextvars==2.4
      - coverage==6.2
      - cryptography==40.0.2
      - dask==2021.3.0
      - distlib==0.3.9
      - distributed==2021.3.0
      - docutils==0.18.1
      - filelock==3.4.1
      - flake8==5.0.4
      - fsspec==2022.1.0
      - heapdict==1.0.1
      - identify==2.4.4
      - idna==3.10
      - immutables==0.19
      - importlib-metadata==4.2.0
      - importlib-resources==5.2.3
      - iniconfig==1.1.1
      - jeepney==0.7.1
      - jinja2==3.0.3
      - keyring==23.4.1
      - locket==1.0.0
      - markupsafe==2.0.1
      - mccabe==0.7.0
      - msgpack==1.0.5
      - netcdf4==1.6.2
      - nodeenv==1.6.0
      - numpy==1.19.5
      - packaging==21.3
      - pandas==1.1.5
      - partd==1.2.0
      - pillow==8.4.0
      - pint==0.17
      - pkginfo==1.10.0
      - platformdirs==2.4.0
      - pluggy==1.0.0
      - pre-commit==2.17.0
      - psutil==7.0.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pycparser==2.21
      - pyflakes==2.5.0
      - pygments==2.14.0
      - pyparsing==3.1.4
      - pyproj==3.0.1
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - pytest-runner==5.3.2
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.1
      - readme-renderer==34.0
      - requests==2.27.1
      - requests-toolbelt==1.0.0
      - rfc3986==1.5.0
      - scipy==1.5.4
      - secretstorage==3.3.3
      - six==1.17.0
      - sortedcontainers==2.4.0
      - tblib==1.7.0
      - toml==0.10.2
      - tomli==1.2.3
      - toolz==0.12.0
      - tornado==6.1
      - tox==3.28.0
      - tqdm==4.64.1
      - twine==3.8.0
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - virtualenv==20.16.2
      - watchdog==2.3.1
      - webencodings==0.5.1
      - xarray==0.16.2
      - zict==2.1.0
      - zipp==3.6.0
prefix: /opt/conda/envs/xclim

tests/test_indices.py::TestDailyFreezeThawCycles::test_zeroed_thresholds
tests/test_indices.py::TestColdSpellDurationIndex::test_simple tests/test_indices.py::TestDaysOverPrecipThresh::test_simple tests/test_indices.py::TestTGXN10p::test_tg10p_simple tests/test_indices.py::TestTGXN10p::test_tx10p_simple tests/test_indices.py::TestTGXN10p::test_tn10p_simple tests/test_indices.py::TestTGXN10p::test_doy_interpolation tests/test_indices.py::TestTGXN90p::test_tg90p_simple tests/test_indices.py::TestTGXN90p::test_tx90p_simple tests/test_indices.py::TestTGXN90p::test_tn90p_simple tests/test_indices.py::TestWarmSpellDurationIndex::test_simple tests/test_temperature.py::TestCSDI::test_simple tests/test_temperature.py::TestCSDI::test_convert_units tests/test_temperature.py::TestCSDI::test_nan_presence tests/test_temperature.py::TestDTR::test_DTR_3d_data_with_nans tests/test_temperature.py::TestDTRVar::test_dtr_var_3d_data_with_nans tests/test_temperature.py::TestETR::test_dtr_var_3d_data_with_nans tests/test_temperature.py::TestTmean::test_Tmean_3d_data tests/test_temperature.py::TestTx::test_TX_3d_data tests/test_temperature.py::TestTn::test_TN_3d_data tests/test_temperature.py::TestFrostDays::test_3d_data_with_nans tests/test_temperature.py::TestIceDays::test_3d_data_with_nans tests/test_temperature.py::TestCoolingDegreeDays::test_3d_data_with_nans tests/test_temperature.py::TestCoolingDegreeDays::test_convert_units tests/test_temperature.py::TestHeatingDegreeDays::test_3d_data_with_nans tests/test_temperature.py::TestHeatingDegreeDays::test_convert_units tests/test_temperature.py::TestGrowingDegreeDays::test_3d_data_with_nans tests/test_temperature.py::TestDailyFreezeThaw::test_3d_data_with_nans tests/test_temperature.py::TestDailyFreezeThaw::test_convert_units tests/test_temperature.py::TestTnDaysBelow::test_3d_data_with_nans tests/test_temperature.py::TestTxDaysAbove::test_3d_data_with_nans tests/test_temperature.py::TestTropicalNights::test_3d_data_with_nans tests/test_temperature.py::TestTxTnDaysAbove::test_3d_data_with_nans tests/test_temperature.py::TestT90p::test_tg90p_simple tests/test_temperature.py::TestT90p::test_tn90p_simple tests/test_temperature.py::TestT90p::test_tx90p_simple tests/test_temperature.py::TestT10p::test_tg10p_simple tests/test_temperature.py::TestT10p::test_tn10p_simple tests/test_temperature.py::TestT10p::test_tx10p_simple
tests/test_indices.py::TestBaseFlowIndex::test_simple tests/test_indices.py::TestMaxNDayPrecipitationAmount::test_single_max tests/test_indices.py::TestMaxNDayPrecipitationAmount::test_sumlength_max tests/test_indices.py::TestMaxNDayPrecipitationAmount::test_multi_max tests/test_indices.py::TestMax1DayPrecipitationAmount::test_single_max tests/test_indices.py::TestMax1DayPrecipitationAmount::test_multi_max tests/test_indices.py::TestMax1DayPrecipitationAmount::test_uniform_max tests/test_indices.py::TestColdSpellDays::test_simple tests/test_indices.py::TestConsecutiveFrostDays::test_one_freeze_day tests/test_indices.py::TestConsecutiveFrostDays::test_no_freeze tests/test_indices.py::TestConsecutiveFrostDays::test_all_year_freeze tests/test_indices.py::TestCoolingDegreeDays::test_no_cdd tests/test_indices.py::TestCoolingDegreeDays::test_cdd tests/test_indices.py::TestDailyFreezeThawCycles::test_simple tests/test_indices.py::TestDailyPrIntensity::test_simple tests/test_indices.py::TestDailyPrIntensity::test_mm tests/test_indices.py::TestFreshetStart::test_simple tests/test_indices.py::TestFreshetStart::test_no_start tests/test_indices.py::TestGrowingDegreeDays::test_simple tests/test_indices.py::TestGrowingSeasonLength::test_simple tests/test_indices.py::TestHeatingDegreeDays::test_simple tests/test_indices.py::TestHeatWaveIndex::test_simple tests/test_indices.py::TestHeatWaveFrequency::test_1d tests/test_indices.py::TestHeatWaveMaxLength::test_1d tests/test_indices.py::TestTnDaysBelow::test_simple tests/test_indices.py::TestTxDaysAbove::test_simple tests/test_indices.py::TestLiquidPrecipitationRatio::test_simple tests/test_indices.py::TestMaximumConsecutiveDryDays::test_simple tests/test_indices.py::TestMaximumConsecutiveDryDays::test_run_start_at_0 tests/test_indices.py::TestMaximumConsecutiveTxDays::test_simple tests/test_indices.py::TestPrecipAccumulation::test_simple tests/test_indices.py::TestPrecipAccumulation::test_yearly tests/test_indices.py::TestRainOnFrozenGround::test_simple tests/test_indices.py::TestRainOnFrozenGround::test_small_rain tests/test_indices.py::TestRainOnFrozenGround::test_consecutive_rain tests/test_indices.py::TestTxMean::test_attrs tests/test_indices.py::TestTxMax::test_simple tests/test_indices.py::TestTgMaxTgMinIndices::test_static_daily_temperature_range tests/test_indices.py::TestTgMaxTgMinIndices::test_static_variable_daily_temperature_range tests/test_indices.py::TestTgMaxTgMinIndices::test_static_extreme_temperature_range tests/test_indices.py::TestTgMaxTgMinIndices::test_uniform_freeze_thaw_cycles tests/test_indices.py::TestTgMaxTgMinIndices::test_static_freeze_thaw_cycles tests/test_indices.py::TestWarmDayFrequency::test_1d tests/test_indices.py::TestWarmNightFrequency::test_1d tests/test_indices.py::TestTxTnDaysAbove::test_1d tests/test_indices.py::TestWinterRainRatio::test_simple tests/test_temperature.py::TestConsecutiveFrostDays::test_one_freeze_day tests/test_temperature.py::TestConsecutiveFrostDays::test_three_freeze_day tests/test_temperature.py::TestConsecutiveFrostDays::test_two_equal_freeze_day tests/test_temperature.py::TestConsecutiveFrostDays::test_two_events_freeze_day tests/test_temperature.py::TestConsecutiveFrostDays::test_convert_units_freeze_day tests/test_temperature.py::TestConsecutiveFrostDays::test_one_nan_day tests/test_temperature.py::TestColdSpellDays::test_simple tests/test_temperature.py::TestColdSpellDays::test_convert_units tests/test_temperature.py::TestColdSpellDays::test_nan_presence tests/test_temperature.py::TestHeatWaveFrequency::test_1d tests/test_temperature.py::TestHeatWaveMaxLength::test_1d tests/test_temperature.py::TestHeatWaveIndex::test_simple tests/test_temperature.py::TestHeatWaveIndex::test_convert_units tests/test_temperature.py::TestHeatWaveIndex::test_nan_presence tests/test_temperature.py::TestGrowingSeasonLength::test_single_year tests/test_temperature.py::TestGrowingSeasonLength::test_convert_units tests/test_temperature.py::TestGrowingSeasonLength::test_nan_presence tests/test_temperature.py::TestGrowingSeasonLength::test_multiyear tests/test_temperature.py::test_freshet_start
xclim/atmos/__init__.py docs/rstjinja.py xclim/indices/_threshold.py xclim/indices/__init__.py .github/ISSUE_TEMPLATE.md xclim/utils.py setup.cfg xclim/indices/_multivariate.py docs/itable.rst docs/itable.py docs/index.rst xclim/atmos/_temperature.py
xclim/atmos/__init__.py docs/rstjinja.py xclim/indices/_threshold.py xclim/indices/__init__.py .github/ISSUE_TEMPLATE.md xclim/utils.py setup.cfg xclim/indices/_multivariate.py docs/itable.rst docs/itable.py docs/index.rst xclim/atmos/_temperature.py