Skip to content

Commit 6165b58

Browse files
committed
Deploying to gh-pages from @ 0f90912 🚀
1 parent 8289a13 commit 6165b58

67 files changed

Lines changed: 1913 additions & 1781 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: fed5354d1f865db849de0892891cf74b
3+
config: 0c41fe2714eec0250881badbe22584af
44
tags: 645f666f9bcd5a90fca523b33c5a78b7
-254 Bytes
Loading
-123 Bytes
Loading

_modules/dataretrieval/nadp.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<head>
66
<meta charset="utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>dataretrieval.nadp &mdash; dataretrieval 0.1.dev1+g18f831f1d documentation</title>
8+
<title>dataretrieval.nadp &mdash; dataretrieval 0.1.dev1+g0f90912bc documentation</title>
99
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
1010
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
1111

1212

1313
<script src="../../_static/jquery.js?v=5d32c60e"></script>
1414
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
15-
<script src="../../_static/documentation_options.js?v=de132bfb"></script>
15+
<script src="../../_static/documentation_options.js?v=bc18b2be"></script>
1616
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
1717
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
1818
<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>

_modules/dataretrieval/nldi.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<head>
66
<meta charset="utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>dataretrieval.nldi &mdash; dataretrieval 0.1.dev1+g18f831f1d documentation</title>
8+
<title>dataretrieval.nldi &mdash; dataretrieval 0.1.dev1+g0f90912bc documentation</title>
99
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
1010
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
1111

1212

1313
<script src="../../_static/jquery.js?v=5d32c60e"></script>
1414
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
15-
<script src="../../_static/documentation_options.js?v=de132bfb"></script>
15+
<script src="../../_static/documentation_options.js?v=bc18b2be"></script>
1616
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
1717
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
1818
<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>

_modules/dataretrieval/nwis.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<head>
66
<meta charset="utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>dataretrieval.nwis &mdash; dataretrieval 0.1.dev1+g18f831f1d documentation</title>
8+
<title>dataretrieval.nwis &mdash; dataretrieval 0.1.dev1+g0f90912bc documentation</title>
99
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
1010
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
1111

1212

1313
<script src="../../_static/jquery.js?v=5d32c60e"></script>
1414
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
15-
<script src="../../_static/documentation_options.js?v=de132bfb"></script>
15+
<script src="../../_static/documentation_options.js?v=bc18b2be"></script>
1616
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
1717
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
1818
<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>

_modules/dataretrieval/streamstats.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<head>
66
<meta charset="utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>dataretrieval.streamstats &mdash; dataretrieval 0.1.dev1+g18f831f1d documentation</title>
8+
<title>dataretrieval.streamstats &mdash; dataretrieval 0.1.dev1+g0f90912bc documentation</title>
99
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
1010
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
1111

1212

1313
<script src="../../_static/jquery.js?v=5d32c60e"></script>
1414
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
15-
<script src="../../_static/documentation_options.js?v=de132bfb"></script>
15+
<script src="../../_static/documentation_options.js?v=bc18b2be"></script>
1616
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
1717
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
1818
<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>

_modules/dataretrieval/utils.html

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<head>
66
<meta charset="utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>dataretrieval.utils &mdash; dataretrieval 0.1.dev1+g18f831f1d documentation</title>
8+
<title>dataretrieval.utils &mdash; dataretrieval 0.1.dev1+g0f90912bc documentation</title>
99
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
1010
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
1111

1212

1313
<script src="../../_static/jquery.js?v=5d32c60e"></script>
1414
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
15-
<script src="../../_static/documentation_options.js?v=de132bfb"></script>
15+
<script src="../../_static/documentation_options.js?v=bc18b2be"></script>
1616
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
1717
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
1818
<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>
@@ -176,6 +176,114 @@ <h1>Source code for dataretrieval.utils</h1><div class="highlight"><pre>
176176

177177

178178

