{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ⏲️ Convert to local time zone\n",
"\n",
"SynotpicPy always parses date-time information as **UTC**. But you can convert it to the stations local timezone. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime\n",
"\n",
"import polars as pl\n",
"import polars.selectors as cs\n",
"\n",
"import synoptic"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Single time zone\n",
"If there is only one unique timezone, this conversion is straightforward..."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🚚💨 Speedy delivery from Synoptic timeseries service.\n",
"📦 Received data from 1 stations.\n"
]
},
{
"data": {
"text/html": [
"
\n",
"
shape: (5, 20)| date_time | variable | sensor_index | is_derived | value | units | id | stid | name | elevation | latitude | longitude | mnet_id | state | timezone | elev_dem | period_of_record_start | period_of_record_end | is_restricted | is_active |
|---|
| datetime[μs, UTC] | str | u32 | bool | f64 | str | u32 | str | str | f64 | f64 | f64 | u32 | str | str | f64 | datetime[μs, UTC] | datetime[μs, UTC] | bool | bool |
| 2024-01-01 00:00:00 UTC | "air_temp" | 1 | false | 4.194 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1997-01-01 00:00:00 UTC | 2024-11-10 01:20:00 UTC | false | true |
| 2024-01-01 00:01:00 UTC | "air_temp" | 1 | false | 4.083 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1997-01-01 00:00:00 UTC | 2024-11-10 01:20:00 UTC | false | true |
| 2024-01-01 00:02:00 UTC | "air_temp" | 1 | false | 3.983 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1997-01-01 00:00:00 UTC | 2024-11-10 01:20:00 UTC | false | true |
| 2024-01-01 00:03:00 UTC | "air_temp" | 1 | false | 3.928 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1997-01-01 00:00:00 UTC | 2024-11-10 01:20:00 UTC | false | true |
| 2024-01-01 00:04:00 UTC | "air_temp" | 1 | false | 3.894 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1997-01-01 00:00:00 UTC | 2024-11-10 01:20:00 UTC | false | true |
"
],
"text/plain": [
"shape: (5, 20)\n",
"┌───────────┬──────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬───────────┐\n",
"│ date_time ┆ variable ┆ sensor_in ┆ is_derive ┆ … ┆ period_of ┆ period_of ┆ is_restri ┆ is_active │\n",
"│ --- ┆ --- ┆ dex ┆ d ┆ ┆ _record_s ┆ _record_e ┆ cted ┆ --- │\n",
"│ datetime[ ┆ str ┆ --- ┆ --- ┆ ┆ tart ┆ nd ┆ --- ┆ bool │\n",
"│ μs, UTC] ┆ ┆ u32 ┆ bool ┆ ┆ --- ┆ --- ┆ bool ┆ │\n",
"│ ┆ ┆ ┆ ┆ ┆ datetime[ ┆ datetime[ ┆ ┆ │\n",
"│ ┆ ┆ ┆ ┆ ┆ μs, UTC] ┆ μs, UTC] ┆ ┆ │\n",
"╞═══════════╪══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-01-0 ┆ 2024-11-1 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 0 ┆ ┆ │\n",
"│ 00:00:00 ┆ ┆ ┆ ┆ ┆ 00:00:00 ┆ 01:20:00 ┆ ┆ │\n",
"│ UTC ┆ ┆ ┆ ┆ ┆ UTC ┆ UTC ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-01-0 ┆ 2024-11-1 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 0 ┆ ┆ │\n",
"│ 00:01:00 ┆ ┆ ┆ ┆ ┆ 00:00:00 ┆ 01:20:00 ┆ ┆ │\n",
"│ UTC ┆ ┆ ┆ ┆ ┆ UTC ┆ UTC ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-01-0 ┆ 2024-11-1 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 0 ┆ ┆ │\n",
"│ 00:02:00 ┆ ┆ ┆ ┆ ┆ 00:00:00 ┆ 01:20:00 ┆ ┆ │\n",
"│ UTC ┆ ┆ ┆ ┆ ┆ UTC ┆ UTC ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-01-0 ┆ 2024-11-1 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 0 ┆ ┆ │\n",
"│ 00:03:00 ┆ ┆ ┆ ┆ ┆ 00:00:00 ┆ 01:20:00 ┆ ┆ │\n",
"│ UTC ┆ ┆ ┆ ┆ ┆ UTC ┆ UTC ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-01-0 ┆ 2024-11-1 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 0 ┆ ┆ │\n",
"│ 00:04:00 ┆ ┆ ┆ ┆ ┆ 00:00:00 ┆ 01:20:00 ┆ ┆ │\n",
"│ UTC ┆ ┆ ┆ ┆ ┆ UTC ┆ UTC ┆ ┆ │\n",
"└───────────┴──────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴───────────┘"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = synoptic.TimeSeries(\n",
" stid=\"wbb\",\n",
" start=datetime(2024, 1, 1),\n",
" end=datetime(2024, 1, 5),\n",
" obtimezone=\"local\",\n",
" vars=[\"air_temp\"],\n",
").df()\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (5, 20)| date_time | variable | sensor_index | is_derived | value | units | id | stid | name | elevation | latitude | longitude | mnet_id | state | timezone | elev_dem | period_of_record_start | period_of_record_end | is_restricted | is_active |
|---|
| datetime[μs, America/Denver] | str | u32 | bool | f64 | str | u32 | str | str | f64 | f64 | f64 | u32 | str | str | f64 | datetime[μs, America/Denver] | datetime[μs, America/Denver] | bool | bool |
| 2023-12-31 17:00:00 MST | "air_temp" | 1 | false | 4.194 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:01:00 MST | "air_temp" | 1 | false | 4.083 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:02:00 MST | "air_temp" | 1 | false | 3.983 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:03:00 MST | "air_temp" | 1 | false | 3.928 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:04:00 MST | "air_temp" | 1 | false | 3.894 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
"
],
"text/plain": [
"shape: (5, 20)\n",
"┌───────────┬──────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬───────────┐\n",
"│ date_time ┆ variable ┆ sensor_in ┆ is_derive ┆ … ┆ period_of ┆ period_of ┆ is_restri ┆ is_active │\n",
"│ --- ┆ --- ┆ dex ┆ d ┆ ┆ _record_s ┆ _record_e ┆ cted ┆ --- │\n",
"│ datetime[ ┆ str ┆ --- ┆ --- ┆ ┆ tart ┆ nd ┆ --- ┆ bool │\n",
"│ μs, Ameri ┆ ┆ u32 ┆ bool ┆ ┆ --- ┆ --- ┆ bool ┆ │\n",
"│ ca/Denver ┆ ┆ ┆ ┆ ┆ datetime[ ┆ datetime[ ┆ ┆ │\n",
"│ ] ┆ ┆ ┆ ┆ ┆ μs, Ameri ┆ μs, Ameri ┆ ┆ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ca/Denver ┆ ca/Denver ┆ ┆ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ] ┆ ] ┆ ┆ │\n",
"╞═══════════╪══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:01:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:02:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:03:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:04:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"└───────────┴──────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴───────────┘"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get the unique timezone value\n",
"tz = df[\"timezone\"].unique().item()\n",
"\n",
"# Convert all datetime columns to the time zone.\n",
"df.with_columns(cs.datetime().dt.convert_time_zone(tz)).head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Multiple time zones\n",
"\n",
"If your stations span mulitiple time zones, you'll have to partition the DataFrame by timezone. Notice that this produces a list of DataFrames with a DataFrame for each timezone."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🚚💨 Speedy delivery from Synoptic timeseries service.\n",
"📦 Received data from 2 stations.\n"
]
},
{
"data": {
"text/plain": [
"{'America/Denver': shape: (1_292, 20)\n",
" ┌───────────┬──────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬───────────┐\n",
" │ date_time ┆ variable ┆ sensor_in ┆ is_derive ┆ … ┆ period_of ┆ period_of ┆ is_restri ┆ is_active │\n",
" │ --- ┆ --- ┆ dex ┆ d ┆ ┆ _record_s ┆ _record_e ┆ cted ┆ --- │\n",
" │ datetime[ ┆ str ┆ --- ┆ --- ┆ ┆ tart ┆ nd ┆ --- ┆ bool │\n",
" │ μs, Ameri ┆ ┆ u32 ┆ bool ┆ ┆ --- ┆ --- ┆ bool ┆ │\n",
" │ ca/Denver ┆ ┆ ┆ ┆ ┆ datetime[ ┆ datetime[ ┆ ┆ │\n",
" │ ] ┆ ┆ ┆ ┆ ┆ μs, Ameri ┆ μs, Ameri ┆ ┆ │\n",
" │ ┆ ┆ ┆ ┆ ┆ ca/Denver ┆ ca/Denver ┆ ┆ │\n",
" │ ┆ ┆ ┆ ┆ ┆ ] ┆ ] ┆ ┆ │\n",
" ╞═══════════╪══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 17:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 17:05:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 17:10:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 17:15:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 17:20:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:45:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:50:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:54:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:55:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 17:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
" │ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
" └───────────┴──────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴───────────┘,\n",
" 'America/Los_Angeles': shape: (1_219, 20)\n",
" ┌───────────┬──────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬───────────┐\n",
" │ date_time ┆ variable ┆ sensor_in ┆ is_derive ┆ … ┆ period_of ┆ period_of ┆ is_restri ┆ is_active │\n",
" │ --- ┆ --- ┆ dex ┆ d ┆ ┆ _record_s ┆ _record_e ┆ cted ┆ --- │\n",
" │ datetime[ ┆ str ┆ --- ┆ --- ┆ ┆ tart ┆ nd ┆ --- ┆ bool │\n",
" │ μs, Ameri ┆ ┆ u32 ┆ bool ┆ ┆ --- ┆ --- ┆ bool ┆ │\n",
" │ ca/Los_An ┆ ┆ ┆ ┆ ┆ datetime[ ┆ datetime[ ┆ ┆ │\n",
" │ geles] ┆ ┆ ┆ ┆ ┆ μs, Ameri ┆ μs, Ameri ┆ ┆ │\n",
" │ ┆ ┆ ┆ ┆ ┆ ca/Los_An ┆ ca/Los_An ┆ ┆ │\n",
" │ ┆ ┆ ┆ ┆ ┆ geles] ┆ geles] ┆ ┆ │\n",
" ╞═══════════╪══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:05:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:10:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:15:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:20:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 15:40:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 15:45:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 15:54:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 15:55:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" │ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1997-04-1 ┆ 2024-11-0 ┆ false ┆ true │\n",
" │ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
" │ 16:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 17:20:00 ┆ ┆ │\n",
" │ PST ┆ ┆ ┆ ┆ ┆ PDT ┆ PST ┆ ┆ │\n",
" └───────────┴──────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴───────────┘}"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = synoptic.TimeSeries(\n",
" stid=\"kslc,kmry\",\n",
" start=datetime(2024, 1, 1),\n",
" end=datetime(2024, 1, 5),\n",
" obtimezone=\"local\",\n",
" vars=[\"air_temp\"],\n",
").df()\n",
"\n",
"df_tz = {}\n",
"for i in df.partition_by(\"timezone\"):\n",
" tz = i[\"timezone\"].unique().item()\n",
"\n",
" df_tz[tz] = i.with_columns(cs.datetime().dt.convert_time_zone(tz))\n",
"\n",
"df_tz"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Synoptic Namespace\n",
"The same is implemented in the `synoptic` namespace"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"🚚💨 Speedy delivery from Synoptic timeseries service.\n",
"📦 Received data from 1 stations.\n"
]
},
{
"data": {
"text/html": [
"\n",
"
shape: (5_761, 20)| date_time | variable | sensor_index | is_derived | value | units | id | stid | name | elevation | latitude | longitude | mnet_id | state | timezone | elev_dem | period_of_record_start | period_of_record_end | is_restricted | is_active |
|---|
| datetime[μs, America/Denver] | str | u32 | bool | f64 | str | u32 | str | str | f64 | f64 | f64 | u32 | str | str | f64 | datetime[μs, America/Denver] | datetime[μs, America/Denver] | bool | bool |
| 2023-12-31 17:00:00 MST | "air_temp" | 1 | false | 4.194 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:01:00 MST | "air_temp" | 1 | false | 4.083 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:02:00 MST | "air_temp" | 1 | false | 3.983 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:03:00 MST | "air_temp" | 1 | false | 3.928 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2023-12-31 17:04:00 MST | "air_temp" | 1 | false | 3.894 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 2024-01-04 16:56:00 MST | "air_temp" | 1 | false | -0.033 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2024-01-04 16:57:00 MST | "air_temp" | 1 | false | -0.094 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2024-01-04 16:58:00 MST | "air_temp" | 1 | false | -0.106 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2024-01-04 16:59:00 MST | "air_temp" | 1 | false | -0.072 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
| 2024-01-04 17:00:00 MST | "air_temp" | 1 | false | -0.067 | "Celsius" | 1 | "WBB" | "U of U William Browning Buildi… | 4806.0 | 40.76623 | -111.84755 | 153 | "UT" | "America/Denver" | 4727.7 | 1996-12-31 17:00:00 MST | 2024-11-09 18:20:00 MST | false | true |
"
],
"text/plain": [
"shape: (5_761, 20)\n",
"┌───────────┬──────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬───────────┐\n",
"│ date_time ┆ variable ┆ sensor_in ┆ is_derive ┆ … ┆ period_of ┆ period_of ┆ is_restri ┆ is_active │\n",
"│ --- ┆ --- ┆ dex ┆ d ┆ ┆ _record_s ┆ _record_e ┆ cted ┆ --- │\n",
"│ datetime[ ┆ str ┆ --- ┆ --- ┆ ┆ tart ┆ nd ┆ --- ┆ bool │\n",
"│ μs, Ameri ┆ ┆ u32 ┆ bool ┆ ┆ --- ┆ --- ┆ bool ┆ │\n",
"│ ca/Denver ┆ ┆ ┆ ┆ ┆ datetime[ ┆ datetime[ ┆ ┆ │\n",
"│ ] ┆ ┆ ┆ ┆ ┆ μs, Ameri ┆ μs, Ameri ┆ ┆ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ca/Denver ┆ ca/Denver ┆ ┆ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ] ┆ ] ┆ ┆ │\n",
"╞═══════════╪══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:01:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:02:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:03:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2023-12-3 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 1 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:04:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 16:56:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 16:57:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 16:58:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 16:59:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"│ 2024-01-0 ┆ air_temp ┆ 1 ┆ false ┆ … ┆ 1996-12-3 ┆ 2024-11-0 ┆ false ┆ true │\n",
"│ 4 ┆ ┆ ┆ ┆ ┆ 1 ┆ 9 ┆ ┆ │\n",
"│ 17:00:00 ┆ ┆ ┆ ┆ ┆ 17:00:00 ┆ 18:20:00 ┆ ┆ │\n",
"│ MST ┆ ┆ ┆ ┆ ┆ MST ┆ MST ┆ ┆ │\n",
"└───────────┴──────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴───────────┘"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = synoptic.TimeSeries(\n",
" stid=\"wbb\",\n",
" start=datetime(2024, 1, 1),\n",
" end=datetime(2024, 1, 5),\n",
" obtimezone=\"local\",\n",
" vars=[\"air_temp\"],\n",
").df()\n",
"\n",
"df.synoptic.with_local_timezone()\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "synoptic2",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}