Changelog

Contents

Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Types of changes:

  • Added for new features.

  • Changed for changes in existing functionality.

  • Deprecated for soon-to-be removed features.

  • Removed for now removed features.

  • Fixed for any bug fixes.

  • Security in case of vulnerabilities.

Unreleased#

0.127.0 - 2026-07-07#

Added#

  • [REST API] The /api/coverage endpoint now reports a date_required flag per provider/network, true if any of its resolutions require a date range for value queries (e.g. MET Norway Frost). Lets frontends surface this before submitting a query rather than after the query fails.

Changed#

  • [MET Norway Frost] Value requests now fetch all parameters of a dataset/resolution in a single batched request (comma-separated elements=) instead of one request per parameter, cutting the number of HTTP requests by up to 11x for multi-parameter queries. Falls back to the previous per-parameter behavior (including historical time-series discovery) if the batched request itself returns a 404.

  • [IMGW] File listing now prunes IMGW’s per-period subfolders (named YYYY or YYYY_YYYY, encoding the exact date range they cover) to only those overlapping the requested date range, instead of recursively listing the entire directory tree on every request. Cuts the number of HTTP requests from ~33 (meteorology) / ~74 (hydrology) down to the 1-2 folders that actually matter for a given query.

Removed#

  • [IMGW] Removed the hardcoded lat/lon override for hydrology station 150190410, a workaround for a corrupted upstream CSV line from ~2024-02. The station’s data has been clean upstream for a while, so the override had become a no-op; keeping it around risked silently clobbering a legitimate future coordinate change for that station.

Fixed#

  • [IMGW] Station listing for both meteorology and hydrology no longer fails: the upstream station CSVs gained an extra “founding year” column and switched from a Windows codepage to UTF-8, which broke column parsing and produced mojibake names. Also fixed a station-list column-index bug (hydrology latitude/longitude were reading the wrong columns), a missing return_dtype on the lat/lon DMS-to-decimal conversion, and station rows no longer carrying a resolution/dataset tag, which made .values.all() fail outright.

  • [IMGW] Hydrology value downloads now honor WD_USE_CERTIFI/use_certifi, matching the station list fetch and the meteorology provider. Previously it was silently ignored for the actual data downloads.

  • [IMGW] Hydrology daily requests touching 2023 or later no longer crash with ValueError: month must be in 1..12. IMGW switched from twelve monthly zips per year to one consolidated yearly zip starting 2023, which broke the date-range parsing that assumed a codz_YYYY_MM.zip filename. Also handles the two different (and, for 2024, outright malformed) CSV export quirks IMGW has used for these consolidated files since, for both daily and monthly hydrology data: semicolon-separated unquoted rows in 2023, and in 2024 every row wrapped in a broken extra pair of quotes with doubled inner quotes.

  • [IMGW] Meteorology synop daily requests no longer crash with TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'. Unlike every other IMGW meteorology dataset, synop daily has always been archived one file per station per period (e.g. 2024_100_s.zip for the station whose id ends in 100) rather than one file per month across all stations, going back to at least the 1966-1970 archive — the URL selection logic never accounted for this, so synop daily was non-functional for any date range.

0.126.0 - 2026-07-07#

Fixed#

  • [REST API] Station listing no longer fails with StartDateEndDateError for providers with date_required datasets (e.g. MET Norway Frost hourly, 10-minute, 6-hour). The date requirement only applies to value fetching, not to listing available stations. Also fixed a TypeError when constructing requests for providers that declare multi-period datasets but do not accept a periods constructor argument.

0.125.0 - 2026-07-06#

Added#

  • [MET Norway Frost] Add new provider metno/frost for the Norwegian Meteorological Institute’s Frost API. Supports 10-minute, hourly, 6-hour, daily, monthly and annual resolutions with ~2200 stations across Norway. Authentication via free API key (WD_AUTH__METNO_FROST env var). Historical synoptic 6-hourly data is retrieved via an availableTimeSeries fallback that resolves the time-series-specific query parameters required by the Frost API.

  • [Settings] Load .env files automatically via env_file=".env" and support nested env vars via env_nested_delimiter="__" (e.g. WD_TS_UNIT_TARGETS__temperature=degree_fahrenheit).

  • [Metadata] Add auth: bool = False field to MetadataModel so providers requiring an API key can declare it. Defaults to False for all existing providers.

  • [API] Add is_configured() -> bool and is_valid() -> bool classmethods to TimeseriesRequest. is_configured checks whether credentials are present (cheap, offline); is_valid probes the API to confirm they actually work (should be cached by the implementation). Both default to True for providers that need no auth.

  • [REST API] GET /api/coverage (no parameters) now returns {provider: {network: {auth: bool, configured: bool, valid: bool}}} instead of {provider: [network]}, exposing per-network auth status to API consumers.

  • [REST API] Add GET /api/auth?provider=&network= endpoint that returns {provider, network, auth, configured, valid} for a specific provider/network, allowing clients to re-check credential validity without fetching all coverage. valid is always false when configured is false (probe cannot run without credentials).

0.124.0 - 2026-06-30#

Added#

  • [DWD MOSMIX / DMO] Add available_issues(station_id, settings) classmethod to DwdMosmixRequest and DwdDmoRequest that lists the model-run datetimes currently available on DWD’s OpenData server for a given station (MOSMIX_L single-station KMZ files and ICON single-station KMZ files respectively).

  • [CLI] Add wetterdienst issues --provider <p> --network <n> --station <id> command that prints available issue datetimes as a JSON array.

  • [REST API] Add GET /api/issues?provider=<p>&network=<n>&station=<id> endpoint returning {"issues": ["<UTC ISO datetime>", ...]}. Currently supported: provider=dwd, network=mosmix and provider=dwd, network=dmo.

Fixed#

  • [DWD MOSMIX / DMO] Fix issue (and DMO lead_time) parameters being silently ignored when calling the REST API or _get_stations_request directly. The guard used isinstance(api, DwdMosmixRequest) where api is the class itself (not an instance), so the condition was always False and DwdForecastDate.LATEST was used regardless of the caller’s intent. Changed to issubclass and added a None-guard so that omitting issue still falls through to the dataclass default (DwdForecastDate.LATEST).

  • [Frontend / Meteogram] Fix x-axis tick labels overlapping massively on narrow mobile screens. Tick interval is now chosen based on actual chart pixel width: a 7-day MOSMIX forecast on a ~360 px phone uses 24-hour ticks instead of 6-hour ones (28 → 7 labels). Day-name annotations above the chart also shorten to weekday-only (Mo) when a day occupies fewer than 44 px, preventing header collisions on long forecasts.

0.123.0 - 2026-06-18#

