weatherdb 1.2.3__py3-none-any.whl → 1.2.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- weatherdb/_version.py +1 -1
- weatherdb/config/ConfigParser.py +1 -1
- weatherdb/station/GroupStation.py +54 -23
- weatherdb/stations/GroupStations.py +33 -13
- {weatherdb-1.2.3.dist-info → weatherdb-1.2.4.dist-info}/METADATA +3 -2
- {weatherdb-1.2.3.dist-info → weatherdb-1.2.4.dist-info}/RECORD +10 -10
- {weatherdb-1.2.3.dist-info → weatherdb-1.2.4.dist-info}/WHEEL +1 -1
- {weatherdb-1.2.3.dist-info → weatherdb-1.2.4.dist-info}/entry_points.txt +0 -0
- {weatherdb-1.2.3.dist-info → weatherdb-1.2.4.dist-info/licenses}/LICENSE +0 -0
- {weatherdb-1.2.3.dist-info → weatherdb-1.2.4.dist-info}/top_level.txt +0 -0
weatherdb/_version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "1.2.
|
1
|
+
__version__ = "1.2.4"
|
weatherdb/config/ConfigParser.py
CHANGED
@@ -357,7 +357,7 @@ class ConfigParser(configparser.ConfigParser):
|
|
357
357
|
user_config_file = "ask"
|
358
358
|
|
359
359
|
# ask for the user config file
|
360
|
-
if user_config_file == "
|
360
|
+
if user_config_file.lower().strip()[0] == "a":
|
361
361
|
try:
|
362
362
|
from tkinter import Tk
|
363
363
|
from tkinter import filedialog
|
@@ -344,8 +344,13 @@ class GroupStation(object):
|
|
344
344
|
def get_name(self):
|
345
345
|
return self.station_parts[0].get_name()
|
346
346
|
|
347
|
-
def create_roger_ts(self,
|
348
|
-
|
347
|
+
def create_roger_ts(self,
|
348
|
+
dir,
|
349
|
+
period=(None, None),
|
350
|
+
kind="best",
|
351
|
+
r_r0=1,
|
352
|
+
add_t_min=False,
|
353
|
+
add_t_max=False,
|
349
354
|
do_toolbox_format=False,
|
350
355
|
**kwargs):
|
351
356
|
"""Create the timeserie files for roger as csv.
|
@@ -394,10 +399,15 @@ class GroupStation(object):
|
|
394
399
|
"""
|
395
400
|
if do_toolbox_format:
|
396
401
|
return self.create_ts(
|
397
|
-
dir=dir,
|
398
|
-
|
402
|
+
dir=dir,
|
403
|
+
period=period,
|
404
|
+
kinds=kind,
|
405
|
+
agg_to="10 min",
|
406
|
+
r_r0=r_r0,
|
407
|
+
split_date=True,
|
399
408
|
nas_allowed=False,
|
400
|
-
add_t_min=add_t_min,
|
409
|
+
add_t_min=add_t_min,
|
410
|
+
add_t_max=add_t_max,
|
401
411
|
file_names={"P":"PREC.txt", "T":"TA.txt", "ET":"PET.txt"},
|
402
412
|
col_names={"P":"PREC", "ET":"PET",
|
403
413
|
"T":"TA", "T_min":"TA_min", "T_max":"TA_max",
|
@@ -408,18 +418,34 @@ class GroupStation(object):
|
|
408
418
|
**kwargs)
|
409
419
|
else:
|
410
420
|
return self.create_ts(
|
411
|
-
dir=dir,
|
412
|
-
|
421
|
+
dir=dir,
|
422
|
+
period=period,
|
423
|
+
kinds=kind,
|
424
|
+
agg_to="10 min",
|
425
|
+
r_r0=r_r0,
|
426
|
+
split_date=True,
|
413
427
|
nas_allowed=False,
|
414
|
-
|
428
|
+
file_names={"P":"N_{id:0>5}.txt"},
|
429
|
+
col_names={"P":"N"},
|
430
|
+
add_t_min=add_t_min,
|
431
|
+
add_t_max=add_t_max,
|
415
432
|
**kwargs)
|
416
433
|
|
417
|
-
def create_ts(self,
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
434
|
+
def create_ts(self,
|
435
|
+
dir,
|
436
|
+
period=(None, None),
|
437
|
+
kinds="best",
|
438
|
+
paras="all",
|
439
|
+
agg_to="10 min",
|
440
|
+
r_r0=None,
|
441
|
+
split_date=False,
|
442
|
+
nas_allowed=True,
|
443
|
+
add_na_share=False,
|
444
|
+
add_t_min=False,
|
445
|
+
add_t_max=False,
|
446
|
+
add_meta=True,
|
447
|
+
file_names={},
|
448
|
+
col_names={},
|
423
449
|
keep_date_parts=False,
|
424
450
|
**kwargs):
|
425
451
|
"""Create the timeserie files as csv.
|
@@ -485,6 +511,7 @@ class GroupStation(object):
|
|
485
511
|
file_names : dict, optional
|
486
512
|
A dictionary with the file names for the different parameters.
|
487
513
|
e.g.{"P":"PREC.txt", "T":"TA.txt", "ET":"ET.txt"}
|
514
|
+
Additionally, the station ID ("{id}" as int) and period ({period} as TimestampPeriod) are available as placeholders.
|
488
515
|
If an empty dictionary is given, then the standard names are used.
|
489
516
|
The default is {}.
|
490
517
|
col_names : dict, optional
|
@@ -536,19 +563,22 @@ class GroupStation(object):
|
|
536
563
|
del kwargs["_skip_period_check"]
|
537
564
|
|
538
565
|
# prepare loop
|
539
|
-
name_suffix = "_{
|
566
|
+
name_suffix = "_{id:0>5}.txt".format(id=self.id)
|
540
567
|
x, y = self.get_geom().coords.xy
|
541
|
-
name = self.get_name() + " (ID: {
|
568
|
+
name = self.get_name() + " (ID: {id})".format(id=self.id)
|
542
569
|
do_zip = isinstance(dir, zipfile.ZipFile)
|
543
570
|
|
544
571
|
for para in paras:
|
545
572
|
# get the timeserie
|
546
573
|
df = self.get_df(
|
547
|
-
period=period,
|
548
|
-
|
574
|
+
period=period,
|
575
|
+
kinds=kinds,
|
576
|
+
paras=[para],
|
577
|
+
agg_to=agg_to,
|
549
578
|
nas_allowed=nas_allowed,
|
550
579
|
add_na_share=add_na_share,
|
551
|
-
add_t_min=add_t_min,
|
580
|
+
add_t_min=add_t_min,
|
581
|
+
add_t_max=add_t_max,
|
552
582
|
_skip_period_check=True,
|
553
583
|
**kwargs)
|
554
584
|
|
@@ -573,8 +603,7 @@ class GroupStation(object):
|
|
573
603
|
# check for NAs
|
574
604
|
filled_cols = [col for col in df.columns if "filled_by" in col]
|
575
605
|
if not nas_allowed and df.drop(filled_cols, axis=1).isna().sum().sum() > 0:
|
576
|
-
warnings.warn("There were NAs in the
|
577
|
-
stid=self.id))
|
606
|
+
warnings.warn(f"There were NAs in the timeseries for Station {self.id}.")
|
578
607
|
|
579
608
|
# special operations for et
|
580
609
|
if para == "et" and r_r0 is not None:
|
@@ -609,9 +638,11 @@ class GroupStation(object):
|
|
609
638
|
|
610
639
|
# get file name
|
611
640
|
if para.upper() in file_names:
|
612
|
-
file_name = file_names[para.upper()]
|
641
|
+
file_name = file_names[para.upper()]\
|
642
|
+
.format(id=self.id, period=period)
|
613
643
|
elif para in file_names:
|
614
|
-
file_name = file_names[para]
|
644
|
+
file_name = file_names[para]\
|
645
|
+
.format(id=self.id, period=period)
|
615
646
|
else:
|
616
647
|
file_name = para.upper() + name_suffix
|
617
648
|
|
@@ -293,10 +293,17 @@ class GroupStations(object):
|
|
293
293
|
|
294
294
|
return stations
|
295
295
|
|
296
|
-
def create_ts(self, dir,
|
297
|
-
|
298
|
-
|
299
|
-
|
296
|
+
def create_ts(self, dir,
|
297
|
+
period=(None, None),
|
298
|
+
kinds="best",
|
299
|
+
stids="all",
|
300
|
+
agg_to="10 min",
|
301
|
+
r_r0=None,
|
302
|
+
split_date=False,
|
303
|
+
nas_allowed=True,
|
304
|
+
add_na_share=False,
|
305
|
+
add_t_min=False,
|
306
|
+
add_t_max=False,
|
300
307
|
**kwargs):
|
301
308
|
"""Download and create the weather tables as csv files.
|
302
309
|
|
@@ -393,7 +400,6 @@ class GroupStations(object):
|
|
393
400
|
add_na_share=add_na_share,
|
394
401
|
add_t_min=add_t_min,
|
395
402
|
add_t_max=add_t_max,
|
396
|
-
_skip_period_check=True,
|
397
403
|
**kwargs)
|
398
404
|
pbar.variables["last_station"] = stat.id
|
399
405
|
pbar.update(pbar.value + 1)
|
@@ -498,10 +504,16 @@ class GroupStations(object):
|
|
498
504
|
"""
|
499
505
|
if do_toolbox_format:
|
500
506
|
return self.create_ts(
|
501
|
-
dir=dir,
|
502
|
-
|
503
|
-
|
504
|
-
|
507
|
+
dir=dir,
|
508
|
+
period=period,
|
509
|
+
kinds=kind,
|
510
|
+
agg_to="10 min",
|
511
|
+
r_r0=r_r0,
|
512
|
+
stids=stids,
|
513
|
+
split_date=True,
|
514
|
+
nas_allowed=False,
|
515
|
+
add_t_min=add_t_min,
|
516
|
+
add_t_max=add_t_max,
|
505
517
|
file_names={"P":"PREC.txt", "T":"TA.txt", "ET":"PET.txt"},
|
506
518
|
col_names={"P":"PREC", "ET":"PET",
|
507
519
|
"T":"TA", "T_min":"TA_min", "T_max":"TA_max",
|
@@ -512,8 +524,16 @@ class GroupStations(object):
|
|
512
524
|
**kwargs)
|
513
525
|
else:
|
514
526
|
return self.create_ts(
|
515
|
-
dir=dir,
|
516
|
-
|
517
|
-
|
518
|
-
|
527
|
+
dir=dir,
|
528
|
+
period=period,
|
529
|
+
kinds=kind,
|
530
|
+
agg_to="10 min",
|
531
|
+
r_r0=r_r0,
|
532
|
+
stids=stids,
|
533
|
+
split_date=True,
|
534
|
+
nas_allowed=False,
|
535
|
+
file_names={"P": "N_{id:0>5}.txt"},
|
536
|
+
col_names={"P":"N"},
|
537
|
+
add_t_min=add_t_min,
|
538
|
+
add_t_max=add_t_max,
|
519
539
|
**kwargs)
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: weatherdb
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.4
|
4
4
|
Summary: This is a package to work with and to create the Weather Database which handles, checks, fills and corrects DWD Weather Station data.
|
5
5
|
Author-email: Max Schmit <max.schmit@hydrology.uni-freiburg.de>
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
@@ -714,6 +714,7 @@ Requires-Dist: setuptools_scm
|
|
714
714
|
Provides-Extra: optionals
|
715
715
|
Requires-Dist: coloredlogs; extra == "optionals"
|
716
716
|
Requires-Dist: colorama; extra == "optionals"
|
717
|
+
Dynamic: license-file
|
717
718
|
|
718
719
|
# WeatherDB - module
|
719
720
|
|
@@ -44,7 +44,7 @@ tests/test-data/regionalisation/DWD-grid_ma_1991_2020_DGM25_clipped.tif,sha256=8
|
|
44
44
|
tests/test-data/regionalisation/HYRAS_ma_1991_2020_DGM25_clipped.tif,sha256=HiSmi715dUpryQ1WSLSXR7GmGPHzK0rl6WOOrwjRwXw,2116377
|
45
45
|
tests/test-data/regionalisation/README.md,sha256=equFOPJVaESGKIK1ZPVEJHY4TEqkW3NpJOFQzjsBy7M,151
|
46
46
|
weatherdb/__init__.py,sha256=2BzziScTYzA65WS6nhtCRZOWSLfwHTCwvZdeyuHw79U,846
|
47
|
-
weatherdb/_version.py,sha256=
|
47
|
+
weatherdb/_version.py,sha256=qjo-Usbvp802f_1XeGyTsWsDwlFERHYfz7wsKPXKb4Q,21
|
48
48
|
weatherdb/broker.py,sha256=qJaKVwo1zcTLKmP-sF_DMod6_7jVsdHEoiKEMvsPx9A,24842
|
49
49
|
weatherdb/cli.py,sha256=b5p9SRP5aqQ3w89MLErAjFj37aZMy9OsF23nCDC8NJY,11358
|
50
50
|
weatherdb/alembic/README.md,sha256=6hq24TPr8z3nqJCaqrmj6__kLikVG66kLGqfC_aFPWQ,440
|
@@ -56,7 +56,7 @@ weatherdb/alembic/versions/V1.0.0_initial_database_creation.py,sha256=Ztj21xNdJc
|
|
56
56
|
weatherdb/alembic/versions/V1.0.2_more_charachters_for_settings+term_station_ma_raster.py,sha256=jrnBpgUxjaBt1oUFJb0PeTZ4L5hEDh9K8ncF33cLdQE,3738
|
57
57
|
weatherdb/alembic/versions/V1.0.5_fix-ma-raster-values.py,sha256=EvJ_JLLJKUN5YXwWZdS1FHK2oHjhIlayvjtJuoK3eCI,6957
|
58
58
|
weatherdb/alembic/versions/V1.0.6_update-views.py,sha256=ZA7cK5yeAqivFG2V8O7mvyKSkGRlphVOs0qKpBYgYKE,420
|
59
|
-
weatherdb/config/ConfigParser.py,sha256
|
59
|
+
weatherdb/config/ConfigParser.py,sha256=7qKAo_8ykLo_1e5zOTVcevHDC2pOGkAeeMadIUVbAYM,28420
|
60
60
|
weatherdb/config/__init__.py,sha256=JBNlYPT43JnO8XMI8HTtg2hyA7C_JnMdtWmJ2vAtNZ8,85
|
61
61
|
weatherdb/config/config_default.ini,sha256=5DQzOqOJ9EVRAu9IA_EO4c8aqnuUvTmocwidOhLLXbY,7884
|
62
62
|
weatherdb/db/__init__.py,sha256=g6F66XR6UPz41kPtSRc1qvDoOEZ5OawYxYtYXCgZ06s,76
|
@@ -65,7 +65,7 @@ weatherdb/db/models.py,sha256=6Oor07T1sAD6qEtoxwEcpmY1SkLVVONChXIIcTjbUk4,15242
|
|
65
65
|
weatherdb/db/views.py,sha256=DxY_IIonmiiRM-IhQrUMLwj12gIg6Q30rQAmR3wP3BE,6359
|
66
66
|
weatherdb/db/fixtures/RichterParameters.json,sha256=CKxrB5FBX_BRKqxegXNyNtn9DUKmgibUtdvHoE8E5JI,836
|
67
67
|
weatherdb/db/queries/get_quotient.py,sha256=9wVFmXE8tk8igGj-Xk5uSI0eiF_PQ9d-yRq7RJpvMAA,6787
|
68
|
-
weatherdb/station/GroupStation.py,sha256=
|
68
|
+
weatherdb/station/GroupStation.py,sha256=ikVsAMXlhJY8I991mJ3IBCLPW9AH5Hd7QLnDUDawM3U,31066
|
69
69
|
weatherdb/station/StationBases.py,sha256=0OwEl85220DI6MIffjf4KpS4UA5zCR4yE2DNzydOlKE,130329
|
70
70
|
weatherdb/station/StationET.py,sha256=hM6K8fCLC6mOLaE4cN92LHOyPGP01ifO6l2qO77I_bA,3621
|
71
71
|
weatherdb/station/StationP.py,sha256=w_0l5cw8zTACIbmVFV4cdPwxuyP2Cnv97dnNrMElBDE,32691
|
@@ -73,7 +73,7 @@ weatherdb/station/StationPD.py,sha256=Bcg_uQTgIQPffsMGhNEwKAXhYs1Ii4VeB75afdFG-K
|
|
73
73
|
weatherdb/station/StationT.py,sha256=-T1GKfUsvulm5c_-JufJ34H048fGlG21UF0_2z1dd9A,6012
|
74
74
|
weatherdb/station/__init__.py,sha256=v1sPfmhhLRMOr5DJ2c5BLIFY7GWkP5iMLA5vtZm-osg,591
|
75
75
|
weatherdb/station/constants.py,sha256=vtdhgcK8A2cJaknT6qI8w5tAh_Hb5i2SvxxtHZOPyVc,511
|
76
|
-
weatherdb/stations/GroupStations.py,sha256=
|
76
|
+
weatherdb/stations/GroupStations.py,sha256=Q-0sZ4skZgE-2hwE2QKmwDz_8_U4xWb2hYsKv5RvR1E,21927
|
77
77
|
weatherdb/stations/StationsBase.py,sha256=M7VyWJgUmIygJ2rByQy0Zz6RKsaDVT8-iaXzhPTa_b4,42991
|
78
78
|
weatherdb/stations/StationsBaseTET.py,sha256=CuE5gXAF4eS4bHorI-sUqksm0jdj9SzAiOHtc4vv7aA,1032
|
79
79
|
weatherdb/stations/StationsET.py,sha256=OjyEaEK0nPJ9txRfUbHfW9bEEx5HAISWmnk5F4GBs7I,433
|
@@ -87,9 +87,9 @@ weatherdb/utils/dwd.py,sha256=amEVVPLzXTSScBP5VAK35dBxuiy-Ua4hHyKnDGxD_4Q,12394
|
|
87
87
|
weatherdb/utils/geometry.py,sha256=Od-RDAW1MASVAsGBXpHti9osbVJDqUbumSKBSJPbQqc,1823
|
88
88
|
weatherdb/utils/get_data.py,sha256=62wV37fuzGhC2fLSCL7JyyMd3BAiRiimIhV95-mEROU,17294
|
89
89
|
weatherdb/utils/logging.py,sha256=iaWnzCdBYxFmzWgLq9a6VAeBMdwy-rnt2d9PSAQq4lA,4242
|
90
|
-
weatherdb-1.2.
|
91
|
-
weatherdb-1.2.
|
92
|
-
weatherdb-1.2.
|
93
|
-
weatherdb-1.2.
|
94
|
-
weatherdb-1.2.
|
95
|
-
weatherdb-1.2.
|
90
|
+
weatherdb-1.2.4.dist-info/licenses/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
|
91
|
+
weatherdb-1.2.4.dist-info/METADATA,sha256=NNHSK3kH_KjYWLwXTNxNDtY0PvXoYsnTuF-rf5K7zIw,44308
|
92
|
+
weatherdb-1.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
93
|
+
weatherdb-1.2.4.dist-info/entry_points.txt,sha256=kJemTd9Cm_QWPZt03KUWhpn1aB0-l_5ce6Ms3EoS_NM,55
|
94
|
+
weatherdb-1.2.4.dist-info/top_level.txt,sha256=kLlRbXLn0GHvMWmciWRyvm0-FYEy56F6d0fGwfle9-g,28
|
95
|
+
weatherdb-1.2.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|