コード例 #1
0
ファイル: make_kml.py プロジェクト: LEONOB2014/LandGISmaps
def setup_legend(screen):
    screen.overlayxy = simplekml.OverlayXY(x=0,
                                           y=0.5,
                                           xunits=simplekml.Units.fraction,
                                           yunits=simplekml.Units.fraction)
    screen.screenxy = simplekml.ScreenXY(x=10,
                                         y=0.5,
                                         xunits=simplekml.Units.pixel,
                                         yunits=simplekml.Units.fraction)
    '''
コード例 #2
0
ファイル: kml.py プロジェクト: bkuster/potsdam_local
def make_screen(the_kml):
    # add the screen
    # make screen
    screen = the_kml.newscreenoverlay(name='Legende')

    screen.icon.href = 'files/color_ramp.png'
    screen.icon.scale = 0.01

    screen.overlayxy = simplekml.OverlayXY(x=0,
                                           y=1,
                                           xunits=simplekml.Units.fraction,
                                           yunits=simplekml.Units.fraction)
    screen.screenxy = simplekml.ScreenXY(
        x=150,
        y=15,
        xunits=simplekml.Units.pixel,
        yunits=simplekml.Units.insetpixels,
    )
    screen.size.x = 0.36
    screen.size.y = 0.08
    screen.size.xunits = simplekml.Units.fraction
    screen.size.yunits = simplekml.Units.fraction

    # make second screen
    screen_2 = the_kml.newscreenoverlay(name='Logo')

    screen_2.icon.href = 'files/logo.png'
    screen_2.icon.scale = 0.01

    screen_2.overlayxy = simplekml.OverlayXY(x=0,
                                             y=1,
                                             xunits=simplekml.Units.fraction,
                                             yunits=simplekml.Units.fraction)
    screen_2.screenxy = simplekml.ScreenXY(
        x=15,
        y=15,
        xunits=simplekml.Units.pixel,
        yunits=simplekml.Units.insetpixels,
    )
    screen_2.size.x = 0.1
    screen_2.size.y = 0.1
    screen_2.size.xunits = simplekml.Units.fraction
    screen_2.size.yunits = simplekml.Units.fraction
コード例 #3
0
ファイル: postprocessor.py プロジェクト: yaron1000/wrfxpy
    def _scalar2kmz(self, d, var, tndx, out_path, cleanup=True):
        """
        Postprocess a single raster variable ``fa`` and store result in out_path.

        :param d: the open netCDF file
        :param var: the variable name
        :param tndx: the temporal index of the grid to store
        :param out_path: the path to the KMZ output
        :param cleanup: if true, delete png files
        :return: the path to the generated KMZ
        """
        # construct kml file
        doc = kml.Kml(name=var)

        # generate the png files
        raster_path, cb_path, corner_coords = self._scalar2png(
            d, var, tndx, out_path)

        # add colorbar to KMZ
        if cb_path is not None:
            cbo = doc.newscreenoverlay(name='colorbar')
            cbo.overlayxy = kml.OverlayXY(x=0,
                                          y=1,
                                          xunits=kml.Units.fraction,
                                          yunits=kml.Units.fraction)
            cbo.screenxy = kml.ScreenXY(x=0.02,
                                        y=0.95,
                                        xunits=kml.Units.fraction,
                                        yunits=kml.Units.fraction)
            cbo.size = kml.Size(x=150,
                                y=300,
                                xunits=kml.Units.pixel,
                                yunits=kml.Units.pixel)
            cbo.color = kml.Color.rgb(255, 255, 255, a=150)
            cbo.visibility = 1
            #doc.addfile(cb_path)
            cbo.icon.href = cb_path

        # add ground overlay
        ground = doc.newgroundoverlay(name=var, color='80ffffff')
        ground.gxlatlonquad.coords = corner_coords
        #doc.addfile(raster_path)
        ground.icon.href = raster_path

        # build output file
        kmz_path = out_path + ".kmz"
        doc.savekmz(kmz_path)

        # cleanup
        if cleanup:
            os.remove(raster_path)
            if cb_path is not None:
                os.remove(cb_path)

        return kmz_path, raster_path, cb_path, corner_coords
コード例 #4
0
def screen(kml):
    screen1 = kml.newscreenoverlay(name='Colorbar')
    if filechoice == 2:
        screen1.icon.href = 'Colorbar-water-levels.png'
    elif filechoice == 4:
        screen1.icon.href = 'Colorbar-wave-heights.png'
    elif filechoice == 8:
        screen1.icon.href = 'Colorbar-wave-periods.png'
    elif filechoice == 3:
        screen1.icon.href = 'CColorbar-wave-periods.png'
    elif filechoice == 1:
        screen1.icon.href = 'Colorbar-bathymetry.png'
    screen1.overlayxy = simplekml.OverlayXY(x=0,
                                            y=0,
                                            xunits=simplekml.Units.fraction,
                                            yunits=simplekml.Units.fraction)
    screen1.screenxy = simplekml.ScreenXY(x=0,
                                          y=0.1,
                                          xunits=simplekml.Units.fraction,
                                          yunits=simplekml.Units.fraction)
    screen1.size.x = 0.1
    screen1.size.y = 0.72
    screen1.size.xunits = simplekml.Units.fraction
    screen1.size.yunits = simplekml.Units.fraction
    screen2 = kml.newscreenoverlay(name='logo')
    screen2.icon.href = 'logo.png'
    screen2.overlayxy = simplekml.OverlayXY(x=0,
                                            y=1,
                                            xunits=simplekml.Units.fraction,
                                            yunits=simplekml.Units.fraction)
    screen2.screenxy = simplekml.ScreenXY(x=0,
                                          y=1,
                                          xunits=simplekml.Units.fraction,
                                          yunits=simplekml.Units.fraction)
    screen2.size.x = 0.85
    screen2.size.y = 0.08
    screen2.size.xunits = simplekml.Units.fraction
    screen2.size.yunits = simplekml.Units.fraction
    print 'Screen Overlay completed'
コード例 #5
0
    def chart_legend(self, legend_figure):
        """
        Add overlay legend in top left corner

        :param legend_figure: path to figure
        :return: kml-object
        """
        # NOT YET TESTED
        screen = self.newscreenoverlay(name='Legend')

        # TODO: automatically make figure of legend

        screen.icon.href = legend_figure
        screen.overlayxy = simplekml.OverlayXY(x=0, y=1, xunits=simplekml.Units.fraction,
                                               yunits=simplekml.Units.fraction)
        screen.screenxy = simplekml.ScreenXY(x=15, y=15, xunits=simplekml.Units.insetpixels,
                                             yunits=simplekml.Units.insetpixels)
        screen.size.x = -1
        screen.size.y = -1
        screen.size.xunits = simplekml.Units.fraction
        screen.size.yunits = simplekml.Units.fraction
        return screen
コード例 #6
0
ファイル: urls.py プロジェクト: fullstackenviormentss/FlOYBD
def sendLogos():
    if checkPing(getLGIp()):
        millis = int(round(time.time() * 1000))

        kml = simplekml.Kml(name="Layout")
        screen = kml.newscreenoverlay(name='FLOYBD')
        screen.icon.href = "http://"+getDjangoIp()+":8000/static/img/ownLogos.png?a="+str(millis)
        screen.overlayxy = simplekml.OverlayXY(x=0.0, y=1.0, xunits=simplekml.Units.fraction,
                                               yunits=simplekml.Units.fraction)
        screen.screenxy = simplekml.ScreenXY(x=0.0, y=1.0, xunits=simplekml.Units.fraction,
                                             yunits=simplekml.Units.fraction)
        screen.rotationxy = simplekml.RotationXY(x=0.0, y=0.0, xunits=simplekml.Units.fraction,
                                                 yunits=simplekml.Units.fraction)
        screen.size.x = 0.20
        screen.size.y = 0.15
        screen.size.xunits = simplekml.Units.fraction
        screen.size.yunits = simplekml.Units.fraction

        screenName = kml.newscreenoverlay(name='App name')
        screenName.icon.href = "http://" + getDjangoIp() + ":8000/static/img/FlOYBDLogo.png?a=" + str(millis)
        screenName.overlayxy = simplekml.OverlayXY(x=0.0, y=1.0, xunits=simplekml.Units.fraction,
                                                   yunits=simplekml.Units.fraction)
        screenName.screenxy = simplekml.ScreenXY(x=0.3, y=0.95, xunits=simplekml.Units.fraction,
                                                 yunits=simplekml.Units.fraction)
        screenName.rotationxy = simplekml.RotationXY(x=0.0, y=0.0, xunits=simplekml.Units.fraction,
                                                     yunits=simplekml.Units.fraction)
        screenName.size.x = 0.50
        screenName.size.y = 0.07
        screenName.size.xunits = simplekml.Units.fraction
        screenName.size.yunits = simplekml.Units.fraction

        screen1 = kml.newscreenoverlay(name='Logos')
        screen1.icon.href = "http://" + getDjangoIp() + ":8000/static/img/sharedLogos.png?a="+str(millis)
        screen1.overlayxy = simplekml.OverlayXY(x=0.0, y=0.0, xunits=simplekml.Units.fraction,
                                                yunits=simplekml.Units.fraction)
        screen1.screenxy = simplekml.ScreenXY(x=0.0, y=0.01, xunits=simplekml.Units.fraction,
                                              yunits=simplekml.Units.fraction)
        screen1.rotationxy = simplekml.RotationXY(x=0.0, y=0.0, xunits=simplekml.Units.fraction,
                                                  yunits=simplekml.Units.fraction)
        screen1.size.x = 0.3
        screen1.size.y = 0.25
        screen1.size.xunits = simplekml.Units.fraction
        screen1.size.yunits = simplekml.Units.fraction

        currentDir = os.getcwd()
        fileName = "Layout.kml"
        dir1 = os.path.join(currentDir, "static/logos")
        dirPath2 = os.path.join(dir1, fileName)
        logger.info("\033[93m" + "Saving kml: " + str(dirPath2) + "\033[0m")

        kml.save(dirPath2)

        if db_table_exists("floybd_setting"):
            logger.info("\033[93m" + "Sending Logos...from: " + getDjangoIp() + " to: " + getLGIp() + "\033[0m")

            getLeftScreenCommand = "sshpass -p " + getLGPass() + " ssh lg@" + getLGIp() + \
                                   " 'head -n 1 personavars.txt | cut -c17-19'"
            leftScreenDirty = subprocess.check_output(getLeftScreenCommand, stderr=subprocess.STDOUT, shell=True)
            leftScreenClean = leftScreenDirty.rstrip().decode("utf-8")
            leftScreenNumber = leftScreenClean[-1:]
            logger.debug("Left Screen: " + str(leftScreenClean))
            logger.info("\033[93m" + "Left Screen Number: " + str(leftScreenNumber) + "\033[0m")

            command = "echo 'http://" + getDjangoIp() + ":8000/static/logos/Layout.kml?a="+str(millis) +\
                      "' | sshpass -p " + getLGPass() + " ssh lg@" + getLGIp() + " 'cat - > /var/www/html/kmls_" + \
                      leftScreenNumber+".txt'"

            os.system(command)
コード例 #7
0
def sendLogos(lg_IP, lg_Pass, server_IP, proj_name, xPropi, yPropi,
              xAgraiments, yAgraiments):
    millis = int(round(time.time() * 1000))
    kml = simplekml.Kml(name="Layout")
    screen = kml.newscreenoverlay(name="FlOYBD")
    screen.icon.href = "http://" + server_IP + \
        ":5000/logos/propis_" + proj_name + ".png?a=" + str(millis)
    screen.overlayxy = simplekml.OverlayXY(x=0.0,
                                           y=1.0,
                                           xunits=simplekml.Units.fraction,
                                           yunits=simplekml.Units.fraction)
    screen.screenxy = simplekml.ScreenXY(x=0.0,
                                         y=1.0,
                                         xunits=simplekml.Units.fraction,
                                         yunits=simplekml.Units.fraction)
    screen.rotationxy = simplekml.RotationXY(x=0.0,
                                             y=0.0,
                                             xunits=simplekml.Units.fraction,
                                             yunits=simplekml.Units.fraction)
    screen.size.x = xAgraiments
    screen.size.y = yAgraiments
    screen.size.xunits = simplekml.Units.fraction
    screen.size.yunits = simplekml.Units.fraction

    screenName = kml.newscreenoverlay(name='App name')
    screenName.icon.href = "http://" + server_IP + ":5000/logos/" + proj_name + ".png?a=" + \
        str(millis)
    screenName.overlayxy = simplekml.OverlayXY(x=0.0,
                                               y=1.0,
                                               xunits=simplekml.Units.fraction,
                                               yunits=simplekml.Units.fraction)
    screenName.screenxy = simplekml.ScreenXY(x=0.5,
                                             y=0.95,
                                             xunits=simplekml.Units.fraction,
                                             yunits=simplekml.Units.fraction)
    screenName.rotationxy = simplekml.RotationXY(
        x=0.0,
        y=0.0,
        xunits=simplekml.Units.fraction,
        yunits=simplekml.Units.fraction)
    screenName.size.x = xPropi
    screenName.size.y = yPropi
    screenName.size.xunits = simplekml.Units.fraction
    screenName.size.yunits = simplekml.Units.fraction

    screen1 = kml.newscreenoverlay(name='Logos')
    screen1.icon.href = "http://" + server_IP + \
        ":5000/logos/comuns.png?a=" + str(millis)
    screen1.overlayxy = simplekml.OverlayXY(x=0.0,
                                            y=0.0,
                                            xunits=simplekml.Units.fraction,
                                            yunits=simplekml.Units.fraction)
    screen1.screenxy = simplekml.ScreenXY(x=0.0,
                                          y=0.01,
                                          xunits=simplekml.Units.fraction,
                                          yunits=simplekml.Units.fraction)
    screen1.rotationxy = simplekml.RotationXY(x=0.0,
                                              y=0.0,
                                              xunits=simplekml.Units.fraction,
                                              yunits=simplekml.Units.fraction)
    screen1.size.x = 0.3
    screen1.size.y = 0.25
    screen1.size.xunits = simplekml.Units.fraction
    screen1.size.yunits = simplekml.Units.fraction

    currentDir = os.getcwd()
    print "current dir : " + currentDir

    fileName = "Layout.kml"
    dir1 = os.path.join(currentDir, "/logos")
    print dir1
    dirPath2 = os.path.join(dir1, fileName)
    dirPathFinal = currentDir + dirPath2
    kml.save(currentDir + dirPath2)


    getLeftScreenCommand = "sshpass -p " + lg_Pass + " ssh lg@" + lg_IP + \
        " 'head -n 1 personavars.txt | cut -c17-19'"
    leftScreenDirty = subprocess.check_output(getLeftScreenCommand,
                                              stderr=subprocess.STDOUT,
                                              shell=True)
    leftScreenClean = leftScreenDirty.rstrip().decode("utf-8")

    leftScreenNumber = leftScreenClean[-1:]
    #leftScreenNumber = "4"

    print leftScreenNumber
    command = "echo 'http://" + server_IP + ":5000/logos/Layout.kml?a=" + str(millis) +\
        "' | sshpass -p " + lg_Pass + " ssh lg@" + lg_IP + \
        " 'cat - > /var/www/html/kmls_" + leftScreenNumber + ".txt' "
    #command = "echo 'abc' > /tmp/a.txt"
    print command
    subprocess.Popen(command, shell=True)
    print 'y'
コード例 #8
0
ファイル: make_kmz.py プロジェクト: robotlauren/wrfxweb
def make_kmz(job_id, steps, mode, only_vars):
    """
    Create KMZ file from visualization stored in wrfxweb.
    :param job_id: string, the name of job directory
    :param steps: string '1,1,1,3' takes every 3rd frame in domain 4, etc. Default: all 1
    :param mode: string, 'inc', ' to include image files (default), 'ref' to use links only
    :param only_var: list of strings variables to include or None to include  all
    """

    logging.info('make_kmz: job_id=%s' % job_id)
    job_path = osp.join(osp.abspath(sys_cfg.sims_path),job_id)
    url_prefix = pxp.join(sys_cfg.url_root,sys_cfg.sims_url_path,job_id)
    logging.debug('make_kmz: job_path %s' % job_path)
    logging.debug('make_kmz: url_prefix %s' % url_prefix)


    if mode == '' or mode == "inc":
        kmz_filename = job_id + '_inc.kmz'
        href_prefix = osp.abspath(job_path)
        href_join = osp.join
        logging.debug('make_kmz: kmz file will include images from %s' % href_prefix)
        logging.info('make_kmz: kmz file will include images')
    elif mode == "ref":
        kmz_filename = job_id + '_ref.kmz'    
        href_prefix = url_prefix
        href_join = pxp.join
        logging.debug('make_kmz: kmz file will link to images from %s' % href_prefix)
        logging.info('make_kmz: kmz file will link to images')
    else:
        logging.error('make_kmz: arg 2 must be "inc" or "ref" or omitted')
        exit(1)
   
    # read the catalog and the manifest
    cat_path = osp.join(job_path,'catalog.json')
    cat = json.load(open(cat_path))
    if job_id not in cat:
         logging.error('job id %s not in the catalog' % job_id)
         sys.exit(1)
    cat_entry = cat[job_id]
    mf = json.load(open(osp.join(sys_cfg.sims_path,cat_entry['manifest_path'])))

    mdomain = max(map(int, mf.keys()))
    if steps=='':
        step=[1]
    else:
        step=map(int, steps.split(','))
    if len(step) == 1:
        step = step*mdomain
    elif len(step) != mdomain:
        logging.error('make_kmz: steps needed for all up to max domain number = %s' % mdomain)
        sys.exit(1)

    description = cat_entry['description']
    logging.info('make_kmz: job description: %s' % description)
    
    # transpose var and time in manifest, output to frame
    frame={}
    for domain in mf:
        for ts_esmf in mf[domain]:
            for var in mf[domain][ts_esmf]:
                if only_vars is None or var in only_vars:
                    update_nested_dict(frame,{domain:{var:{ts_esmf:mf[domain][ts_esmf][var]}}})
                     
    doc = kml.Kml(name=description)
    
    for domain in sorted(frame):
        domain_folder = doc.newfolder(name = domain)
        istep = step[int(domain)-1]
        logging.info('make_kmz: processing domain %s step %s' % (domain, istep))
        for var in frame[domain]:
            var_folder = domain_folder.newfolder(name = var)
            ts_esmf = sorted(frame[domain][var].keys())
            ts_esmf = ts_esmf[1::istep]
            ts_esmf1 = ts_esmf[1:]
            ts_esmf1.append(None)
            for ts_esmf,ts_esmf1 in zip(ts_esmf,ts_esmf1):
                ts_folder = var_folder.newfolder(name = ts_esmf)
                ts_folder.timespan.begin = ts_esmf.replace('_','T')+'Z'
                if ts_esmf1 is not None:
                     ts_folder.timespan.end = ts_esmf1.replace('_','T')+'Z'
                frame_data = frame[domain][var][ts_esmf]
                raster_path = frame_data['raster']
                coords = frame_data['coords']
                if 'colorbar' in frame_data:
                    # add colorbar to KMZ
                    cb_path = frame_data['colorbar']
                    cbo = ts_folder.newscreenoverlay(name='colorbar')
                    cbo.overlayxy = kml.OverlayXY(x=0,y=1,xunits=kml.Units.fraction,yunits=kml.Units.fraction)
                    cbo.screenxy = kml.ScreenXY(x=0.02,y=0.95,xunits=kml.Units.fraction,yunits=kml.Units.fraction)
                    cbo.size = kml.Size(x=150,y=300,xunits=kml.Units.pixel,yunits=kml.Units.pixel)
                    cbo.color = kml.Color.rgb(255,255,255,a=150)
                    cbo.visibility = 0
                    cbo.icon.href = href_join(href_prefix,cb_path)

                # add ground overlay
                ground = ts_folder.newgroundoverlay(name=var,color='80ffffff')
                ground.gxlatlonquad.coords = coords
                ground.visibility = 0
                ground.icon.href = href_join(href_prefix,raster_path)
    
    # build output file
    kmz_path = osp.join(job_path,kmz_filename)
    logging.info('make_kmz: creating file %s' % kmz_path) 
    doc.savekmz(kmz_path)
    url = pxp.join(url_prefix,kmz_filename)
    logging.info('make_kmz: file created at %s' % url) 
    try:
        r = requests.get(url, stream=True)
        content_size = int(r.headers['Content-Length'])
        logging.info('make_kmz: file size is %s' % content_size) 
        cat[job_id]['kml_url']=url
        cat[job_id]['kml_size']=content_size
        json.dump(cat, open(cat_path,'w'), indent=4, separators=(',', ': '))
    except:
        logging.warning('make_kmz: accessing the file over the web failed') 
コード例 #9
0
ファイル: make_kml.py プロジェクト: sharadgupta27/LandGISmaps
def make_kml(output_kml, output_format='kmz'):
    
    kml = simplekml.Kml(open=1, name='LandGIS: Open Land Data')
    kml.document.description = link("http://opengeohub.org/about-landgis", 'Read more ...')
    

    
    # Spatial layers
    kml_fld=kml.newfolder(name = 'Spatial layers')
    for i,r in df.iterrows():   # i,r = next(df.iterrows())
        if r.layer_display_type[:2] not in ('2D'):
            continue
        try:
            layer_name = '{}:{}'.format(r.layer_distribution_folder, osp.splitext(r.layer_filename_pattern)[0])
            layer_title = r.layer_title
            time_string = layer_name.split('_')[-2]
    
            layer_desc = '{}</br>{}'.format(link_layer(r), time_string)
            
            # Put TimeStamp or TimeSpan
            td = time_designation(time_string)
            
        except Exception as e:
            print("Error while processing {}: {}".format(layer_name, e))
        else:
            setup_network_link(kml_fld, layer_title, layer_name, description=layer_desc,
                               td=td)
    # 3D Layers
    for i,r in df.loc[df.layer_display_type.apply(lambda x: x[:2]=='3D')].iterrows():   
        # i,r = next(df.loc[df.layer_display_type.apply(lambda x: x[:2]=='3D')].iterrows())
        try:
            layer_group_name = '{}:{}'.format(r.layer_distribution_folder, osp.splitext(r.layer_filename_pattern)[0])
            layers = fnmatch.filter(wms_layers, layer_group_name.replace('*..*','*'))
            if len(layers)==0:
                continue
    
            time_string = layer_group_name.split('_')[-2]
            
            layer_desc = '{}</br>{}'.format(link_layer(r),time_string)        
            kml_fld_lay = kml_fld.newfolder(name = r.layer_title, visibility=0, description=layer_desc, open=0)
            kml_fld_lay.style = folder_style_radio
            
            setup_timeref(kml_fld_lay, time_designation(time_string))        
            
            layer_list = [(x, x.split('_')[-3].split('..')[1]) for x in layers]
            layer_list = sorted(layer_list, key=lambda x: int(x[1].replace('cm','')))
                   
            for layer_name, depth_string in layer_list: # layer_name=layers[0]                                                      
                setup_network_link(kml_fld_lay, depth_string, layer_name)
                
        except Exception as e:
            print("Error while processing {}: {}".format(layer_name, e))
        
            
    
    # Time span layers
    kml_fld = kml.newfolder(name = 'Time span layers')  # new folder 
    for i,r in df.loc[df.layer_display_type.apply(lambda x: x[:2] in ('TS','SS'))].iterrows():   
        # i,r = next(df.loc[df.layer_display_type.apply(lambda x: x[:2]=='TS')].iterrows())
        layer_type = r.layer_display_type[:2]
        try:
            # Find all layers from wms
            layer_group_name = '{}:{}'.format(r.layer_distribution_folder, osp.splitext(r.layer_filename_pattern)[0])
            layers = fnmatch.filter(wms_layers, layer_group_name)        
            if layer_type=='TS':
                layer_list = [(x, x.split('_')[-2]) for x in layers]
                layer_list = sorted(layer_list, key=lambda x: int(x[1].replace('BC','-')))    
            elif layer_type == 'SS':
                layer_list = [(x, find_month(x.split('_')[2])) for x in layers]            
                layer_list = sorted(layer_list, key=lambda x: month_to_number(x[1]))
                
    
            layer_title = r.layer_title
            
            kml_fld_lay = kml_fld.newfolder(name = layer_title, visibility=0, open=0)
            kml_fld_lay.timespan = simplekml.TimeSpan(layer_list[0][1].replace('BC','-'), layer_list[-1][1].replace('BC','-'))
            kml_fld_lay.style = folder_style_radio
            
            if layer_type == 'TS':
                layer_desc = '{}</br>{} .. {}'.format(link_layer(r), layer_list[0][1], layer_list[-1][1])
            elif layer_type == 'SS':
                layer_desc = '{}</br>{}'.format(link_layer(r), layer_group_name.split('_')[-2])                     
            kml_fld_lay.description=layer_desc
            
            for layer_name, time_string in layer_list:                    
                if layer_type == 'TS':
                    td = time_designation(time_string.replace('BC','-'))                
                elif layer_type == 'SS':
                    td = None
    
                setup_network_link(kml_fld_lay, time_string, layer_name, td=td)
                
    
        except Exception as e:
            print("Error while processing {}: {}".format(layer_name, e))    
    
            
    # Logo in ScreenOverlay
    screen = kml.newscreenoverlay(name='OpenGeoHub')
    screen.icon.href = 'https://opengeohub.org/themes/gavias_edubiz/logo.png'
    screen.overlayxy = simplekml.OverlayXY(x=0, y=0, xunits=simplekml.Units.fraction, yunits=simplekml.Units.fraction)
    screen.screenxy = simplekml.ScreenXY(x=0, y=0,  xunits=simplekml.Units.fraction, yunits=simplekml.Units.fraction)
    # screen.description = link('http://opengeohub.org/about-landgis', 'LandGis')
    
    if output_format=='kmz':
        kml.savekmz(output_kml)
    else:
        kml.save(output_kml)
コード例 #10
0
                                     fa_min), convert_value(
                                         native_unit, cb_unit, fa_max)

    #
    print('[raster2kml] rendering colorbar with unit %s and colormap %s...' %
          (cb_unit, cmap_name))
    cb_png_data = make_colorbar([cbu_min, cbu_max], 'vertical', 2, cmap,
                                vw['name'] + ' ' + cb_unit, varname)
    cb_name = 'colorbar-' + base_name + '.png'
    with open(cb_name, 'w') as f:
        f.write(cb_png_data)
    doc.addfile(cb_name)

    cbo = doc.newscreenoverlay(name='colorbar')
    cbo.overlayxy = kml.OverlayXY(x=0,
                                  y=1,
                                  xunits=kml.Units.fraction,
                                  yunits=kml.Units.fraction)
    cbo.screenxy = kml.ScreenXY(x=0.02,
                                y=0.95,
                                xunits=kml.Units.fraction,
                                yunits=kml.Units.fraction)
    cbo.size = kml.Size(x=150,
                        y=300,
                        xunits=kml.Units.pixel,
                        yunits=kml.Units.pixel)
    cbo.color = kml.Color.rgb(255, 255, 255, a=150)
    cbo.visibility = 1
    cbo.icon.href = cb_name

    print(
        '[raster2kml] rendering raster from variable %s (Mercator projection) ...'
コード例 #11
0
ファイル: GeoTiff.py プロジェクト: travishamon/ArchaeoPY
            print file_temp

#sets up a few variables required later
bb_x = np.empty(0, dtype=float)
bb_y = np.empty(0, dtype=float)

#Add Logo as screenoverlay
logo_url = 'https://s3.amazonaws.com/kml-test.carteasyn.com/logo/carteasyn-gsb.png'
screen = folder.newscreenoverlay(name='ScreenOverlay')
m_screen = m_folder.newscreenoverlay(name='ScreenOverlay')
screen.icon.href = logo_url
m_screen.icon.href = logo_url

#sets location, overlayxy is position on image, screenxy corresponding screen position
screen.overlayxy = simplekml.OverlayXY(x=0.5,
                                       y=0,
                                       xunits=simplekml.Units.fraction,
                                       yunits=simplekml.Units.fraction)
screen.screenxy = simplekml.ScreenXY(x=0.91,
                                     y=0.12,
                                     xunits=simplekml.Units.fraction,
                                     yunits=simplekml.Units.fraction)

m_screen.overlayxy = simplekml.OverlayXY(x=0.5,
                                         y=0,
                                         xunits=simplekml.Units.fraction,
                                         yunits=simplekml.Units.fraction)
m_screen.screenxy = simplekml.ScreenXY(x=0.91,
                                       y=0.12,
                                       xunits=simplekml.Units.fraction,
                                       yunits=simplekml.Units.fraction)
#Image size & units