Ejemplo n.º 1
0
from mpl_toolkits.basemap import Basemap
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from tqdm import tqdm
import glob
from datetime import datetime, date, timezone, timedelta
import os.path
import os
import seaborn as sns
import matplotlib.gridspec as gridspec

import pandas.plotting._converter as pandacnv
pandacnv.register()

import calc_data

latlon145_file_name = calc_data.latlon145_file_name
latlon900_file_name = calc_data.latlon900_file_name
grid900to145_file_name = calc_data.grid900to145_file_name
ocean_grid_file = calc_data.ocean_grid_file
ocean_grid_145 = calc_data.ocean_grid_145
ocean_idx = calc_data.ocean_idx

latlon_ex = calc_data.get_lonlat_data()

start_list = []
n = 20000000
y_list = [3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16]
for i in y_list:
    m = n + i * 10000
Ejemplo n.º 2
0
"""
Plotting api
"""

# flake8: noqa

try:  # mpl optional
    from pandas.plotting import _converter
    _converter.register()  # needs to override so set_xlim works with str/number
except ImportError:
    pass

from pandas.plotting._misc import (scatter_matrix, radviz,
                                   andrews_curves, bootstrap_plot,
                                   parallel_coordinates, lag_plot,
                                   autocorrelation_plot)
from pandas.plotting._core import boxplot
from pandas.plotting._style import plot_params
from pandas.plotting._tools import table
Ejemplo n.º 3
0
# -*- coding: utf-8 -*-

# external imports
from numpy import *
import pandas as pd
import pandas.plotting._converter as pandacnv  # FIXME: only necessary due to Pandas 0.21.0 bug with Datetime plotting
pandacnv.register(
)  # FIXME: only necessary due to Pandas 0.21.0 bug with Datetime plotting
from scipy import signal
from astropy.timeseries import LombScargle
import matplotlib.pyplot as plt

# internal imports
import load_product as ldp

# data directories
data_dir = '/Users/Ethan/Documents/Research/2016-08 - UW/Data/Argo/Drift/'
output_dir = '/Users/Ethan/Documents/Research/Git/Weddell_polynya/Temporary results/'

######### load APEX data #########

wmoid = 5904471
drift_data = ldp.argo_drift_data(data_dir,
                                 wmoid,
                                 status='R',
                                 bad_pres_range=(500, 1500))
drift_pres = pd.Series(index=drift_data['datetime'], data=drift_data['pres'])
drift_temp = pd.Series(index=drift_data['datetime'], data=drift_data['temp'])
t = (drift_temp.index - drift_temp.index[0]).astype('timedelta64[m]') / (
    24 * 60)  # units: days
y = drift_temp.values.copy()
    def arimaForecasting(self):
        from pandas import datetime
        def parser(x):
            return datetime.strptime(x, '%Y-%m-%d')
        indexedDataset = pd.read_csv("/home/fidel/Downloads/aTenDataset.csv", index_col=0)
        print (indexedDataset)
        #, date_parser=parser, parse_dates=[0],index_col=0
        # indexedDatasetFreq = pd.date_range(indexedDataset,freq=30)
        # print datasetExtracted.dtypes
        # print datasetExtracted
        # indexColm = "Month"
        # targetColm = "#Passengers"
        # salesCarsDatasetDateUpdated.csv(Month,Sales,y-m-d),/Downloads/AirPassengers.csv(Month,#Passengers),/Downloads/aTenDastaset(date,value)



        indexColm = "Date"
        targetColm = "Collections"
        # indexedDatasetDate = pd.to_datetime(indexedDataset, infer_datetime_format=True)
        # indexedDatasetDate.set_index(indexColm,inplace=True)

        indexedDataset = indexedDataset.filter([indexColm,targetColm])
        import pandas.plotting._converter as pandascnv
        pandascnv.register()
        # indexedDataset.to_csv("/home/fidel/Downloads/BIDataset.csv")
        # plt.plot(indexedDataset)
        # plt.show()


        # plt.plot(indexedDataset)
        # plt.show()
        modelAuto = auto_arima(indexedDataset,m=12,max_p=3,max_q=3 ,trace=True, error_action="ignore", suppress_warnings=True,seasonal=True,stepwise=True)
        # modelAutoFit = modelAuto.fit(indexedDataset.values)
        # forecasting
        newDatesLength = 20
        modelAutoPredict,confint = modelAuto.predict(n_periods=newDatesLength,return_conf_int=True)
        indexOfFc = pd.date_range(indexedDataset.index[-1],periods=newDatesLength,freq="MS")
        # modelAutoPredict = pd.DataFrame(modelAutoPredict, index=indexedDataset.index, columns=["Prediction"])

        # making series for plotting
        modelAutoPredictSeries = pd.Series(modelAutoPredict,index=indexOfFc)
        lowerSeries = pd.Series(confint[:,0],index=indexOfFc)
        upperSeries = pd.Series(confint[:,1],index=indexOfFc)

        #plotting the forecasting model
        plt.plot(indexedDataset)
        plt.plot(modelAutoPredictSeries,color="darkgreen")
        plt.fill_between(lowerSeries.index,lowerSeries,upperSeries,color='k',alpha=.15)
        plt.title("arima model forecasting")
        plt.show()

        # plt.plot(modelAutoPredict, label="Prediction")
        # plt.plot(indexedDataset)
        # plt.show()
        from math import sqrt
        from sklearn.metrics import mean_squared_error

        rms = sqrt(mean_squared_error(indexedDataset, modelAutoPredict))
        print(rms)



        rolmean = indexedDataset.rolling(window=12).mean()
        rolstddev = indexedDataset.rolling(window=12).std()

        print (rolmean, rolstddev)
        from statsmodels.tsa.stattools import adfuller
        datasetTest = adfuller(indexedDataset[targetColm], autolag="AIC")
        datasetOutput = pd.Series(datasetTest[0:4],
                                  index=["Test Statistic", "p-value", "#Lags Used", "Number of Observations Used"])
        for key, value in datasetTest[4].items():
            datasetOutput[key] = value
        print (datasetOutput)

        indexedDatasetDiff = indexedDataset.diff(periods=1)
        indexedDatasetDiff = indexedDatasetDiff[1:]


        # order_selection = sm.tsa.arma_order_select_ic(indexedDataset, max_ar=12, max_ma=2, ic="aic")
        # P = order_selection.aic_min_order[0]
        # Q = order_selection.aic_min_order[1]
        D=1
        P=12
        Q=0
        print (P,Q)
        model = ARIMA(indexedDataset[targetColm], order=(P, D, Q))
        modelFit = model.fit()
        prediction = modelFit.forecast(len(indexedDataset))[0]
        plt.plot(prediction, color='red')
        plt.plot(indexedDataset)
        plt.show()
