En post anteriores he estado haciendo pruebas con la versión preliminar 2.99 de QGIS en Windows antes de que salga la versión definitiva (supuestamente casi exenta de errores) 3.0.0. He podido comprobar, por ahora, que no está suficientemente madura como para la producción de plugins. Sin embargo, se pueden probar por separado los algoritmos que estarán dentro de los futuros plugins una vez se resuelvan los problemas de estabilidad.
Después de hacer algunas pruebas con Processing, me he percatado que la oferta de algoritmos todavía no es completa; a pesar de que pueda arrojar resultados exitosos la evaluación de parámetros con 'processing.algorithmHelp'. Por tanto, esa evaluación parece ser más segura después de ejecutar:1 2 | for key, value in processing.algs.help.shortHelp.items(): print(key) |
donde se obtiene el resultado siguiente para los ya implementados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | qgis:addfieldtoattributestable qgis:adduniquevalueindexfield qgis:advancedpythonfieldcalculator qgis:aggregate qgis:barplot qgis:basicstatisticsforfields qgis:boundary qgis:buildvirtualvector qgis:centroids qgis:checkvalidity qgis:clip qgis:concavehull qgis:convertgeometrytype qgis:countpointsinpolygon qgis:createattributeindex qgis:createconstantrasterlayer qgis:creategridlines qgis:creategridpolygon qgis:createpointsalonglines qgis:createspatialindex . . . qgis:setstyleforvectorlayer qgis:setzvalue qgis:singlesidedbuffer qgis:snapgeometries qgis:splitwithlines qgis:splitvectorlayer qgis:statisticsbycategories qgis:sumlinelengths qgis:symmetricaldifference qgis:texttofloat qgis:topologicalcoloring qgis:translate qgis:truncatetable qgis:union qgis:variabledistancebuffer qgis:vectorgrid qgis:vectorlayerhistogram qgis:vectorlayerscatterplot qgis:voronoipolygons qgis:zonalstatistics saga:rastercalculator |
De esta oferta de algoritmos se escogió qgis:creategridpolygon porque es similar a qgis:creategrid de QGIS 2.18.
Para averiguar los parámetros ejecutamos:
1 2 3 | import processing processing.algorithmHelp('qgis:creategridpolygon') |
cuyo resultado visualizamos a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ---------------- Input parameters ---------------- TYPE: <QgsProcessingParameterEnum> Grid type 0 - Rectangle (polygon) 1 - Diamond (polygon) 2 - Hexagon (polygon) EXTENT: <QgsProcessingParameterExtent> Grid extent HSPACING: <QgsProcessingParameterNumber> Horizontal spacing VSPACING: <QgsProcessingParameterNumber> Vertical spacing HOVERLAY: <QgsProcessingParameterNumber> Horizontal overlay VOVERLAY: <QgsProcessingParameterNumber> Vertical overlay CRS: <QgsProcessingParameterCrs> Grid CRS OUTPUT: <QgsProcessingParameterFeatureSink> Grid ---------------- Outputs ---------------- OUTPUT: <QgsProcessingOutputVectorLayer> Grid |
Con base en lo anterior se elaboró el código siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import processing uri = 'c:/Users/usuario/pyqgis_data/utah_demUTM2.tif' layer = QgsRasterLayer(uri, 'raster') extent = layer.extent() xmin, ymin, xmax, ymax = extent.toRectF().getCoords() extent = str(xmin)+ ',' + str(xmax)+ ',' +str(ymin)+ ',' +str(ymax) output = 'c:/Users/usuario/pyqgis_data/grid.shp' processing.run('qgis:creategridpolygon', {'TYPE':0, 'EXTENT':extent, 'HSPACING':5000, 'VSPACING':5000, 'HOVERLAY':0, 'VOVERLAY':0, 'CRS':layer.crs().authid(), 'OUTPUT':output}) grid = QgsVectorLayer(output, 'grid', 'ogr') QgsProject.instance().addMapLayer(grid) |
Al ejecutar el código anterior en la Python Console de QGIS 2.99 se obtuvo el resultado que se presenta a continuación:
No hay comentarios:
Publicar un comentario