Fixed#

  • [DWD Observation] Skip periods where all file downloads fail (empty filenames_and_files) before passing to the parser, preventing a polars.exceptions.InvalidOperationError from pl.concat(..., how="align") caused by a schema-less LazyFrame being mixed with valid ones.

  • Reduce stamina retry attempts in download_file from 3 to 2 to limit worst-case wait time per file on persistent network failures.

  • Add a default aiohttp.ClientTimeout(total=30) to fsspec_client_kwargs in Settings so HTTP connections time out after 30 seconds instead of hanging indefinitely.

  • Wrap bare int timeouts in aiohttp.ClientTimeout inside HTTPFileSystem.__init__ so that aiohttp >= 3.9 (which rejects plain int timeouts) works correctly with fsspec_client_kwargs.

0.122.0 - 2026-06-07#

Fixed#

  • Fix download_file retry mechanism: the previous @stamina.retry decorator was broken (the on= predicate checked ClientResponse instead of an exception, and all errors were swallowed before stamina could see them). Replaced with stamina.retry_context wrapping the filesystem.cat_file call directly. Retries are now triggered on FileNotFoundError, FSTimeoutError, ClientConnectorError, ClientResponseError and ClientPayloadError; all exhausted errors are returned as File objects rather than propagated.

  • [DWD Dmo] Convert latitude and longitude from degrees and minutes to decimal degrees using convert_dm_to_dd.

  • Fix station history parsing and add tests

0.121.1 - 2026-05-26#

Fixed#

  • Propagate Settings.use_certifi through NetworkFilesystemManager.get and the download helpers (download_file, download_files, list_remote_files_fsspec) so that fsspec’s HTTP clients use the certifi certificate bundle when requested. This ensures provider code using these helpers respects the global use_certifi setting. Fixes #1669. Thanks to @KonstantinWaser for reporting the issue.

0.121.0 - 2026-05-09#

Added#

  • Interpolation / summarize: greatly expanded the set of interpolatable parameters beyond the original six. All continuous, spatially-correlated meteorological fields are now supported, organised into two distance classes:

    • ~40 km (homogeneous / large-scale): all temperature variants at 2 m and 0.05 m (mean, max, min, last-24 h, multiday, mean-of-extremes), dew point, wet-bulb, wind-chill, surface temperature, soil temperatures (0.02 m – 2 m depth), heating/cooling degree aggregates, all humidity variants (humidity, humidity_absolute, humidity_max, humidity_min, humidex), all wind-speed variants and gust-max variants, wind movement, Beaufort scale, all sunshine-duration variants, global / diffuse / direct / long-wave radiation, all pressure variants (site, sea-level, reduced, max, min, tendency, vapour), total / effective / time- windowed cloud cover, and evapotranspiration / evaporation fields.

    • ~20 km (heterogeneous / locally variable): all precipitation-height variants (including liquid, droplet, rocker, last-1 h … last-24 h, multiday, significant- weather, max), precipitation duration, new-snow depth and its multiday / max variants, and new-snow water-equivalent variants.

    • Fixes #1651 (sunshine_duration was silently dropped by both interpolate and summarize because it was absent from interpolatable_parameters).

  • Interpolation: occurrence-threshold zeroing (previously only applied to precipitation_height) is now applied to all zero-inflated accumulation parameters: every precipitation-height variant, precipitation duration, new-snow depth variants, and new-snow water-equivalent variants. This prevents spurious small positive values when the surrounding stations recorded no event.

  • Tests: five new unit tests for the occurrence-threshold logic in core/interpolate.py (test_occurrence_threshold_*) and two new remote integration tests (test_interpolation_sunshine_duration_daily, test_interpolation_snow_depth_new_daily).

  • CLI: --start-date / --end-date options added to the values, interpolate, and summarize commands as a user-friendly alternative to the --date ISO-8601 interval syntax. Passing only --start-date treats it as a single-point date; passing only --end-date likewise. --date and --start-date/--end-date are mutually exclusive and raise a UsageError when combined.

  • CLI: comprehensive help text added to all options across the values, stations, interpolate, and summarize commands, including --provider, --network, --parameters, --periods, all station-filtering options, --format, --target, --shape, --humanize, --convert_units, --unit_targets, --skip_empty, --skip_criteria, --skip_threshold, --drop_nulls, --with_metadata, --with_stations, --pretty, and --issue.

Fixed#

  • Station name filtering (filter_by_name, --name) was case-sensitive, causing lowercase queries like "darmstadt" to return no results. Fixed by adding processor=fuzz_utils.default_process to the rapidfuzz call.

  • NOAA GHCN hourly: adapted to upstream format changes — the station list CSV now contains non-integer values in the WMO_ID column (e.g. "open"), and the per-station PSV files renamed the station identifier column from Station_ID to STATION.

  • DWD observation requests no longer raise MetaFileNotFoundError when a period’s station description file is absent on the server (e.g. 10_minutes/precipitation/now). The missing period is skipped with a warning and remaining periods are still returned.

  • No internet connection no longer raises an error; instead, an empty result is returned. ClientConnectorError (TCP/DNS failures) is caught in download_file and stored as NoInternetError in the File object. All provider call sites return empty DataFrame/LazyFrame values accordingly. Fixes #1624.

  • NetworkFilesystemManager now uses threading.local() instead of a class-level dict so each thread in ThreadPoolExecutor-based parallel downloads gets its own WholeFileCacheFileSystem instance, eliminating a race condition in the in-memory metadata cache that caused TypeError: cannot unpack non-iterable bool object at fsspec/implementations/cached.py:716.

  • Reverted the directory-listing cache from shelved-cache + cachetools back to diskcache. shelved-cache wraps Python’s dbm/shelve, which is not safe for concurrent access; parallel pytest-xdist workers sharing the same cache directory caused _dbm.error cascades and cascading test failures. diskcache uses SQLite and is both thread- and process-safe.

  • FileDirCache mapping semantics corrected: __getitem__ now raises KeyError on a cache miss (previously returned None) and short-circuits when use_listings_cache is False; __contains__ uses a proper existence check so falsy cached values (e.g. an empty directory listing []) are no longer misreported as absent; __len__ delegates to the underlying cache directly instead of materialising all keys.

Security#

  • diskcache advisory GHSA-w8v5-vhqr-4h9v (CVE-2025-69872, pickle deserialization) acknowledged and suppressed in pysentry and dependency-review. Exploitation requires write access to the local user cache directory, which is not a realistic attack vector for this project.

  • lxml upgraded to 6.1.0, resolving GHSA-vfmq-68hx-4jfw (local file read via resolve_entities).

Changed#

  • Station name filtering now uses token_sort_ratio instead of token_set_ratio, making word-order variations (e.g. "Koeln Bonn""Köln/Bonn") match correctly. Zero regressions across all 1281 stations; 149 stations now resolve to their correct match when searched by exact name.

  • Default fuzzy-match threshold for filter_by_name lowered from 0.9 to 0.8, allowing single-character typos and common shorthands to match while maintaining 100% precision.

  • name_threshold is now exposed in the CLI (--name-threshold) for the stations and values commands, and wired through StationsRequest / ValuesRequest models so the REST API /api/stations and /api/values endpoints honour it automatically. All previously stale 0.9 defaults in stripes endpoints updated to 0.8.

