Você está aqui: QGIS ::: PyQGIS API ::: Shapefiles, Camadas Vetoriais, Dados Vetoriais

Como exibir todos os atributos das feições de uma camada vetorial no QGIS usando getFeatures() e attributes() da PyQGIS API

Quantidade de visualizações: 280 vezes
Nesta dica mostrarei como podemos acessar todos os atributos das feições (features) de uma camada vetorial no QGIS usando getFeatures() e attributes() do objeto QgsVectorLayer da PyQGIS API.

Depois de carregar o shapefile contendo todos os municípios do Estado de Goiás, usei a getFeatures() para retornar um iterador QgsFeatureIterator que nos permite acessar as features individuais da camada.

Então, de posse das feições individuais, nós usamos a função attributes() para retornar o QgsFeature correspondente e exibir seu conteúdo.

Veja o código PyQGIS completo para o exemplo:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Ao rodar esse código PyQGIS no QGIS nós teremos o seguinte resultado:

['5200050', 'Abadia de Goiás', 'GO', 143.357]
['5200100', 'Abadiânia', 'GO', 1044.555]
['5200134', 'Acreúna', 'GO', 1566.742]
['5200159', 'Adelândia', 'GO', 115.385]
['5200175', 'Água Fria de Goiás', 'GO', 2023.636]
['5200209', 'Água Limpa', 'GO', 458.836]
['5200258', 'Águas Lindas de Goiás', 'GO', 191.817]
['5200308', 'Alexânia', 'GO', 846.876]
['5200506', 'Aloândia', 'GO', 102.094]
['5200555', 'Alto Horizonte', 'GO', 500.342]
['5200605', 'Alto Paraíso de Goiás', 'GO', 2594.998]
['5200803', 'Alvorada do Norte', 'GO', 1268.347]
['5200829', 'Amaralina', 'GO', 1343.742]
['5200852', 'Americano do Brasil', 'GO', 133.834]
['5200902', 'Amorinópolis', 'GO', 406.93]
['5201108', 'Anápolis', 'GO', 935.672]
['5201207', 'Anhanguera', 'GO', 55.569]
['5201306', 'Anicuns', 'GO', 976.038]
['5201405', 'Aparecida de Goiânia', 'GO', 279.954]
['5201454', 'Aparecida do Rio Doce', 'GO', 603.254]
['5201504', 'Aporé', 'GO', 2899.237]
['5201603', 'Araçu', 'GO', 149.776]
['5201702', 'Aragarças', 'GO', 661.677]
['5201801', 'Aragoiânia', 'GO', 218.125]
['5202155', 'Araguapaz', 'GO', 2188.1]
['5202353', 'Arenópolis', 'GO', 1075.535]
['5202502', 'Aruanã', 'GO', 3054.773]
['5202601', 'Aurilândia', 'GO', 565.514]
['5202809', 'Avelinópolis', 'GO', 170.228]
['5203104', 'Baliza', 'GO', 1780.173]
['5203203', 'Barro Alto', 'GO', 1080.268]
['5203302', 'Bela Vista de Goiás', 'GO', 1274.034]
['5203401', 'Bom Jardim de Goiás', 'GO', 1901.137]
['5203500', 'Bom Jesus de Goiás', 'GO', 1405.605]
['5203559', 'Bonfinópolis', 'GO', 121.915]
['5203575', 'Bonópolis', 'GO', 1635.319]
['5203609', 'Brazabrantes', 'GO', 125.326]
['5203807', 'Britânia', 'GO', 1458.459]
['5203906', 'Buriti Alegre', 'GO', 901.932]
['5203939', 'Buriti de Goiás', 'GO', 202.576]
['5203962', 'Buritinópolis', 'GO', 246.075]
['5204003', 'Cabeceiras', 'GO', 1126.434]
['5204102', 'Cachoeira Alta', 'GO', 1657.226]
['5204201', 'Cachoeira de Goiás', 'GO', 424.49]
['5204250', 'Cachoeira Dourada', 'GO', 528.281]
['5204300', 'Caçu', 'GO', 2254.34]
['5204409', 'Caiapônia', 'GO', 8627.961]
['5204508', 'Caldas Novas', 'GO', 1608.523]
['5204557', 'Caldazinha', 'GO', 251.72]
['5204607', 'Campestre de Goiás', 'GO', 272.734]
['5204656', 'Campinaçu', 'GO', 1978.386]
['5204706', 'Campinorte', 'GO', 1064.541]
['5204805', 'Campo Alegre de Goiás', 'GO', 2450.111]
['5204854', 'Campo Limpo de Goiás', 'GO', 156.113]
['5204904', 'Campos Belos', 'GO', 735.126]
['5204953', 'Campos Verdes', 'GO', 443.125]
['5205000', 'Carmo do Rio Verde', 'GO', 419.821]
['5205059', 'Castelândia', 'GO', 299.228]
['5205109', 'Catalão', 'GO', 3826.37]
['5205208', 'Caturaí', 'GO', 205.065]
['5205307', 'Cavalcante', 'GO', 6948.78]
['5205406', 'Ceres', 'GO', 213.07]
['5205455', 'Cezarina', 'GO', 417.08]
['5205471', 'Chapadão do Céu', 'GO', 2184.076]
['5205497', 'Cidade Ocidental', 'GO', 389.984]
['5205513', 'Cocalzinho de Goiás', 'GO', 1785.339]
['5205521', 'Colinas do Sul', 'GO', 1707.519]
['5205703', 'Córrego do Ouro', 'GO', 458.077]
['5205802', 'Corumbá de Goiás', 'GO', 1064.833]
['5205901', 'Corumbaíba', 'GO', 1864.277]
['5206206', 'Cristalina', 'GO', 6153.921]
['5206305', 'Cristianópolis', 'GO', 221.624]
['5206404', 'Crixás', 'GO', 4673.039]
['5206503', 'Cromínia', 'GO', 364.918]
['5206602', 'Cumari', 'GO', 568.365]
['5206701', 'Damianópolis', 'GO', 417.625]
['5206800', 'Damolândia', 'GO', 86.057]
['5206909', 'Davinópolis', 'GO', 482.857]
['5207105', 'Diorama', 'GO', 685.382]
['5207253', 'Doverlândia', 'GO', 3227.558]
['5207352', 'Edealina', 'GO', 598.218]
['5207402', 'Edéia', 'GO', 1469.099]
['5207501', 'Estrela do Norte', 'GO', 301.139]
['5207535', 'Faina', 'GO', 1949.685]
['5207600', 'Fazenda Nova', 'GO', 1279.107]
['5207808', 'Firminópolis', 'GO', 422.34]
['5207907', 'Flores de Goiás', 'GO', 3695.106]
['5208004', 'Formosa', 'GO', 5804.292]
['5208103', 'Formoso', 'GO', 843.42]
['5208152', 'Gameleira de Goiás', 'GO', 588.328]
['5208301', 'Divinópolis de Goiás', 'GO', 828.874]
['5208400', 'Goianápolis', 'GO', 166.642]
['5208509', 'Goiandira', 'GO', 569.917]
['5208608', 'Goianésia', 'GO', 1547.319]
['5208707', 'Goiânia', 'GO', 729.296]
['5208806', 'Goianira', 'GO', 213.772]
['5208905', 'Goiás', 'GO', 3108.423]
['5209101', 'Goiatuba', 'GO', 2479.591]
['5209150', 'Gouvelândia', 'GO', 827.373]
['5209200', 'Guapó', 'GO', 514.178]
['5209291', 'Guaraíta', 'GO', 205.533]
['5209408', 'Guarani de Goiás', 'GO', 1221.054]
['5209457', 'Guarinos', 'GO', 593.188]
['5209606', 'Heitoraí', 'GO', 228.615]
['5209705', 'Hidrolândia', 'GO', 952.122]
['5209804', 'Hidrolina', 'GO', 583.756]
['5209903', 'Iaciara', 'GO', 1547.183]
['5209937', 'Inaciolândia', 'GO', 689.201]
['5209952', 'Indiara', 'GO', 955.419]
['5210000', 'Inhumas', 'GO', 614.887]
['5210109', 'Ipameri', 'GO', 4382.863]
['5210158', 'Ipiranga de Goiás', 'GO', 244.209]
['5210208', 'Iporá', 'GO', 1027.249]
['5210307', 'Israelândia', 'GO', 579.19]
['5210406', 'Itaberaí', 'GO', 1461.916]
['5210562', 'Itaguari', 'GO', 142.652]
['5210604', 'Itaguaru', 'GO', 241.029]
['5210802', 'Itajá', 'GO', 2082.736]
['5210901', 'Itapaci', 'GO', 952.998]
['5211008', 'Itapirapuã', 'GO', 2047.874]
['5211206', 'Itapuranga', 'GO', 1281.404]
['5211305', 'Itarumã', 'GO', 3437.367]
['5211404', 'Itauçu', 'GO', 383.066]
['5211503', 'Itumbiara', 'GO', 2447.014]
['5211602', 'Ivolândia', 'GO', 1260.841]
['5211701', 'Jandaia', 'GO', 863.087]
['5211800', 'Jaraguá', 'GO', 1848.947]
['5211909', 'Jataí', 'GO', 7178.792]
['5212006', 'Jaupaci', 'GO', 528.783]
['5212055', 'Jesúpolis', 'GO', 115.211]
['5212105', 'Joviânia', 'GO', 446.258]
['5212204', 'Jussara', 'GO', 4092.34]
['5212253', 'Lagoa Santa', 'GO', 463.289]
['5212303', 'Leopoldo de Bulhões', 'GO', 476.137]
['5212501', 'Luziânia', 'GO', 3962.107]
['5212600', 'Mairipotaba', 'GO', 468.029]
['5212709', 'Mambaí', 'GO', 858.27]
['5212808', 'Mara Rosa', 'GO', 1695.463]
['5212907', 'Marzagão', 'GO', 225.518]
['5212956', 'Matrinchã', 'GO', 1150.503]
['5213004', 'Maurilândia', 'GO', 389.959]
['5213053', 'Mimoso de Goiás', 'GO', 1380.701]
['5213087', 'Minaçu', 'GO', 2854.137]
['5213103', 'Mineiros', 'GO', 9042.844]
['5213400', 'Moiporá', 'GO', 452.314]
['5213509', 'Monte Alegre de Goiás', 'GO', 3119.86]
['5213707', 'Montes Claros de Goiás', 'GO', 2900.397]
['5213756', 'Montividiu', 'GO', 1869.581]
['5213772', 'Montividiu do Norte', 'GO', 1337.232]
['5213806', 'Morrinhos', 'GO', 2846.299]
['5213855', 'Morro Agudo de Goiás', 'GO', 282.333]
['5213905', 'Mossâmedes', 'GO', 684.882]
['5214002', 'Mozarlândia', 'GO', 1738.516]
['5214051', 'Mundo Novo', 'GO', 2141.534]
['5214101', 'Mutunópolis', 'GO', 955.069]
['5214408', 'Nazário', 'GO', 281.147]
['5214507', 'Nerópolis', 'GO', 204.713]
['5214606', 'Niquelândia', 'GO', 9846.293]
['5214705', 'Nova América', 'GO', 209.432]
['5214804', 'Nova Aurora', 'GO', 307.335]
['5214838', 'Nova Crixás', 'GO', 7308.681]
['5214861', 'Nova Glória', 'GO', 411.753]
['5214879', 'Nova Iguaçu de Goiás', 'GO', 625.625]
['5214903', 'Nova Roma', 'GO', 2136.725]
['5215009', 'Nova Veneza', 'GO', 122.354]
['5215207', 'Novo Brasil', 'GO', 649.349]
['5215231', 'Novo Gama', 'GO', 192.285]
['5215256', 'Novo Planalto', 'GO', 1254.491]
['5215306', 'Orizona', 'GO', 1971.265]
['5215405', 'Ouro Verde de Goiás', 'GO', 208.804]
['5215504', 'Ouvidor', 'GO', 411.318]
['5215603', 'Padre Bernardo', 'GO', 3142.615]
['5215652', 'Palestina de Goiás', 'GO', 1318.047]
['5215702', 'Palmeiras de Goiás', 'GO', 1537.196]
['5215801', 'Palmelo', 'GO', 59.809]
['5215900', 'Palminópolis', 'GO', 393.326]
['5216007', 'Panamá', 'GO', 432.204]
['5216304', 'Paranaiguara', 'GO', 1153.415]
['5216403', 'Paraúna', 'GO', 3786.578]
['5216452', 'Perolândia', 'GO', 1033.657]
['5216809', 'Petrolina de Goiás', 'GO', 530.49]
['5216908', 'Pilar de Goiás', 'GO', 906.048]
['5217104', 'Piracanjuba', 'GO', 2374.232]
['5217203', 'Piranhas', 'GO', 2045.088]
['5217302', 'Pirenópolis', 'GO', 2200.369]
['5217401', 'Pires do Rio', 'GO', 1077.641]
['5217609', 'Planaltina', 'GO', 2558.924]
['5217708', 'Pontalina', 'GO', 1434.289]
['5218003', 'Porangatu', 'GO', 4825.287]
['5218052', 'Porteirão', 'GO', 606.262]
['5218102', 'Portelândia', 'GO', 553.411]
['5218300', 'Posse', 'GO', 2076.99]
['5218391', 'Professor Jamil', 'GO', 356.292]
['5218508', 'Quirinópolis', 'GO', 3786.026]
['5218607', 'Rialma', 'GO', 268.291]
['5218706', 'Rianápolis', 'GO', 157.379]
['5218789', 'Rio Quente', 'GO', 244.655]
['5218805', 'Rio Verde', 'GO', 8374.255]
['5218904', 'Rubiataba', 'GO', 750.659]
['5219001', 'Sanclerlândia', 'GO', 509.402]
['5219100', 'Santa Bárbara de Goiás', 'GO', 140.957]
['5219209', 'Santa Cruz de Goiás', 'GO', 1109.007]
['5219258', 'Santa Fé de Goiás', 'GO', 1164.186]
['5219308', 'Santa Helena de Goiás', 'GO', 1142.337]
['5219357', 'Santa Isabel', 'GO', 812.756]
['5219407', 'Santa Rita do Araguaia', 'GO', 1357.197]
['5219456', 'Santa Rita do Novo Destino', 'GO', 970.448]
['5219506', 'Santa Rosa de Goiás', 'GO', 166.44]
['5219605', 'Santa Tereza de Goiás', 'GO', 789.544]
['5219704', 'Santa Terezinha de Goiás', 'GO', 1206.6]
['5219712', 'Santo Antônio da Barra', 'GO', 450.336]
['5219738', 'Santo Antônio de Goiás', 'GO', 135.022]
['5219753', 'Santo Antônio do Descoberto', 'GO', 943.948]
['5219803', 'São Domingos', 'GO', 3335.999]
['5219902', 'São Francisco de Goiás', 'GO', 416.535]
['5220009', "São João d'Aliança", 'GO', 3334.455]
['5220058', 'São João da Paraúna', 'GO', 286.979]
['5220108', 'São Luís de Montes Belos', 'GO', 829.62]
['5220157', 'São Luiz do Norte', 'GO', 583.832]
['5220207', 'São Miguel do Araguaia', 'GO', 6150.179]
['5220264', 'São Miguel do Passa Quatro', 'GO', 537.347]
['5220280', 'São Patrício', 'GO', 172.763]
['5220405', 'São Simão', 'GO', 415.015]
['5220454', 'Senador Canedo', 'GO', 247.005]
['5220504', 'Serranópolis', 'GO', 5521.774]
['5220603', 'Silvânia', 'GO', 2349.924]
['5220686', 'Simolândia', 'GO', 346.811]
['5220702', "Sítio d'Abadia", 'GO', 1611.851]
['5221007', 'Taquaral de Goiás', 'GO', 205.665]
['5221080', 'Teresina de Goiás', 'GO', 784.793]
['5221197', 'Terezópolis de Goiás', 'GO', 107.407]
['5221304', 'Três Ranchos', 'GO', 284.034]
['5221403', 'Trindade', 'GO', 712.69]
['5221452', 'Trombas', 'GO', 802.905]
['5221502', 'Turvânia', 'GO', 482.317]
['5221551', 'Turvelândia', 'GO', 935.659]
['5221577', 'Uirapuru', 'GO', 1154.305]
['5221601', 'Uruaçu', 'GO', 2142.484]
['5221700', 'Uruana', 'GO', 522.904]
['5221809', 'Urutaí', 'GO', 623.821]
['5221858', 'Valparaíso de Goiás', 'GO', 61.488]
['5221908', 'Varjão', 'GO', 517.402]
['5222005', 'Vianópolis', 'GO', 954.115]
['5222054', 'Vicentinópolis', 'GO', 733.794]
['5222203', 'Vila Boa', 'GO', 1052.593]
['5222302', 'Vila Propício', 'GO', 2181.593]

