Esempio n. 1
0
def main():

    whole_domain_bathymetry = \
        "/skynet3_rech1/huziy/NEMO_OFFICIAL/Simulations/1981-2000_Sim_per_lake_100yr_spinup_LIM3/Huron/bathy_meter.nc"

    basemap, lons, lats = nemo_commons.get_basemap_and_coordinates_from_file(
        path=whole_domain_bathymetry, resolution="h")

    data_folder = "/home/huziy/skynet3_rech1/NEMO_OFFICIAL/Simulations/1981-2000_Sim_per_lake_100yr_spinup_LIM3/Huron"
    manager_u = NemoOutputManager(file_path=os.path.join(
        data_folder, "GLK_10d_19810101_20001231_grid_U.nc"),
                                  var_name="vozocrtx")

    manager_v = NemoOutputManager(file_path=os.path.join(
        data_folder, "GLK_10d_19810101_20001231_grid_V.nc"),
                                  var_name="vomecrty")

    scalar_manager = NemoOutputManager(file_path=os.path.join(
        data_folder, "GLK_10d_19810101_20001231_grid_T.nc"),
                                       var_name="sosstsst")

    img_dir = "animations_nemo/Huron"

    if not os.path.isdir(img_dir):
        os.makedirs(img_dir)

    main_for_lake(bathy_path=os.path.join(data_folder, "bathy_meter.nc"),
                  manager_u=manager_u,
                  manager_v=manager_v,
                  basemap=basemap,
                  scalar_manager=scalar_manager,
                  img_dir=img_dir)
Esempio n. 2
0
def main():

    img_folder = "nemo/validation_1d"
    if not os.path.isdir(img_folder):
        os.makedirs(img_folder)

    img_name_prefix = "mean_surface_temp_"
    obs_data_path = (
        "/skynet3_rech1/huziy/GLSEA/"
        "coastwatch.glerl.noaa.gov/ftp/glsea/avgtemps/1992-1998/glsea-temps1992-1998-schwab.dat"
    )
    data = np.loadtxt(obs_data_path, skiprows=3)

    dates = [
        datetime(int(data[row, 0]), int(data[row, 2]), int(data[row, 3]))
        for row in range(data.shape[0])
    ]

    for col, lake_name in column_to_lake_name_glsea.items():
        folder_path = nemo_commons.lake_to_folder_with_sim_data_1981_2000_seplakes_exp[
            lake_name]
        fname_tgrid = None
        for fname in os.listdir(folder_path):
            if fname.endswith("grid_T.nc"):
                fname_tgrid = fname
                break

        if fname_tgrid is None:
            continue

        print("Processing {}".format(lake_name))
        fig = plt.figure()
        ax = plt.gca()
        fpath = os.path.join(folder_path, fname_tgrid)
        nom = NemoOutputManager(file_path=fpath, var_name="sosstsst")
        ts_obs = pd.DataFrame(index=dates,
                              data=data[:, col],
                              columns=[
                                  "GLSEA",
                              ])
        ts_mod = nom.get_area_mean_timeseries()

        ts_mod = ts_mod.truncate(before=ts_obs.index[0],
                                 after=ts_obs.index[-1])

        ax.plot(ts_obs.index, ts_obs["GLSEA"], color="b", lw=2, label="GLSEA")
        ax.plot(ts_mod.index, ts_mod["NEMO"], color="r", lw=2, label="NEMO")

        ax.set_ylabel(r"${\rm ^{\circ}C}$")

        if col == 5:
            ax.legend(ncol=2)

        ax.set_title(lake_name)

        fig.savefig(
            os.path.join(img_folder, img_name_prefix + lake_name + ".png"))
