A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of pydaymet

pydaymet - v0.19.3

Release Notes

New Features

  • Improve the performance of get_bycoords function by using the single-pixel API of the Daymet server.
  • Add a new argument to both get_bygeom and get_bycoords functions called conn_timeout for setting the connection timeout in seconds. The default value is 5 minutes.
  • Add a new argument to both get_bygeom and get_bycoords functions called validate_filesize. When set to True, the function checks the file size of the previously cached files and will re-download if the local filesize does not match that of the remote. Defaults to False. Setting this to False can be useful when you are sure that the cached files are not corrupted and just want to get the combined dataset more quickly. This is faster because it avoids web requests that are necessary for getting the file sizes.

Internal Changes

  • Use [TinyRetriever](https://github.com/cheginit/tiny-retriever) for all server requests. It offers the same functionalities as the previous _streaming module and has the same dependencies. It has a more robust handling of async threads and is more efficient.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 2 months ago

pydaymet - v0.19.1

Release Notes

This release is a major refactoring of the package to make it more lightweight and independent. The package now uses aiohttp and aiofiles with a limit on the number of simulnatious connections to the host, for handling all server requests. This avoids hammering the server with multiple requests and improves the performance and reliability of the package. The package no longer depends on other HyRiver libraries, making it more lightweight and faster to load.

New Features

  • Add a new function to get Daymet tile IDs for a given geometry called daymet_tiles.

Internal Changes

  • Remove dependency on other HyRiver libraries to make the package more lightweight and independent.
  • Use aiohttp and aiofiles for handling all server requests. This avoids hammering the server with multiple requests and improves the performance and reliability of the package.
  • Remove dependency on geopandas and use shapely only for handling geometries. This makes the package more lightweight and faster.

Breaking Changes

  • Use a more efficient and reliable approach for adding elevation data to the climate dataset for computing PET. We now directly use 30-m elevation data from 3DEP and resample it to the climate data resolution by averaging each cell within a 1-km window.
  • Remove the option to disable SSL in all functions. Now, SSL verification is always enabled.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] 3 months ago

pydaymet - v0.19.0

Release Notes

This release is a major refactoring of the package to make it more lightweight and independent. The package now uses aiohttp and aiofiles with a limit on the number of simulnatious connections to the host, for handling all server requests. This avoids hammering the server with multiple requests and improves the performance and reliability of the package. The package no longer depends on other HyRiver libraries, making it more lightweight and faster to load.

New Features

  • Add a new function to get Daymet tile IDs for a given geometry called daymet_tiles.

Internal Changes

  • Remove dependency on other HyRiver libraries to make the package more lightweight and independent.
  • Use aiohttp and aiofiles for handling all server requests. This avoids hammering the server with multiple requests and improves the performance and reliability of the package.
  • Remove dependency on geopandas and use shapely only for handling geometries. This makes the package more lightweight and faster.

Breaking Changes

  • Use a more efficient and reliable approach for adding elevation data to the climate dataset for computing PET. We now directly use 30-m elevation data from 3DEP and resample it to the climate data resolution by averaging each cell within a 1-km window.
  • Remove the option to disable SSL in all functions. Now, SSL verification is always enabled.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] 3 months ago

pydaymet - v0.18.0

Release Notes

Breaking Changes

  • Drop support for Python 3.8 since its end-of-life date is October 2024.
  • Remove all exceptions from the main module and raise them from the exceptions module. This is to declutter the public API and make it easier to maintain.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] 7 months ago

pydaymet - v0.17.1

Release Notes

Internal Changes

  • Drop support for Python 3.8 since its end-of-life date is October 2024.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] 7 months ago

pydaymet - v0.17.0

Release Notes

Bug Fixes

  • In get_bystac function, only three variables were being returned regardless of the input variables. This version fixes this issue by returning all the requested variables.

Internal Changes

  • Add the exceptions module to the high-level API to declutter the main module. In the future, all exceptions will be raised from this module and not from the main module. For now, the exceptions are raised from both modules for backward compatibility.
  • Switch to using the src layout instead of the flat layout for the package structure. This is to make the package more maintainable and to avoid any potential conflicts with other packages.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] 10 months ago

pydaymet - v0.16.3

Release Notes

Bug Fixes

  • In get_bystac function, only three variables were being returned regardless of the input variables. This version fixes this issue by returning all the requested variables.

