Perimetros Urbanos Nespereira: diferenças entre revisões
Sem resumo de edição |
|||
Linha 111: | Linha 111: | ||
<li> Eliminar buracos em "Agregado_USOURB02" com dimensão inferior a 5000 m2 (menu "Processamento / Ferramentas de processamento / Geometria vetorial / Eliminar buracos") criando a camada "Limpo_buracos5000" | <li> Eliminar buracos em "Agregado_USOURB02" com dimensão inferior a 5000 m2 (menu "Processamento / Ferramentas de processamento / Geometria vetorial / Eliminar buracos") criando a camada "Limpo_buracos5000" | ||
<li> Separar os agregados não unidos da camada "Limpo_buracos5000" usando o algoritmo Múltiplas partes para partes únicas (menu "Vetor / Ferramentas de geometria / Múltiplas partes para partes únicas..."), deve dar 207 elementos, mudar o nome para "BUFF02" | <li> Separar os agregados não unidos da camada "Limpo_buracos5000" usando o algoritmo Múltiplas partes para partes únicas (menu "Vetor / Ferramentas de geometria / Múltiplas partes para partes únicas..."), deve dar 207 elementos, mudar o nome para "BUFF02" | ||
<li> | <li> Na camada "BUFF02" atualizar os campos '''id''' e '''area_m2''' ("id=$id" e "area_m2=$area") e apagar os demais atributos | ||
<li> | |||
</ol> | </ol> | ||
Revisão das 07h49min de 15 de novembro de 2021
<-- Voltar à página hierarquicamente anterior
Perímetros urbanos de Nespereira
Objetivos
FIXME
Dados
- CinfaesCartografia_10000_Shape_ETRS89.zip (213 MB)
- BD.gpkg (146 MB)
Guião
Parte 1: preparar o projeto incluindo criar uma camada que represente Nespereira
- Criar a pasta base "Cinfaes_Nespereira", e as subpastas "dados_input", "dados_output" e "resultados"
- Descarregar os dados de input (cartografia de Cinfães e BD.gpkg)
- Descomprimir a cartografia de Cinfães e copiar para a pasta "dados_input" estas 7 shapefiles que representam 22 ficheiros:
- edificio (contém 46779 itens)
- Rodovias (contém 56715 itens)
- campo_jogos (contém 46 itens, neste caso não são 3 mas sim 4 ficheiros já que inclui o ficheiro .prj que especifica o sistema de coordenadas dessa camada)
- deposito (contém 68 itens)
- equipame (contém 104 itens)
- piscina (contém 5 itens)
- zverde (contém 100 itens)
Verificar que na pasta "dados_input" ficaram 22 ficheiros que ocupam 43 MB
- Copiar a geopackage BD.gpkg para "dados_input" e mudar-lhe o nome para "BD_Cinfaes.gpkg", a seguir usar o navegador do QGIS para ver o conteúdo da geopackage e clicando com o botão direito do rato sobre o nome da camada (estamos a falar da camada armazenada no disco na geopackage), apagar ("Delete Layer...") as camadas "COS" (é uma camada matricial conforme mostrado pelo ícone parecido com um tabuleiro de xadrez), "lagoasAA", "precipAA", e "soloAA" já que não vamos necessitar delas
- Criar um novo projeto QGIS, verificar que o sistema de referência de coordenadas é "EPSG: 3763 ETRS89 / Portugal TM06" (menu "Projeto / Propriedades / Sistema de referência de coordenadas (SRC) do projeto"), a seguir gravar dentro da pasta "Cinfaes_Nespereira" usando o nome "Cinfaes_Nespereira.qgz"
- Adicionar ao projeto as camadas
edificio, Rodovias, campo_jogos, deposito, equipame, piscina, zverde
e verificar que a quantidade de itens de cada camada está correta (ver quantidades dadas acima) - Adicionar o mapa de contexto do Open Street Maps (menu "Web / QuickMapServices / OSM / OSM Standard", se esse menu não existir é necessário instalar o módulo "QuickMapServices" indo ao menu "Módulos / Gerir e instalar módulos...")
- Verificar que todas as camadas parecem estar corretamente georreferenciadas em Cinfães
- Para todas as camadas em que aparece um ponto de interrogação à direita do nome da camada (todas exceto
campo_jogos
) significa que essa camada não tem definido o sistema de referência de coordenadas, embora por omissão seja assumido o sistema de referência de coordenadas do projeto (pelo que as camadas neste momento ficam bem georreferenciadas), se mais tarde criarmos uma nova camada a partir de uma dessas camadas (por exemplo usando "selecionar elementos por expressão") então a nova camada vai ficar com o SRC errado (ficará com o SRC standard WGS84) por isso é importante corrigir antes de se criar camadas derivadas. Clicar em cada um dos pontos de interrogação e escolher "EPSG: 3763 ETRS89 / Portugal TM06" e premir OK - Criar a camada "ED01" que foi criada a partir da camada
edificio
excluindo os edifícios do tipo Anexo, Cobertura/Telheiro, Precário. Para se conseguir isso usar "selecionar elementos por expressão" do painel "Selection toolbar" podendo-se criar o que se quer usando por exemplo a expressãoNOT ("tipo" IN ( 'Anexo' , 'Cobertura/Telheiro' , 'Precário' ))
, deve dar 39763 itens, a seguir usar o menu "Editar / Copiar Elementos" seguido de "Editar / Colar elementos como / Camada temporária" e colocar no "Nome da camada" o valor "ED01" - Da mesma forma criar a camada "VIA01" a partir da camada "Rodovias" de modo a só ter as estradas principais, isto é, as que são do tipo "Estrada/rua" (descartando as do tipo estrada de terra batida, via de apoio, via para peões). Pode-se usar por exemplo a expressão
"tipo" = 'Estrada/rua'
, deve dar 18361 itens. Note-se que embora seja óbvio que estrada de terra batida e via para peões não representa uma estrada principal o mesmo já não se aplica a via de apoio. Para ter a certeza que via de apoio não é uma estrada relevante deve-se selecionar esse tipo de vias (usando uma expressão) e a seguir fazer zoom no mapa de modo a ver o contexto, só aí se conclui que vias de apoio não representam estradas que devam ser consideradas (muitas vezes são por exemplo estradas que ligam a estrada principal a uma propriedade). - Tornar as 2 camadas temporárias permanentes, guardando-as na subpasta "dados_output" numa geopackage chamada "Cinfaes_camadas.gpkg": clicar no ícone da memória que identifica a camada como sendo temporária, escolher o formato "Geopackage", no nome do ficheiro clicar nas reticências, definir a localização e o nome do ficheiro, a seguir escolher para nome da camada o mesmo nome que está no projeto (isto é, respetivamente "ED01" e "VIA01"), e premir OK
- No caso de por lapso se ter criado a camada no ficheiro geopackage correto mas se ter usado o nome da camada errado (fácil de acontecer porque por omissão o nome da camada é inicializado com o nome do ficheiro do geopackage) eis a forma de corrigir o nome da camada:
- Selecionar a camada, clicar com o botão direito do rato, "Exportar / Guardar elementos como..." guardar no mesmo geopackage mas agora com o nome correto e deixar ativa a opção "Adicionar ficheiro guardado ao mapa", irá aparecer uma nova camada com o nome do ficheiro geopackage, um espaço e o nome da camada
- Usando o navegador navegar até à geopackage, selecionar a camada com o nome errado, clicar com o botão da direita do rato, escolher "Eliminar Camada..." (estamos a eliminar a camada dentro da geopackage armazenada no disco), deve aparecer uma mensagem a dizer que a camada existe no projeto atual e a perguntar se quer removê-la do projeto e eliminá-la, selecionar "Yes" (dessa forma não só a apaga no disco como também a remove do projeto)
- No projeto alterar o nome da camada nova de modo a remover o prefixo com "o nome do geopackage e um espaço", dessa forma o nome no projeto fica igual ao nome no geopackage
- Guardar o projeto
- Adicionar ao projeto a camada "COS_vetorial" que se encontra no ficheiro "BD_Cinfaes.gpkg" que se encontra na pasta "dados_input"
- A partir da camada "COS_vetorial" criar a camada temporária "Cinfaes" que contém somente o concelho de Cinfães, usar por exemplo "selecionar elementos por expressão" usando a expressão
"Concelho" = 'Cinfães'
, deve dar 14 itens - A partir da camada "Cinfaes" criar a camada temporária "Nespereira" que contenha somente a freguesia de Nespereira (irá dar 1 item)
- Gravar as camadas temporárias "Cinfaes" e "Nespereira" na geopackage "dados_output/Cinfaes_camadas.gpkg"
- Gravar o projeto, sair do QGIS, e fazer uma cópia de segurança do resultado obtido até aqui.
Resultado da Parte 1
Arquivo com o resultado da Parte 1, o projeto e os dados: Cinfaes_Nespereira-20211025.zip (108 MB)
Tempo de execução (quando se tenta repetir pela segunda vez): cerca de FIXME minutos
Vídeo com a resolução do exercício: [FIXME FIXME.wmv] (FIXME minutos e FIXME segundos, FIXME MB)
Parte 2a: Áreas edificadas consolidadas e em consolidação de Nespereira (início)
- Reabrir o projeto ou usar o arquivo ZIP Cinfaes_Nespereira-20211025.zip com o resultado da Fase 1.
NOTA importante: se se usar esse arquivo ZIP ver-se-á que no projeto existe uma camada chamada "Cont_AAD_CAOP2020" que contém 46 itens em Windows (por alguma razão só contém 5 itens em macOS) em vez dos 3223 itens que se encontram na camada do mesmo nome na geopackage "dados_input/BD_Cinfaes.gpkg", e nota-se também que se trata de uma camada que está identificada como sendo uma shapefile na pasta "dados_input", mas não existe nenhuma shapefile com esse nome nessa pasta. Alguma coisa terá corrido mal relativamente a essa camada que é inválida mas não aparece como sendo inválida. Remover essa camada do projeto já que contém dados errados. Para além disso se aparecer uma pasta chamada "__MACOSX" removê-la também, ela aparece quando se descomprime em Windows arquivos ZIP que foram criados num computador da Apple. - Adicionar à camada "ED01" um novo atributo chamada
area_m2
do tiponúmero decimal (real)
com a$area
- Criar a camada "ED02" com os elementos de "ED01" que possuem uma área maior que 30 m2 (selecionar pela expressão com
area_m2 > 30
), deve dar 23295 itens.
NOTA importante: atenção que quando se realiza esta operação com a camada "ED01" selecionada mas não visível (checkbox na camada não ativa), a operação de selecionar os elementos funciona mas depois não se consegue copiar os elementos. Mesmo que a seguir se torne visível a camada, o que permite ver que os elementos estão selecionados, continua a não se poder copiar esses elementos. A forma de se fazer esta operação é em primeiro lugar tornar a camada visível, depois selecionar os elementos, a seguir copiar os elementos, e por fim colar como nova camada vetorial temporária - Criar a camada "EDN01" com os elementos de "ED02" que pertencem a Nespereira, para isso no painel "Selection Toolbar" selecionar o ícone mais à direita ("Selecionar por localização", atenção que este ícone não aparece se o módulo de "Processing" estiver desativado, esse módulo é desativado automaticamente quando se arranca o QGIS a seguir a uma operação que originou um crash do QGIS enquanto um algoritmo do módulo "Processing" estava a ser executado, isso é um problema que é frequente acontecer). Na janela de "Selecionar por localização" escolher:
- Selecionar elementos de: ED02
- Where the features (geometric predicate)": intersecta
- Ao comparar com os elementos de: Nespereira
O resultado é que esses elementos ficam selecionados, a seguir copiar e colar como uma nova camada temporária chamada "EDN01" que deve ter 2715 itens, guardar essa camada no geopackage "cinfaes-camadas.gpkg" numa camada com o mesmo nome
- Criar uma camada tampão sobre EDN01 com 25 metros e agregada num único item: menu "Vetor / Ferramentas de geoprocessamento / Buffer..." (nalgumas versões do QGIS aparece "Contorno exterior"), escolhendo:
- Camada de entrada: EDN01
- Distância: 25 metros
- Ativar a checkbox "Resultado da agregação"
Resulta num único elemento, mudar o nome da camada resultante de "Buffered" para "BUFF01", torná-la semi-transparente (duplo click sobre o nome da camada / Simbologia / Opacidade), de modo a poder ver-se simultanemante a camada "EDN01" e a camada "BUFF01"
- Só para testar, fazer o mesmo mas desta vez sem ativar a checkbox "Resultado da agregação", comparar o resultado, agora temos 2715 itens em vez de 1, apagar esta camada acabada de criar com 2715 itens
- Unir áreas com uso urbano estabilizado:
- Juntar as 5 camadas vetoriais "campo_jogos, deposito, equipame, piscina, zverde" usando o menu "Vetor / Ferramentas de gestão de dados / Juntar camadas vetoriais...", nas "Camadas de entrada" clicar nas reticências e selecionar o nome das 5 camadas, voltar para trás clicando na seta azul que aparece no topo à esquerda, mandar "Executar" e deve dar a camada "Juntado" com 323 itens
- Agregar os itens da camada "Juntado" usando o menu "Vetor / Ferramentas de geoprocessamento / Agregar...", isto cria a camada "Agregado" com obviamente 1 único elemento (um multi polígono)
- Na camada "Agregado" converter esse multi polígono usando o menu "Vetor / Ferramentas de geometria / Múltiplas partes para partes únicas..." criando a camada "PartesSimplesCinfaes".
NOTA: este algoritmo pega numa camada vetorial com geometrias multi-partes e gera uma nova camada vetorial na qual todas as geometrias contêm uma parte única. Os elementos com geometrias multi-parte são divididos em tantos elementos diferentes quantas as partes que a geometria contém, e são utilizados os mesmos atributos para cada um deles. Neste caso o resultado são 254 itens (polígonos simples).
NOTA importante: ao se tentar gravar numa geopackage essa camada "PartesSimplesCinfaes" irá dar erro devido a ter IDs repetidos ("Erro ao criar elemento ... UNIQUE constraint failed: ..."), quando isso acontecer a solução é voltar a tentar, só que desta vez não gravando o "fid" (isto é, nas opções da camada apagar o nome "fid"), irá aparecer uma mensagem a perguntar se se quer "Substituir ficheiro" / "Substituir camada" / "Anexar à camada", deve-se escolher "Substituir camada" desta forma substituindo a camada que apesar do erro tinha sido criada (apesar de mal) no geopackage. Este erro aparece sempre que ao se criar a camada se fez uma operação que originou linhas com o "fid" duplicado. - Intersetar "PartesSimplesCinfaes" com Nespereira (menu "Vetor / Ferramentas de geoprocessamento / Interseção..."), depois de executar mudar o nome da camada para "USOURB01", deve dar 13 itens (mais uma vez aqui só se consegue gravar esta camada numa geopackage se não se tentar gravar o "fid")
NOTA: este algoritmo interseta 2 camadas e é simétrico, tanto faz intersetar a camada "PartesSimplesCinfaes" com a camada "Nespereira" como fazê-lo na ordem inversa
Resultado da Parte 2a
Arquivo com o resultado da Parte 2a, o projeto e os dados: Cinfaes_Nespereira-20211105.zip (104 MB)
Tempo de execução (quando se tenta repetir pela segunda vez): cerca de FIXME minutos
Vídeo com a resolução do exercício: [FIXME FIXME.wmv] (FIXME minutos e FIXME segundos, FIXME MB)
Parte 2b: Áreas edificadas consolidadas e em consolidação de Nespereira (fim)
- Reabrir o projeto ou usar o arquivo ZIP Cinfaes_Nespereira-20211105.zip com o resultado da Fase 2a.
- Unir áreas de uso urbano com buffer do edificado maior que 30 m2 separado de um máximo de 50 m:
- Adicionar à camada "USOURB01 o campo "area_usourbano" com "$area" (usar o tipo de campo de saída
número decimal (real)
) - Juntar as camadas vetoriais "USOURB01" e "BUFF01" (menu "Vetor / ferramentas de gestão de dados / Juntar camadas vetoriais...") de modo a criar a camada "USOURB02"
- Adicionar à camada "USOURB01 o campo "area_usourbano" com "$area" (usar o tipo de campo de saída
- Agregar (menu "Vetor / Ferramentas de geoprocessamento / Agregar...") os elementos da camada "USOURB02" criando a camada "Agregado_USOURB02" com um único elemento
- Eliminar buracos em "Agregado_USOURB02" com dimensão inferior a 5000 m2 (menu "Processamento / Ferramentas de processamento / Geometria vetorial / Eliminar buracos") criando a camada "Limpo_buracos5000"
- Separar os agregados não unidos da camada "Limpo_buracos5000" usando o algoritmo Múltiplas partes para partes únicas (menu "Vetor / Ferramentas de geometria / Múltiplas partes para partes únicas..."), deve dar 207 elementos, mudar o nome para "BUFF02"
- Na camada "BUFF02" atualizar os campos id e area_m2 ("id=$id" e "area_m2=$area") e apagar os demais atributos
Resultado da Parte 2b
Ficheiros com o resultado:
- [FIXME FIXME] (FIXME, FIXME MB)
Arquivo com o resultado, o projeto e os dados: [FIXME FIXME.zip] (FIXME MB)
Estrutura do arquivo FIXME.zip:
- FIXME
Tempo de execução (quando se tenta repetir pela segunda vez): cerca de FIXME minutos
Vídeo com a resolução do exercício: [FIXME FIXME.wmv] (FIXME minutos e FIXME segundos, FIXME MB)