In [1]: from wetterdienst.ui.cli import wetterdienst_help
In [2]: print(wetterdienst_help)
Usage
=====
wetterdienst (-h | --help) Display this page
wetterdienst --version Display the version number
wetterdienst cache Display cache location
wetterdienst info Display project information
Overview
========
This section roughly outlines the different families of command line
options. More detailed information is available within subsequent sections
of this page.
Coverage information:
wetterdienst about coverage --provider=<provider> --network=<network>
[--parameter=<parameter>] [--resolution=<resolution>] [--period=<period>]
wetterdienst about fields --provider=<provider> --network=<network>
--parameter=<parameter> --resolution=<resolution> --period=<period> [--language=<language>]
Data acquisition:
wetterdienst {stations,values}
# Selection options
--provider=<provider> --network=<network> --parameter=<parameter> --resolution=<resolution> [--period=<period>]
# Filtering options
--all
--date=<date>
--station=<station>
--name=<name>
--coordinates=<latitude,longitude> --rank=<rank>
--coordinates=<latitude,longitude> --distance=<distance>
--bbox=<left,lower,right,top>
--sql=<sql>
# Output options
[--format=<format>] [--pretty]
[--shape=<shape>] [--humanize] [--si-units]
[--dropna] [--skip_empty] [--skip_threshold=0.95]
# Export options
[--target=<target>]
Data computation:
wetterdienst {interpolate,summarize}
# Selection options
--provider=<provider> --network=<network> --parameter=<parameter> --resolution=<resolution> --date=<date> [--period=<period>]
# Filtering options
--station=<station>
--coordinates=<latitude,longitude>
# Output options
[--format=<format>] [--pretty]
[--shape=<shape>] [--humanize] [--si-units]
[--dropna] [--skip_empty] [--skip_threshold=0.95]
# Export options
[--target=<target>]
Options
=======
This section explains all command line options in detail.
Selection options:
--provider The data provider / organisation.
Examples: dwd, eccc, noaa, wsv, ea, eaufrance, nws, geosphere
--network The network of the data provider
Examples: observation, mosmix, radar, ghcn, pegel, hydrology
--parameter Data parameter or parameter set
Examples: kl, precipitation_height
--resolution Dataset resolution / product
Examples: annual, monthly, daily, hourly, minute_10, minute_1
For DWD MOSMIX: small, large
[--period] Dataset period
Examples: "historical", "recent", "now"
Filtering options:
--all Flag to process all data
--date Date for filtering data
A single date(time) or interval in RFC3339/ISO8601 format.
See also:
- https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations
- https://en.wikipedia.org/wiki/ISO_8601#Time_intervals
--name Name of station
--station Comma-separated list of station identifiers
--coordinates Geolocation point for geospatial filtering
Format: <latitude,longitude>
--rank Rank of nearby stations when filtering by geolocation point
To be used with `--coordinates`.
--distance Maximum distance in km when filtering by geolocation point
To be used with `--coordinates`.
--bbox Bounding box for geospatial filtering
Format: <lon1,lat1,lon2,lat2> aka. <left,bottom,right,top>
--sql SQL filter statement
--sql-values SQL filter to apply to values
Transformation options:
--shape Shape of DataFrame, "wide" or "long"
--humanize Humanize parameters
--si-units Convert to SI units
--skip_empty Skip empty stations according to ts_skip_threshold
--skip_threshold Skip threshold for a station to be empty (0 < ts_skip_threshold <= 1) [Default: 0.95]
--dropna Whether to drop nan values from the result
Output options:
--format Output format. [Default: json]
--language Output language. [Default: en]
--pretty Pretty-print JSON
Export options:
--target Output target for storing data into different data sinks.
Other options:
-h --help Show this screen
--debug Enable debug messages
--listen HTTP server listen address.
--reload Run service and dynamically reload changed files
Examples
========
This section includes example invocations to get you started quickly. Most
of them can be used verbatim in your terminal. For displaying JSON output
more conveniently, you may want to pipe the output of Wetterdienst into the
excellent ``jq`` program, which can also be used for subsequent filtering
and transforming.
Acquire observation stations:
# Get list of all stations for daily climate summary data in JSON format
wetterdienst stations --provider=dwd --network=observation --parameter=kl --resolution=daily --all
# Get list of all stations in CSV format
wetterdienst stations --provider=dwd --network=observation --parameter=kl --resolution=daily --all --format=csv
# Get list of specific stations
wetterdienst stations --provider=dwd --network=observation --resolution=daily --parameter=kl --station=1,1048,4411
# Get list of specific stations in GeoJSON format
wetterdienst stations --provider=dwd --network=observation --resolution=daily --parameter=kl --station=1,1048,4411 --format=geojson
Acquire MOSMIX stations:
wetterdienst stations --provider=dwd --network=mosmix --parameter=large --resolution=large --all
wetterdienst stations --provider=dwd --network=mosmix --parameter=large --resolution=large --all --format=csv
Acquire observation data:
# Get daily climate summary data for specific stations, selected by name and station id
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--name=Dresden-Hosterwitz
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--station=1048,4411
# Get daily climate summary data for specific stations in CSV format
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--station=1048,4411
# Get daily climate summary data for specific stations in long format
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--station=1048,4411 --shape="long"
# Limit output to specific date
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --date=2020-05-01 \
--station=1048,4411
# Limit output to specified date range in ISO-8601 time interval format
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily \
--date=2020-05-01/2020-05-05 --station=1048
# The real power horse: Acquire data across historical+recent data sets
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily \
--date=1969-01-01/2020-06-11 --station=1048
# Acquire single data point for month 2020-05
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=monthly --tidy \
--date=2020-05 --station=1048
# Acquire monthly data from 2017 to 2019
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=monthly --tidy \
--date=2017/2019 --station=1048,4411
# Acquire annual data for 2019
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=annual --tidy \
--date=2019 --station=1048,4411
# Acquire annual data from 2010 to 2020
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=annual --tidy \
--date=2010/2020 --station=1048
# Acquire hourly data for a given time range
wetterdienst values --provider=dwd --network=observation --parameter=air_temperature --resolution=hourly \
--date=2020-06-15T12/2020-06-16T12 --station=1048,4411
# Acquire data for multiple given parameters
wetterdienst values --provider=dwd --network=observation \
--parameter=precipitation_height/precipitation_more,temperature_air_mean_2m/air_temperature \
--resolution=hourly --date=2020-06-15T12/2020-06-16T12 --station=1048,4411
Acquire MOSMIX data:
wetterdienst values --provider=dwd --network=mosmix --parameter=ttt,ff --resolution=large --station=65510
Acquire DMO data:
wetterdienst values --provider=dwd --network=dmo --parameter=ttt --resolution=icon_eu --station=65510
# short lead time
wetterdienst values --provider=dwd --network=dmo --parameter=ttt --resolution=icon --station=65510 --lead-time=short
# long lead time
wetterdienst values --provider=dwd --network=dmo --parameter=ttt --resolution=icon --station=65510 --lead-time=long
Compute data:
# Compute daily interpolation of precipitation for specific station selected by id
wetterdienst interpolate --provider=dwd --network=observation --parameter=precipitation_height --resolution=daily \
--date=2020-06-30 --station=01048
# Compute daily interpolation of precipitation for specific station selected by coordinates
wetterdienst interpolate --provider=dwd --network=observation --parameter=precipitation_height --resolution=daily \
--date=2020-06-30 --coordinates=49.9195,8.9671
# Compute daily summary of precipitation for specific station selected by id
wetterdienst summarize --provider=dwd --network=observation --parameter=precipitation_height --resolution=daily \
--date=2020-06-30 --station=01048
# Compute daily summary data of precipitation for specific station selected by coordinates
wetterdienst summarize --provider=dwd --network=observation --parameter=precipitation_height --resolution=daily \
--date=2020-06-30 --coordinates=49.9195,8.9671
Geospatial filtering:
# Acquire stations and readings by geolocation, request specific number of nearby stations.
wetterdienst stations --provider=dwd --network=observation --resolution=daily --parameter=kl --period=recent \
--coordinates=49.9195,8.9671 --rank=5
wetterdienst values --provider=dwd --network=observation --resolution=daily --parameter=kl --period=recent \
--coordinates=49.9195,8.9671 --rank=5 --date=2020-06-30
# Acquire stations and readings by geolocation, request stations within specific distance.
wetterdienst stations --provider=dwd --network=observation --resolution=daily --parameter=kl --period=recent \
--coordinates=49.9195,8.9671 --distance=25
wetterdienst values --provider=dwd --network=observation --resolution=daily --parameter=kl --period=recent \
--coordinates=49.9195,8.9671 --distance=25 --date=2020-06-30
SQL filtering:
# Find stations by state.
wetterdienst stations --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--sql="SELECT * FROM data WHERE state='Sachsen'"
# Find stations by name (LIKE query).
wetterdienst stations --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--sql="SELECT * FROM data WHERE lower(name) LIKE lower('%dresden%')"
# Find stations by name (regexp query).
wetterdienst stations --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--sql="SELECT * FROM data WHERE regexp_matches(lower(name), lower('.*dresden.*'))"
# Filter values: Display daily climate observation readings where the maximum temperature is below two degrees celsius.
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--station=1048,4411 --sql-values="SELECT * FROM data WHERE wind_gust_max > 20.0;"
# Filter measurements: Same as above, but use long format.
wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--station=1048,4411 --shape="long" \
--sql-values="SELECT * FROM data WHERE parameter='wind_gust_max' AND value > 20.0"
Inquire metadata:
# Display coverage/correlation between parameters, resolutions and periods.
# This can answer questions like ...
wetterdienst about coverage --provider=dwd --network=observation
# Tell me all periods and resolutions available for given dataset labels.
wetterdienst about coverage --provider=dwd --network=observation --dataset=climate_summary
wetterdienst about coverage --provider=dwd --network=observation --dataset=temperature_air
# Tell me all parameters available for given resolutions.
wetterdienst about coverage --provider=dwd --network=observation --resolution=daily
wetterdienst about coverage --provider=dwd --network=observation --resolution=hourly
Export data to files:
# Export list of stations into spreadsheet
wetterdienst stations --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent \
--all --target=file://stations_result.xlsx
# Shortcut command for fetching readings.
# It will be used for the next invocations.
alias fetch="wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent --station=1048,4411"
# Export readings into spreadsheet (Excel-compatible)
fetch --target="file://observations.xlsx"
# Export readings into Parquet format and display head of Parquet file
fetch --target="file://observations.parquet"
# Check Parquet file
parquet-tools schema observations.parquet
parquet-tools head observations.parquet
# Export readings into Zarr format
fetch --target="file://observations.zarr"
Export data to databases:
# Shortcut command for fetching readings.
# It will be used for the next invocations.
alias fetch="wetterdienst values --provider=dwd --network=observation --parameter=kl --resolution=daily --period=recent --station=1048,4411"
# Store readings to DuckDB
fetch --target="duckdb:///observations.duckdb?table=weather"
# Store readings to InfluxDB
fetch --target="influxdb://localhost/?database=observations&table=weather"
# Store readings to CrateDB
fetch --target="crate://localhost/?database=observations&table=weather"
The HTTP REST API service:
# Start service on standard port, listening on http://localhost:7890.
wetterdienst restapi
# Start service on standard port and watch filesystem changes.
# This is suitable for development.
wetterdienst restapi --reload
# Start service on public interface and specific port.
wetterdienst restapi --listen=0.0.0.0:8890
The Wetterdienst Explorer UI service:
# Start service on standard port, listening on http://localhost:7891.
wetterdienst explorer
# Start service on standard port and watch filesystem changes.
# This is suitable for development.
wetterdienst explorer --reload
# Start service on public interface and specific port.
wetterdienst explorer --listen=0.0.0.0:8891
Explore OPERA radar stations:
# Display all radar stations.
wetterdienst radar --all
# Display radar stations filtered by country.
wetterdienst radar --country-name=france
# Display OPERA radar stations operated by DWD.
wetterdienst radar --dwd
# Display radar station with specific ODIM- or WMO-code.
wetterdienst radar --odim-code=deasb
wetterdienst radar --wmo-code=10103
Create warming stripes (only DWD Observation data):
# Create warming stripes for a specific station
wetterdienst warming_stripes --station=1048 > warming_stripes.png
# Create warming stripes for a specific station with approximate name
wetterdienst warming_stripes --name=Dresden-Klotzsche --name_treshold=70 > warming_stripes.png
# Create warming stripes for a specific station for years 2000 to 2020
wetterdienst warming_stripes --station=1048 --start_year=2000 --end_year=2020 > warming_stripes.png
# Create warming stripes for a specific station and write to file
wetterdienst warming_stripes --station=1048 --target=warming_stripes.png