0.120.0 - 2026-04-11#

Added#

  • Add DWD Derived data for hourly climate (duett), daily soil, and monthly soil datasets, including parameters for evapotranspiration, soil moisture, soil temperature, frost/thaw depth, radiation, sunshine duration, and heating/cooling degree days, thanks @mspils and @jb-at-bdr

Changed#

  • ECCC observation: migrate data retrieval from legacy CSV bulk download to the api.weather.gc.ca OGC API. Updates parameter metadata to match new column naming, rewrites wide-to-long pivoting to handle *_flag quality columns, and expands timezone mapping to include daylight saving variants.

Fixed#

  • DWD describe_fields: adapt to updated PDF location and format. Description PDFs moved from the period subdirectory (e.g. daily/kl/recent/) to the dataset directory (daily/kl/). The PDF content now uses a structured table format with column name and description on the same line. The German section header changed from Parameter to CSV Inhaltsbeschreibung.

0.119.0 - 2026-02-17#

Added#

  • New API endpoint for climate stripes data

Changed#

  • Improve interpolation and summary

  • DWD DMO: Remove unnecessary validation for minimum dataframe length in date extraction

  • Rename API endpoint /stripes/values to /stripes/image

  • Migrate from diskcache to cachetools and shelved-cache for caching functionality. The new implementation uses shelved_cache.PersistentCache wrapping cachetools.TTLCache for improved maintainability while preserving all existing functionality and API compatibility.

Fixed#

  • Update API endpoint for geosphere data retrieval

0.118.0 - 2026-02-01#

Added#

  • Implement station history retrieval; added API and request support to query historical station snapshots and lifecycle events (created, updated, decommissioned) by station id and dataset.

  • Add use_certifi setting to use certifi certificate bundle instead of system certificates for HTTPS connections. Default is False for backward compatibility. Can be enabled via Settings(use_certifi=True) or environment variable WD_USE_CERTIFI=true.

Changed#

  • Move code to src directory

  • Filter By Rank: Sort stations by distance and station id

  • Soften validation for numbers and integers in UI core request models

0.117.0 - 2026-01-03#

Added#

  • Restapi: Add /api/version endpoint to get current version of wetterdienst backend (used in frontend)

0.116.0 - 2025-12-09#

Changed#

  • Improve polars code, thanks @SeeBastion524

Fixed#

  • Allow concatenation of station data with varying columns, thanks @jb-at-bdr

  • Adjust data type of “name” column, thanks @jb-at-bdr

0.115.0 - 2025-11-24#

Added#

  • Add classifier for python 3.14

  • Add new data of DWD Derived, thanks @jb-at-bdr

Changed#

  • Update docker image to use python 3.14

Fixed#

  • Cast value in interpolate function to float

    @ninjeanne reported that wetterdienst lately quirks when running interpolation. This issue is related to one of the new polars versions > 1.33.1. A shorthand fix would be to cast the value coming from the scipy interpolate function to a float.

0.114.3 - 2025-11-07#

Fixed#

  • [DWD Obs] Fix encoding issue

0.114.2 - 2025-11-05#

Fixed#

  • [DWD DMO] Fix path for icon_eu and minor fixes

0.114.1 - 2025-11-01#

Fixed#

  • Fix global import of duckdb exception in to_target method

0.114.0 - 2025-10-31#

Added#

  • [DWD Obs] Use utf8 encoding for parsing data

  • Add if_exists argument to to_target

  • Use more polars-native methods

Fixed#

  • [DWD Road]: Skip empty files

Changed#

  • Bump polars minimum to 1.15.0

0.113.0 - 2025-09-21#

Added#

  • Make Mosmix and DMO a lot faster for multiple stations requests

Changed#

  • Bump pypdf to <7

  • Make pypdf optional

0.112.0 - 2025-09-06#

Changed#

  • Switch back to WholeFileCacheFileSystem for caching

  • Improve more things on caching

  • Update uv.lock

  • Polars: Set format and timezone on datetime conversion

0.111.0 - 2025-08-03#

Added#

  • Make humidity interpolatable

  • Improve interpolation configuration

  • Set missing return_dtype in fileindex function

  • Set return_dtype for polars functions

Changed#

  • Pin zarr to >=3.1;python_version>=3.11

  • Docker: Copy uv bin from uv image

  • Pin lxml to <7

Fixed#

  • Parse parameters only if any are given

  • Fix export for interpolated values to csv

  • Round timestamps of hourly solar data to nearest hour

  • Fix several polars issues

  • Docker: Install chromium to fix png export

0.110.0 - 2025-07-23#

Added#

  • Make retry of download_file more robust

  • Overhaul docs switching to sphinx and myst-parser

  • Improve exception handling in restapi

  • Improve download of files

Changed#

  • Drop upper version pins for fsspec and tzdata

  • Introduce wetterdienst.model, streamline others

  • Bump minimum kaleido version to 0.2.2

Fixed#

  • Export: Fix influx tags and fields

  • [NOAA GHCN hourly] Fix metadata creation

  • Include resolution column in wide format

  • Disallow polars==1.31.0 due to issues

0.109.0 - 2025-06-03#

Changed#

  • Split coordinates and bbox into separate arguments

  • Bump dependencies

0.108.0 - 2025-04-25#

Added#

  • Improve restapi look and add impressum

  • Add uvloop and httptools for speed via uvicorn[standard]

Changed#

  • Use dataclass everywhere

  • Refactor query method

  • Adjust retry of function download_file

Fixed#

  • Fix numerous radar tests

0.107.0 - 2025-03-25#

Changed#

  • Refactor download_file

Fixed#

  • Fix false attribute parsing by pydantic model in cli

  • Fix datetime parsing for generic radar data

0.106.0 - 2025-03-05#

Fixed#

  • Improve parameter unpacking in ParameterSearch.parse

  • Fix docker manifest

0.105.0 - 2025-03-01#

Added#

  • Add user agent to default fsspec_client_kwargs

  • Adjust apis to track resolution and dataset (allows querying data for different resolutions and datasets in one request)

Changed#

  • Improve date parsing across multiple apis

  • Cleanup docker image

  • Improve numerous apis

Fixed#

  • [WSV Pegel] Fix characteristic values and improve date parsing

0.104.0 - 2025-02-15#

Changed#

  • Reduce the margin of the stations plot

  • Make pydantic models for uis simpler

  • Migrate from sklearn+numpy to pyarrow for location querying

  • Remove command from Docker file

  • Improve workflow for Docker

  • Get rid of columns enumeration

  • [NOAA GHCN] Improve date parsing and other fixes

0.103.0 - 2025-02-02#

Added#

  • Stripes: Replace matplotlib by plotly

  • Explorer: Add download button for plot

  • Split up plotting extras into plotting and matplotlib

  • Interpolation/Summary: Add dataset to DataFrame

  • Add plotting capabilities