def main():

    img_folder = "nemo/validation_1d"
    if not os.path.isdir(img_folder):
        os.makedirs(img_folder)

    img_name_prefix = "mean_surface_temp_"
    obs_data_path = ("/skynet3_rech1/huziy/GLSEA/"
                     "coastwatch.glerl.noaa.gov/ftp/glsea/avgtemps/1992-1998/glsea-temps1992-1998-schwab.dat")
    data = np.loadtxt(obs_data_path, skiprows=3)

    dates = [datetime(int(data[row, 0]), int(data[row, 2]), int(data[row, 3])) for row in range(data.shape[0])]

    for col, lake_name in column_to_lake_name_glsea.items():
        folder_path = nemo_commons.lake_to_folder_with_sim_data_1981_2000_seplakes_exp[lake_name]
        fname_tgrid = None
        for fname in os.listdir(folder_path):
            if fname.endswith("grid_T.nc"):
                fname_tgrid = fname
                break

        if fname_tgrid is None:
            continue

        print("Processing {}".format(lake_name))
        fig = plt.figure()
        ax = plt.gca()
        fpath = os.path.join(folder_path, fname_tgrid)
        nom = NemoOutputManager(
            file_path=fpath, var_name="sosstsst"
        )
        ts_obs = pd.DataFrame(index=dates, data=data[:, col], columns=["GLSEA",])
        ts_mod = nom.get_area_mean_timeseries()

        ts_mod = ts_mod.truncate(before=ts_obs.index[0], after=ts_obs.index[-1])

        ax.plot(ts_obs.index, ts_obs["GLSEA"], color="b", lw=2, label="GLSEA")
        ax.plot(ts_mod.index, ts_mod["NEMO"], color="r", lw=2, label="NEMO")

        ax.set_ylabel(r"${\rm ^{\circ}C}$")

        if col == 5:
            ax.legend(ncol=2)

        ax.set_title(lake_name)

        fig.savefig(os.path.join(img_folder, img_name_prefix + lake_name + ".png"))
Esempio n. 4
0
def main():

    img_folder = "nemo/validation_1d/"
    if not os.path.isdir(img_folder):
        os.makedirs(img_folder)

    img_name_prefix = "max_ice_cover_"

    for col, lake_name in column_to_lake_name_glsea.items():
        folder_path = nemo_commons.lake_to_folder_with_sim_data_1981_2000_seplakes_exp[
            lake_name]
        fname_tgrid = None
        for fname in os.listdir(folder_path):
            if fname.endswith("grid_T.nc"):
                fname_tgrid = fname
                break

        if fname_tgrid is None:
            continue

        fig = plt.figure()
        ax = plt.gca()
        fpath = os.path.join(folder_path, fname_tgrid)
        nom = NemoOutputManager(file_path=fpath, var_name="soicecov")
        ts_mod = nom.get_area_mean_timeseries()
        ts_mod = ts_mod.groupby(by=lambda d: d.year).max()
        ax.plot(ts_mod.index,
                ts_mod["NEMO"] * 100.0,
                color="r",
                lw=2,
                label="NEMO")

        ax.set_ylabel(r"%")
        ax.legend(loc=3)

        ax.set_title(lake_name)

        fig.savefig(
            os.path.join(img_folder, img_name_prefix + lake_name + ".png"))
Esempio n. 5
0
def main():

    img_folder = "nemo/validation_1d/"
    if not os.path.isdir(img_folder):
        os.makedirs(img_folder)

    img_name_prefix = "max_ice_cover_"


    for col, lake_name in column_to_lake_name_glsea.items():
        folder_path = nemo_commons.lake_to_folder_with_sim_data_1981_2000_seplakes_exp[lake_name]
        fname_tgrid = None
        for fname in os.listdir(folder_path):
            if fname.endswith("grid_T.nc"):
                fname_tgrid = fname
                break

        if fname_tgrid is None:
            continue


        fig = plt.figure()
        ax = plt.gca()
        fpath = os.path.join(folder_path, fname_tgrid)
        nom = NemoOutputManager(
            file_path=fpath, var_name="soicecov"
        )
        ts_mod = nom.get_area_mean_timeseries()
        ts_mod = ts_mod.groupby(by=lambda d: d.year).max()
        ax.plot(ts_mod.index, ts_mod["NEMO"] * 100.0, color="r", lw=2, label="NEMO")

        ax.set_ylabel(r"%")
        ax.legend(loc=3)

        ax.set_title(lake_name)

        fig.savefig(os.path.join(img_folder, img_name_prefix + lake_name + ".png"))