Exemplo n.º 1
0
    def test_scatterlog(self):
        sim_array = self.merged_df.iloc[:, 0].values
        obs_array = self.merged_df.iloc[:, 1].values

        # Creating test image array
        hv.scatter(sim_array=sim_array,
                   obs_array=obs_array,
                   grid=True,
                   title='Scatter Plot (Log-Log Scale)',
                   labels=('SFPT', 'GLOFAS'),
                   line45=True,
                   metrics=['ME', 'KGE (2012)'],
                   log_scale=True)
        buf = BytesIO()
        plt.savefig(buf, format='png')
        buf.seek(0)
        img_test = mpimg.imread(buf)
        buf.close()

        # Reading original image
        img_original = mpimg.imread(
            os.path.join(os.getcwd(), 'baseline_images', 'plot_tests',
                         'scatterlog.png'))

        # Comparing the images
        self.assertTrue(np.all(np.isclose(img_test, img_original)))
Exemplo n.º 2
0
    def test_scatter(self):
        # Creating test image array
        hv.scatter(merged_data_df=self.merged_df, grid=True, title='Scatter Plot (Normal Scale)',
                   labels=('SFPT', 'GLOFAS'), best_fit=True)
        buf = BytesIO()
        plt.savefig(buf, format='png')
        buf.seek(0)
        img_test = mpimg.imread(buf)
        buf.close()

        # Reading original image
        img_original = mpimg.imread(os.path.join(os.getcwd(), 'baseline_images', 'plot_tests', 'scatter.png'))

        # Comparing the images
        self.assertTrue(np.all(np.isclose(img_test, img_original)))
    hv.plot(merged_df,
            legend=('Simulated', 'Observed'),
            grid=True,
            title='Hydrograph for ' + name + '\n River: ' + rio + '. COMID: ' +
            str(comid),
            labels=['Datetime', 'Volume (BCM)'],
            linestyles=['b-', 'r-'],
            fig_size=(15, 9))
    plt.savefig(
        path.join(plot_out_dir,
                  '{0}_{1}_hydrographs.png'.format(str(comid), name)))

    hv.scatter(merged_data_df=merged_df,
               grid=True,
               title='Scatter Plot for ' + name + '\n River: ' + rio +
               '. COMID: ' + str(comid),
               labels=('Simulated', 'Observed'),
               line45=True,
               best_fit=True,
               figsize=(15, 9))
    plt.savefig(
        path.join(scatter_out_dir,
                  '{0}_{1}_scatter_plot.png'.format(str(comid), name)))

    hv.scatter(sim_array=sim_array,
               obs_array=obs_array,
               grid=True,
               title='Scatter Plot (Log Scale) for ' + name + '\n River: ' +
               rio + '. COMID: ' + str(comid),
               labels=('Simulated', 'Observed'),
               line45=True,
               best_fit=True,
Exemplo n.º 4
0
        labels=['Datetime', 'Streamflow (m$^3$/s)'],
        linestyles=['b-', 'r-'],
        fig_size=(15, 9),
        ebars=monthly_std_error,
        ecolor=('b', 'r'),
        tight_xlim=False)
    #plt.savefig(path.join(monthly_average_out_dir, '{0}_{1}_monthly_average.png'.format(str(id), name)))
    plt.savefig(
        path.join(monthly_average_out_dir,
                  '{0}_{1}_monthly_average.png'.format(str(comid), name)))

    hv.scatter(
        merged_data_df=merged_df,
        grid=True,
        #title='Scatter Plot for ' + str(id) + ' - ' + name + '\n River: ' + rio + '. COMID: ' + str(comid),
        title='Scatter Plot for ' + name + '\n River: ' + rio + '. COMID: ' +
        str(comid),
        labels=('ERA-Interim', 'ERA-5'),
        line45=True,
        best_fit=True,
        figsize=(15, 9))
    #plt.savefig(path.join(scatter_out_dir, '{0}_{1}_scatter_plot.png'.format(str(id), name)))
    plt.savefig(
        path.join(scatter_out_dir,
                  '{0}_{1}_scatter_plot.png'.format(str(comid), name)))

    hv.scatter(
        sim_array=sim_array,
        obs_array=obs_array,
        grid=True,
        #title='Scatter Plot (Log Scale) for ' + str(id) + ' - ' + name + '\n River: ' + rio + '. COMID: ' + str(
        #    comid),
# This list specifies which metrics to use:
metrics = []

# This list controls the axis labels:
labels = ['Datetime', 'Streamflow (cms)']

# End of Dynamic Input. Do NOT Change the following -------------------------------------------

# Create a list of 18 stream modified Time Series
list_riv_part_era5 = []
for riv in list_riv_mouth_era5:
    riv_part_era5 = riv.loc[begin_date:end_date]
    list_riv_part_era5.append(riv_part_era5)

for s, o, t, s1, s2 in zip(list_sim, list_obs, range(18), series1, series2):
    merged_df = hd.merge_data(sim_df=list_riv_part_era5[s],
                              obs_df=list_riv_part_era5[o])
    filename = year + ' (ERA-5): ' + list_titles[t]
    hv.scatter(merged_data_df=merged_df,
               title=filename,
               labels=(s1, s2),
               metrics=metrics,
               marker_style=".",
               grid=True,
               log_scale=False,
               line45=True)
    plt.tight_layout()
    plt.savefig(
        '/home/chrisedwards/Documents/rapid_output/graphs/{}.png'.format(
            filename))
    'ID: Sim (Outlet) vs Obs (gauge-13340600)',
    'MO: Sim (Outlet) vs Obs (gauge-07014500)',
    'NY: Sim (Outlet) vs Obs (gauge-01413500)',
    'OR: Sim (Outlet) vs Obs (gauge-14306500)',
    'AZ: Sim (str-60) vs Obs (gauge-09492400)',
    'MO: Sim (str-50) vs Obs (gauge-07013000)',
    'MO: Sim (str-51) vs Obs (gauge-07014000)',
    'NY: Sim (str-47) vs Obs (gauge-01413408)',
    'NY: Sim (str-46) vs Obs (gauge-01413398)',
    'OR: Sim (str-58) vs Obs (gauge-14306400)',
    'OR: Sim (str-47) vs Obs (gauge-14306100)'
]

metrics = []

for s, o, t in zip(range(12), range(12), range(12)):
    merged_df = hd.merge_data(sim_df=list_sim_df[s], obs_df=list_obs_df[o])
    da_df = hd.daily_average(merged_df)
    filename = list_titles[t] + ' Daily Avg Scatter'
    hv.scatter(merged_data_df=da_df,
               title=filename,
               labels=('Sim (cms)', 'Obs (cms)'),
               metrics=metrics,
               marker_style=".",
               grid=True,
               log_scale=False,
               line45=True)
    plt.tight_layout()
    plt.savefig(
        '/home/chrisedwards/Documents/rapid_output/graphs/{}.png'.format(
            filename))