Internal Changes

  • Add the exceptions module to the high-level API to declutter the main module. In the future, all exceptions will be raised from this module and not from the main module. For now, the exceptions are raised from both modules for backward compatibility.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] 12 months ago

pydaymet - v0.16.1

Release Notes

New Features

  • Add a new function for getting Daymet data from Microsoft's Planetary Computer called get_bystac. Although this function can be much faster than get_bygeom, currently, it gives access to Daymet v4.2 from 1980 to 2020. As discussed here, the Daymet v4.5 will be added to the Planetary Computer in the future. Until then, for accessing the latest version of Daymet (v4.5) you need to use get_bygeom. Additionally, this function requires fsspec, dask, zarr, and pystac-client packages.
  • Make separate_snow a standalone, pure, and public function. Now, it can be used like so: pydaymet.separate_snow.
  • Change the length unit from km to m for get_bygeom.

Internal Changes

  • The potential_et function uses py3dep.add_elevation function but the CRS info gets lost in the process for the new elevation variable. This version fixes this issue by adding the CRS info to the elevation variable.
  • Change PetParams class from NamedTuple to dataclass for better performance and consistency. Now, it has a new classmethod called fields that returns a list of the four fields of the class.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 1 year ago

pydaymet - v0.16.0

Release Notes

Breaking Changes

  • Bump min version of shapely to 2.

Internal Changes

  • Use the new py3dep.add_elevation API.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 1 year ago

pydaymet - v0.15.2

Release Notes

Internal Changes

  • Remove dependency on dask.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 1 year ago

pydaymet - v0.15.1

Release Notes

Bug Fixes

  • Fix HyRiver libraries requirements by specifying a range instead of exact version so conda-forge can resolve the dependencies.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 1 year ago

pydaymet - v0.15.0

Release Notes

From release 0.15 onward, all minor versions of HyRiver packages will be pinned. This ensures that previous minor versions of HyRiver packages cannot be installed with later minor releases. For example, if you have py3dep==0.14.x installed, you cannot install pydaymet==0.15.x. This is to ensure that the API is consistent across all minor versions.

New Features

  • For now, retain compatibility with shapely<2 while supporting shapley>=2.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] almost 2 years ago

pydaymet - v0.14.0

Release Notes

New Features

  • Change missing value of both single-pixel and gridded versions to numpy.nan from -9999.
  • Add a new model parameter for computing PET using priestlet_taylor and penman_monteith models called arid_correction. For arid regions, FAO 56 suggests subtracting the min temperature by 2 degrees. This parameter can be passed via pet_params in daymet_by* functions, or params in potential_pet function.
  • Refactor get_bycoords to reduce memory usage by using a combination of itertools and Generator objects.
  • Refactor the pet module to improve performance and readability, and reduce code duplication.

Documentation

  • Add more information about parameters that pet functions accept.

Breaking Changes

  • Bump the minimum required version of shapely to 2.0, and use its new API.

Internal Changes

  • Sync all minor versions of HyRiver packages to 0.14.0.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 2 years ago

pydaymet - v0.13.12

Release Notes

Internal Changes

  • Fully migrate setup.cfg and setup.py to pyproject.toml.
  • Convert relative imports to absolute with absolufy-imports.
  • Sync all patch versions of HyRiver packages to x.x.12.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 2 years ago

pydaymet - v0.13.10

Release Notes

New Features

  • Refactor the show_versions function to improve performance and print the output in a nicer table-like format.

Bug Fixes

  • Fix a bug in get_bygeom where for small requests that lead to a single download URL, the function failed.

Internal Changes

  • Skip 0.13.9 version so the minor version of all HyRiver packages become the same.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 2 years ago

pydaymet - v0.13.8

Release Notes

Internal Changes

  • More robust handling of getting large gridded data. Instead of caching the requests/ responses, directly store the responses as NetCDF files to a cache folder using pygeoogc.streaming_download and ultimately read them using xarray.open_mfdataset. This should make the bygeom function even faster than before and also make it possible to make large requests without having to worry about running out of memory (:issue_day:[59]{.title-ref}).
  • Modify the codebase based on Refurb suggestions.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 2 years ago

pydaymet - v0.13.7

Release Notes

Since the release of Daymet v4 R1 on November 2022, the URL of Daymet's server has been changed. Therefore, only the latest version of PyDaymet (v0.13.7) is going to work, and previous versions will not work anymore.