Changed#

  • Update docker image extras

Removed#

  • Remove unused cachetools dependency

Fixed#

  • Fix benchmark code

  • Make fastexcel a polars extra

  • Drop click-params dependency

  • Make pyarrow a polars extra

0.102.0 - 2025-01-17#

Added#

  • Add cmd to docker image

Changed#

  • Use to_list()[0] instead of first()

0.101.0 - 2025-01-13#

Added#

  • Move more details into MetadataModel

Changed#

  • [DWD Obs] Make the download function more flexible using threadpool

  • [DWD Obs] Cleanup parser function

  • [DWD Obs] Improve fileindex and metaindex

Fixed#

  • [DWD Obs] Reduce unnecessary file index calls during retrieval of data for stations with multiple files

0.100.0 - 2025-01-06#

Added#

  • Add logo for restapi

  • Breaking: Add dedicated unit converter

    Attention: Many units are changed to be more consistent with typical meteorological units. We now use °C for temperatures. Also, length units are now separated in length_short, length_medium and length_long to get more reasonable decimals. For more information, see the new units chapter (usage/units) in the documentation.

Changed#

  • Add reasonable upper bounds for dependencies

Fixed#

  • Filter out invalid underscore prefixed files

0.99.0 - 2024-12-30#

Added#

  • Add setting ts_complete=False that allows to prevent building a complete time series

Changed#

  • Docs: Change to markdown using mkdocs

  • Settings: Switch to pydantic_settings for settings management

  • Improve wetterdienst api class

  • Dissolve wetterdienst notebook into examples

  • Use duckdb.sql and ask only for WHERE clause

  • Update restapi annotations

  • Use Settings in restapi/cli core functions

  • Restapi/Cli: Use pydantic models for request parameters

  • Rename dropna to drop_nulls

  • Change default of drop_nulls to True

  • Replace occurrences of dt.timezone.utc by ZoneInfo("UTC")

  • Improve release workflow using uv build and uv publish

  • Improve docker-publish workflow to use uv build

0.98.0 - 2024-12-09#

Added#

  • Add support for Python 3.13

Changed#

  • Breaking: Add new metadata model: Requests now use parameters instead of parameter and resolution e.g. parameters=[("daily", "kl")] instead of parameter="kl", resolution="daily"

Deprecated#

  • Deprecate Python 3.9

0.97.0 - 2024-10-06#

Fixed#

  • DWD Road: Use correct 15 minute resolution

0.96.0 - 2024-10-04#

Changed#

  • Bump polars to >=1.0.0

  • Change DWDMosmixValues and DWDDmoValues to follow the core _collect_station_parameter method

  • Allow only single issue retrieving with DWDMosmixRequest and DWDDmoRequest

0.95.1 - 2024-09-04#

Fixed#

  • Fix state column in station list creation for DWD Observation

0.95.0 - 2024-08-27#

Changed#

  • Make fastexcel non-optional

  • Remove upper dependency bounds

0.94.0 - 2024-08-10#

Added#

  • DWD Road: Add new station groups, log warning if no data is available, especially if the station group is one of the temporarily unavailable ones

Fixed#

  • Explorer: Fix DWD Mosmix request kwargs setup

0.93.0 - 2024-08-06#

Fixed#

  • Fix multiple Geosphere parameter and unit enums

  • Explorer: Fix wrap (parameter, dataset) in iterator

  • Adjust parameter typing of apis

0.92.0 - 2024-07-31#

Changed#

  • Rename parameters

    • units in parameter names are now directly following the number

    • temperature parameters now use meter instead of cm and also have a unit

    • e.g. TEMPERATURE_AIR_MEAN_2M, CLOUD_COVER_BETWEEN_2KM_TO_7KM, PROBABILITY_PRECIPITATION_HEIGHT_GT_0_0MM_LAST_6H

Fixed#

  • Bump pyarrow version to <18

  • Fix EaHydrology station list parsing

  • Rename EaHydrology to EAHydrology

  • Fix propagation of settings through EAHydrology values

0.91.0 - 2024-07-14#

Fixed#

  • Fix DWD Road api

0.90.0 - 2024-07-14#

Changed#

  • Bump environs to <12

Fixed#

  • Explorer: Fix json export

0.89.0 - 2024-07-03#

Fixed#

  • EaHydrology: Fix date parsing

  • Hubeau: Use correct frequency unit

  • Fix group by unpack

0.88.0 - 2024-06-14#

Added#

  • Allow passing --listen when running the explorer to specify the host and port

0.87.0 - 2024-06-06#

Added#

  • Add precipitation version

Changed#

  • Rename warming stripes to climate stripes

  • Replace custom Settings class with pydantic model

0.86.0 - 2024-06-01#

Changed#

  • Interpolation/Summary: Require start and end date

  • Enable interpolation and summarization for all services

Fixed#

  • Fix multiple issues with interpolation and summarization

0.85.0 - 2024-05-29#

Fixed#

  • Fix dropna argument for DWD Mosmix and DMO

  • Adjust DWD Mosmix and DMO kml reader to parse all parameters

  • Fix to_target(duckdb) for stations

  • Fix init of DwdDmoRequest

0.84.0 - 2024-05-15#

Fixed#

  • Fix DWD Obs station list parsing again

0.83.0 - 2024-04-26#

Added#

  • Allow wide shape with multiple datasets

0.82.0 - 2024-04-25#

Fixed#

  • Adjust column specs for DWD Observation station listing

  • Maintain order during deduplication

  • Change threshold in filter_by_name to 0.0…1.0

0.81.0 - 2024-04-09#

Added#

  • Warming stripes: Add option to enable/disable showing only active stations

0.80.0 - 2024-04-08#

Added#

  • Migrate explorer to streamlit

  • UI: Add warming stripes

Changed#

  • Explorer: Disable higher than daily resolutions for hosted version

0.79.0 - 2024-03-21#

Fixed#

  • Fix parsing of DWD Observation stations where name contains a comma

0.78.0 - 2024-03-09#

Added#

  • Docker: Install more extras

Fixed#

  • Cli/Restapi: Return empty values if no data is available

0.77.1 - 2024-03-08#

Fixed#

  • Fix setting NOAA GHCN-h date to UTC

0.77.0 - 2024-03-08#

Changed#

  • Refactor index caching -> Remove monkeypatch for fsspec

0.76.1 - 2024-03-03#

Fixed#

  • NOAA GHCN Hourly: Fix date parsing

0.76.0 - 2024-03-02#

Added#

  • Add NOAA GHCN Hourly API (also known as ISD)

0.75.0 - 2024-02-25#

Changed#

  • Remove join outer workaround for polars and use outer_coalesce instead

  • Allow duckdb for Python 3.12 again

  • Update REST API index layout

  • Bump polars to 0.20.10

  • Docker: Bump to Python 3.12

  • Docker: Reduce image size

