Change-log

Version 0.0.40

  • change roger_toolbox format to keep minute and hour values even if daily aggregation

Version 0.0.39

  • add the RoGeR Toolbox format as timeseries format. See https://github.com/Hydrology-IFH/roger for more specifications on the format

  • only insert needed download time if DB_ENG is super user

  • add possibility to change the column names and filenames of written out weather timeserires

Version 0.0.38

  • fix problem when updating the Richter correction to only a period. Previously the Richter correction did only work, when applied to the whole period (period=(None,None)). When a smaller period was selected, everything outside of this period got set to NULL. This problem existed since Version 0.0.36

  • update pattern to find meta file, DWD has a second file in kl daily folder, having “mn4” in name

Version 0.0.37

  • create_ts: skip period check if already done in GroupStation or GroupStations -> previously this got checked 3 times

  • add functionality to StationsBase.get_df to get multiple columns

  • fix error in richter_correct from previous version

Version 0.0.36

  • throw error if Richter correction is done on empty filled timeserie

  • add test for filled daily values before adjusting the 10 minute values in the fillup

  • fix errors in fillup for Temperature stations

  • set autocommit for _drop method

  • richter_correct: only update corr when new values -> way faster

  • only give aggregated value if at least 80% data is available

Version 0.0.35

  • set filled_by for T stations default to NULL not [NULL] -> works better with other methods

  • change date parsing for read dwd function, to work with pandas version >2.0

Version 0.0.34

  • StationsBase.get_meta: strip whitespace in str columns

  • add min/max-tresholds for T and ET

  • add -9999 as possible NA value for DWD data

Version 0.0.33

  • change quality control of T- & ET-Stations -> add inversion consideration for stations above 800m altitude Those stations values are only sorted out in winter if their difference to the median neighbor station is negative (lower limit)

  • change quality control of T and ET -> the values are now getting compared to the median of 5 neighbors, not the mean

  • change fillup method: has now the possibility to take the median of multiple neighboring stations to fillup. This possibility is now used for Temperature stations, where 5 neighboring stations are considered.

Version 0.0.32

  • add elevation consideration for the selection of neighboring stations, based on LARSIM formula for the quality_check and fillup procedure of T and ET. So not only the closest stations are selected but sometimes also a station that is further away, but has les difference in height.

  • get neighboring stations for T and ET quality check for full years, to always have around 5 neighboring stations

  • fix problem in get_multi_annual for T Station if no ma found

  • fix error because timeseries did only get created when, station T or ET is in meta_n table, even if they exist in meta_t or meta_et. So e.g a T Station exists in meta table because of own data, but is not added because no P station is there.

Version 0.0.31

  • only compare to neighboring stations if at least 2 stations have data in the quality check of T and ET

  • add settings to the database and broker now updates the whole database if a new version is loaded

  • stop broker execution if another broker instance is activly updating the database

Version 0.0.30

  • fix MAJOR error in Temperature quality check: The coefficient did not get converted to the database unit. This had as a consequence, that the neighboring values did not get regionalised correctly to the checked station. So if the neighboring station has big difference in the multi annual temperature value, too many values got kicked out. This error existed probably since version 0.0.15

Version 0.0.29

-add calculation of dropped values in quality check

Version 0.0.28

  • MAJOR Error fix: The quality check for T and ET did not consider the decimal multiplier for the limits. So the table 2 from the Method documentation should have looked like this until now, in bold are the numbers that were wrong in the code:

parameter

compare equation

lower limit

upper limit

Temperature

$\(\Delta T = T_{Stat} - \overline{T}_{neighbors}\)

\(\Delta T < -\mathbf{0.5}°C\)

\(\Delta T > \mathbf{0.5}°C\)$

pot. Evapotranspiration

\(\delta ET = \dfrac{ET_{Stat}}{\overline{ET}_{neighbors}}\)

\(\begin{cases}\delta ET< \mathbf{20}\% \\ ET_{Stat}> \mathbf{0.2} \frac{mm}{d}\end{cases}\)

\(\begin{cases}\delta ET> 200\% \\ ET_{Stat}> \mathbf{0.3} \frac{mm}{d}\end{cases}\)

Those limits got corrected to correspond now to:

parameter

compare equation

lower limit

upper limit

Temperature

\(\Delta T = T_{Stat} - \overline{T}_{neighbors}\)

\(\Delta T < -\mathbf{5}°C\)

\(\Delta T > \mathbf{5}°C\)

pot. Evapotranspiration

\(\delta ET = \dfrac{ET_{Stat}}{\overline{ET}_{neighbors}}\)

\(\begin{cases}\delta ET< \mathbf{25}\% \\ ET_{Stat}> \mathbf{2} \frac{mm}{d}\end{cases}\)

\(\begin{cases}\delta ET> 200\% \\ ET_{Stat}> \mathbf{3} \frac{mm}{d}\end{cases}\)

  • fixed error that came up in version 0.0.27 for richter correction. The horizon was only calculated from west to south not from north to south.

  • correct update_horizon to also consider that the distance between grid cells can be diagonal to the grid, so miultiply with \(\sqrt{2}\)

Version 0.0.27

  • fixed major error with update_horizon method. Therefor the Richter Exposition classe changes for many stations. This error existed since Version 0.0.15

  • add multiprocess ability to update_richter_class

Version 0.0.26

  • fix error with sql statements

  • fix logging

Version 0.0.25

version has major problems, use version 0.0.26

  • change logging.py submodule name, because of import conflicts with python logging package

Version 0.0.24

  • add text wrapper from sqlalchemy to work with sqlalchemy version >2.0

  • add compatibility for shapely >2.0

Version 0.0.23

  • change pandas to_csv parameter line_terminator to lineterminator, for newer versions

  • change logging procedure, to not log to file as a standard way, but only after calling setup_file_logging from logging.py

