1
+ <!DOCTYPE html>
2
+
3
+ < html lang ="en " data-content_root ="../../ ">
4
+ < head >
5
+ < meta charset ="utf-8 " />
6
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
7
+ < title > idf_analysis.in_out — Intensity Duration Frequency Analyse 0.2.8 documentation</ title >
8
+ < link rel ="stylesheet " type ="text/css " href ="../../_static/pygments.css?v=a746c00c " />
9
+ < link rel ="stylesheet " type ="text/css " href ="../../_static/nature.css?v=0f882399 " />
10
+ < script src ="../../_static/documentation_options.js?v=b01fafc3 "> </ script >
11
+ < script src ="../../_static/doctools.js?v=9a2dae69 "> </ script >
12
+ < script src ="../../_static/sphinx_highlight.js?v=dc90522c "> </ script >
13
+ < script crossorigin ="anonymous " integrity ="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA= " src ="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js "> </ script >
14
+ < link rel ="index " title ="Index " href ="../../genindex.html " />
15
+ < link rel ="search " title ="Search " href ="../../search.html " />
16
+ </ head > < body >
17
+ < div class ="related " role ="navigation " aria-label ="Related ">
18
+ < h3 > Navigation</ h3 >
19
+ < ul >
20
+ < li class ="right " style ="margin-right: 10px ">
21
+ < a href ="../../genindex.html " title ="General Index "
22
+ accesskey ="I "> index</ a > </ li >
23
+ < li class ="right " >
24
+ < a href ="../../py-modindex.html " title ="Python Module Index "
25
+ > modules</ a > |</ li >
26
+ < li class ="nav-item nav-item-0 "> < a href ="../../index.html "> Intensity Duration Frequency Analyse 0.2.8 documentation</ a > »</ li >
27
+ < li class ="nav-item nav-item-1 "> < a href ="../index.html " accesskey ="U "> Module code</ a > »</ li >
28
+ < li class ="nav-item nav-item-this "> < a href =""> idf_analysis.in_out</ a > </ li >
29
+ </ ul >
30
+ </ div >
31
+
32
+ < div class ="document ">
33
+ < div class ="documentwrapper ">
34
+ < div class ="bodywrapper ">
35
+ < div class ="body " role ="main ">
36
+
37
+ < h1 > Source code for idf_analysis.in_out</ h1 > < div class ="highlight "> < pre >
38
+ < span > </ span > < span class ="n "> __author__</ span > < span class ="o "> =</ span > < span class ="s2 "> "Markus Pichler"</ span >
39
+ < span class ="n "> __credits__</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="s2 "> "Markus Pichler"</ span > < span class ="p "> ]</ span >
40
+ < span class ="n "> __maintainer__</ span > < span class ="o "> =</ span > < span class ="s2 "> "Markus Pichler"</ span >
41
+ < span class ="n "> __email__</ span > < span class ="o "> =</ span > < span class ="s2 "> "markus.pichler@tugraz.at"</ span >
42
+ < span class ="n "> __version__</ span > < span class ="o "> =</ span > < span class ="s2 "> "0.1"</ span >
43
+ < span class ="n "> __license__</ span > < span class ="o "> =</ span > < span class ="s2 "> "MIT"</ span >
44
+
45
+ < span class ="kn "> import</ span > < span class ="nn "> pandas</ span > < span class ="k "> as</ span > < span class ="nn "> pd</ span >
46
+ < span class ="kn "> import</ span > < span class ="nn "> yaml</ span >
47
+ < span class ="kn "> from</ span > < span class ="nn "> collections</ span > < span class ="kn "> import</ span > < span class ="n "> OrderedDict</ span >
48
+
49
+
50
+ < div class ="viewcode-block " id ="import_series ">
51
+ < a class ="viewcode-back " href ="../../base_functions.html#idf_analysis.in_out.import_series "> [docs]</ a >
52
+ < span class ="k "> def</ span > < span class ="nf "> import_series</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ,</ span > < span class ="n "> series_label</ span > < span class ="o "> =</ span > < span class ="s1 "> 'precipitation'</ span > < span class ="p "> ,</ span > < span class ="n "> index_label</ span > < span class ="o "> =</ span > < span class ="s1 "> 'datetime'</ span > < span class ="p "> ,</ span > < span class ="n "> csv_reader_args</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
53
+ < span class ="w "> </ span > < span class ="sd "> """</ span >
54
+
55
+ < span class ="sd "> Args:</ span >
56
+ < span class ="sd "> filename:</ span >
57
+ < span class ="sd "> series_label:</ span >
58
+ < span class ="sd "> index_label:</ span >
59
+ < span class ="sd "> csv_reader_args: for example: sep="," or "." and decimal=";" or ","</ span >
60
+
61
+ < span class ="sd "> Returns:</ span >
62
+ < span class ="sd "> pandas.Series: precipitation series</ span >
63
+ < span class ="sd "> """</ span >
64
+ < span class ="k "> if</ span > < span class ="n "> filename</ span > < span class ="o "> .</ span > < span class ="n "> endswith</ span > < span class ="p "> (</ span > < span class ="s1 "> 'csv'</ span > < span class ="p "> ):</ span >
65
+ < span class ="k "> if</ span > < span class ="n "> csv_reader_args</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
66
+ < span class ="n "> csv_reader_args</ span > < span class ="o "> =</ span > < span class ="nb "> dict</ span > < span class ="p "> (</ span > < span class ="n "> sep</ span > < span class ="o "> =</ span > < span class ="s1 "> ';'</ span > < span class ="p "> ,</ span > < span class ="n "> decimal</ span > < span class ="o "> =</ span > < span class ="s1 "> ','</ span > < span class ="p "> )</ span >
67
+ < span class ="k "> try</ span > < span class ="p "> :</ span >
68
+ < span class ="n "> ts</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> read_csv</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ,</ span > < span class ="n "> index_col</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="n "> header</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="n "> squeeze</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> csv_reader_args</ span > < span class ="p "> )</ span >
69
+ < span class ="n "> ts</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> to_datetime</ span > < span class ="p "> (</ span > < span class ="n "> ts</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="p "> )</ span >
70
+ < span class ="n "> ts</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="n "> index_label</ span >
71
+ < span class ="n "> ts</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="n "> series_label</ span >
72
+ < span class ="k "> except</ span > < span class ="p "> :</ span >
73
+ < span class ="k "> raise</ span > < span class ="ne "> UserWarning</ span > < span class ="p "> (</ span > < span class ="s1 "> 'ERROR | '</ span >
74
+ < span class ="s1 "> 'Something is wrong with your csv format. The file should only include two columns. '</ span >
75
+ < span class ="s1 "> 'First column is the date and time index (prefered format is "YYYY-MM-DD HH:MM:SS") '</ span >
76
+ < span class ="s1 "> 'and second column the precipitation values in mm. '</ span >
77
+ < span class ="s1 "> 'As a separator use "</ span > < span class ="si "> {sep}</ span > < span class ="s1 "> " and as decimal sign use "</ span > < span class ="si "> {decimal}</ span > < span class ="s1 "> ".'</ span > < span class ="o "> .</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="o "> **</ span > < span class ="n "> csv_reader_args</ span > < span class ="p "> ))</ span >
78
+
79
+ < span class ="k "> return</ span > < span class ="n "> ts</ span >
80
+ < span class ="k "> elif</ span > < span class ="n "> filename</ span > < span class ="o "> .</ span > < span class ="n "> endswith</ span > < span class ="p "> (</ span > < span class ="s1 "> 'parquet'</ span > < span class ="p "> ):</ span >
81
+ < span class ="k "> return</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> read_parquet</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ,</ span > < span class ="n "> columns</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> series_label</ span > < span class ="p "> ])[</ span > < span class ="n "> series_label</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> rename_axis</ span > < span class ="p "> (</ span > < span class ="n "> index_label</ span > < span class ="p "> ,</ span > < span class ="n "> axis</ span > < span class ="o "> =</ span > < span class ="s1 "> 'index'</ span > < span class ="p "> )</ span >
82
+ < span class ="k "> elif</ span > < span class ="n "> filename</ span > < span class ="o "> .</ span > < span class ="n "> endswith</ span > < span class ="p "> (</ span > < span class ="s1 "> 'pkl'</ span > < span class ="p "> ):</ span >
83
+ < span class ="k "> return</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> read_pickle</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> rename</ span > < span class ="p "> (</ span > < span class ="n "> series_label</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> rename_axis</ span > < span class ="p "> (</ span > < span class ="n "> index_label</ span > < span class ="p "> ,</ span > < span class ="n "> axis</ span > < span class ="o "> =</ span > < span class ="s1 "> 'index'</ span > < span class ="p "> )</ span >
84
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
85
+ < span class ="k "> raise</ span > < span class ="ne "> NotImplementedError</ span > < span class ="p "> (</ span > < span class ="s1 "> 'Sorry, but only csv, parquet and pickle files are implemented. '</ span >
86
+ < span class ="s1 "> 'Maybe there will be more options soon.'</ span > < span class ="p "> )</ span > </ div >
87
+
88
+
89
+ < span class ="c1 "> # ------------------------------------------------------------------------------</ span >
90
+ < span class ="n "> _mapping_tag</ span > < span class ="o "> =</ span > < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> resolver</ span > < span class ="o "> .</ span > < span class ="n "> BaseResolver</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_MAPPING_TAG</ span >
91
+
92
+
93
+ < span class ="k "> def</ span > < span class ="nf "> _dict_representer</ span > < span class ="p "> (</ span > < span class ="n "> dumper</ span > < span class ="p "> ,</ span > < span class ="n "> data</ span > < span class ="p "> ):</ span >
94
+ < span class ="k "> return</ span > < span class ="n "> dumper</ span > < span class ="o "> .</ span > < span class ="n "> represent_dict</ span > < span class ="p "> (</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ())</ span >
95
+
96
+
97
+ < span class ="k "> def</ span > < span class ="nf "> _dict_constructor</ span > < span class ="p "> (</ span > < span class ="n "> loader</ span > < span class ="p "> ,</ span > < span class ="n "> node</ span > < span class ="p "> ):</ span >
98
+ < span class ="k "> return</ span > < span class ="n "> OrderedDict</ span > < span class ="p "> (</ span > < span class ="n "> loader</ span > < span class ="o "> .</ span > < span class ="n "> construct_pairs</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> ))</ span >
99
+
100
+
101
+ < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> add_representer</ span > < span class ="p "> (</ span > < span class ="n "> OrderedDict</ span > < span class ="p "> ,</ span > < span class ="n "> _dict_representer</ span > < span class ="p "> )</ span >
102
+ < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> add_constructor</ span > < span class ="p "> (</ span > < span class ="n "> _mapping_tag</ span > < span class ="p "> ,</ span > < span class ="n "> _dict_constructor</ span > < span class ="p "> )</ span >
103
+
104
+
105
+ < span class ="k "> def</ span > < span class ="nf "> write_yaml</ span > < span class ="p "> (</ span > < span class ="n "> data</ span > < span class ="p "> ,</ span > < span class ="n "> fn</ span > < span class ="p "> ):</ span >
106
+ < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> dump</ span > < span class ="p "> (</ span > < span class ="n "> data</ span > < span class ="p "> ,</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> fn</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'w'</ span > < span class ="p "> ),</ span > < span class ="n "> default_flow_style</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="n "> width</ span > < span class ="o "> =</ span > < span class ="mi "> 200</ span > < span class ="p "> )</ span >
107
+
108
+
109
+ < span class ="k "> def</ span > < span class ="nf "> read_yaml</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ):</ span >
110
+ < span class ="k "> return</ span > < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> load</ span > < span class ="p "> (</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> filename</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'r'</ span > < span class ="p "> ),</ span > < span class ="n "> Loader</ span > < span class ="o "> =</ span > < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> FullLoader</ span > < span class ="p "> )</ span >
111
+ </ pre > </ div >
112
+
113
+ < div class ="clearer "> </ div >
114
+ </ div >
115
+ </ div >
116
+ </ div >
117
+ < div class ="sphinxsidebar " role ="navigation " aria-label ="Main ">
118
+ < div class ="sphinxsidebarwrapper ">
119
+ < search id ="searchbox " style ="display: none " role ="search ">
120
+ < h3 id ="searchlabel "> Quick search</ h3 >
121
+ < div class ="searchformwrapper ">
122
+ < form class ="search " action ="../../search.html " method ="get ">
123
+ < input type ="text " name ="q " aria-labelledby ="searchlabel " autocomplete ="off " autocorrect ="off " autocapitalize ="off " spellcheck ="false "/>
124
+ < input type ="submit " value ="Go " />
125
+ </ form >
126
+ </ div >
127
+ </ search >
128
+ < script > document . getElementById ( 'searchbox' ) . style . display = "block" </ script >
129
+ </ div >
130
+ </ div >
131
+ < div class ="clearer "> </ div >
132
+ </ div >
133
+ < div class ="related " role ="navigation " aria-label ="Related ">
134
+ < h3 > Navigation</ h3 >
135
+ < ul >
136
+ < li class ="right " style ="margin-right: 10px ">
137
+ < a href ="../../genindex.html " title ="General Index "
138
+ > index</ a > </ li >
139
+ < li class ="right " >
140
+ < a href ="../../py-modindex.html " title ="Python Module Index "
141
+ > modules</ a > |</ li >
142
+ < li class ="nav-item nav-item-0 "> < a href ="../../index.html "> Intensity Duration Frequency Analyse 0.2.8 documentation</ a > »</ li >
143
+ < li class ="nav-item nav-item-1 "> < a href ="../index.html " > Module code</ a > »</ li >
144
+ < li class ="nav-item nav-item-this "> < a href =""> idf_analysis.in_out</ a > </ li >
145
+ </ ul >
146
+ </ div >
147
+ < div class ="footer " role ="contentinfo ">
148
+ © Copyright 2024, Pichler.
149
+ Created using < a href ="https://www.sphinx-doc.org/ "> Sphinx</ a > 8.0.2.
150
+ </ div >
151
+ </ body >
152
+ </ html >
0 commit comments