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:
Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.
Unreleased#
0.123.0 - 2026-06-18#
Fixed#
[DWD Observation]Skip periods where all file downloads fail (emptyfilenames_and_files) before passing to the parser, preventing apolars.exceptions.InvalidOperationErrorfrompl.concat(..., how="align")caused by a schema-lessLazyFramebeing mixed with valid ones.Reduce stamina retry attempts in
download_filefrom 3 to 2 to limit worst-case wait time per file on persistent network failures.Add a default
aiohttp.ClientTimeout(total=30)tofsspec_client_kwargsinSettingsso HTTP connections time out after 30 seconds instead of hanging indefinitely.Wrap bare
inttimeouts inaiohttp.ClientTimeoutinsideHTTPFileSystem.__init__so that aiohttp >= 3.9 (which rejects plain int timeouts) works correctly withfsspec_client_kwargs.
0.122.0 - 2026-06-07#
Fixed#
Fix
download_fileretry mechanism: the previous@stamina.retrydecorator was broken (theon=predicate checkedClientResponseinstead of an exception, and all errors were swallowed before stamina could see them). Replaced withstamina.retry_contextwrapping thefilesystem.cat_filecall directly. Retries are now triggered onFileNotFoundError,FSTimeoutError,ClientConnectorError,ClientResponseErrorandClientPayloadError; all exhausted errors are returned asFileobjects rather than propagated.[DWD Dmo]Convert latitude and longitude from degrees and minutes to decimal degrees usingconvert_dm_to_dd.Fix station history parsing and add tests
0.121.1 - 2026-05-26#
Fixed#
Propagate
Settings.use_certifithroughNetworkFilesystemManager.getand 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 globaluse_certifisetting. 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_durationwas silently dropped by bothinterpolateandsummarizebecause it was absent frominterpolatable_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-dateoptions added to thevalues,interpolate, andsummarizecommands as a user-friendly alternative to the--dateISO-8601 interval syntax. Passing only--start-datetreats it as a single-point date; passing only--end-datelikewise.--dateand--start-date/--end-dateare mutually exclusive and raise aUsageErrorwhen combined.CLI: comprehensive
helptext added to all options across thevalues,stations,interpolate, andsummarizecommands, 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 addingprocessor=fuzz_utils.default_processto the rapidfuzz call.NOAA GHCN hourly: adapted to upstream format changes — the station list CSV now contains non-integer values in the
WMO_IDcolumn (e.g."open"), and the per-station PSV files renamed the station identifier column fromStation_IDtoSTATION.DWD observation requests no longer raise
MetaFileNotFoundErrorwhen 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 indownload_fileand stored asNoInternetErrorin theFileobject. All provider call sites return emptyDataFrame/LazyFramevalues accordingly. Fixes #1624.NetworkFilesystemManagernow usesthreading.local()instead of a class-leveldictso each thread inThreadPoolExecutor-based parallel downloads gets its ownWholeFileCacheFileSysteminstance, eliminating a race condition in the in-memory metadata cache that causedTypeError: cannot unpack non-iterable bool objectatfsspec/implementations/cached.py:716.Reverted the directory-listing cache from
shelved-cache+cachetoolsback todiskcache.shelved-cachewraps Python’sdbm/shelve, which is not safe for concurrent access; parallel pytest-xdist workers sharing the same cache directory caused_dbm.errorcascades and cascading test failures.diskcacheuses SQLite and is both thread- and process-safe.FileDirCachemapping semantics corrected:__getitem__now raisesKeyErroron a cache miss (previously returnedNone) and short-circuits whenuse_listings_cacheisFalse;__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#
diskcacheadvisory GHSA-w8v5-vhqr-4h9v (CVE-2025-69872, pickle deserialization) acknowledged and suppressed inpysentryanddependency-review. Exploitation requires write access to the local user cache directory, which is not a realistic attack vector for this project.lxmlupgraded to 6.1.0, resolving GHSA-vfmq-68hx-4jfw (local file read viaresolve_entities).
Changed#
Station name filtering now uses
token_sort_ratioinstead oftoken_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_namelowered from0.9to0.8, allowing single-character typos and common shorthands to match while maintaining 100% precision.name_thresholdis now exposed in the CLI (--name-threshold) for thestationsandvaluescommands, and wired throughStationsRequest/ValuesRequestmodels so the REST API/api/stationsand/api/valuesendpoints honour it automatically. All previously stale0.9defaults in stripes endpoints updated to0.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.caOGC API. Updates parameter metadata to match new column naming, rewrites wide-to-long pivoting to handle*_flagquality 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 fromParametertoCSV 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
diskcachetocachetoolsandshelved-cachefor caching functionality. The new implementation usesshelved_cache.PersistentCachewrappingcachetools.TTLCachefor 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_certifisetting to use certifi certificate bundle instead of system certificates for HTTPS connections. Default isFalsefor backward compatibility. Can be enabled viaSettings(use_certifi=True)or environment variableWD_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_euand minor fixes
0.114.1 - 2025-11-01#
Fixed#
Fix global import of duckdb exception in
to_targetmethod
0.114.0 - 2025-10-31#
Added#
[DWD Obs] Use utf8 encoding for parsing data
Add
if_existsargument toto_targetUse 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
WholeFileCacheFileSystemfor cachingImprove 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_dtypein fileindex functionSet
return_dtypefor polars functions
Changed#
Pin zarr to
>=3.1;python_version>=3.11Docker: 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_filemore robustOverhaul docs switching to
sphinxandmyst-parserImprove exception handling in restapi
Improve download of files
Changed#
Drop upper version pins for fsspec and tzdata
Introduce
wetterdienst.model, streamline othersBump 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.0due to issues
0.109.0 - 2025-06-03#
Changed#
Split
coordinatesandbboxinto separate argumentsBump 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.parseFix docker manifest
0.105.0 - 2025-03-01#
Added#
Add user agent to default
fsspec_client_kwargsAdjust 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+numpytopyarrowfor location queryingRemove 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
plottingandmatplotlibInterpolation/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 offirst()
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
°Cfor temperatures. Also, length units are now separated inlength_short,length_mediumandlength_longto 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=Falsethat allows to prevent building a complete time series
Changed#
Docs: Change to markdown using mkdocs
Settings: Switch to
pydantic_settingsfor settings managementImprove wetterdienst api class
Dissolve wetterdienst notebook into examples
Use
duckdb.sqland ask only for WHERE clauseUpdate restapi annotations
Use
Settingsin restapi/cli core functionsRestapi/Cli: Use pydantic models for request parameters
Rename
dropnatodrop_nullsChange default of
drop_nullsto TrueReplace occurrences of
dt.timezone.utcbyZoneInfo("UTC")Improve release workflow using
uv buildanduv publishImprove 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
parametersinstead ofparameterandresolutione.g.parameters=[("daily", "kl")]instead ofparameter="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.0Change
DWDMosmixValuesandDWDDmoValuesto follow the core_collect_station_parametermethodAllow only single issue retrieving with
DWDMosmixRequestandDWDDmoRequest
0.95.1 - 2024-09-04#
Fixed#
Fix
statecolumn 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 iteratorAdjust 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
EaHydrologytoEAHydrologyFix propagation of settings through
EAHydrologyvalues
0.91.0 - 2024-07-14#
Fixed#
Fix DWD Road api
0.90.0 - 2024-07-14#
Changed#
Bump
environsto <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
--listenwhen 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
dropnaargument for DWD Mosmix and DMOAdjust DWD Mosmix and DMO kml reader to parse all parameters
Fix
to_target(duckdb)for stationsFix 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
wideshape 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_nameto 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_coalesceinsteadAllow 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_csvmethod
Fixed#
Fix issue when using
force_ndarray_like=Truewith 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
tidyoption toshape, whereshape="long"equalstidy=Trueandshape="wide"equalstidy=FalseNaming 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 --versionandwetterdienst -vto 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.cachetofilesystem_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 showtowetterdienst info, make version accessible via CLI withwetterdienst 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_DIRandWD_CACHE_DISABLEenvironment 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
--reloadparameter towetterdienst restapifor supporting developmentAdd 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
h5pyto 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.pyas 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
tzlocalswitched frompytztotzinfo. 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
DWDStationRequesttoDWDObservationDataAdd
DWDObservationSitesAPI wrapper to acquire station informationMove
discover_climate_observationstoDWDObservationMetadata.discover_parametersAdd 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.pyand adjust documentationExport 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