Version 0.0.22

  • add qc_from and qc_until to the meta informations

  • fix removal of old log files

Version 0.0.21

  • add additional parameter sql_add_where to define a sql where statement to filter the created results in the database

  • add postgresql error messages that will cause the execution to wait and restart

  • import Station(s)-classes imediatly when module is imported, so now this works

    import weatherDB as wdb
    wdb.StationsN()
    

Version 0.0.20

  • change secretSettings_weatherDB names to DB_PWD, DB_NAME and DB_USER

  • add min and max to the temperature timeseries

Version 0.0.19

  • fix error of updating raw_files table after new import.

  • change log file name to weatherDB_%host%_%user%.log

  • change the use of append method to pandas concat method

  • changed pandas method iteritems to items, due to deprecation warning

Version 0.0.18

  • correct spelling error “methode” to “method”

  • add progressbar to count_holes method

  • add para to raw_files db-table, because some files get used for several parameters (T and N_D)

Version 0.0.17

  • get_df now also accepts filled_share as kind

  • added function to count the holes in the timeseries depending on there length

Version 0.0.16

  • repaired the update_raw function of StationND

  • change data source from REGNIE to HYRAS for precipitation regionalisation

  • add ability to get nearby ma value from rasters, up to 1km from the station

  • change day definition for precipitation to run from 5:50 to 5:50 as written in dwd cdc description. (previously it was 5:40 - 5:40, as 5:40 was the last value of the previous day)

  • add ability to get all the meta information with get_meta

  • save last_imp period but only for df without NAs -> else the marking of last_imp_qc… will not work, as the period will always be smaller than the last_imp period

Version 0.0.15

  • change append with pandas concat function. -> faster

  • don’t import complete module on installation

Version 0.0.14

  • added type test, if parameter gets checked for “all”

  • specify that secrets_weatherDB file should be on PYTHONPATH environment variable

  • Changed DGM5 to Copernicus DGM25, because of license advantages

  • adjusted update_horizon method to be able to work with different CRS

  • add kwargs to update_richter_class of StationsN

  • fix get_geom with crs transforamation

Version 0.0.13

  • change the timezone allocation method of the precipitation download df

  • set freq to 10 minutes of precipitation download, to be able to overwrite Values with NAs

  • add remove_nas parameter to overwrite new NAs in the database. (mainly for programming changes)

  • define the name of the geometry column in get_meta.

Version 0.0.12

  • add quality check for precipitation stations: delete values were the aggregated daily sum is more than double of the daily measurement

  • when filling up also replace the filled_by column if it got changed

  • TimestampPeriod class now also detects string inputs as date

  • major error fixed: the coefficients calculation in the fillup method was the wrong way around

  • for daily parameters the expand_timeseries_to_period ads now 23:50 to max_tstp_last_imp to get the period

  • add vacuum cleanup method in Broker

  • check precipitation df_raw for values below 0

  • add stids parameter to last_imp methods of stations classes

  • add an update method to stations classes, to do a complete update of the stations database data (update_raw + quality_check + fillup + richter_correct)

  • only set start_tstp_last_imp values in db if update_raw is done for all the stations

Version 0.0.11

  • add fallback on thread if multiprocessing is not working

  • cleaning up ftplib use. Always recreate a new instance and don’t try to reuse the instance. This resolves some problems with the threading of the instances.

  • clean raw updates of only recent files by the maximum timestamp of the historical data.

Version 0.0.10

  • fixed get_adj compare Timestamp with timezone

Version 0.0.9

  • fixed future warning in stations.GroupStations().create_ts

  • stations.GroupStations().create_roger_ts fixed

  • removed join_how from _check_period as it was not used

  • fixed StationND().get_adj, because the StationNBase.get_adj was only for 10 minute resolution

  • get_adj always based on “filled” data

Version 0.0.8

  • fixed installation (psycopg2 problem and DB_ENG creation)

  • fixed importing module when not super user

Version 0.0.7

  • convert timezone of downloaded precipitation data, because (before 200 the data is in “MEZ” afterwards in “UTC”)

  • update_ma:

    • Rasters now also have proj4 code, if necessary. Because the postgis database is not supporting transformation to EPSG:31467

    • small speed improvement

  • StationCanVirtual._check_meta updated to check separately if station is in meta table and if it has a timeseries table

  • Added timezone support. The database timezone is UTC.

Version 0.0.6

  • error fixed with is_virtual (!important error!)

  • human readable format for the period in log message added

  • some spelling errors fixed in documentation

  • kwargs added to child methods of get_df (like get_raw…)

  • in get_df and consecutive methods:

    • filled_share column added if aggregating and filled_by selected

    • possibility to download filled_by added

    • nas_allowed option added

    • add_na_share option added. (give the share of NAs if aggregating)

  • in create_ts option to save several kinds added

  • get_max_period method

  • error in check_stids fixed

  • error in ma_update fixed

Version 0.0.5

  • The et_et0 parameter gor renamed to r_r0 in the create_ts method

  • The r_r0 is now possible to add as pd.Serie or list, when creating a timeserie file

  • get_meta method of single stations updated

  • get_meta for GroupStation(s) updated

  • get_df for GroupStation added

  • Quickstart added to the documentation

  • documentation has now a TOC tree per class and a method TOC tree on top

  • option to skip the check if a station is in the meta file, this is used for computational advantages in the stations classes, because they test already before creating the objects if they are in the meta table.

  • …_von and …_bis columns got renamed to the english name …_from and …_until

  • the quot_… fields got all normed to % as unit

  • dropping stations from meta while updating checks now if stid is in downloaded meta file

Version 0.0.4

  • The method part was added to the documentation

  • the connection method got updated

Version 0.0.3

This is the first released version