From 45da2964a53b66ac7c4db9c2a2122e08ad3962be Mon Sep 17 00:00:00 2001 From: Kasra Farmer Date: Wed, 4 Jun 2025 11:32:37 -0600 Subject: [PATCH 1/4] Adding Generic TIF dataset instructions --- extract-gis.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/extract-gis.sh b/extract-gis.sh index 3f73efd..82ed313 100755 --- a/extract-gis.sh +++ b/extract-gis.sh @@ -76,7 +76,7 @@ Script options: must be comma delimited float numbers between 0 and 1; optional [defaults to every 5th quantile] -p, --prefix=STR Prefix prepended to the output files - -b, --parsable Parsable SLURM message mainly used + -b, --parsable Parsable scheduler message mainly used for chained job submissions -c, --cache=DIR Path of the cache directory; optional -E, --email=STR E-mail when job starts, ends, and fails; optional @@ -616,6 +616,10 @@ case "${geotiff,,}" in call_processing_func "$recipePath/nhm/nhm.sh" ;; + "generic-tif" | "generic_tif" | "tif" | "tiff" ) + call_processing_func "$recipePath/generic_tif/generic_tif.sh" + ;; + # dataset not included above *) echo "$(basename $0): missing/unknown dataset"; From eb05fee29e84d4b71e4ef2eb028cd881e741c846 Mon Sep 17 00:00:00 2001 From: Kasra Farmer Date: Wed, 4 Jun 2025 11:35:35 -0600 Subject: [PATCH 2/4] Adding Genertic TIF processing Workflow --- .../recipes/generic_tif/generic_tif.sh | 350 ++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100755 var/repos/builtin/recipes/generic_tif/generic_tif.sh diff --git a/var/repos/builtin/recipes/generic_tif/generic_tif.sh b/var/repos/builtin/recipes/generic_tif/generic_tif.sh new file mode 100755 index 0000000..7043496 --- /dev/null +++ b/var/repos/builtin/recipes/generic_tif/generic_tif.sh @@ -0,0 +1,350 @@ +#!/bin/bash +# GIS Data Processing Workflow +# Copyright (C) 2023-2025, University of Calgary +# Copyright (C) 2022, University of Saskatchewan +# +# This file is part of GIS Data Processing Workflow +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# ========================= +# Credits and contributions +# ========================= +# 1. Parts of the code are taken from https://www.shellscript.sh/tips/getopt/index.html +# 2. General ideas of GeoTIFF subsetting are taken from https://github.com/CH-Earth/CWARHM +# developed mainly by Wouter Knoben (hence the header copyright credit). See the preprint +# at: https://www.essoar.org/doi/10.1002/essoar.10509195.1 + + +# ================ +# General comments +# ================ +# * All variables are camelCased for distinguishing from function names; +# * function names are all in lower_case with words seperated by underscore for legibility; +# * shell style is based on Google Open Source Projects' +# Style Guide: https://google.github.io/styleguide/shellguide.html + + +# =============== +# Usage Functions +# =============== +short_usage() { + echo "usage: $(basename $0) -cio DIR -v var1[,var2[...]] [-r INT] [-se DATE] [-ln REAL,REAL] [-f PATH] [-F STR] [-t BOOL] [-a stat1[,stat2,[...]] [-q q1[,q2[...]]]] [-p STR] " +} + + +# argument parsing using getopt - WORKS ONLY ON LINUX BY DEFAULT +parsedArguments=$( \ + getopt --alternative \ + --name "generic-tif" \ + -o i:o:v:r:s:e:l:n:f:F:t:a:u:q:p:c:L: \ + --long dataset-dir:,output-dir:,variable:, \ + --long crs:,start-date:,end-date:,lat-lims:, \ + --long lon-lims:,shape-file:,fid:, \ + --long print-geotiff:,stat:,include-na:, \ + --long quantile:,prefix:,cache:, \ + --long lib-path: -- "$@" \ +) +validArguments=$? +if [ "$validArguments" != "0" ]; then + short_usage; + exit 1; +fi + +# check if no options were passed +if [ $# -eq 0 ]; then + echo "$(basename $0): ERROR! arguments missing"; + exit 1; +fi + +# check long and short options passed +eval set -- "$parsedArguments" +while : +do + case "$1" in + -i | --dataset-dir) geotiffDir="$2" ; shift 2 ;; # required + -o | --output-dir) outputDir="$2" ; shift 2 ;; # required + -v | --variable) variables="$2" ; shift 2 ;; # required + -r | --crs) crs="$2" ; shift 2 ;; # required + -s | --start-date) startDate="$2" ; shift 2 ;; # redundant - added for compatibility + -e | --end-date) endDate="$2" ; shift 2 ;; # redundant - added for compatibility + -l | --lat-lims) latLims="$2" ; shift 2 ;; # required - could be redundant + -n | --lon-lims) lonLims="$2" ; shift 2 ;; # required - could be redundant + -f | --shape-file) shapefile="$2" ; shift 2 ;; # required - could be redundant + -F | --fid) fid="$2" ; shift 2 ;; # optional + -t | --print-geotiff) printGeotiff="$2" ; shift 2 ;; # required + -a | --stat) stats="$2" ; shift 2 ;; # optional + -u | --include-na) includeNA="$2" ; shift 2 ;; # required + -q | --quantile) quantiles="$2" ; shift 2 ;; # optional + -p | --prefix) prefix="$2" ; shift 2 ;; # optional + -c | --cache) cache="$2" ; shift 2 ;; # required + -L | --lib-path) renvCache="$2" ; shift 2 ;; # required + + # -- means the end of the arguments; drop this, and break out of the while loop + --) shift; break ;; + + # in case of invalid option + *) + echo "$(basename $0): ERROR! invalid option '$1'"; + short_usage; exit 1 ;; + esac +done + +# check if $ensemble is provided +if [[ -n "$startDate" ]] || [[ -n "$endDate" ]]; then + echo "$(basename $0): ERROR! redundant argument (time extents) provided"; + exit 1; +fi + +# check the prefix if not set +if [[ -z $prefix ]]; then + prefix="generic_" +fi + +# parse comma-delimited variables +IFS=',' read -ra variables <<< "${variables}" + + +# ===================== +# Necessary Assumptions +# ===================== +# TZ to be set to UTC to avoid invalid dates due to Daylight Saving +alias date='TZ=UTC date' +# expand aliases for the one stated above +shopt -s expand_aliases + +# necessary hard-coded paths +exactextractrCache="${renvCache}/exact-extract-env" # exactextractr renv cache path +renvPackagePath="${renvCache}/renv_1.1.1.tar.gz" # renv_1.1.1 source path +gistoolPath="$(dirname $0)/../../../../../" # gistool's path + + +# ========================== +# Necessary Global Variables +# ========================== + + +# ================= +# Useful One-liners +# ================= +# sorting a comma-delimited string of real numbers +sort_comma_delimited () { IFS=',' read -ra arr <<< "$*"; echo ${arr[*]} | tr " " "\n" | sort -n | tr "\n" " "; } + +# log date format +logDate () { echo "($(date +"%Y-%m-%d %H:%M:%S")) "; } + + +# ================ +# Useful functions +# ================ + +####################################### +# Extract ESRI Shapefile extents +# +# Globals: +# lonLims: longitude limits in +# lat/lon system +# latLims: latitude limits in +# lat/lon system +# +# Arguments: +# shapefilePath: path to the ESRI +# Shapefile +# destProj4: destination projection, +# (optional) +# +# Outputs: +# one mosaiced (merged) GeoTIFF under +# the $destDir +####################################### +extract_shapefile_extents () { + # local variables + local shapefileExtents # ogrinfo output containing ESIR Shapefile extents + local leftBottomLims # left bottom coordinates (min lon, min lat) + local rightTopLims # top right coordinates (max lon, max lat) + + # global variables + # - $sourceProj4 + + # reading arguments + local shapefilePath=$1 + local destProj4=$2 + + # extract PROJ.4 string for $shapefilePath + # sourceProj4=$(ogrinfo -al -so "$shapefilePath" | grep -e "PROJ.4" 2>/dev/null) + sourceProj4=$(ogrinfo -al -so "$shapefilePath" | grep "PROJ\.4" | awk -F': ' '{print $2}') + + # if $sourceProj4 is missing, assign EPSG:4326 as default value and warn + if [[ -z "$sourceProj4" ]]; then + sourceProj4="EPSG:4326" + echo "$(logDate)$(basename $0): WARNING! Assuming EPSG:4326 for the" \ + "input ESRI Shapefile to extract the extents" + fi + + # if $destProj4 provided, reproject and extract extent in the new + # projection + if [[ -n $destProj4 && "$destProj4" != "$sourceProj4" ]]; then + # temporary shapefile's path + tempShapefile="${cache}/temp_reprojected.shp" + + # reproject ESRI shapefile to $destProj4 + ogr2ogr \ + -s_srs "$sourceProj4" \ + -t_srs "$destProj4" \ + "${tempShapefile}" "${shapefilePath}"; + + #-f "ESRI Shapefile" \ + # assign the path of the projected file as the $shapefilePath + shapefilePath="${tempShapefile}" + fi + + # extract the shapefile extent + IFS=' ' read -ra shapefileExtents <<< "$(ogrinfo -so -al "$shapefilePath" | sed 's/[),(]//g' | grep Extent)" + + # transform limits and assigning to relevant variables + IFS=' ' read -ra lowerLeftLims <<< $(echo "${shapefileExtents[@]:1:2}") + IFS=' ' read -ra upperRightLims <<< $(echo "${shapefileExtents[@]:4:5}") + + # define $latLims and $lonLims from $shapefileExtents + lonLims="${lowerLeftLims[0]},${upperRightLims[0]}" + latLims="${lowerLeftLims[1]},${upperRightLims[1]}" +} + +####################################### +# subset GeoTIFFs +# +# Globals: +# latLims: comma-delimited latitude +# limits +# lonLims: comma-delimited longitude +# limits +# sourceProj4: the extents projection +# +# Arguments: +# sourceVrt: source vrt file +# destPath: destionation path (inclu- +# ding file name) +# +# Outputs: +# one mosaiced (merged) GeoTIFF under +# the $destDir +####################################### +subset_geotiff () { + # local variables + local latMin + local latMax + local lonMin + local lonMax + local sortedLats + local sortedLons + # reading arguments + local sourceVrt="$1" + local destPath="$2" + + # extracting minimum and maximum of latitude and longitude respectively + ## latitude + sortedLats=($(sort_comma_delimited "$latLims")) + latMin="${sortedLats[0]}" + latMax="${sortedLats[1]}" + ## longitude + sortedLons=($(sort_comma_delimited "$lonLims")) + lonMin="${sortedLons[0]}" + lonMax="${sortedLons[1]}" + + # subset based on lat/lon in their given projection - flush to disk at 500MB + GDAL_CACHEMAX=500 + gdal_translate --config GDAL_CACHEMAX 500 \ + -co COMPRESS="DEFLATE" \ + -co BIGTIFF="YES" \ + -projwin "$lonMin" "$latMax" "$lonMax" "$latMin" "${sourceVrt}" "${destPath}" \ + -projwin_srs "$rasterProj4" \ + > /dev/null; +} + + +# =============== +# Data Processing +# =============== +# Display info +echo "$(logDate)$(basename $0): processing generic GeoTIFF(s)..." + +# Make the output directory +echo "$(logDate)$(basename $0): creating output directory under $outputDir" +mkdir -p "$outputDir" # making the output directory +mkdir -p "$cache" # making the cache directory + +# Extracting the raster's projection info in `Proj4` format +rasterProj4=$(gdalsrsinfo -o proj4 "${geotiffDir}${variables[0]}" | tr -d '[\n]') + +# If shapefile is provided extract the extents from it +if [[ -n $shapefile ]]; then + # create latLims and lonLims variables specifying the limits of the ESRI Shapefile + extract_shapefile_extents "${shapefile}" "${rasterProj4}" +else + sourceProj4="EPSG:4326" +fi + +# Subset and produce stats if needed +if [[ "$printGeotiff" == "true" ]]; then + echo "$(logDate)$(basename $0): subsetting GeoTIFFs under $outputDir" + for var in "${variables[@]}"; do + # Subset based on lat and lon values + subset_geotiff "${geotiffDir}/${var}" "${outputDir}/${prefix}${var}" + done +fi + +## Make R renv project directory +if [[ -n "$shapefile" ]] && [[ -n $stats ]]; then + echo "$(logDate)$(basename $0): Extracting stats under $outputDir" + mkdir -p "$cache/r-virtual-env/" + ## Make R renv in $cache + virtualEnvPath="$cache/r-virtual-env/" + cp "${gistoolPath}/etc/renv/renv.lock" "$virtualEnvPath" + + ## Make the temporary directory for installing r packages + tempInstallPath="$cache/r-packages" + mkdir -p "$tempInstallPath" + export R_LIBS_USER="$tempInstallPath" + + # Extract given stats for each variable + for var in "${variables[@]}"; do + varName="$(echo "$var" | cut -d '.' -f 1)" + + ## Build renv and create stats + Rscript "${gistoolPath}/etc/scripts/stats.R" \ + "$tempInstallPath" \ + "$exactextractrCache" \ + "$renvPackagePath" \ + "$virtualEnvPath" \ + "$virtualEnvPath" \ + "${virtualEnvPath}/renv.lock" \ + "${geotiffDir}/${var}" \ + "$shapefile" \ + "$outputDir/${prefix}stats_${varName}.csv" \ + "$stats" \ + "$includeNA" \ + "$quantiles" \ + "$fid" >> "${outputDir}/${prefix}stats_${varName}.log" 2>&1; + done +fi + +# Remove unnecessary files +mkdir "$HOME/empty_dir" +echo "$(logDate)$(basename $0): deleting temporary files from $cache" +rsync --quiet -aP --delete "$HOME/empty_dir/" "$cache" +rm -r "$cache" +echo "$(logDate)$(basename $0): temporary files from $cache are removed" +echo "$(logDate)$(basename $0): results are produced under $outputDir" + + From 5a3311d11a1c8d76be619222050223d1b1a5a729 Mon Sep 17 00:00:00 2001 From: Kasra Farmer Date: Wed, 4 Jun 2025 12:15:21 -0600 Subject: [PATCH 3/4] Initial README for this generic dataset --- .../builtin/recipes/generic_tif/README.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 var/repos/builtin/recipes/generic_tif/README.md diff --git a/var/repos/builtin/recipes/generic_tif/README.md b/var/repos/builtin/recipes/generic_tif/README.md new file mode 100644 index 0000000..be94461 --- /dev/null +++ b/var/repos/builtin/recipes/generic_tif/README.md @@ -0,0 +1,35 @@ +# `generic-tif` Geospatial Dataset +In this file, the necessary technical details of the dataset is explained. + +## Location of the `generic-tif` Dataset Files +This dataset can process any GeoTIFF file and is designed to handle those +data bases without any specific structure. Current datasets that can be +processed by this recipe along with their HPC locations are listed below. +These paths can be used as values for the `--dataset-dir` argument: + +```console +# UCalgary ARC Cluster +/work/comphyd_lab/data/geospatial-data/hawaii_dem/3mDEM # High resolution Hawaii DEM +/work/comphyd_lab/data/geospatial-data/iceland_dem # High resolution Iceland DEM +/work/comphyd_lab/data/geospatial-data/baker_creek_dem # High resolution Baker Creek DEM +/work/comphyd_lab/data/geospatial-data/wolf_creek_dem # High resolution Wolf Creek DEM +/work/comphyd_lab/data/geospatial-data/marmot_creek_dem # High resolution Marmot Creek DEM +``` + +## Dataset Variables +This variables of this dataset are detailed in the table below: + +|# |Dataset Directory| Variable Name(s) (value for `--variables`) |Description |Comments | +|-------|-----------------|----------------------------------------------|---------------------------------------|---------------| +|1 |Hawaii DEM |`Big_Island.tif`, `Kahoolawe.tif`, `Kauai_Puuwai.tif`, `Lanai.tif`, `Maui.tif`, `Molokai.tif`, `Oahu.tif`|High-resolution DEM of Hawaii islands|[^1] | +|2 |Iceland DEM |`merged_iceland_dem.tif` |High-resolution DEM of Iceland |[^2] | +|3 |Baker Creek DEM |`baker-creek-10m-DEM.tif` |10-m LiDAR DEM of the Baker Creek River Basin, NWT, Canada|[^3]| +|4 |Wolf Creek DEM |`wolf-creek-30m-DEM.tif` |30-m LiDAR DEM of the Wolf Creek River Basin, YT, Canada|[^4]| +|5 |Marmot Creek DEM |`marmot-creek-8m-DEM.tif` |8-m LiDAR DEM of the Marmot Creek River Basin, AB, Canada|[^5]| + + +[^1]: NOAA National Centers for Environmental Information (NCEI). (2021). Continuously Updated Digital Elevation Model (CUDEM) – Ninth Arc-Second Resolution Bathymetric-Topographic Tiles: Hawaii Data set (Tile Cluster 9428; fileIdentifier gov.noaa.ngdc.mgg.dem:299919). NOAA. Retrieved September 12, 2024, from https://noaa-nos-coastal-lidar-pds.s3.amazonaws.com/dem/NCEI_ninth_Topobathy_Hawaii_9428/index.html +[^2]: National Land Survey of Iceland (Landmælingar Íslands). (2016). ÍslandsDEM v1.0 [Digital Elevation Model of Iceland, 10 m resolution]. License: CC BY 4.0. Available at https://atlas.lmi.is/dem or https://dem.lmi.is/mapview/?application=DEM. +[^3]: Spence, C., Hedstrom, N. (2018). Baker Creek Research Catchment Hydrometeorological and Hydrological Data. Federated Research Data Repository. https://doi.org/10.20383/101.026 +[^4]: Rasouli, K., Pomeroy, J. W., Janowicz, J. R., Williams, T. J., & Carey, S. K. (2019). A long-term hydrometeorological dataset (1993–2014) of a northern mountain basin: Wolf Creek Research Basin, Yukon Territory, Canada. Earth System Science Data, 11(1), 89-100, https://doi.org/10.5194/essd-11-89-2019 +[^5]: Fang, X., Pomeroy, J. W., DeBeer, C. M., Harder, P., and Siemens, E. (2019). Hydrometeorological data from Marmot Creek Research Basin, Canadian Rockies. Earth Syst. Sci. Data, 11, 455–471, https://doi.org/10.5194/essd-11-455-2019. From 6fbd02839178ec3ea5614c501e91d457927f154d Mon Sep 17 00:00:00 2001 From: Kasra Farmer Date: Wed, 4 Jun 2025 13:22:19 -0600 Subject: [PATCH 4/4] Documentation for Generic TIF dataset --- docs/datasets.rst | 6 +++ docs/index.rst | 3 +- docs/scripts/generic-tif.rst | 92 ++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 docs/scripts/generic-tif.rst diff --git a/docs/datasets.rst b/docs/datasets.rst index 8572f98..1c246bf 100644 --- a/docs/datasets.rst +++ b/docs/datasets.rst @@ -59,6 +59,11 @@ The following table lists available datasets, their DOI, and provides links to s - Not Applicable (N/A) - 4326 - 10.1002/2013MS000293 + * - 8 + - Generic TIF Files + - Any + - Any + - Multiple --------------------- @@ -75,4 +80,5 @@ Detailed Descriptions scripts/modis.rst scripts/soil_class.rst scripts/soil_grids.rst + scripts/generic-tif.rst diff --git a/docs/index.rst b/docs/index.rst index b31748c..d4a2e8c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -117,15 +117,16 @@ documentation! :maxdepth: 2 :caption: User Manual - index quick_start json +.. toctree:: :maxdepth: 3 :caption: Datasets datasets +.. toctree:: :maxdepth: 1 :caption: License diff --git a/docs/scripts/generic-tif.rst b/docs/scripts/generic-tif.rst new file mode 100644 index 0000000..b3487af --- /dev/null +++ b/docs/scripts/generic-tif.rst @@ -0,0 +1,92 @@ +``generic-tif`` Geospatial Dataset +================================== + +In this file, the necessary technical details of the dataset is +explained. + +Location of the ``generic-tif`` Dataset Files +--------------------------------------------- + +This dataset can process any GeoTIFF file and is designed to handle +those data bases without any specific structure. Current datasets that +can be processed by this recipe along with their HPC locations are +listed below. These paths can be used as values for the +``--dataset-dir`` argument: + +.. code:: console + + # UCalgary ARC Cluster + /work/comphyd_lab/data/geospatial-data/hawaii_dem/3mDEM # High resolution Hawaii DEM + /work/comphyd_lab/data/geospatial-data/iceland_dem # High resolution Iceland DEM + /work/comphyd_lab/data/geospatial-data/baker_creek_dem # High resolution Baker Creek DEM + /work/comphyd_lab/data/geospatial-data/wolf_creek_dem # High resolution Wolf Creek DEM + /work/comphyd_lab/data/geospatial-data/marmot_creek_dem # High resolution Marmot Creek DEM + +Dataset Variables +----------------- + +This variables of this dataset are detailed in the table below: + ++---+-----------+-----------------------------+---------------------+----------+ +| # | Dataset | Variable Name(s) (value for | Description | Comments | +| | Directory | ``--variables``) | | | ++===+===========+=============================+=====================+==========+ +| 1 | Hawaii | ``Big_Island.tif``, | High-resolution DEM | [1]_ | +| | DEM | ``Kahoolawe.tif``, | of Hawaii islands | | +| | | ``Kauai_Puuwai.tif``, | | | +| | | ``Lanai.tif``, | | | +| | | ``Maui.tif``, | | | +| | | ``Molokai.tif``, | | | +| | | ``Oahu.tif`` | | | ++---+-----------+-----------------------------+---------------------+----------+ +| 2 | Iceland | ``merged_iceland_dem.tif`` | High-resolution DEM | [2]_ | +| | DEM | | of Iceland | | ++---+-----------+-----------------------------+---------------------+----------+ +| 3 | Baker | ``baker-creek-10m-DEM.tif`` | 10-m LiDAR DEM of | [3]_ | +| | Creek DEM | | the Baker Creek | | +| | | | River Basin, NWT, | | +| | | | Canada | | ++---+-----------+-----------------------------+---------------------+----------+ +| 4 | Wolf | ``wolf-creek-30m-DEM.tif`` | 30-m LiDAR DEM of | [4]_ | +| | Creek DEM | | the Wolf Creek | | +| | | | River Basin, YT, | | +| | | | Canada | | ++---+-----------+-----------------------------+---------------------+----------+ +| 5 | Marmot | ``marmot-creek-8m-DEM.tif`` | 8-m LiDAR DEM of | [5]_ | +| | Creek DEM | | the Marmot Creek | | +| | | | River Basin, AB, | | +| | | | Canada | | ++---+-----------+-----------------------------+---------------------+----------+ + +.. [1] + NOAA National Centers for Environmental Information (NCEI). (2021). + Continuously Updated Digital Elevation Model (CUDEM) – Ninth + Arc-Second Resolution Bathymetric-Topographic Tiles: Hawaii Data set + (Tile Cluster 9428; fileIdentifier gov.noaa.ngdc.mgg.dem:299919). + NOAA. Retrieved September 12, 2024, from + https://noaa-nos-coastal-lidar-pds.s3.amazonaws.com/dem/NCEI_ninth_Topobathy_Hawaii_9428/index.html + +.. [2] + National Land Survey of Iceland (Landmælingar Íslands). (2016). + ÍslandsDEM v1.0 [Digital Elevation Model of Iceland, 10 m + resolution]. License: CC BY 4.0. Available at + https://atlas.lmi.is/dem or + https://dem.lmi.is/mapview/?application=DEM. + +.. [3] + Spence, C., Hedstrom, N. (2018). Baker Creek Research Catchment + Hydrometeorological and Hydrological Data. Federated Research Data + Repository. https://doi.org/10.20383/101.026 + +.. [4] + Rasouli, K., Pomeroy, J. W., Janowicz, J. R., Williams, T. J., & + Carey, S. K. (2019). A long-term hydrometeorological dataset + (1993–2014) of a northern mountain basin: Wolf Creek Research Basin, + Yukon Territory, Canada. Earth System Science Data, 11(1), 89-100, + https://doi.org/10.5194/essd-11-89-2019 + +.. [5] + Fang, X., Pomeroy, J. W., DeBeer, C. M., Harder, P., and Siemens, E. + (2019). Hydrometeorological data from Marmot Creek Research Basin, + Canadian Rockies. Earth Syst. Sci. Data, 11, 455–471, + https://doi.org/10.5194/essd-11-455-2019.