Calculando áreas de polígono no QGIS?

72

Como calcular áreas de um shapefile de área em metros quadrados ou em acres (ha)?

Não encontrei essa funcionalidade nas ferramentas de vetor.

desputar
fonte
Pergunta de acompanhamento: Eu tenho uma camada no Plano Estadual NAD83. Quando uso esses comandos, cria a área em pés. E se eu quiser acres ou milhas quadradas? Obrigado
C_K
As duas respostas fornecidas funcionam, mas são um pouco lentas para implementar, especialmente quando se está tentando determinar a área de muitos arquivos vetoriais de polígonos. Não existe um plug-in ou alguma outra maneira de obter a área de um polígono simplesmente clicando com o botão direito do mouse no polígono? As respostas fornecidas terminam com um novo atributo de campo (ou seja, área), mas o valor não é atualizado se o polígono for alterado. Portanto, em muitos casos, não há necessidade de exibir a área em um atributo de campo separado. Se a área pudesse ser mostrada como um número em um gráfico pequeno, na parte inferior da página, etc., seria suficiente. Então, é o
David
2
Usando a ferramenta de identificação, clique em um polígono. A área é calculada e exibida em "Derivado" na janela de identificação. Você pode alterar as unidades nas configurações.
CSK

Respostas:

70

Torne a camada editável e use a calculadora de campos (Camada> Abrir tabela de atributos> Calculadora de campos / Ctrl + I ou clique com o botão direito do mouse em shapefile> Abrir tabela de atributos> Calculadora de campos / Ctrl + I). Há um operador "$ area" que calculará a área de cada linha da tabela. Todas as unidades serão calculadas nas unidades da projeção; portanto, você provavelmente deseja projetá-lo em uma projeção que use pés ou metros antes de fazer isso, em vez de lat / lon.

Stev_k
fonte
6
Nas versões atuais do QGIS, se seus dados estiverem em um CRS Geográfico, você poderá usar a função transform () para projetar as geometrias em um sistema projetado (de preferência uma área igual) sem a necessidade de duplicar seus dados. Na calculadora de campo, algo como isto deve funcionar: area ($ geometry, 'EPSG: 4326', 'EPSG: 3763') #
Alexandre Neto
9
@AlexandreNeto: Você quer dizer area(transform($geometry, 'EPSG:4326','EPSG:3763'))?
Stewart Macdonald
@ McDonald Sim, meu erro.
Alexandre Neto
18

Isso também pode ser feito com as colunas Vector | Geometry Tools | Add / export geometry, que criam um novo shapefile com as colunas de área e perímetro (ou comprimento) adicionadas.

Editar: (usando a ferramenta acima, você também pode desmarcar "salvar como novo arquivo de forma" na V1.8, o shapefile agora é atualizado apenas!)

Usar a calculadora de campo provavelmente é uma idéia melhor, pois não requer a criação de um novo shapefile.

Simbamangu
fonte
Você não pode alterar os atributos do arquivo shapefile sem ativar a edição primeiro (a área de cálculo conta como a edição dos atributos, você está adicionando uma nova coluna). Lembre-se de que todas as unidades serão calculadas nas unidades da projeção (metros bu padrão), portanto, você deve reprojetá-la primeiro em um sistema de coordenadas projetadas.
Hasan Mustafa
4

Eu escrevi um script especificamente para isso. Se você não deseja reprojetar seus dados, pode calcular a área usando a matemática elipsoidal.

Processing Toolbox -> Tools -> Get scripts from on-line scripts collection -> Ellipsoidal Area

Você encontrará o script instalado em Processing Toolbox -> Utils -> Ellipsoidal area

A ferramenta deve ser auto-explicativa e permitirá calcular a área em unidades de sua escolha, independentemente da projeção.

pensamentos espaciais
fonte
Você pode dar um exemplo melhor como código?
Léo Léopold Hertz,
0

Se as áreas que você está olhando estão sujeitas a alterações, como layouts de infraestrutura, áreas de captação, áreas de estudo etc., acho útil simplesmente rotular as áreas, em vez de adicioná-las como atributos.

Label-> round($area/10000,2)||' ha'

Dessa forma, você não precisa se lembrar de atualizar as áreas de captação nas tabelas de atributos com a mesma frequência.

Gordon Huang
fonte