当前位置: 首页>>代码示例>>Python>>正文


Python QgsRasterLayer.resampleFilter方法代码示例

本文整理汇总了Python中qgis.core.QgsRasterLayer.resampleFilter方法的典型用法代码示例。如果您正苦于以下问题:Python QgsRasterLayer.resampleFilter方法的具体用法?Python QgsRasterLayer.resampleFilter怎么用?Python QgsRasterLayer.resampleFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qgis.core.QgsRasterLayer的用法示例。


在下文中一共展示了QgsRasterLayer.resampleFilter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: refreshtiles_apply

# 需要导入模块: from qgis.core import QgsRasterLayer [as 别名]
# 或者: from qgis.core.QgsRasterLayer import resampleFilter [as 别名]
 def refreshtiles_apply(self, tilestoclean, tilestoload, tilefiles, extent):
     #clean
     layerstoclean = [self.loadedlayers[tile] for tile in tilestoclean]
     for tile in tilestoclean:
         del self.loadedlayers[tile]
     QgsMapLayerRegistry.instance().removeMapLayers(layerstoclean)
     
     log("defining self.actualzoom")
     if len(tilestoload) > 0:
         self.actualzoom = tilestoload[0][2]
     else:
         self.actualzoom = None
     
     #load
     log("loading tiles")
     for i in range(len(tilestoload)):
         #check file exists
         if os.path.exists(tilefiles[i]):
             auxfile = tm.auxfilename(tilefiles[i])
             if not os.path.exists(auxfile):
                 osm.writeauxfile(*tilestoload[i], filename=auxfile, imagesize=tm.tilesize(self.tiletype))
             #create layer, add to self.loadedlayers
             layername = "qosm_%s_x%s_y%s_z%s" % ((self.tiletype,) + tilestoload[i])
             layer = QgsRasterLayer(tilefiles[i], layername)
             if layer.isValid():
                 layer = QgsMapLayerRegistry.instance().addMapLayer(layer, False)
                 layer.resampleFilter().setZoomedOutResampler(QgsBilinearRasterResampler())
                 layer.resampleFilter().setZoomedInResampler(QgsBilinearRasterResampler())
                 
                 self.loadedlayers[tilestoload[i]] = layer.id()
             else:
                 log("ERROR invalid layer produced:" + layername)
             
         else:
             #report error?
             log("tile filename does not exist: " + tilefiles[i])
     
     log("setting extent: " + extent.toString())
     self.setExtent(extent)
开发者ID:paleolimbot,项目名称:qosm,代码行数:41,代码来源:qosmtilelayer.py

示例2: createBaseMapLayer

# 需要导入模块: from qgis.core import QgsRasterLayer [as 别名]
# 或者: from qgis.core.QgsRasterLayer import resampleFilter [as 别名]
    def createBaseMapLayer(self, map_theme, layer, tile_size, map_units_per_pixel):
        """
        Create a basemap from map layer(s)

        :param dataPath:             The path where the basemap should be writtent to
        :param extent:               The extent rectangle in which data shall be fetched
        :param map_theme:            The name of the map theme to be rendered
        :param layer:                A layer id to be rendered. Will only be used if map_theme is None.
        :param tile_size:            The extent rectangle in which data shall be fetched
        :param map_units_per_pixel:  Number of map units per pixel (1: 1 m per pixel, 10: 10 m per pixel...)
        """
        extent_string = '{},{},{},{}'.format(self.extent.xMinimum(), self.extent.xMaximum(), self.extent.yMinimum(),
                                             self.extent.yMaximum())

        alg = QgsApplication.instance().processingRegistry().createAlgorithmById('qgis:rasterize')

        params = {
            'EXTENT': extent_string,
            'MAP_THEME': map_theme,
            'LAYER': layer,
            'MAP_UNITS_PER_PIXEL': map_units_per_pixel,
            'TILE_SIZE': tile_size,
            'MAKE_BACKGROUND_TRANSPARENT': False,

            'OUTPUT': os.path.join(self.export_folder, 'basemap.gpkg')
        }

        feedback = QgsProcessingFeedback()
        context = QgsProcessingContext()
        context.setProject(QgsProject.instance())

        results, ok = alg.run(params, context, feedback)

        new_layer = QgsRasterLayer(results['OUTPUT'], self.tr('Basemap'))

        resample_filter = new_layer.resampleFilter()
        resample_filter.setZoomedInResampler(QgsCubicRasterResampler())
        resample_filter.setZoomedOutResampler(QgsBilinearRasterResampler())
        self.project_configuration.project.addMapLayer(new_layer, False)
        layer_tree = QgsProject.instance().layerTreeRoot()
        layer_tree.insertLayer(len(layer_tree.children()), new_layer)
开发者ID:opengisch,项目名称:QFieldSync,代码行数:43,代码来源:offline_converter.py


注:本文中的qgis.core.QgsRasterLayer.resampleFilter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。