Latest#

Demonstrate synoptic.services.Latest

[1]:
from synoptic import Latest

import matplotlib.pyplot as plt
[2]:
df = Latest(
    bbox=[-120, 40, -119, 41],
    showemptystations=True,
    vars="air_temp",
    units="english",
).df()
df
🚚💨 Speedy delivery from Synoptic latest service.
📦 Received data from 12 stations.
[2]:
shape: (12, 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-11-10 06:37:00 UTC"air_temp"1false37.0"Fahrenheit"2169"BLUN2""BLUEWING MOUNTAIN"4570.040.50147-119.121612"NV""America/Los_Angeles"4655.51998-07-28 00:00:00 UTC2024-11-10 05:37:00 UTCfalsetrue
2024-11-10 06:59:00 UTC"air_temp"1false40.0"Fahrenheit"2171"BUFN2""BUFFALO CREEK"3940.040.58058-119.788812"NV""America/Los_Angeles"3917.31998-07-28 00:00:00 UTC2024-11-10 05:59:00 UTCfalsetrue
nullnullnullnullnullnull24903"D1623""DW1623 Gerlach"3947.040.65133-119.3551765"NV""America/Los_Angeles"3950.12008-11-05 00:00:00 UTC2012-11-22 12:44:00 UTCfalsefalse
2024-11-10 07:00:00 UTC"air_temp"1false36.0"Fahrenheit"35321"UP973""PHIL"3998.040.62174-119.4138464"NV""America/Los_Angeles"3930.42013-01-04 00:00:00 UTC2024-11-10 05:22:00 UTCfalsetrue
2024-11-10 06:36:00 UTC"air_temp"1false39.0"Fahrenheit"35322"UP974""TREGO"4005.040.78996-119.0708864"NV""America/Los_Angeles"3937.02013-01-04 00:00:00 UTC2024-11-10 06:12:00 UTCfalsetrue
2024-11-10 06:28:00 UTC"air_temp"1false48.0"Fahrenheit"35347"UP999""REYNRD"3880.040.53186-119.6135464"NV""America/Los_Angeles"3874.72013-01-04 00:00:00 UTC2024-11-10 04:26:00 UTCfalsetrue
2023-12-18 20:20:00 UTC"air_temp"1false37.14"Fahrenheit"41973"NHUA""Hualapai Flat"4055.040.90111-119.3330662"NV""America/Los_Angeles"4081.42013-12-19 00:00:00 UTC2024-01-01 07:20:00 UTCfalsefalse
nullnullnullnullnullnull57082"COOPGERN2""GERLACH"3954.040.6517-119.357973"NV""America/Los_Angeles"3927.22016-07-18 18:18:00 UTC2019-05-17 16:00:00 UTCfalsefalse
2024-11-10 07:00:00 UTC"air_temp"1false41.0"Fahrenheit"61916"F0371""FW0371 Gerlach"3953.040.65176-119.3579965"NV""America/Los_Angeles"3963.32017-02-12 08:19:00 UTC2024-11-10 06:00:00 UTCfalsetrue
2024-11-10 07:00:00 UTC"air_temp"1false39.0"Fahrenheit"181031"G2749""GW2749 Gerlach"4028.040.85933-119.3418365"NV""America/Los_Angeles"4022.32023-01-03 22:09:00 UTC2024-11-10 06:15:00 UTCfalsetrue
[51]:
fig, ax = plt.subplots(1, 1, figsize=(10, 10))

for i in df.iter_rows(named=True):
    ax.text(
        i["longitude"],
        i["latitude"] + 0.01,
        f'{i["stid"]}\n{i["value"]} F',
        va="bottom",
        ha="left",
    )
    if i["value"] is None:
        art = ax.scatter(
            i["longitude"],
            i["latitude"],
            color=None,
            ec="k",
            s=100,
        )
    else:
        art = ax.scatter(
            i["longitude"],
            i["latitude"],
            c=i["value"],
            ec="k",
            cmap="Spectral_r",
            vmin=20,
            vmax=80,
            s=100,
        )
plt.colorbar(art, ax=ax, location="bottom", pad=0.05, label="Air Temperature (F)")
[51]:
<matplotlib.colorbar.Colorbar at 0x7f03762f5670>
../../_images/user_guide_services_tutorials_Latest_3_1.png

Whoa, there is a station reporting 118 degree F and another reporting 18 F.