New Features

  • Add support for passing a list of coordinates to the get_bycoords function. Also, optionally, you can pass a list of IDs for the input coordinates that will be used as keys for the returned pandas.DataFrame or a dimension called id in the returned xarray.Dataset if to_xarray is enabled.
  • Add a new argument called to_xarray to the get_bycoords function for returning the results as a xarray.Dataset instead of a pandas.DataFrame. When set to True, the returned xarray.Dataset will have three attributes called units, description, and long_name.
  • The date argument of both get_bycoords and by_geom functions now accepts range-type objects for passing years, e.g., range(2000-2005).
import pydaymet as daymet

coords = [(-94.986, 29.973), (-95.478, 30.134)]
idx = ["P1", "P2"]
clm = daymet.get_bycoords(coords, range(2000, 2021), coords_id=idx, to_xarray=True)

Internal Changes

  • Use pyupgrade package to update the type hinting annotations to Python 3.10 style.
  • Fix the Daymet server URL.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 2 years ago

pydaymet - v0.13.6

Release Notes

Internal Changes

  • Add the missing PyPi classifiers for the supported Python versions.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 2 years ago

pydaymet - v0.13.5

Release Notes

Breaking Changes

  • Append "Error" to all exception classes for conforming to PEP-8 naming conventions.

Internal Changes

  • Bump the minimum versions of pygeoogc, pygeoutils, py3dep to 0.13.5 and that of async-retriever to 0.3.5.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 2 years ago

pydaymet - v0.13.3

Release Notes

Bug Fixes

  • Fix a bug in PETGridded where the wrong data type was being set for pet and elevation variables.
  • When initializing PETGridded, only chunk the elevation if the input climate data is chunked.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 2 years ago

pydaymet - v0.13.2

Release Notes

Breaking Changes

  • Set the minimum supported version of Python to 3.8 since many of the dependencies such as xarray, pandas, rioxarray have dropped support for Python 3.7.

Internal Changes

  • Use micromamba for running tests and use nox for linting in CI.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] almost 3 years ago

pydaymet - v0.13.1

Release Notes

New Features

Bug Fixes

  • Set the end year based on the current year since Daymet data get updated every year (:pull_day:[55]{.title-ref}) by Tim Cera.
  • Set the months for the annual timescale to correct values (:pull_day:[55]{.title-ref}) by Tim Cera.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] almost 3 years ago

pydaymet - v0.13.0

Release Notes

Breaking Changes

  • Remove caching-related arguments from all functions since now they can be set globally via three environmental variables:

    • HYRIVER_CACHE_NAME: Path to the caching SQLite database.
    • HYRIVER_CACHE_EXPIRE: Expiration time for cached requests in seconds.
    • HYRIVER_CACHE_DISABLE: Disable reading/writing from/to the cache file.

    You can do this like so:

import os

os.environ["HYRIVER_CACHE_NAME"] = "path/to/file.sqlite"
os.environ["HYRIVER_CACHE_EXPIRE"] = "3600"
os.environ["HYRIVER_CACHE_DISABLE"] = "true"

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 3 years ago

pydaymet - v0.12.3

Release Notes

New Features

  • Add a new flag to both get_bycoords and get_bygeom functions called snow which separates snow from the precipitation using the Martinez and Gupta (2010) method.

Internal Changes

  • Add elevation data when computing PET regardless of the pet method.
  • Match the chunk size of elevation with that of the climate data.
  • Drop time dimension from elevation, lon, and lat variables.

Bug Fixes

  • Fix a bug in setting dates for monthly timescales. For monthly timescale Daymet calendar is at 15th or 16th of the month, so input dates need to be adjusted accordingly.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 3 years ago

pydaymet - v0.12.2

Release Notes

Internal Changes

  • Clean up the PET computation functions' output by removing temporary variables that are created during the computation.
  • Add more attributes for elevation and pet variables.
  • Add type checking with typeguard and fixed typing issues raised by typeguard.
  • Refactor show_versions to ensure getting correct versions of all dependencies.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.12.1

Release Notes

Internal Changes

  • Use the three new ar.retrieve_* functions instead of the old ar.retrieve function to improve type hinting and to make the API more consistent.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.12.0

Release Notes

New Features

  • Expose the ssl argument for disabling the SSL certification verification (:issue_day:[41]{.title-ref}). Now, you can pass ssl=False to disable the SSL verification in both get_bygeom and get_bycoord functions. Moreover, you can pass --disable_ssl to PyDaymet's command line interface to disable the SSL verification.

