[QGIS-pt] selecionar dados em postgis

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes
_______________________________________________
QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Obrigado Nelson, no entanto, o que quero mesmo é que durante o carregamento dos dados PostGIS eles sejam selecionados usando uma shape (a integrar no SQL), ainda antes de os carregar.

Luis

On Thu, Apr 4, 2019 at 3:36 PM Nelson Silva <nelson.jgs@gmail.com> wrote:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Pelo que eu entendi, eu transformava o shapefile em PostGis e faria o SQL de seleção com as 2 tabelas no mesmo formato. No QGIS, Gerenciador de Bd, Exportar para arquivo, se consegue esta transformação.

Att., Fernando Lamas

Em qui, 4 de abr de 2019 às 10:36, Nelson Silva <nelson.jgs@gmail.com> escreveu:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Usando o que o Nelson falou pode resultar, mas a query acaba por não operar no Postgres, mas localmente numa spatialite.

O ideal seria importar a tal shapefile para o postgis.

Outra hipotese seria usar o Foreign data wrapper GDAL, mas Parece-me que o shapefile teria de estar acessível ao servidor com o Postgresql instalado.

https://wiki.postgresql.org/wiki/Foreign_data_wrappers#Geo_Wrappers

Cumprimentos,

Alexandre

A qui, 4/04/2019, 15:36, Nelson Silva <nelson.jgs@gmail.com> escreveu:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Ok, então pelo que entendi importava a shape para o postgis, a minha área de estudo, e depois utilizava a geometria desta para selecionar a outra tabela, estou correcto?

Obrigado

On Thu, Apr 4, 2019 at 3:50 PM Alexandre Neto <senhor.neto@gmail.com> wrote:

Usando o que o Nelson falou pode resultar, mas a query acaba por não operar no Postgres, mas localmente numa spatialite.

O ideal seria importar a tal shapefile para o postgis.

Outra hipotese seria usar o Foreign data wrapper GDAL, mas Parece-me que o shapefile teria de estar acessível ao servidor com o Postgresql instalado.

https://wiki.postgresql.org/wiki/Foreign_data_wrappers#Geo_Wrappers

Cumprimentos,

Alexandre

A qui, 4/04/2019, 15:36, Nelson Silva <nelson.jgs@gmail.com> escreveu:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Se a ideia é cruzar dados, parece que ideal será carregar Shapefile para base dados e depois criar uma View para carregamento dos dados no QGIS

Nelson

···

No dia 04/04/2019, às 16:01, Luis Bentes <lmbentes@gmail.com> escreveu:

Ok, então pelo que entendi importava a shape para o postgis, a minha área de estudo, e depois utilizava a geometria desta para selecionar a outra tabela, estou correcto?

Obrigado

On Thu, Apr 4, 2019 at 3:50 PM Alexandre Neto <senhor.neto@gmail.com> wrote:

Usando o que o Nelson falou pode resultar, mas a query acaba por não operar no Postgres, mas localmente numa spatialite.

O ideal seria importar a tal shapefile para o postgis.

Outra hipotese seria usar o Foreign data wrapper GDAL, mas Parece-me que o shapefile teria de estar acessível ao servidor com o Postgresql instalado.

https://wiki.postgresql.org/wiki/Foreign_data_wrappers#Geo_Wrappers

Cumprimentos,

Alexandre

A qui, 4/04/2019, 15:36, Nelson Silva <nelson.jgs@gmail.com> escreveu:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Como está a fazer esse import. Eu acho que com ogr2org talvez dê.

Caso contrário pelo qgis pode usar a shape para seleccionar os elementos que quer importar, e depois no db manager usar a opção selected only.

A qui, 4/04/2019, 15:47, Luis Bentes <lmbentes@gmail.com> escreveu:

Obrigado Nelson, no entanto, o que quero mesmo é que durante o carregamento dos dados PostGIS eles sejam selecionados usando uma shape (a integrar no SQL), ainda antes de os carregar.

Luis

On Thu, Apr 4, 2019 at 3:36 PM Nelson Silva <nelson.jgs@gmail.com> wrote:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

A questão principal que tenho, para além da que eu coloquei inicialmente, é que a tabela da qual eu quero selecionar dados de uma área reduzida (a minha área de estudo) tem muitos milhões de dados e por isso nunca a consigo carregar em nenhum computador a que tenho acesso. Por isso pensei em fazer a selecção dos dados antes de os importar para o QGIS, usando para isso o SQL. Tudo seria mais simples se a área tivesse um formato regular mas como é um poligono de formato estranho não ajuda nada, daí querer utilizar a informação da geometria da shape da área de estudo para selecionar os dados da outra tabela.