Ejemplo n.º 5
0
def showGUI():

    _converter.register()

    window = Tk()
    window.title("Wada Report Generator")
    window.geometry('350x150')

    csvPath_lbl = Label(window,
                        text="File csv",
                        background='#335469',
                        foreground="white")
    csvPath_lbl.grid(column=0, row=0)
    csv_default_text = StringVar(window, value='test3.csv')
    csvPath_txt = Entry(window, width=30, textvariable=csv_default_text)
    csvPath_txt.grid(column=1, row=0)

    browse_file_btn = Button(window,
                             text="Browse File",
                             command=lambda: OpenFile(csvPath_txt))

    browse_file_btn.grid(column=2, row=0)

    entidade_lbl = Label(window,
                         text="Entidade",
                         background='#335469',
                         foreground="white")
    entidade_lbl.grid(column=0, row=1)
    entidade_default_text = StringVar(window, value="Município de Penacova")
    entidade_txt = Entry(window, width=30, textvariable=entidade_default_text)
    entidade_txt.grid(column=1, row=1)

    local_lbl = Label(window,
                      text="Local",
                      background='#335469',
                      foreground="white")
    local_lbl.grid(column=0, row=2)
    local_default_text = StringVar(window, value="Reservatório da Aveleira ")
    local_txt = Entry(window, width=30, textvariable=local_default_text)
    local_txt.grid(column=1, row=2)

    canal_lbl = Label(window,
                      text="Canal",
                      background='#335469',
                      foreground="white")
    canal_lbl.grid(column=0, row=3)
    canal_default_text = StringVar(window, value="example canal")
    canal_txt = Entry(window, width=30, textvariable=canal_default_text)
    canal_txt.grid(column=1, row=3)

    ramais_lbl = Label(window,
                       text="Ramais",
                       background='#335469',
                       foreground="white")
    ramais_lbl.grid(column=0, row=4)
    ramais_default_text = StringVar(window, value='2')
    ramais_txt = Entry(window, width=30, textvariable=ramais_default_text)
    ramais_txt.grid(column=1, row=4)

    km_de_conduta_lbl = Label(window,
                              text="Km de conduta",
                              background='#335469',
                              foreground="white")
    km_de_conduta_lbl.grid(column=0, row=5)
    km_de_conduta_default_text = StringVar(window, value='10')
    km_de_conduta_txt = Entry(window,
                              width=30,
                              textvariable=km_de_conduta_default_text)
    km_de_conduta_txt.grid(column=1, row=5)

    btn = Button(window,
                 text="Generate",
                 command=lambda: generate(csvPath_txt.get(), entidade_txt.get(
                 ), local_txt.get(), canal_txt.get(), ramais_txt.get(),
                                          km_de_conduta_txt.get()))
    btn.grid(column=2, row=5)

    window.protocol("WM_DELETE_WINDOW", on_closing)
    window.configure(background='#335469')
    window.mainloop()
Ejemplo n.º 6
0
"""
Plotting api
"""

# flake8: noqa

try:  # mpl optional
    from pandas.plotting import _converter
    _converter.register(
    )  # needs to override so set_xlim works with str/number
except ImportError:
    pass

from pandas.plotting._misc import (scatter_matrix, radviz, andrews_curves,
                                   bootstrap_plot, parallel_coordinates,
                                   lag_plot, autocorrelation_plot)
from pandas.plotting._core import boxplot
from pandas.plotting._style import plot_params
from pandas.plotting._tools import table