Breaking Changes

  • Set the request caching's expiration time to never expire. Add two flags to all functions to control the caching: expire_after and disable_caching.

Internal Changes

  • Add all the missing types so mypy --strict passes.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.11.4

Release Notes

Internal Changes

  • Use importlib-metadata for getting the version insead of pkg_resources to decrease import time as discussed in this issue.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.11.3

Release Notes

Bug Fixes

  • There was an issue in the PET computation due to dayofyear being added as a new dimention. This version fixes it and even further simplifies the code by using xarray's dt accessor to gain access to the dayofyear method.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.11.2

Release Notes

New Features

  • Add hargreaves_samani and priestley_taylor methods for computing PET.

Breaking Changes

  • Rewrite the command-line interface using click.group to improve UX. The command is now pydaymet [command] [args] [options]. The two supported commands are coords for getting climate data for a dataframe of coordinates and geometry for getting gridded climate data for a geo-dataframe. Moreover, Each sub-command now has a separate help message and example.
  • Deprecate get_byloc in favor of get_bycoords.
  • The pet argument in both get_bycoords and get_bygeom functions now accepts hargreaves_samani, penman_monteith, priestley_taylor, and None.

Internal Changes

  • Refactor the pet module for reducing duplicate code and improving readability and maintainability. The code is smaller now and the functions for computing physical properties include references to equations from the respective original paper.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.11.1

Release Notes

The highligth of this release is a major refactor of Daymet to allow
for extending PET computation function for using methods other than
FAO-56.

New Features

  • Refactor Daymet class by removing pet_bycoords and pet_bygrid methods and creating a new public function called potential_et. This function computes potential evapotranspiration (PET) and supports both gridded (xarray.Dataset) and single pixel (pandas.DataFrame) climate data. The long-term plan is to add support for methods other than FAO 56 for computing PET.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 3 years ago

pydaymet - v0.11.0

Release Notes

New Features

  • Add command-line interface (:issue_day:[7]{.title-ref}).
  • Use AsyncRetriever for sending requests asyncronosly with
    persistent caching. A cache folder in the current directory is created.
  • Check for validity of start/end dates based on Daymet V4 since
    Puerto Rico data starts from 1950 while North America and Hwaii start from 1980.
  • Check for validity of input coordinate/geometry based on the Daymet
    V4 bounding boxes.
  • Improve accuracy of computing Psychrometric constant in PET
    calculations by using an equation in Allen et al. 1998.

Breaking Changes

  • Drop support for Python 3.6 since many of the dependencies such as xarray and pandas have done so.
  • Change loc_crs and geo_crs arguments to crs in get_bycoords
    and get_bygeom.

Documentation

  • Add examples to docstrings and improve writing.
  • Add more notes regarding the underlying assumptions for
    pet_bycoords and pet_bygrid.

Internal Changes

  • Refactor Daymet class to use pydantic for validating the inputs.
  • Increase test coverage.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] almost 4 years ago

pydaymet - v0.10.2

Release Notes

  • Add annoucement regarding the new name for the softwate stack, HyRiver.
  • Improve pip installation and release workflow.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 4 years ago

pydaymet - Release v0.10.1

Please check HISTORY.rst file for a detailed list
of changes.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 4 years ago

pydaymet - Release v0.10.0

Please check HISTORY.rst file for a detailed list
of changes.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 4 years ago

pydaymet - Release v0.9.0

Please check HISTORY.rst file for a detailed list
of changes.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] about 4 years ago

pydaymet - Release v0.2.0

Please check HISTORY.rst file for a detailed list
of changes.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by github-actions[bot] over 4 years ago

pydaymet - v0.1.3

Replaced simplejson with orjson to speed-up JSON operations.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by cheginit over 4 years ago

pydaymet - v0.1.2

Added show_versions for showing versions of the installed deps.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by cheginit over 4 years ago

pydaymet - v0.1.1

  • Retained the compatibility with xarray 0.15 by removing the attrs flag.
  • Replaced open_dataset with load_dataset for automatic handling of closing the input after reading the content.
  • Removed years argument from both byloc and bygeom functions. The dates argument now accepts both a tuple of start and end dates and a list of years.
  • This release will be a part of Hydrodata 0.7.0.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by cheginit over 4 years ago

pydaymet - v0.1.0

Initial release.

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by cheginit almost 5 years ago