EVS-ATMOS / chicago-data-warehouse

Place for collaboration for the Chicago Data Warehouse SULI project
Apache License 2.0
0 stars 3 forks source link

NCEP Meteorological Assimilation Data Ingest System (MADIS) #9

Open jrobrien91 opened 1 year ago

jrobrien91 commented 1 year ago

NOAA's observational database and data delivery system.

Code snippet provided by Adam Theisen


import pandas as pd
import datetime as dt
import numpy as np
import warnings
warnings.filterwarnings("ignore")

url = 'https://madis-data.ncep.noaa.gov/madisPublic1/cgi-bin/madisXmlPublicDir?rdr=&time=0&minbck=-59&minfwd=0&recwin=3&dfltrsel=2&state=IL&latll=0.0&lonll=0.0&latur=90.0&lonur=0.0&stanam=&stasel=0&pvdrsel=0&varsel=1&qctype=0&qcsel=0&xml=2&csvmiss=0&nvars=TD&nvars=RH&nvars=P&nvars=T&nvars=DD&nvars=FF&nvars=LAT&nvars=LON&nvars=PCPUTCM&nvars=FFGUST'

names = ['station_id', 'date', 'time', 'provider', 'subprovider', 'dewpoint_temp', 'rh', 'pres', 'temp', 'wdir', 'wspd', 'lat', 'lon', 'precip', 'gust', 'null']
df = pd.read_csv(url, skiprows=9, names=names, skipfooter=3, engine='python')

time = []
for i, st in enumerate(df.station_id):
    df.station_id[i] = st.split(' ')[1]
    df.time[i] = pd.to_datetime(df.date[i]+' '+df.time[i])
    flag_lat = df.lat[i] >= 41.464333 and df.lat[i] <= 42.174325
    flag_lon = df.lon[i] >= -88.841011 and df.lon[i] <= -87.319889
    if flag_lat and flag_lon:
        #if df.station_id[i] == '0735W':
        #    print(df.loc[[i]])
        df.loc[[i]].to_csv('/Users/atheisen/Code/sandbox/MADIS/data/' + df.station_id[i] + '.csv', index=False, header=False, mode='a')