0.74.0 - 2024-02-22#

Added#

  • Restapi: Add health check endpoint

0.73.0 - 2024-02-09#

Changed#

  • Set upper version bound for Python to 4.0

  • Make pandas optional

Fixed#

  • Add temporary workaround for bugged line in IMGW Hydrology station list

  • Fix parsing of dates in NOAA GHCN api

0.72.0 - 2024-01-13#

Added#

  • Allow for passing kwargs to the to_csv method

Fixed#

  • Fix issue when using force_ndarray_like=True with pint UnitRegistry

0.71.0 - 2024-01-03#

Added#

  • CI: Add support for Python 3.12

Fixed#

  • Fix issue with DWD DMO api

0.70.0 - 2023-12-30#

Added#

  • Docker: Enable interpolation in wetterdienst standard image

Changed#

  • Replace partial with lambda in most places

  • IMGW: Use ttl of 5 minutes for caching

Fixed#

  • IMGW Meteorology: Drop workaround for mixed up station list to fix issue

  • WSV Hydrology: Fix issue with station list characteristic values

  • DWD Observation: Remove redundant replace empty string in parser

  • NWS Observation: Read json data from bytes

  • EA Hydrology: Read json data from bytes

0.69.0 - 2023-12-18#

Added#

  • Restapi: Unify station parameter and add alias

  • Interpolation: Make maximum station distance per parameter configurable via settings

Fixed#

  • Result: Convert date to string only if dataframe is not empty

  • Restapi: Move restapi from /restapi to /api

0.68.0 - 2023-12-01#

Added#

  • Add example for comparing Mosmix forecast and Observation data

Fixed#

  • Fix parsing of DWD Observation 1 minute precipitation data

0.67.0 - 2023-11-17#

Changed#

  • Breaking: Use start_date and end_date instead of from_date and to_date

  • Use artificial station id for interpolation and summarization

  • Rename taken station ids columns for interpolation and summarization

0.66.1 - 2023-11-08#

Fixed#

  • Add workaround for issue with DWD Observation station lists

0.66.0 - 2023-11-07#

Added#

  • Add lead time argument - one of short, long - for DWD DMO to address two versions of icon

Changed#

  • Rework dict-like export formats and tests with extensive support for typing

  • Improve radar access

  • Style restapi landing page

  • Replace timezonefinder by tzfpy

Fixed#

  • Fix DWD DMO access again

0.65.0 - 2023-10-24#

Changed#

  • Cleanup error handling

  • Make cli work with DwdDmoRequest API

  • Cleanup cli docs

Fixed#

  • Fix DWD Observation API for 5 minute data

0.64.0 - 2023-10-12#

Added#

  • Export: Add support for InfluxDB 3.x

Changed#

  • Remove direct tzdata dependency

  • Replace pandas read_fwf calls by polars substitutes

0.63.0 - 2023-10-08#

Added#

  • [Streamlit] Add sideboard with settings

  • [Streamlit] Add station information json

  • [Streamlit] Add units to DataFrame view and plots

  • [Streamlit] Add JSON download

Fixed#

  • Return data correctly sorted

0.62.0 - 2023-10-07#

Changed#

  • Raise minimum version of polars to 0.19.6 due to breaking changes

Fixed#

  • Fix multiple issues with DwdObservationRequest API

0.61.0 - 2023-10-06#

Added#

  • Make parameters TEMPERATURE_AIR_MAX_200 and TEMPERATURE_AIR_MIN_200 summarizable/interpolatable

  • Add streamlit app for DWD climate stations

  • Add sql query function to streamlit app

Fixed#

  • Fix imgw meteorology station list parsing

  • Improve streamlit app plotting capabilities

  • Fix DWD DMO api

0.60.0 - 2023-09-16#

Added#

  • Add implementation for DWD DMO

0.59.3 - 2023-09-11#

Fixed#

  • Fix DWD solar date string correction

0.59.2 - 2023-09-06#

Fixed#

  • Fix documentation and unit conversion for Geosphere 10minute radiation data

0.59.1 - 2023-07-18#

Fixed#

  • Fix Geosphere parameter names

0.59.0 - 2023-07-30#

Changed#

  • Revise type hints for parameter and station_id

Fixed#

  • Fix Geosphere Observation parsing of dates in values -> thanks to @mhuber89 who discovered the bug and delivered a fix

0.58.1 - 2023-07-26#

Fixed#

  • Fix bug with Geosphere parameter case

0.58.0 - 2023-07-10#

Added#

  • Add retry to functions

  • Add IMGW Hydrology API

  • Add IMGW Meteorology API

Changed#

  • Rename FLOW to DISCHARGE and WATER_LEVEL to STAGE everywhere

0.57.1 - 2023-06-28#

Fixed#

  • Fix pyarrow dependency

0.57.0 - 2023-05-15#

Added#

  • Sources: Add DWD Road Weather data

Changed#

  • Breaking: Backend: Migrate from pandas to polars

    Switching to Polars may cause breaking changes for certain user-space code heavily using pandas idioms, because Wetterdienst now returns a Polars DataFrame. If you absolutely must use a pandas DataFrame, you can cast the Polars DataFrame to pandas by using the .to_pandas() method.

0.56.2 - 2023-05-11#

Fixed#

  • Fix Unit definition for RADIATION_GLOBAL

0.56.1 - 2023-05-10#

Fixed#

  • Fix JOULE_PER_SQUARE_METER definition from kilojoule/m2 to joule/m2

0.56.0 - 2023-05-02#

Fixed#

  • Update docker images

  • Fix now and now_local attributes on core class

0.55.2 - 2023-04-20#

Fixed#

  • Fix precipitation index interpolation

0.55.1 - 2023-04-17#

Fixed#

  • Fix setting empty values in DWD observation data

  • Fix DWD Radar composite path

0.55.0 - 2023-03-19#

Changed#

  • Drop Python 3.8 support

Fixed#

  • Explorer: Fix function calls

0.54.1 - 2023-03-13#

Fixed#

  • Fix DWD Observations 1 minute fileindex

0.54.0 - 2023-03-06#

Changed#

  • SCALAR: Improve handling skipping of empty stations, especially within .filter_by_rank function

  • Make all parameter levels equal for all weather services to reduce complexity in code

  • Change tidy option to shape, where shape="long" equals tidy=True and shape="wide" equals tidy=False

  • Naming things: All things “Scalar” are now called “Timeseries”, with settings prefix ts_

  • Drop some unnecessary enums

  • Rename Environment Agency to ea in subspace

Fixed#

  • CLI: Fix cli arguments with multiple items separated by comma (,)

  • Fix fileindex/metaindex for DWD Observation

  • DOCS: Fix precipitation height unit

  • DOCS: Fix examples with “recent” period

0.53.0 - 2023-02-07#

Added#

  • CLI: Add command line options wetterdienst --version and wetterdienst -v to display version number

