Source code for tobler.data
from urllib.parse import unquote, urlparse
from warnings import warn
from requests.exceptions import Timeout
import quilt3
[docs]def store_rasters():
"""Save raster data to the local quilt package storage.
Returns
-------
None
Data will be available in the local quilt registry and available
for use in interpolation functions from the `harmonize` module.
"""
quilt3.Package.install("rasters/nlcd", "s3://quilt-cgs")
def fetch_quilt_path(path):
"""utility for getting the path to a raster stored with quilt.
Parameters
----------
path : str
string identifying raster from CGS quilt database, or full path to
a local raster file. Current options include "nlcd_2001", "nlcd_2011",
or the path to a local file.
Returns
-------
str
If the input is in the quilt database, then return the full path,
otherwise return the original path untouched
"""
if path in ["nlcd_2011", "nlcd_2001"]:
try:
from quilt3.data.rasters import nlcd
except ImportError:
raise(
"Unable to locate local raster data. You can store NLCD rasters locally using "
"the `data.store_rasters()` function (python kernel restart required"
)
full_path = unquote(nlcd[path + ".tif"].get())
parts = urlparse(full_path)
if parts.hostname:
full_path = parts.scheme + "://" + parts.hostname + parts.path
else:
full_path = parts.scheme + "://" + parts.path
else:
return path
return full_path