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

Patrícia Pécurto patricia.pecurto gmail.com
Quarta-Feira, 13 de Maio de 2015 - 04:26:35 PDT


Muito obrigada Jorge :)
Já consegui correr o código todo e deu o resultado que queria.
A sua última sugestão foi bastante interessante.

Obrigada mais uma vez pela sua disponibilidade!

Patrícia Fernandes.


2015-05-13 10:48 GMT+01:00 Jorge Samuel Mendes de Jesus <
jorge.mendesdejesus  wur.nl>:

>
>
> Ou entao um poico mais organizado e menos encavalitado
>
> import re
> for number in xrange(2,31+1):
>       str1=re.sub(r'(_9)',"_%s" % number, "D:\PATRICIA\DOCUMENTOS\ESTACOES
> METEOROLOGICAS\DADOS METEOROLOGICOS\HR\H_1999_1_9.xlsx")
>       str2=re.sub(r'(_9)',"_%s" %
> number,"D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9")
>       processing.runalg("qgis:joinattributestable",
> "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp", str1, "EST", "num", str2)
>
>
>
>
>
> On 13-05-15 11:44, Jorge Samuel Mendes de Jesus wrote:
>
> 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>:
>
>> 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 <portugal-bounces  lists.osgeo.org>
>> on behalf of Patrícia Pécurto <patricia.pecurto  gmail.com>
>> Sent: 12 May 2015 20:57
>> To: 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
>> http://lists.osgeo.org/mailman/listinfo/portugal
>>
>
>
>
> _______________________________________________
> Portugal mailing listPortugal  lists.osgeo.orghttp://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
>
>
>
> _______________________________________________
> Portugal mailing listPortugal  lists.osgeo.orghttp://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
>
>
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
>
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20150513/b85303a1/attachment.html>


Mais informações acerca da lista Portugal