dataviz / app.py
Nicholas Armenta
Getting started
4ca99af
raw history blame
No virus
1.28 kB
#!/usr/bin/env streamlit run
import streamlit as st
import pandas as pd
import os, requests, json
API_KEY=os.environ.get('AIRNOW')
st.title('Data Visualization')
st.sidebar.header('')
mainPage = st.sidebar.selectbox(
'Choose from some examples...',
['Weather map', 'Growth', 'Adjustment'])
if mainPage == 'Weather map':
BASE_URL = 'https://www.airnowapi.org/aq/observation/zipCode/historical/?format=application/json'
startDate = st.date_input('Choose a date...')
zipCode = int(st.number_input('Enter your zip code...', min_value=0, max_value=99999, value=75019, step=1))
distance = st.slider('Choose a radius...',0,100,10,5)
ARGS = f'&zipCode={zipCode}&date={startDate.year}-{startDate.month}-{startDate.day-2}T00-0000&distance={distance}&API_KEY={API_KEY}'
QUERY_URL = f'{BASE_URL}{ARGS}'
r = requests.get(QUERY_URL)
if r.status_code != 200:
st.write('Couldn\'t get data!')
ozone = json.loads(r.text)[0]
date = ozone["DateObserved"]
aqi = ozone["AQI"]
description = ozone["Category"]["Name"]
lat, lon = (ozone["Latitude"], ozone["Longitude"])
st.write(f'Date: {date}, AQI: {aqi}, Level: {description}')
mapData = pd.DataFrame({'lat': [lat, lat+10], 'lon': [lon, lon+10]})
st.map(mapData)