Changed#

  • SCALAR: Change tidy option to be set to True if multiple different entire datasets are queried (in accordance with exporting results to json where multiple DataFrames are concatenated)

  • Further cleanups

  • Change Settings to be provided via initialization instead of having a singleton

0.52.0 - 2023-01-19#

Added#

  • Add Geosphere Observation implementation for Austrian meteorological data

Changed#

  • RADAR: Clean up code and merge access module into api

Fixed#

  • DWD MOSMIX: Fix parsing station list

  • DWD MOSMIX: Fix converting degrees minutes to decimal degrees within the stations list. The previous method did not produce correct results on negative lat/lon values.

0.51.0 - 2023-01-01#

Added#

  • Update wetterdienst explorer with clickable stations and slightly changed layout

Fixed#

  • Improve radar tests and certain dict comparisons

  • Fix problem with numeric column names in method gain_of_value_pairs

0.50.0 - 2022-12-03#

Added#

  • Interpolation/Summary: Now the queried point can be an existing station laying on the border of the polygon that it’s being checked against

  • UI: Add interpolate/summarize methods as subspaces

Changed#

  • Geo: Change function signatures to use latlon tuple instead of latitude and longitude

  • Geo: Enable querying station id instead of latlon within interpolate and summarize

  • Geo: Allow using values of nearby stations instead of interpolated values

Fixed#

  • Fix timezone related problems when creating full date range

0.49.0 - 2022-11-28#

Added#

  • Add NOAA NWS Observation API

  • Add Eaufrance Hubeau API for French river data (flow, stage)

Fixed#

  • Fix bug where duplicates of acquired data would be dropped regarding only the date but not the parameter

  • Fix NOAA GHCN access issues with timezones and empty data

0.48.0 - 2022-11-11#

Added#

  • Add example to dump DWD climate summary observations in zarr with help of xarray

Fixed#

  • Fix DWD Observation urban_pressure dataset access (again)

0.47.1 - 2022-10-23#

Fixed#

  • Fix DWD Observation urban_pressure dataset access

0.47.0 - 2022-10-14#

Added#

  • Add support for reading DWD Mosmix-L all stations files

0.46.0 - 2022-10-14#

Added#

  • Add summary of multiple weather stations for a given lat/lon point (currently only works for DWDObservationRequest)

0.45.2 - 2022-10-11#

Fixed#

  • Make DwdMosmixRequest return data according to start and end date

0.45.1 - 2022-10-10#

Fixed#

  • Fix passing an empty DataFrame through unit conversion and ensure set of columns

0.45.0 - 2022-09-22#

Added#

  • Add interpolation of multiple weather stations for a given lat/lon point (currently only works for DWDObservationRequest)

Fixed#

  • Fix access of DWD Observation climate_urban datasets

0.44.0 - 2022-09-18#

Added#

  • Add DWD Observation climate_urban datasets

Changed#

  • Slightly adapt the conversion function to satisfy linter

  • Adjust Docker images to fix build problems, now use python 3.10 as base

  • Adjust NOAA sources to AWS as NCEI sources currently are not available

  • Make explorer work again for all services setting up Period enum classes instead of single instances of Period for period base

Fixed#

  • Fix parameter names:

    • we now use consistently INDEX instead of INDICATOR

    • index and form got mixed up with certain parameters, where actually index was measured/given but not the form

    • global radiation was mistakenly named radiation_short_wave_direct at certain points, now it is named correctly

0.43.0 - 2022-09-05#

Added#

  • Add DWD Observation climate_urban datasets

Changed#

  • Use lxml.iterparse to reduce memory consumption when parsing DWD Mosmix files

  • Fix Settings object instantiation

  • Change logging level for Settings.cache_disable to INFO

0.42.1 - 2022-08-25#

Fixed#

  • Fix DWD Mosmix station locations

0.42.0 - 2022-08-22#

Changed#

  • Move cache settings to core wetterdienst Settings object

Fixed#

  • Fix two parameter names

0.41.1 - 2022-08-04#

Fixed#

  • Fix correct mapping of periods for solar daily data which should also have Period.HISTORICAL besides Period.RECENT

0.41.0 - 2022-07-24#

Fixed#

  • Fix passing through of empty dataframe when trying to convert units

0.40.0 - 2022-07-10#

Changed#

  • Update dependencies

0.39.0 - 2022-06-27#

Changed#

  • Update dependencies

0.38.0 - 2022-06-09#

Added#

  • Add DWD Observation 5 minute precipitation dataset

  • Add test to compare actually provided DWD observation datasets with the ones we made available with wetterdienst

Fixed#

  • Fix one particular dataset which was not correctly included in our DWD observations resolution-dataset-mapping

0.37.0 - 2022-06-06#

Fixed#

  • Fix EA hydrology access

  • Update ECCC observation methods to acquire station listing

0.36.0 - 2022-05-31#

Fixed#

  • Fix using shared FSSPEC_CLIENT_KWARGS everywhere

0.35.0 - 2022-05-29#

Added#

  • Add option to skip empty stations (option tidy must be set)

  • Add option to drop empty rows (value is NaN) (option tidy must be set)

0.34.0 - 2022-05-22#

Added#

  • Add UKs Environment Agency hydrology API

0.33.0 - 2022-05-14#

Fixed#

  • Fix acquisition of DWD weather phenomena data

  • Set default encoding when reading data from DWD with pandas to ‘latin1’

  • Fix typo in EcccObservationResolution

0.32.4 - 2022-05-14#

Fixed#

  • Fix acquisition of historical DWD radolan data that comes in archives

0.32.3 - 2022-05-12#

Fixed#

  • Fix creation of empty DataFrame for missing station ids

  • Fix creation of empty DataFrame for annual data

0.32.2 - 2022-05-10#

Fixed#

  • Revert ssl option

0.32.1 - 2022-05-09#

Fixed#

  • Circumvent DWD server ssl certificate problem by temporary removing ssl verification

0.32.0 - 2022-04-24#

Added#

  • Add implementation of WSV Pegelonline service

Changed#

  • Clean up code at several places

Fixed#

  • Fix ECCC observations access

0.31.1 - 2022-04-03#

Fixed#

  • Change integer dtypes in untidy format to float to prevent loosing information when converting units

0.31.0 - 2022-03-29#

Changed#

  • Improve integrity of dataset, parameter and unit enumerations with further tests

  • Change source of hourly sunshine duration to dataset sun

  • Change source of hourly total cloud cover (+indicator) to dataset cloudiness

0.30.1 - 2022-03-03#

Fixed#

  • Fix naming of sun dataset

  • Fix DWD Observation monthly test

0.30.0 - 2022-02-27#

Fixed#

  • Fix monthly/annual data of DWD observations

0.29.0 - 2022-02-27#

Added#

  • Add datasets EXTREME_WIND (subdaily) and MORE_WEATHER_PHENOMENA (daily)

  • Add support for Python 3.10