Note que mostrei todos os atributos das 246 feições (features) do meu shapefile. E cada feição representa um dos municípios do Estado de Goiás. Veja que os atributos são o código do município, seu nome, a sigla do estado e sua área (em metros quadrados). Deixei a listagem completa para facilitar alguém que queira fazer trabalhos relacionados a isso.

Link para compartilhar na Internet ou com seus amigos:

QGIS ::: PyQGIS API ::: Projeto QGIS - Classe QgsProject

Como retornar o título do projeto do QGIS usando PyQGIS e a função title() da classe QgsProject

Quantidade de visualizações: 48 vezes
Em algumas situações nós precisamos obter o título do projeto atual do QGIS. Para isso nós podemos usar a função title() da classe QgsProject da PyQGIS API.

Note que o título do projeto do QGIS é definido indo no menu Projeto -> Propriedades. Na janela Propriedades nós acessamos a guia Geral e definimos no campo Título do Projeto o valor que desejamos.

Veja o código PyQGIS completo que acessa e exibe o título do projeto em uma mensagem QMessageBox.information:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos obter o título do projeto do QGIS
titulo = QgsProject.instance().title()
 
# e mostramos o resultado
QMessageBox.information(None, "Aviso", "O título do projeto é: " +
  titulo)

Ao executar este código PyQGIS nós teremos um resultado parecido com:

