예제 #1
0
async def get_shades(file):
    print(file)
    results = {}
    sky_imager = cmos.SkyImager("south")

    rad_hq = cmos.Radiation("rad_hq")
    ceilo = cmos.Ceilometer()
    sky_imager.get_date_from_image_name(file)
    cloud_height = ceilo.get_height(sky_imager.date)

    sky_imager.load_image(file, cloud_height=cloud_height)

    date_object = sky_imager.date

    hq_lat = 54.494541
    hq_lon = 11.240319

    pyr_is_shaded = float(rad_hq.is_shaded(date_object))

    cam_is_shaded = sky_imager.shadow_on_lat_lon(hq_lat, hq_lon)
    #   print("RESULT: %f"%cam_is_shaded)

    result = {"pyr": pyr_is_shaded, "cam": cam_is_shaded}
    results[date_object.strftime("%Y%m%d_%H%M%S")] = result
    return results
예제 #2
0
def live_plot(output_path, image_folder):

    fig = plt.figure(figsize=(21,7))
    files = image_folder
    sky_imager = cmos.SkyImager("hq")
    map = cmos.Map()
    ceilo = cmos.Ceilometer()

    ax1 = plt.subplot(131)
    ax2 = plt.subplot(132)
    ax3 = map.make_map(subplot_info=133)


    while True:
        print(files)
        file = sorted(glob.glob(files))[-1]
        print(file)

        sky_imager.get_date_from_image_name(file)
        cloud_height = ceilo.get_height(sky_imager.date)
        print('cloud height = ' + str(cloud_height))

        sky_imager.load_image(file, cloud_height=cloud_height)
        print(sky_imager.date)
        print(sky_imager.height)
        print(sky_imager.sun_elevation, sky_imager.sun_azimuth)
        sky_imager.create_lat_lon_array()
        sky_imager.create_lat_lon_cloud_mask()

        shadow_on_cam_position = sky_imager.shadow_on_cam_position()
        if shadow_on_cam_position:
            base_color = "grey"

        else:
            base_color = "darkorange"

        print("plotting...")

        # Raw image:
        ax1.imshow(sky_imager.original_image)


        # Cloud Mask:
        ax2.imshow(sky_imager.cloud_image)


        # Cloud map:
        ax3.set_positional_data(date=sky_imager.date,
                                cloud_height=sky_imager.cloud_height,
                                sun_azimuth=sky_imager.sun_azimuth,
                                sun_elevation=sky_imager.sun_elevation)
        ax3.create_shadow_mask(sky_imager.lat_lon_cloud_mask)
        ax3.add_shadows()
        # ax3.add_clouds(sky_imager.lat_lon_cloud_mask)
        ax3.add_station_marker(sky_imager.instrument_name, sky_imager.lat, sky_imager.lon, color=base_color)
        ax3.add_setting_title('Clouds and shadows', size=16)

        print("Saving image...")
        plt.savefig(output_path)

        print("Removing old layers from Map...")
        ax3.remove_sky_values()
        map.remove_sky_values()

        # plt.show()
        print("sleeping")
        time.sleep(10)
        print("sleeping done")
예제 #3
0
#    print(sun_position)


#file = "C:/Users/darkl/Desktop/cmos/skyimager/LEX_WKM2_JPG_20180826/LEX_WKM2_Image_20180826_152340_UTCp1.jpg"
#




#multiplot

cloud_height = 2840


file = "/home/fibu/Studium/18_SoSe/Lehrexkursion/cmos_lex/data/img/LEX_WKM2_Image_20180826_152340_UTCp1.jpg"
skyim_hq = cmos.SkyImager("hq")
skyim_hq.load_image(file,cloud_height=cloud_height)
skyim_hq.create_lat_lon_cloud_mask()

file = "/home/fibu/Studium/18_SoSe/Lehrexkursion/cmos_lex/data/img/LEX_WKM3_Image_20180826_152340_UTCp1.jpg"
skyim_west = cmos.SkyImager("west")
skyim_west.load_image(file,cloud_height=cloud_height)
skyim_west.create_lat_lon_cloud_mask()

file = "/home/fibu/Studium/18_SoSe/Lehrexkursion/cmos_lex/data/img/LEX_WKM4_Image_20180826_152340_UTCp1.jpg"
skyim_south = cmos.SkyImager("south")
skyim_south.load_image(file,cloud_height=cloud_height)
skyim_south.create_lat_lon_cloud_mask()


fig = plt.figure()
예제 #4
0
                            sun_azimuth=sky_imager.sun_azimuth,
                            sun_elevation=sky_imager.sun_elevation)
    sky_imager.create_cloud_mask()
    sky_imager.create_lat_lon_cloud_mask()
    ax.create_shadow_mask(sky_imager.lat_lon_cloud_mask)
    ax.add_shadows()
    plt.tight_layout()
    fig.savefig(output_folder + output_name, dpi=700)
    plt.close()
    print("Saved cloud map at: " + output_folder + output_name)


if __name__ == "__main__":
    output_folder = "./"
    file = "/home/fibu/Studium/18_SoSe/Lehrexkursion/Daten/LEX_WKM2_Image_20180826_112520_UTCp1.jpg"
    sky_imager = cmos.SkyImager("hq")
    sky_imager.get_date_from_image_name(file)

    ceilo = cmos.Ceilometer()
    cloud_height = ceilo.get_height(sky_imager.date)
    sky_imager.load_image(file, cloud_height=cloud_height)



    # Uebtertriebene Rotation zu Veranschauungszwecken:
    global example_rotation
    example_rotation = 25

    # Diese funktionen simulieren einzeln in der richtigen Reihenfolge,
    # wie das Programm funktioniert:
예제 #5
0
import matplotlib.pyplot as plt
from scipy.ndimage import label
import numpy as np
import glob

# file = "C:/Users/darkl/Desktop/cmos/skyimager/LEX_WKM2_JPG_20180829/LEX_WKM2_Image_20180901_092840_UTCp1.jpg"
# file = "C:/Users/darkl/Desktop/cmos/skyimager/LEX_WKM2_JPG_20180826/LEX_WKM2_Image_20180826_112340_UTCp1.jpg"

# file = "W:/Aufzeichnung/wkm2/jpg/LEX_WKM2_Image_20180901_094820_UTCp1.jpg"

# files = "W:/Aufzeichnung/wkm2/jpg/LEX_WKM2_Image_*_UTCp1.jpg"
# file = sorted(glob.glob(files))[-1]

file = "/home/tobias/Documents/cmos_data/skyimager/20180828/LEX_WKM2_Image_20180828_180400_UTCp1.jpg"
file = "/home/tobias/Documents/cmos_data/skyimager/WKM4/20180902/LEX_WKM4_Image_20180902_123000_UTCp1.jpg"
sky_imager = cmos.SkyImager("south")
ceilo = cmos.Ceilometer()
sky_imager.get_date_from_image_name(file)
cloud_height = ceilo.get_height(sky_imager.date)
sky_imager.load_image(file, cloud_height=cloud_height)
hq_lat = 54.494541
hq_lon = 11.240319
cm = sky_imager.shadow_on_lat_lon(hq_lat, hq_lon)
plt.imshow(sky_imager.image)
plt.show()

#
# print(sky_imager.date)
# print(sky_imager.height)
# print(sky_imager.sun_elevation,sky_imager.sun_azimuth)
#