Skip to content

Commit

Permalink
Rename Data classes to Values, change arguments to singular
Browse files Browse the repository at this point in the history
  • Loading branch information
gutzbenj committed Feb 5, 2021
1 parent dda84ee commit d40b3b9
Show file tree
Hide file tree
Showing 52 changed files with 529 additions and 1,853 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Development
- Mosmix stations: fix longitudes/latitudes to be decimal degrees (before they were
degrees and minutes)
- Change key STATION_HEIGHT to HEIGHT, LAT to LATITUDE, LON to LONGITUDE
- Rename "Data" classes to "Values"
- Make arguments singular

0.13.0 (21.01.2021)
*******************
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2018-2020 earthobservations developers.
Copyright (c) 2018-2020 earthobservations

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
10 changes: 5 additions & 5 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -212,14 +212,14 @@ Acquisition of historical data for specific stations using ``wetterdienst`` as l
.. code-block:: python
>>> from wetterdienst.dwd.observations import (
... DWDObservationData,
... DWDObservationValues,
... DWDObservationParameterSet,
... DWDObservationPeriod,
... DWDObservationResolution
... )
>>> observations = DWDObservationData(
... station_ids=[1048,4411],
... parameters=[DWDObservationParameterSet.CLIMATE_SUMMARY,
>>> observations = DWDObservationValues(
... station_id=[1048,4411],
... parameter=[DWDObservationParameterSet.CLIMATE_SUMMARY,
... DWDObservationParameterSet.SOLAR],
... resolution=DWDObservationResolution.DAILY,
... start_date="1990-01-01", # Timezone: UTC
Expand All @@ -237,7 +237,7 @@ Receiving of stations for defined parameters using the ``wetterdienst`` client:
wetterdienst dwd observations stations --parameter=kl --resolution=daily --period=recent
# Get daily climate summary data for specific stations
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=recent
Further examples (code samples) can be found in the `examples`_ folder.

Expand Down
1,370 changes: 24 additions & 1,346 deletions THIRD_PARTY_LICENSES

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/img/readme_img.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import matplotlib.pyplot as plt
import pandas as pd

from wetterdienst.dwd.observations import DWDObservationStations, DWDObservationData, DWDObservationParameter, DWDObservationParameterSet, DWDObservationResolution, DWDObservationPeriod
from wetterdienst.dwd.observations import DWDObservationStations, DWDObservationValues, DWDObservationParameter, DWDObservationParameterSet, DWDObservationResolution, DWDObservationPeriod

plt.style.use('ggplot')

Expand All @@ -24,11 +24,11 @@ def create_temperature_ts_plot():
station_id, _, _, height, lat, lon, station_name, state = df.sort_values("FROM_DATE").iloc[0].values
station_name = station_name.replace(u"ß", "ss")

data = DWDObservationData(
data = DWDObservationValues(
[station_id],
DWDObservationParameter.DAILY.TEMPERATURE_AIR_200,
DWDObservationResolution.DAILY,
periods=[DWDObservationPeriod.HISTORICAL]
period=[DWDObservationPeriod.HISTORICAL]
)

df = data.all()
Expand Down
6 changes: 3 additions & 3 deletions docs/library/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ DWD (German Weather Service)
Historical Weather Data
-----------------------

.. autoclass:: wetterdienst.dwd.observations.api.DWDObservationData
.. autoclass:: wetterdienst.dwd.observations.api.DWDObservationValues
:members:

.. autoclass:: wetterdienst.dwd.observations.api.DWDObservationStations
Expand All @@ -25,13 +25,13 @@ Historical Weather Data
Mosmix
------

.. autoclass:: wetterdienst.dwd.forecasts.api.DWDMosmixData
.. autoclass:: wetterdienst.dwd.forecasts.api.DWDMosmixValues
:members:
.. autoclass:: wetterdienst.dwd.forecasts.api.DWDMosmixStations
:members:

Radar
-----

.. autoclass:: wetterdienst.dwd.radar.api.DWDRadarData
.. autoclass:: wetterdienst.dwd.radar.api.DWDRadarValues
:members:
42 changes: 21 additions & 21 deletions docs/usage/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Get station information for a given *parameter/parameter_set*, *resolution* and
from wetterdienst.dwd.observations import DWDObservationStations, DWDObservationParameterSet, DWDObservationPeriod, DWDObservationResolution
stations = DWDObservationStations(
parameter_set=DWDObservationParameterSet.PRECIPITATION_MORE,
parameter=DWDObservationParameterSet.PRECIPITATION_MORE,
resolution=DWDObservationResolution.DAILY,
period=DWDObservationPeriod.HISTORICAL
)
Expand All @@ -125,15 +125,15 @@ The function returns a Pandas DataFrame with information about the available sta
Values
------

Use the ``DWDObservationData`` class in order to get hold of values.
Use the ``DWDObservationValues`` class in order to get hold of values.

.. ipython:: python
from wetterdienst.dwd.observations import DWDObservationData, DWDObservationParameterSet, DWDObservationPeriod, DWDObservationResolution
from wetterdienst.dwd.observations import DWDObservationValues, DWDObservationParameterSet, DWDObservationPeriod, DWDObservationResolution
observations = DWDObservationData(
station_ids=[3, 1048],
parameters=[DWDObservationParameterSet.CLIMATE_SUMMARY, DWDObservationParameterSet.SOLAR],
observations = DWDObservationValues(
station_id=[3, 1048],
parameter=[DWDObservationParameterSet.CLIMATE_SUMMARY, DWDObservationParameterSet.SOLAR],
resolution=DWDObservationResolution.DAILY,
start_date="1990-01-01",
end_date="2020-01-01",
Expand Down Expand Up @@ -175,7 +175,7 @@ Inquire the list of stations by geographic coordinates.
from wetterdienst.dwd.observations import DWDObservationStations, DWDObservationParameterSet, DWDObservationPeriod, DWDObservationResolution
stations = DWDObservationStations(
parameter_set=DWDObservationParameterSet.TEMPERATURE_AIR,
parameter=DWDObservationParameterSet.TEMPERATURE_AIR,
resolution=DWDObservationResolution.HOURLY,
period=DWDObservationPeriod.RECENT,
start_date=datetime(2020, 1, 1),
Expand Down Expand Up @@ -212,9 +212,9 @@ can be used to download the observation data:

.. ipython:: python
observations = DWDObservationData(
station_ids=station_ids,
parameters=[DWDObservationParameterSet.TEMPERATURE_AIR, DWDObservationParameterSet.SOLAR],
observations = DWDObservationValues(
station_id=station_ids,
parameter=[DWDObservationParameterSet.TEMPERATURE_AIR, DWDObservationParameterSet.SOLAR],
resolution=DWDObservationResolution.HOURLY,
start_date="1990-01-01",
end_date="2020-01-01",
Expand All @@ -240,11 +240,11 @@ The result data is provided through a virtual table called ``data``.

.. code-block:: python
from wetterdienst.dwd.observations import DWDObservationData, DWDObservationParameterSet, DWDObservationPeriod, DWDObservationResolution
from wetterdienst.dwd.observations import DWDObservationValues, DWDObservationParameterSet, DWDObservationPeriod, DWDObservationResolution
observations = DWDObservationData(
station_ids=[1048],
parameters=[DWDObservationParameterSet.TEMPERATURE_AIR],
observations = DWDObservationValues(
station_id=[1048],
parameter=[DWDObservationParameterSet.TEMPERATURE_AIR],
resolution=DWDObservationResolution.HOURLY,
start_date="2019-01-01",
end_date="2020-01-01",
Expand All @@ -271,12 +271,12 @@ Examples:

.. code-block:: python
from wetterdienst.dwd.observations import DWDObservationData, DWDObservationParameterSet,
from wetterdienst.dwd.observations import DWDObservationValues, DWDObservationParameterSet,
DWDObservationPeriod, DWDObservationResolution, StorageAdapter
observations = DWDObservationData(
station_ids=[1048],
parameters=[DWDObservationParameterSet.TEMPERATURE_AIR],
observations = DWDObservationValues(
station_id=[1048],
parameter=[DWDObservationParameterSet.TEMPERATURE_AIR],
resolution=DWDObservationResolution.HOURLY,
start_date="2019-01-01",
end_date="2020-01-01",
Expand Down Expand Up @@ -307,10 +307,10 @@ Get Mosmix-L data:

.. ipython:: python
from wetterdienst.dwd.forecasts import DWDMosmixData, DWDMosmixType
from wetterdienst.dwd.forecasts import DWDMosmixValues, DWDMosmixType
mosmix = DWDMosmixData(
station_ids=["01001", "01008"],
mosmix = DWDMosmixValues(
station_id=["01001", "01008"],
mosmix_type=DWDMosmixType.LARGE
)
response = next(mosmix.query())
Expand Down
50 changes: 25 additions & 25 deletions docs/usage/cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ Command Line Interface

Usage:
wetterdienst dwd observations stations --parameter=<parameter> --resolution=<resolution> --period=<period> [--station=<station>] [--latitude=<latitude>] [--longitude=<longitude>] [--number=<number>] [--distance=<distance>] [--persist] [--sql=<sql>] [--format=<format>]
wetterdienst dwd observations readings --parameter=<parameter> --resolution=<resolution> --station=<station> [--period=<period>] [--persist] [--date=<date>] [--tidy] [--sql=<sql>] [--format=<format>] [--target=<target>]
wetterdienst dwd observations readings --parameter=<parameter> --resolution=<resolution> --latitude=<latitude> --longitude=<longitude> [--period=<period>] [--number=<number>] [--distance=<distance>] [--persist] [--tidy] [--date=<date>] [--sql=<sql>] [--format=<format>] [--target=<target>]
wetterdienst dwd observations values --parameter=<parameter> --resolution=<resolution> --station=<station> [--period=<period>] [--persist] [--date=<date>] [--tidy] [--sql=<sql>] [--format=<format>] [--target=<target>]
wetterdienst dwd observations values --parameter=<parameter> --resolution=<resolution> --latitude=<latitude> --longitude=<longitude> [--period=<period>] [--number=<number>] [--distance=<distance>] [--persist] [--tidy] [--date=<date>] [--sql=<sql>] [--format=<format>] [--target=<target>]
wetterdienst dwd forecasts stations [--date=<date>] [--station=<station>] [--latitude=<latitude>] [--longitude=<longitude>] [--number=<number>] [--distance=<distance>] [--persist] [--sql=<sql>] [--format=<format>]
wetterdienst dwd forecasts readings --mosmix-type=<mosmix-type> --station=<station> [--parameter=<parameter>] [--persist] [--date=<date>] [--tidy] [--sql=<sql>] [--format=<format>] [--target=<target>]
wetterdienst dwd forecasts values --mosmix-type=<mosmix-type> --station=<station> [--parameter=<parameter>] [--persist] [--date=<date>] [--tidy] [--sql=<sql>] [--format=<format>] [--target=<target>]
wetterdienst dwd about [parameters] [resolutions] [periods]
wetterdienst dwd about coverage [--parameter=<parameter>] [--resolution=<resolution>] [--period=<period>]
wetterdienst dwd about fields --parameter=<parameter> --resolution=<resolution> --period=<period> [--language=<language>]
Expand Down Expand Up @@ -57,47 +57,47 @@ Command Line Interface
# Get list of specific stations in GeoJSON format
wetterdienst dwd observations stations --resolution=daily --parameter=kl --period=recent --station=1,1048,4411 --format=geojson

Examples requesting readings:
Examples requesting values:

# Get daily climate summary data for specific stations
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=recent

# Optionally save/restore to/from disk in order to avoid asking upstream servers each time
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent --persist
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=recent --persist

# Limit output to specific date
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent --date=2020-05-01
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=recent --date=2020-05-01

# Limit output to specified date range in ISO-8601 time interval format
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent --date=2020-05-01/2020-05-05
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=recent --date=2020-05-01/2020-05-05

# The real power horse: Acquire data across historical+recent data sets
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=historical,recent --date=1969-01-01/2020-06-11
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=historical,recent --date=1969-01-01/2020-06-11

# Acquire monthly data for 2020-05
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=monthly --period=recent,historical --date=2020-05
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=monthly --period=recent,historical --date=2020-05

# Acquire monthly data from 2017-01 to 2019-12
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=monthly --period=recent,historical --date=2017-01/2019-12
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=monthly --period=recent,historical --date=2017-01/2019-12

# Acquire annual data for 2019
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=annual --period=recent,historical --date=2019
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=annual --period=recent,historical --date=2019

# Acquire annual data from 2010 to 2020
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=annual --period=recent,historical --date=2010/2020
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=annual --period=recent,historical --date=2010/2020

# Acquire hourly data
wetterdienst dwd observations readings --station=1048,4411 --parameter=air_temperature --resolution=hourly --period=recent --date=2020-06-15T12
wetterdienst dwd observations values --station=1048,4411 --parameter=air_temperature --resolution=hourly --period=recent --date=2020-06-15T12

Examples using geospatial features:

# Acquire stations and readings by geoposition, request specific number of nearby stations.
# Acquire stations and values by geoposition, request specific number of nearby stations.
wetterdienst dwd observations stations --resolution=daily --parameter=kl --period=recent --lat=49.9195 --lon=8.9671 --num=5
wetterdienst dwd observations readings --resolution=daily --parameter=kl --period=recent --lat=49.9195 --lon=8.9671 --num=5 --date=2020-06-30
wetterdienst dwd observations values --resolution=daily --parameter=kl --period=recent --lat=49.9195 --lon=8.9671 --num=5 --date=2020-06-30

# Acquire stations and readings by geoposition, request stations within specific radius.
# Acquire stations and values by geoposition, request stations within specific radius.
wetterdienst dwd observations stations --resolution=daily --parameter=kl --period=recent --lat=49.9195 --lon=8.9671 --distance=25
wetterdienst dwd observations readings --resolution=daily --parameter=kl --period=recent --lat=49.9195 --lon=8.9671 --distance=25 --date=2020-06-30
wetterdienst dwd observations values --resolution=daily --parameter=kl --period=recent --lat=49.9195 --lon=8.9671 --distance=25 --date=2020-06-30

Examples using SQL filtering:

Expand All @@ -110,8 +110,8 @@ Command Line Interface
# Find stations by name (regexp query).
wetterdienst dwd observations stations --parameter=kl --resolution=daily --period=recent --sql="SELECT * FROM data WHERE regexp_matches(lower(station_name), lower('.*dresden.*'))"

# Filter measurements: Display daily climate observation readings where the maximum temperature is below two degrees.
wetterdienst dwd observations readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent --sql="SELECT * FROM data WHERE element='temperature_air_max_200' AND value < 2.0;"
# Filter measurements: Display daily climate observation values where the maximum temperature is below two degrees.
wetterdienst dwd observations values --station=1048,4411 --parameter=kl --resolution=daily --period=recent --sql="SELECT * FROM data WHERE element='temperature_air_max_200' AND value < 2.0;"

Examples for inquiring metadata:

Expand All @@ -136,16 +136,16 @@ Command Line Interface

Examples for exporting data to databases:

# Shortcut command for fetching readings from DWD
alias fetch="wetterdienst dwd readings --station=1048,4411 --parameter=kl --resolution=daily --period=recent"
# Shortcut command for fetching values from DWD
alias fetch="wetterdienst dwd values --station=1048,4411 --parameter=kl --resolution=daily --period=recent"

# Store readings to DuckDB
# Store values to DuckDB
fetch --target="duckdb://database=dwd.duckdb&table=weather"

# Store readings to InfluxDB
# Store values to InfluxDB
fetch --target="influxdb://localhost/?database=dwd&table=weather"

# Store readings to CrateDB
# Store values to CrateDB
fetch --target="crate://localhost/?database=dwd&table=weather"

Run as HTTP service:
Expand Down
28 changes: 14 additions & 14 deletions docs/usage/code_snippets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Get stations for daily historical precipitation:
from wetterdienst.dwd.observations import DWDObservationStations, DWDObservationParameterSet, DWDObservationResolution, DWDObservationPeriod
stations = DWDObservationStations(
parameter_set=DWDObservationParameterSet.PRECIPITATION_MORE,
parameter=DWDObservationParameterSet.PRECIPITATION_MORE,
resolution=DWDObservationResolution.DAILY,
period=DWDObservationPeriod.HISTORICAL
)
Expand All @@ -52,13 +52,13 @@ Get data for a parameter set:

.. ipython:: python
from wetterdienst.dwd.observations import DWDObservationData, DWDObservationParameterSet, DWDObservationResolution, DWDObservationPeriod
from wetterdienst.dwd.observations import DWDObservationValues, DWDObservationParameterSet, DWDObservationResolution, DWDObservationPeriod
observation_data = DWDObservationData(
station_ids=stations.all().STATION_ID[0],
parameters=DWDObservationParameterSet.PRECIPITATION_MORE,
observation_data = DWDObservationValues(
station_id=stations.all().STATION_ID[0],
parameter=DWDObservationParameterSet.PRECIPITATION_MORE,
resolution=DWDObservationResolution.DAILY,
periods=DWDObservationPeriod.HISTORICAL
period=DWDObservationPeriod.HISTORICAL
)
print(observation_data.all().head())
Expand All @@ -67,13 +67,13 @@ Get data for a parameter:

.. ipython:: python
from wetterdienst.dwd.observations import DWDObservationData, DWDObservationParameter, DWDObservationResolution, DWDObservationPeriod
from wetterdienst.dwd.observations import DWDObservationValues, DWDObservationParameter, DWDObservationResolution, DWDObservationPeriod
observation_data = DWDObservationData(
station_ids=stations.all().STATION_ID[0],
parameters=DWDObservationParameter.DAILY.PRECIPITATION_HEIGHT,
observation_data = DWDObservationValues(
station_id=stations.all().STATION_ID[0],
parameter=DWDObservationParameter.DAILY.PRECIPITATION_HEIGHT,
resolution=DWDObservationResolution.DAILY,
periods=DWDObservationPeriod.HISTORICAL
period=DWDObservationPeriod.HISTORICAL
)
print(observation_data.all().head())
Expand All @@ -95,10 +95,10 @@ Get data for Mosmix-L:

.. ipython:: python
from wetterdienst.dwd.forecasts import DWDMosmixData, DWDMosmixType
from wetterdienst.dwd.forecasts import DWDMosmixValues, DWDMosmixType
forecast_data = DWDMosmixData(
station_ids=stations.all().STATION_ID[0],
forecast_data = DWDMosmixValues(
station_id=stations.all().STATION_ID[0],
mosmix_type=DWDMosmixType.LARGE
)
Expand Down

0 comments on commit d40b3b9

Please sign in to comment.