O título do projeto é: Estudo hidrológico cliente AFG Rio Verde-GO


QGIS ::: PyQGIS API ::: Shapefiles, Camadas Vetoriais, Dados Vetoriais

Como saber o sistema de coordenadas de um shapefile no QGIS usando a função crs() do objeto QgsVectorLayer da PyQGIS API

Quantidade de visualizações: 234 vezes
Em algumas situações nós gostaríamos de saber o sistema de coordenadas usado em um shapefile que carregamos ou pretendemos carregar para os nossos projetos no QGIS. Para isso podemos usar a função crs() do objeto QgsVectorLayer da PyQGIS API.

Esta função retorna um objeto da classe QgsCoordinateReferenceSystem, que possui uma função chamada description(), que retorna a descrição do sistema de coordenadas usado no shapefile.

Veja o código PyQGIS completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos criar um novo objeto QgsVectorLayer com o local do nosso shapefile
camada = QgsVectorLayer("C:\\GO_Municipios_2022\\GO_Municipios_2022.shp",
  "Municípios Estado de Goiás", "ogr")

# vamos testar se a camada é válida  
if not camada.isValid():
  print("Não foi possível carregar a camada %s" % camada.name())
else:
  # vamos adicionar a camada à relação de camadas  
  QgsProject.instance().addMapLayer(camada)
  
  # vamos exibir o sistema de coordenadas da camada
  sistema_coordenadas = camada.crs()
  print(sistema_coordenadas.description())

