[Portugal] Como repetir um um script de python na consola de python em QGIS

Jorge Samuel Mendes de Jesus jorge.mendesdejesus wur.nl
Quarta-Feira, 13 de Maio de 2015 - 02:44:42 PDT


Bom dia


No Problem, Eu ontem ja tinha pensado que devia ter feito o exemplo com
o codigo

Basciamente seria algo assim

processing.runalg(qgis:joinattributestable",
"D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp",re.sub(r'(_9)',"_%s" %
number, "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS
METEOROLOGICOS\HR\H_1999_1_9.xlsx") , "EST", "num",
re.sub(r'(_9)',"_%s" %
number,"D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9"))

O re.sub passa a string ja modificadata para o processing.runalg.
Basicamente troca-se a parte da string original pelo codigo que faz a
substituicao do numero

Tudo integrado seria:

import re
for number in xrange(2,31+1):
      processing.runalg("qgis:joinattributestable",
"D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp",re.sub(r'(_9)',"_%s" %
number, "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS
METEOROLOGICOS\HR\H_1999_1_9.xlsx") , "EST", "num",
re.sub(r'(_9)',"_%s" %
number,"D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9"))

Ista solucao nao e' a mais optimizada mas deve funcionar.


Espero que a resposta tenha ajudado,

Jorge

On 13-05-15 11:30, Patrícia Pécurto wrote:
> Bom dia Jorge,
>
> Desde já agradeço a sua disponibilidade para me ajudar.
> Entendi a forma como devo substituir o "_9" no entanto não entendi
> como integra-la no código processing.runalg() e colocar tudo dentro do
> loop, substituindo a string de alteração pelo código "re.sub".
> Pode por pff. exemplificar para a minha primeira linha do código:
>
> processing.runalg("qgis:joinattributestable",
> "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp",
> "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS
> METEOROLOGICOS\HR\H_1999_1_9.xlsx", "EST", "num",
> "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9")
>
> Obrigada pela atenção,
>
> Patrícia Fernandes.   
>
>
>
>
> 2015-05-12 21:28 GMT+01:00 Mendes de Jesus, Jorge
> <jorge.mendesdejesus  wur.nl <mailto:jorge.mendesdejesus  wur.nl>>:
>
>     Assim de cabeca, usando regular expressions
>
>
>     import re
>     for number in xrange(2,31+1):
>           print   re.sub(r'(_9)',"_%s" % number,
>     "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS
>     METEOROLOGICOS\HR\H_1999_1_9.xlsx")
>
>     Eu reparei que o 9 tem sempre um _ antes
>
>     Este loop faz um print da string com do ficheiro com os valores
>     entre 2 e 31 onde o number 9 e' substituido pelos numeros entre 2
>     e 31.
>
>     No codigo com  processing.runalg basta alterar a string de
>     alteracao pelo codigo re.sub e depois meter tudo dentro do loop
>
>     Alem tem uma outra idea ????
>
>     Jorge de Jesus
>
>
>
>
>     ________________________________
>     From: portugal-bounces  lists.osgeo.org
>     <mailto:portugal-bounces  lists.osgeo.org>
>     <portugal-bounces  lists.osgeo.org
>     <mailto:portugal-bounces  lists.osgeo.org>> on behalf of Patrícia
>     Pécurto <patricia.pecurto  gmail.com
>     <mailto:patricia.pecurto  gmail.com>>
>     Sent: 12 May 2015 20:57
>     To: Portugal  lists.osgeo.org <mailto:Portugal  lists.osgeo.org>
>     Subject: [Portugal] Como repetir um um script de python na consola
>     de python em QGIS
>
>     Boa tarde,
>
>     Sou nova utilizadora de linguagem python, e preciso de ajuda na
>     construção de um script que criei e que o resultado final
>     funciona,  é o que eu necessito mas só corre uma vez. A minha
>     dúvida é a seguinte: se eu quiser repetir este código todo mas em
>     vez de ter o nº 9 a bold tiver o mesmo script, substituindo o nº 9
>     pelos nºs 2, 3, 4,...,31 (inclusive). como devo proceder para não
>     ficar com um código demasiado grande e moroso de construir.
>
>     Obrigada.
>
>     Patrícia Fernandes
>
>     O código é o seguinte:
>     <http://gis.stackexchange.com/questions/146979/how-to-create-loops-using-processing-algorithm-in-python-console-from-qgis#>
>
>
>     processing.runalg("qgis:joinattributestable",
>     "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp",
>     "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS
>     METEOROLOGICOS\HR\H_1999_1_9.xlsx", "EST", "num",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9")
>
>     processing.runalg("qgis:selectbyattribute",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9.shp", "H", 1,
>     "NULL", "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9.shp")
>
>     processing.runalg("qgis:saveselectedfeatures",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9.shp",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp")
>
>     processing.runalg("qgis:selectbyattribute",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp", "H",
>     1, "-999.9",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp")
>
>     processing.runalg("qgis:saveselectedfeatures",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF.shp")
>
>     processing.runalg("saga:inversedistanceweighted",
>     "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF.shp", "H", 0,
>     2, 0, 1, 100, 0, 0, 8, "-152444.0, 180000.0, -302911.0, 280000.0",
>     100, "D:\PATRICIA\IG\QGIS\FWI\HR\Python_HR_Viz8_Cell100_9")
>
>     _______________________________________________
>     Portugal mailing list
>     Portugal  lists.osgeo.org <mailto:Portugal  lists.osgeo.org>
>     http://lists.osgeo.org/mailman/listinfo/portugal
>
>
>
>
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal

-- 
ISRIC - World Soil Information 
Post: PO box 353, 6700 AJ, Wageningen,
The Netherlands Visiting Address: Droevendaalsesteeg 3, 6708 PB
Wageningen (Bdg. 101), 
Office: C.013 
Office Phone: +31 (0) 317 4 83715
Mobile Phone: +31 (0) 613 9 06950 
OpenPGPKey: 0xA3D0065A

-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20150513/94c51937/attachment.html>


Mais informações acerca da lista Portugal