De qualquer modo vou continuar a tentar.

Obrigado
Cumprimentos

On Thu, Apr 4, 2019 at 4:30 PM Alexandre Neto <senhor.neto@gmail.com> wrote:

Como está a fazer esse import. Eu acho que com ogr2org talvez dê.

Caso contrário pelo qgis pode usar a shape para seleccionar os elementos que quer importar, e depois no db manager usar a opção selected only.

A qui, 4/04/2019, 15:47, Luis Bentes <lmbentes@gmail.com> escreveu:

Obrigado Nelson, no entanto, o que quero mesmo é que durante o carregamento dos dados PostGIS eles sejam selecionados usando uma shape (a integrar no SQL), ainda antes de os carregar.

Luis

On Thu, Apr 4, 2019 at 3:36 PM Nelson Silva <nelson.jgs@gmail.com> wrote:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

Olá,

Parece-me que a solução mais adequada é carregar a área na base de dados e depois fazer uma query que só carrega no QGIS os dados dentro da shapefile.

Se uma tabela se chamar 'estudo' e a outra 'areadeestudo', a query seria:

select estudo.* 
from estudo, areaestudo
where st_contains(areaestudo.geom, estudo.geom)

Pode-se acrescentar mais condições no where para restringir os dados a carregar no QGIS.

Bom trabalho

Jorge Gustavo

cropped-geomaster300x300-1.png

···

Às 16:58 de 04/04/19, Luis Bentes escreveu:

A questão principal que tenho, para além da que eu coloquei inicialmente, é que a tabela da qual eu quero selecionar dados de uma área reduzida (a minha área de estudo) tem muitos milhões de dados e por isso nunca a consigo carregar em nenhum computador a que tenho acesso. Por isso pensei em fazer a selecção dos dados antes de os importar para o QGIS, usando para isso o SQL. Tudo seria mais simples se a área tivesse um formato regular mas como é um poligono de formato estranho não ajuda nada, daí querer utilizar a informação da geometria da shape da área de estudo para selecionar os dados da outra tabela.

De qualquer modo vou continuar a tentar.

Obrigado
Cumprimentos

On Thu, Apr 4, 2019 at 4:30 PM Alexandre Neto <senhor.neto@gmail.com> wrote:

Como está a fazer esse import. Eu acho que com ogr2org talvez dê.

Caso contrário pelo qgis pode usar a shape para seleccionar os elementos que quer importar, e depois no db manager usar a opção selected only.

A qui, 4/04/2019, 15:47, Luis Bentes <lmbentes@gmail.com> escreveu:

Obrigado Nelson, no entanto, o que quero mesmo é que durante o carregamento dos dados PostGIS eles sejam selecionados usando uma shape (a integrar no SQL), ainda antes de os carregar.

Luis