Ao rodar esse código PyQGIS no QGIS nós teremos o seguinte resultado:

EPSG 4674 / SIRGAS 2000


QGIS ::: PyQGIS API ::: Projeto QGIS - Classe QgsProject

Como definir o título do projeto do QGIS usando PyQGIS e a função setTitle() da classe QgsProject

Quantidade de visualizações: 51 vezes
Nesta dica mostrarei como podemos definir o título do projeto do QGIS usando PyQGIS. Para isso nós vamos usar a função setTitle() da classe QgsProject da PyQGIS API.

Note que o título do projeto do QGIS pode ser definido manualmente indo no menu Projeto -> Propriedades. Na janela Propriedades nós acessamos a guia Geral e definimos no campo Título do Projeto o valor que desejamos.

Veja o código PyQGIS completo que mostra como definir o título do projeto atual do QGIS:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos definir o título do projeto do QGIS
titulo = "Projeto Empresa X Goiânia-GO"
QgsProject.instance().setTitle(titulo)
 
# e mostramos uma mensagem
QMessageBox.information(None, "Aviso",
  "O título do projeto foi definido com sucesso")

Ao executar este código PyQGIS nós teremos um resultado parecido com:

O título do projeto foi definido com sucesso


Veja mais Dicas e truques de QGIS

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 14 usuários muito felizes estudando em nosso site.