179+
<span class="c1"># (time-suffix, tz-suffix) pairs that follow a &quot;&lt;prefix&gt;Date&quot; column.</span>
180+
<span class="n">_TIME_TZ_SUFFIXES</span> <span class="o">=</span> <span class="p">(</span>
181+
<span class="c1"># WQX3 / Samples, e.g.</span>
182+
<span class="c1"># Activity_StartDate / Activity_StartTime / Activity_StartTimeZone</span>
183+
<span class="p">(</span><span class="s2">&quot;Time&quot;</span><span class="p">,</span> <span class="s2">&quot;TimeZone&quot;</span><span class="p">),</span>
184+
<span class="c1"># Legacy WQP (slash-separated), e.g.</span>
185+
<span class="c1"># ActivityStartDate / ActivityStartTime/Time / ActivityStartTime/TimeZoneCode</span>
186+
<span class="p">(</span><span class="s2">&quot;Time/Time&quot;</span><span class="p">,</span> <span class="s2">&quot;Time/TimeZoneCode&quot;</span><span class="p">),</span>
187+
<span class="p">)</span>
188+
189+
190+
<div class="viewcode-block" id="_build_utc_datetime">
191+
<a class="viewcode-back" href="../../reference/utils.html#dataretrieval.utils._build_utc_datetime">[docs]</a>
192+
<span class="k">def</span><span class="w"> </span><span class="nf">_build_utc_datetime</span><span class="p">(</span>
193+
<span class="n">date_series</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">Series</span><span class="p">,</span> <span class="n">time_series</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">Series</span><span class="p">,</span> <span class="n">tz_series</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">Series</span>
194+
<span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="o">.</span><span class="n">Series</span><span class="p">:</span>
195+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Combine date + time + tz-abbreviation columns into a UTC pandas Series.</span>
196+
197+
<span class="sd"> Unknown timezone codes (and rows missing any of the three values) yield</span>
198+
<span class="sd"> ``NaT``. The input columns are not mutated.</span>
199+
<span class="sd"> &quot;&quot;&quot;</span>
200+
<span class="n">offsets</span> <span class="o">=</span> <span class="n">tz_series</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="n">tz</span><span class="p">)</span>
201+
<span class="n">combined</span> <span class="o">=</span> <span class="p">(</span>
202+
<span class="n">date_series</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s2">&quot;string&quot;</span><span class="p">)</span>
203+
<span class="o">+</span> <span class="s2">&quot; &quot;</span>
204+
<span class="o">+</span> <span class="n">time_series</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s2">&quot;string&quot;</span><span class="p">)</span>
205+
<span class="o">+</span> <span class="s2">&quot; &quot;</span>
206+
<span class="o">+</span> <span class="n">offsets</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s2">&quot;string&quot;</span><span class="p">)</span>
207+
<span class="p">)</span>
208+
<span class="k">return</span> <span class="n">pd</span><span class="o">.</span><span class="n">to_datetime</span><span class="p">(</span>
209+
<span class="n">combined</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S %z&quot;</span><span class="p">,</span> <span class="n">utc</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">errors</span><span class="o">=</span><span class="s2">&quot;coerce&quot;</span>
210+
<span class="p">)</span></div>
211+
212+
213+
214+
<div class="viewcode-block" id="_attach_datetime_columns">
215+
<a class="viewcode-back" href="../../reference/utils.html#dataretrieval.utils._attach_datetime_columns">[docs]</a>
216+
<span class="k">def</span><span class="w"> </span><span class="nf">_attach_datetime_columns</span><span class="p">(</span><span class="n">df</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
217+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Add ``&lt;prefix&gt;DateTime`` UTC columns for any Date/Time/TimeZone triplets</span>
218+
<span class="sd"> and sort the frame by the activity-start datetime.</span>
219+
220+
<span class="sd"> Detects two naming patterns that appear in USGS Samples and Water Quality</span>
221+
<span class="sd"> Portal CSV responses:</span>
222+
223+
<span class="sd"> * **WQX3** — ``&lt;prefix&gt;Date``, ``&lt;prefix&gt;Time``, ``&lt;prefix&gt;TimeZone``</span>
224+
<span class="sd"> * **Legacy WQP** — ``&lt;prefix&gt;Date``, ``&lt;prefix&gt;Time/Time``,</span>
225+
<span class="sd"> ``&lt;prefix&gt;Time/TimeZoneCode``</span>
226+
227+
<span class="sd"> For every triplet present, a new ``&lt;prefix&gt;DateTime`` column is appended</span>
228+
<span class="sd"> holding a UTC ``Timestamp`` (offsets resolved via</span>
229+
<span class="sd"> :data:`dataretrieval.codes.tz`). The original Date/Time/TimeZone columns</span>
230+
<span class="sd"> are left intact, and an existing ``&lt;prefix&gt;DateTime`` column is never</span>
231+
<span class="sd"> overwritten.</span>
232+
233+
<span class="sd"> Rows are sorted (and the index reset) by the canonical activity-start</span>
234+
<span class="sd"> datetime when present — ``Activity_StartDateTime`` (WQX3) or</span>
235+
<span class="sd"> ``ActivityStartDateTime`` (legacy WQP) — falling back to the first</span>
236+
<span class="sd"> detected ``*Date`` column. Mirrors R ``dataRetrieval``&#39;s</span>
237+
<span class="sd"> end-of-pipeline sort in ``importWQP.R``.</span>
238+
239+
<span class="sd"> Parameters</span>
240+
<span class="sd"> ----------</span>
241+
<span class="sd"> df : ``pandas.DataFrame``</span>
242+
<span class="sd"> DataFrame returned from a Samples or WQP CSV endpoint.</span>
243+
244+
<span class="sd"> Returns</span>
245+
<span class="sd"> -------</span>
246+
<span class="sd"> df : ``pandas.DataFrame``</span>
247+
<span class="sd"> A new DataFrame with derivable ``&lt;prefix&gt;DateTime`` columns appended</span>
248+
<span class="sd"> and rows sorted by the activity-start datetime (if any date column</span>
249+
<span class="sd"> was detected).</span>
250+
<span class="sd"> &quot;&quot;&quot;</span>
251+
<span class="n">columns</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span>
252+
<span class="n">new_columns</span> <span class="o">=</span> <span class="p">{}</span>
253+
<span class="n">first_date_col</span> <span class="o">=</span> <span class="kc">None</span>
254+
<span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">df</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span>
255+
<span class="k">if</span> <span class="ow">not</span> <span class="n">col</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;Date&quot;</span><span class="p">):</span>
256+
<span class="k">continue</span>
257+
<span class="k">if</span> <span class="n">first_date_col</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
258+
<span class="n">first_date_col</span> <span class="o">=</span> <span class="n">col</span>
259+
<span class="n">prefix</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">removesuffix</span><span class="p">(</span><span class="s2">&quot;Date&quot;</span><span class="p">)</span>
260+
<span class="n">target</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;DateTime&quot;</span>
261+
<span class="k">if</span> <span class="n">target</span> <span class="ow">in</span> <span class="n">columns</span> <span class="ow">or</span> <span class="n">target</span> <span class="ow">in</span> <span class="n">new_columns</span><span class="p">:</span>
262+
<span class="k">continue</span>
263+
<span class="k">for</span> <span class="n">time_suffix</span><span class="p">,</span> <span class="n">tz_suffix</span> <span class="ow">in</span> <span class="n">_TIME_TZ_SUFFIXES</span><span class="p">:</span>
264+
<span class="n">time_col</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="n">time_suffix</span>
265+
<span class="n">tz_col</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="n">tz_suffix</span>
266+
<span class="k">if</span> <span class="n">time_col</span> <span class="ow">in</span> <span class="n">columns</span> <span class="ow">and</span> <span class="n">tz_col</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span>
267+
<span class="n">new_columns</span><span class="p">[</span><span class="n">target</span><span class="p">]</span> <span class="o">=</span> <span class="n">_build_utc_datetime</span><span class="p">(</span>
268+
<span class="n">df</span><span class="p">[</span><span class="n">col</span><span class="p">],</span> <span class="n">df</span><span class="p">[</span><span class="n">time_col</span><span class="p">],</span> <span class="n">df</span><span class="p">[</span><span class="n">tz_col</span><span class="p">]</span>
269+
<span class="p">)</span>
270+
<span class="k">break</span>
271+
<span class="k">if</span> <span class="n">new_columns</span><span class="p">:</span>
272+
<span class="c1"># Concat in one shot — per-column assignment on a wide CSV-derived</span>
273+
<span class="c1"># frame triggers pandas&#39; fragmentation PerformanceWarning.</span>
274+
<span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span class="p">([</span><span class="n">df</span><span class="p">,</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">new_columns</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">df</span><span class="o">.</span><span class="n">index</span><span class="p">)],</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
275+
<span class="k">if</span> <span class="s2">&quot;Activity_StartDateTime&quot;</span> <span class="ow">in</span> <span class="n">df</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span>
276+
<span class="n">sort_key</span> <span class="o">=</span> <span class="s2">&quot;Activity_StartDateTime&quot;</span>
277+
<span class="k">elif</span> <span class="s2">&quot;ActivityStartDateTime&quot;</span> <span class="ow">in</span> <span class="n">df</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span>
278+
<span class="n">sort_key</span> <span class="o">=</span> <span class="s2">&quot;ActivityStartDateTime&quot;</span>
279+
<span class="k">else</span><span class="p">:</span>
280+
<span class="n">sort_key</span> <span class="o">=</span> <span class="n">first_date_col</span>
281+
<span class="k">if</span> <span class="n">sort_key</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
282+
<span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="n">sort_key</span><span class="p">,</span> <span class="n">ignore_index</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
283+
<span class="k">return</span> <span class="n">df</span></div>
284+
285+
286+
179287
<div class="viewcode-block" id="BaseMetadata">
180288
<a class="viewcode-back" href="../../reference/utils.html#dataretrieval.utils.BaseMetadata">[docs]</a>
181289
<span class="k">class</span><span class="w"> </span><span class="nc">BaseMetadata</span><span class="p">:</span>

0 commit comments

Comments
 (0)