On Thu, Apr 4, 2019 at 3:36 PM Nelson Silva <nelson.jgs@gmail.com> wrote:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[QGIS-pt@lists.osgeo.org](mailto:QGIS-pt@lists.osgeo.org)
[https://lists.osgeo.org/mailman/listinfo/qgis-pt](https://lists.osgeo.org/mailman/listinfo/qgis-pt)

LogoGeomaster, LDA

VENHA DESCOBRIR O CAMINHO DO OPEN SOURCE CONNOSC****O


Avenida Barros e Soares
N.º 423, 4715-214 Braga
VAT/NIF 510 906 109
Phone +351 253 680 323
Site geomaster.pt
GPS 41.53322, -8.41929





Jorge Gustavo Rocha
CTO

Mobile +351 910 333 888
Email jgr@geomaster.pt

Sugestão para evitar a importação da shape:

  • Use o ogr2ogr para exportar a sua área em CSV com formato da geometria em WKT ‘visível’
    ogr2ogr -f CSV -lco GEOMETRY=AS_WKT <my_out_file>.csv <my_source_shape>.shp <my_layer_name>

  • Copie o texto do do seu polígono em WKT e utilize directamente no SQL do PostGIS (no ‘where’ em conjunto com ST_Intersects(ST_GeomFromText(‘<string_wkt’, srid), .geom)

Cumprimentos,
F.

···

Fernando Ribeiro

Olá Luis. Se percebi bem a pergunta é: como carregar um ficheiro para
postgis, mas apenas os dados localizados dentro da área num shapefile
separado?

Para mim a melhor opção é, como já disseram, usar o ogr2ogr. Há uma opção
mesmo para isto:

/-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent:

(starting with GDAL 1.7.0) clip geometries to the specified bounding box
(expressed in source SRS), WKT geometry (POLYGON or MULTIPOLYGON), from a
datasource or to the spatial extent of the -spat option if you use the
spat_extent keyword. When specifying a datasource, you will generally want
to use it in combination of the -clipsrclayer, -clipsrcwhere or -clipsrcsql
options/

Ou seja, podemos adicionar as opções -clipsrc x:\dados\limite.shp

Outra opção para melhorar a performance do carregamento para postgis é a
--config PG_USE_COPY. E outra é aumentar os n.º de writes em cada commit com
-gt 100000.

O comando final seria (não testei):
ogr2ogr --config PG_USE_COPY -gt 100000 -f "PostgreSQL" PG:"host=myhost
user=myloginname dbname=mydbname password=mypassword" -clipsrc
x:\dados\limite_clip.shp shapefile_importar.shp

Diz se resulta alguma coisa de jeito.

Abr

--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html

Muito obrigado, as vossas sugestões (Jorge Gustavo Rocha e Fernando Ribeiro) funcionaram na perfeição.

Cumprimentos
Luis

On Thu, Apr 4, 2019 at 5:26 PM Jorge Gustavo Rocha <jgr@geomaster.pt> wrote:

Olá,

Parece-me que a solução mais adequada é carregar a área na base de dados e depois fazer uma query que só carrega no QGIS os dados dentro da shapefile.

Se uma tabela se chamar 'estudo' e a outra 'areadeestudo', a query seria:

select estudo.* 
from estudo, areaestudo
where st_contains(areaestudo.geom, estudo.geom)

Pode-se acrescentar mais condições no where para restringir os dados a carregar no QGIS.

Bom trabalho

Jorge Gustavo

Às 16:58 de 04/04/19, Luis Bentes escreveu:

A questão principal que tenho, para além da que eu coloquei inicialmente, é que a tabela da qual eu quero selecionar dados de uma área reduzida (a minha área de estudo) tem muitos milhões de dados e por isso nunca a consigo carregar em nenhum computador a que tenho acesso. Por isso pensei em fazer a selecção dos dados antes de os importar para o QGIS, usando para isso o SQL. Tudo seria mais simples se a área tivesse um formato regular mas como é um poligono de formato estranho não ajuda nada, daí querer utilizar a informação da geometria da shape da área de estudo para selecionar os dados da outra tabela.

De qualquer modo vou continuar a tentar.

Obrigado
Cumprimentos

On Thu, Apr 4, 2019 at 4:30 PM Alexandre Neto <senhor.neto@gmail.com> wrote:

Como está a fazer esse import. Eu acho que com ogr2org talvez dê.

Caso contrário pelo qgis pode usar a shape para seleccionar os elementos que quer importar, e depois no db manager usar a opção selected only.

A qui, 4/04/2019, 15:47, Luis Bentes <lmbentes@gmail.com> escreveu:

Obrigado Nelson, no entanto, o que quero mesmo é que durante o carregamento dos dados PostGIS eles sejam selecionados usando uma shape (a integrar no SQL), ainda antes de os carregar.

Luis

On Thu, Apr 4, 2019 at 3:36 PM Nelson Silva <nelson.jgs@gmail.com> wrote:

Luís,

Sem ter experimentado.
Carregue dados PostGIS e experimente no DB Manager usar como Virtual Layers.

Nelson

Enviado do meu iPhone

No dia 04/04/2019, às 14:58, Luis Bentes <lmbentes@gmail.com> escreveu:

Boa tarde a todos,

Pergunto se é possível fazer um query SQL a uma base postgis usando um shapefile como limite geográfico para a selecção de dados e se sim como devo fazé-lo?

Muito obrigado.
Cumprimentos,
Luis Bentes


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[QGIS-pt@lists.osgeo.org](mailto:QGIS-pt@lists.osgeo.org)
[https://lists.osgeo.org/mailman/listinfo/qgis-pt](https://lists.osgeo.org/mailman/listinfo/qgis-pt)

LogoGeomaster, LDA

VENHA DESCOBRIR O CAMINHO DO OPEN SOURCE CONNOSC****O


Avenida Barros e Soares
N.º 423, 4715-214 Braga
VAT/NIF 510 906 109
Phone +351 253 680 323
Site geomaster.pt
GPS 41.53322, -8.41929





Jorge Gustavo Rocha
CTO

Mobile +351 910 333 888
Email jgr@geomaster.pt

QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-pt