{ "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_timevariablesensor_indexis_derivedvalueunitsidstidnameelevationlatitudelongitudemnet_idstatetimezoneelev_demperiod_of_record_startperiod_of_record_endis_restrictedis_active
datetime[μs, UTC]stru32boolf64stru32strstrf64f64f64u32strstrf64datetime[μs, UTC]datetime[μs, UTC]boolbool
2024-01-01 00:00:00 UTC"air_temp"1false4.194"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71997-01-01 00:00:00 UTC2024-11-10 01:20:00 UTCfalsetrue
2024-01-01 00:01:00 UTC"air_temp"1false4.083"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71997-01-01 00:00:00 UTC2024-11-10 01:20:00 UTCfalsetrue
2024-01-01 00:02:00 UTC"air_temp"1false3.983"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71997-01-01 00:00:00 UTC2024-11-10 01:20:00 UTCfalsetrue
2024-01-01 00:03:00 UTC"air_temp"1false3.928"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71997-01-01 00:00:00 UTC2024-11-10 01:20:00 UTCfalsetrue
2024-01-01 00:04:00 UTC"air_temp"1false3.894"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71997-01-01 00:00:00 UTC2024-11-10 01:20:00 UTCfalsetrue
" ], "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_timevariablesensor_indexis_derivedvalueunitsidstidnameelevationlatitudelongitudemnet_idstatetimezoneelev_demperiod_of_record_startperiod_of_record_endis_restrictedis_active
datetime[μs, America/Denver]stru32boolf64stru32strstrf64f64f64u32strstrf64datetime[μs, America/Denver]datetime[μs, America/Denver]boolbool
2023-12-31 17:00:00 MST"air_temp"1false4.194"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:01:00 MST"air_temp"1false4.083"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:02:00 MST"air_temp"1false3.983"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:03:00 MST"air_temp"1false3.928"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:04:00 MST"air_temp"1false3.894"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
" ], "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_timevariablesensor_indexis_derivedvalueunitsidstidnameelevationlatitudelongitudemnet_idstatetimezoneelev_demperiod_of_record_startperiod_of_record_endis_restrictedis_active
datetime[μs, America/Denver]stru32boolf64stru32strstrf64f64f64u32strstrf64datetime[μs, America/Denver]datetime[μs, America/Denver]boolbool
2023-12-31 17:00:00 MST"air_temp"1false4.194"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:01:00 MST"air_temp"1false4.083"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:02:00 MST"air_temp"1false3.983"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:03:00 MST"air_temp"1false3.928"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2023-12-31 17:04:00 MST"air_temp"1false3.894"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2024-01-04 16:56:00 MST"air_temp"1false-0.033"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2024-01-04 16:57:00 MST"air_temp"1false-0.094"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2024-01-04 16:58:00 MST"air_temp"1false-0.106"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2024-01-04 16:59:00 MST"air_temp"1false-0.072"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
2024-01-04 17:00:00 MST"air_temp"1false-0.067"Celsius"1"WBB""U of U William Browning Buildi…4806.040.76623-111.84755153"UT""America/Denver"4727.71996-12-31 17:00:00 MST2024-11-09 18:20:00 MSTfalsetrue
" ], "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 }