Changed#

  • Simplify parameters using only one enumeration for flattened and detailed parameters

  • Rename dataset SUNSHINE_DURATION to SUN to avoid complications with similar named parameter and dataset

  • Rename parameter VISIBILITY to VISIBILITY_RANGE

Removed#

  • Drop Python 3.7 support

0.28.0 - 2022-02-19#

Added#

  • Extend explorer to use all implemented APIs

Fixed#

  • Fix cli/restapi: return json and use NULL instead of NaN

0.27.0 - 2022-02-16#

Added#

  • Add support for Python 3.10

Fixed#

  • Fix missing station ids within values result

  • Add details about time interval for NOAA GHCN stations

  • Fix falsely calculated station distances

Removed#

  • Drop support for Python 3.7

0.26.0 - 2022-02-06#

Added#

  • Add Wetterdienst.Settings to manage general settings like tidy, humanize,…

  • Instead of “kind” use “network” attribute to differ between different data products of a provider

Changed#

  • Rename DWD forecast to mosmix

Fixed#

  • Change data source of NOAA GHCN after problems with timeouts when reaching the server

  • Fix problem with timezone conversion when having dates that are already timezone aware

0.25.1 - 2022-01-30#

Fixed#

  • Fix cli error with upgraded click ^8.0 where default False would be converted to “False”

0.25.0 - 2022-01-30#

Fixed#

  • Fix access to ECCC stations listing using Google Drive storage

  • Remove/replace caching entirely by fsspec (+monkeypatch)

  • Fix bug with DWD intervals

0.24.0 - 2022-01-24#

Added#

  • Add NOAA GHCN API

Fixed#

  • Fix radar index by filtering out bz2 files

0.23.0 - 2021-11-21#

Fixed#

  • Add missing positional dataset argument for _create_empty_station_parameter_df

  • Timestamps of 1 minute / 10 minutes DWD data now have a gap hour at the end of year 1999 due to timezone shifts

0.22.0 - 2021-10-01#

Added#

  • Introduce core Parameter enum with fixed set of parameter names. Several parameters may have been renamed!

  • Add FSSPEC_CLIENT_KWARGS variable at wetterdienst.util.cache for passing extra settings to fsspec request client

0.21.0 - 2021-09-10#

Changed#

  • Start migrating from dogpile.cache to filesystem_spec

0.20.4 - 2021-08-07#

Added#

  • Enable selecting a parameter precisely from a dataset by passing a tuple like [(“precipitation_height”, “kl”)] or [(“precipitation_height”, “precipitation_more”)], or for cli/restapi use “precipitation_height/kl”

  • Rename wetterdienst show to wetterdienst info, make version accessible via CLI with wetterdienst version

Fixed#

  • Bug when querying an entire DWD dataset for 10_minutes/1_minute resolution without providing start_date/end_date, which results in the interval of the request being None

  • Test of restapi with recent period

  • Get rid of pandas performance warning from DWD Mosmix data

0.20.3 - 2021-07-15#

Fixed#

  • Bugfix acquisition of DWD radar data

  • Adjust DWD radar composite parameters to new index

0.20.2 - 2021-06-26#

Fixed#

  • Bugfix tidy method for DWD observation data

0.20.1 - 2021-06-26#

Changed#

  • Update readme on sandbox developer installation

Fixed#

  • Bugfix show method

0.20.0 - 2021-06-23#

Added#

  • Change cli base to click

  • Add support for wetterdienst core API in cli and restapi

  • Export: Use InfluxDBClient instead of DataFrameClient and improve connection handling with InfluxDB 1.x

  • Export: Add support for InfluxDB 2.x

  • Add show() method with basic information on the wetterdienst instance

Fixed#

  • Fix InfluxDB export by skipping empty fields

0.19.0 - 2021-05-14#

Changed#

  • Make tidy method a abstract core method of Values class

Fixed#

  • Fix DWD Mosmix generator to return all contained dataframes

0.18.0 - 2021-05-04#

Added#

  • Add origin and si unit mappings to services

  • Use argument “si_units” in request classes to convert origin units to si, set to default

  • Improve caching behaviour by introducing optional WD_CACHE_DIR and WD_CACHE_DISABLE environment variables. Thanks, @meteoDaniel!

  • Add baseline test for ECCC observations

  • Add DWD Observation hourly moisture to catalogue

0.17.0 - 2021-04-08#

Added#

  • Add capability to export data to Zarr format

  • Add Wetterdienst Explorer UI. Thanks, @meteoDaniel!

  • Add MAC ARM64 support with dependency restrictions

  • Add support for stations filtering via bbox and name

  • Add support for units in distance filtering

Changed#

  • Rename station_name to name

  • Rename filter methods to .filter_by_station_id and .filter_by_name, use same convention for bbox, filter_by_rank ( previously nearby_number), filter_by_distance (nearby_distance)

Fixed#

  • Radar: Verify HDF5 responses instead of returning invalid data

  • Mosmix: Use cached stations to improve performance

0.16.1 - 2021-03-31#

Changed#

  • Make .discover return lowercase parameters and datasets

0.16.0 - 2021-03-29#

Added#

  • Add capability to export to Feather- and Parquet-files to I/O subsystem

  • Add --reload parameter to wetterdienst restapi for supporting development

  • Add Environment and Climate Change Canada API

Changed#

  • Use direct mapping to get a parameter set for a parameter

  • Rename DwdObservationParameterSet to DwdObservationDataset as well as corresponding columns

  • Merge metadata access into Request

  • Repair CLI and I/O subsystem

  • Improve spreadsheet export

  • Increase I/O subsystem test coverage

  • Make all DWD observation field names lowercase

  • Make all DWD forecast (mosmix) field names lowercase

  • Rename humanize_parameters to humanize and tidy_data to tidy

Deprecated#

  • Deprecate support for Python 3.6

Fixed#

  • Radar: Use OPERA as data source for improved list of radar sites

0.15.0 - 2021-03-07#

Added#

  • Add StationsResult and ValuesResult to allow for new workflow and connect stations and values request

  • Add accessor .values to Stations class to get straight to values for a request

  • Add top-level API

Fixed#

  • Fix issue with Mosmix station location

0.14.1 - 2021-02-21#

Fixed#

  • Fix date filtering of DWD observations, where accidentally an empty dataframe was returned

0.14.0 - 2021-02-05#

Added#

  • DWD: Add missing radar site “Emden” (EMD, wmo=10204)

Changed#

  • Change key STATION_HEIGHT to HEIGHT, LAT to LATITUDE, LON to LONGITUDE

  • Rename “Data” classes to “Values”

  • Make arguments singular

Fixed#

  • Mosmix stations: fix longitudes/latitudes to be decimal degrees (before they were degrees and minutes)

0.13.0 - 2021-01-21#

Added#

  • Create general Resolution and Period enumerations that can be used anywhere

  • Create a full dataframe even if no values exist at requested time

  • Add further attributes to the class structure

  • Make dates timezone aware

  • Restrict dates to isoformat

0.12.1 - 2020-12-29#

Fixed#

  • Fix 10minutes file index interval range by adding timezone information

0.12.0 - 2020-12-23#

Changed#

  • Move more functionality into core classes

  • Add more attributes to the core e.g. source and timezone

  • Make dates of internal data timezone aware, set start date and end date to UTC

  • Add issue date to Mosmix class that actually refers to the Mosmix run instead of start date and end date

  • Use Result object for every data related return

  • In accordance with typical naming conventions, DWDObservationSites is renamed to DWDObservationStations, the same is applied to DWDMosmixSites

  • The name ELEMENT is removed and replaced by parameter while the actual parameter set e.g. CLIMATE_SUMMARY is now found under PARAMETER_SET

Removed#

  • Remove StorageAdapter and its dependencies

  • Methods self.collect_data() and self.collect_safe() are replaced by self.query() and self.all() and will deprecate at some point

0.11.1 - 2020-12-10#

Fixed#

  • Bump h5py to version 3.1.0 in order to satisfy installation on Python 3.9

0.11.0 - 2020-12-04#

Added#

  • Upgrade Docker images to Python 3.8.6

  • Radar data: Add non-RADOLAN data acquisition

Changed#

  • Change wherever possible column type to category

  • Increase efficiency by downloading only historical files with overlapping dates if start_date and end_date are given

  • Use periods dynamically depending on start and end date

Fixed#

  • InfluxDB export: Fix export in non-tidy format (#230). Thanks, @wetterfrosch!

  • InfluxDB export: Use “quality” column as tag (#234). Thanks, @wetterfrosch!

  • InfluxDB export: Use a batch size of 50000 to handle larger amounts of data (#235). Thanks, @wetterfrosch!

  • Update radar examples to use wradlib>=1.9.0. Thanks, @kmuehlbauer!

  • Fix inconsistency within 1 minute precipitation data where historical files have more columns

  • Improve DWD PDF parser to extract quality information and select language. Also, add an example at example/dwd_describe_fields.py as well as respective documentation.

  • Move intermediate storage of HDF out of data collection

  • Fix bug with date filtering for empty/no station data for a given parameter

0.10.1 - 2020-11-14#

Fixed#

  • Upgrade to dateparser-1.0.0. Thanks, @steffen746, @noviluni and @Gallaecio! This fixes a problem with timezones on Windows. The reason is that Windows has no zoneinfo database and tzlocal switched from pytz to tzinfo. https://github.com/earthobservations/wetterdienst/issues/222

0.10.0 - 2020-10-26#

Added#

  • CLI: Obtain “–tidy” argument from command line

  • Extend MOSMIX support to equal the API of observations

  • DWDObservationData now also takes an individual parameter independent of the pre-configured DWD datasets by using DWDObservationParameter or similar names e.g. “precipitation_height”

  • Newly introduced coexistence of DWDObservationParameter and DWDObservationParameterSet to address parameter sets as well as individual parameters

Changed#

  • DWDObservationSites now filters for those stations which have a file on the server

  • Imports are changed to submodule thus now one has to import everything from wetterdienst.dwd

  • Renaming of time_resolution to resolution, period_type to period, several other relabels

0.9.0 - 2020-10-09#

Added#

  • Rename DWDStationRequest to DWDObservationData

  • Add DWDObservationSites API wrapper to acquire station information

  • Move discover_climate_observations to DWDObservationMetadata.discover_parameters

  • Add PDF-based DWDObservationMetadata.describe_fields()

Changed#

  • Large refactoring

  • Make period type in DWDObservationData and cli optional

  • Activate SQL querying again by using DuckDB 0.2.2.dev254. Thanks, @Mytherin!

Fixed#

  • Fix coercion of integers with nans

  • Fix problem with storing IntegerArrays in HDF

0.8.0 - 2020-09-25#

Added#

  • Add TTL-based persistent caching using dogpile.cache

  • Add example/radolan.py and adjust documentation

  • Export dataframe to different data sinks like SQLite, DuckDB, InfluxDB and CrateDB

  • Query results with SQL, based on in-memory DuckDB

  • Split get_nearby_stations into two functions, get_nearby_stations_by_number and get_nearby_stations_by_distance

  • Add MOSMIX client and parser. Thanks, @jlewis91!

  • Add basic HTTP API

0.7.0 - 2020-09-16#

Added#

  • Add test for Jupyter notebook

  • Add function to discover available climate observations (time resolution, parameter, period type)

  • Make the CLI work again and add software tests to prevent future havocs

  • Use Sphinx Material theme for documentation

Fixed#

  • Fix typo in enumeration for TimeResolution.MINUTES_10

0.6.0 - 2020-09-07#

Changed#

  • Enhance usage of get_nearby_stations to check for availability

  • Output of get_nearby_stations is now a slice of meta_data DataFrame output

0.5.0 - 2020-08-27#

Added#

  • Add RADOLAN support

  • Change module and function naming in accordance with RADOLAN

0.4.0 - 2020-08-03#

Added#

  • Extend DWDObservationData to take multiple parameters as request

  • Add documentation at readthedocs.io

  • [cli] Adjust methods to work with multiple parameters

0.3.0 - 2020-07-26#

Added#

  • Add option for data collection to tidy the DataFrame (properly reshape) with the “tidy_data” keyword and set it to be used as default

Changed#

  • Establish code style black

  • Setup nox session that can be used to run black via nox -s black for one of the supported Python versions

Fixed#

  • Fix integer type casting for cases with nans in the column/series

  • Fix humanizing of column names for tidy data

0.2.0 - 2020-07-23#

Added#

  • [cli] Add geospatial filtering by distance.

  • [cli] Filter stations by station identifiers.

  • [cli] Add GeoJSON output format for station data.

  • Improvements to parsing high resolution data by setting specific datetime formats and changing to concurrent.futures

Changed#

  • Change column name mapping to more explicit one with columns being individually addressable

  • Add full column names for every individual parameter

  • More specific type casting for integer fields and string fields

Fixed#

  • Fix na value detection for cases where cells have leading and trailing whitespace

0.1.1 - 2020-07-05#

Added#

  • [cli] Add geospatial filtering by number of nearby stations.

  • Simplify release pipeline

  • Small updates to readme

Changed#

  • Parameter, time resolution and period type can now also be passed as strings of the enumerations e.g. “ climate_summary” or “CLIMATE_SUMMARY” for Parameter.CLIMATE_SUMMARY

  • Enable selecting nearby stations by distance rather than by number of stations

Fixed#

  • Change updating “parallel” argument to be done after parameter parsing to prevent mistakenly not found parameter

  • Remove find_all_match_strings function and extract functionality to individual operations

0.1.0 - 2020-07-02#

Added#

  • Initial release

  • Update README.md

  • Update example notebook

  • Add Gh Action for release

  • Rename library