INFOGEO · Insper
Tema 5 · Unidade teórica 05 · ODS 11

Onde ainda cabe habitação social perto do metrô?

Com raio de 600 metros, 946,19 hectares de ZEIS entram na conta. Com 1000 metros, 2.690,69. O dado é o mesmo nos dois casos. O que muda é um número que alguém escreveu em uma lei.

120 minduração
40 / 45 / 15 / 20teoria / roteiro / exercício / fechamento
São Pauloárea de estudo
GeoSampa · Lei 16.050/2014fontes
Antes de começar

Preparação e dados

Você deveria chegar tendo lido os dois artigos do Plano Diretor de São Paulo que tratam de ZEIS e dos eixos de estruturação. São três páginas. Se não leu, leia agora, enquanto a turma abre o QGIS.

Dados desta aulapacote no Blackboard
Dados de GeoSampa · Prefeitura de São Paulo, pelo serviço WFS do geoportal, e IBGE · Censo 2022, baixados em 02/08/2026 e disponíveis no Blackboard, na pasta da disciplina. O passo 0 do roteiro mostra, camada por camada, como refazer cada download. Fonte original: geoportal.
  • setores_sp_capital_2022.gpkg 27.301 setores censitários do município de São Paulo, polígono, EPSG:4674. Malha oficial do Censo 2022 com distrito, subdistrito, bairro, área e as variáveis v0001 a v0007. Serve de base para os recortes por distrito e para a análise de densidade.
    oficial
  • estacoes_alta_capacidade_sp.gpkg 203 estações em operação, 94 de metrô e 109 de trem metropolitano, ponto, EPSG:31983. Camadas estacao_metro e estacao_trem do GeoSampa, com o campo modo acrescentado na junção.
    oficial
  • zeis_sp.gpkg 2.571 perímetros de ZEIS do Plano Diretor, Mapas 4 e 4A, EPSG:31983. Onze deles têm geometria inválida pelo GEOS — no dado oficial mesmo, e é isso que o passo 3 usa.
    oficial
  • distritos_sp.gpkg 96 distritos do município de São Paulo, polígono, EPSG:31983, com sigla, região e área.
    oficial
  • eixos_estruturacao_sp.gpkg 4.818 polígonos dos Eixos de Estruturação da Transformação Urbana, Mapa 3 do Plano Diretor, EPSG:31983.
    oficial
  • zoneamento_sp_2024.gpkg 10.240 perímetros de zona da Lei 18.177/2024, Mapa 1, EPSG:31983. É o mapa de perímetros da revisão, não o zoneamento consolidado da cidade inteira.
    oficial
Pacote oficial desde 02/08/2026. Tudo em GeoPackage e UTF-8. Atenção ao CRS: os setores do IBGE vêm em EPSG:4674 e as camadas do GeoSampa em EPSG:31983, então reprojete antes de cruzar. O download pela interface do mapa do GeoSampa vem em Shapefile com texto em Latin-1; o WFS já devolve UTF-8. A conversão deste pacote está feita, mas se você baixar de novo pela interface, refaça-a antes de qualquer coisa.
A pergunta do tema

O município quer saber quantos hectares de ZEIS estão perto o suficiente do transporte de alta capacidade para receber habitação social adensada. Você abre o QGIS e a primeira pergunta que precisa responder não é técnica: perto o suficiente é quanto?

Parte 1 · teoria

Sobreposição, proximidade e análise de adequação

40 min

Em 1969, um paisagista escocês radicado na Filadélfia publicou um livro que ensinou o mundo a empilhar mapas. Ian McHarg desenhava cada critério em uma folha de acetato, com as áreas piores em cinza escuro e as melhores em transparente. Depois empilhava as folhas sobre uma mesa de luz e olhava. Onde a luz atravessava, o traçado da estrada podia passar.

O livro é o Design with Nature, e o método ficou conhecido como sobreposição de camadas. Quando os primeiros sistemas de informação geográfica apareceram, a mesa de luz virou álgebra: o acetato virou camada, e o julgamento visual do projetista, uma operação booleana sobre valores numéricos. A ideia sobreviveu inteira nos SIG atuais, incluindo o menu de geoprocessamento que você vai usar hoje.

Duas famílias de resposta saíram daí. A primeira é a peneira: cada critério vira uma condição de sim ou não, as condições são combinadas com um e lógico, e sobra o território que atende a todas. A segunda é a combinação ponderada: cada critério recebe uma nota e um peso, as notas se somam, e o resultado é um ranking de aptidão em vez de uma lista de aprovados.

Cinco painéis lado a lado: três critérios binários sobre uma malha de 144 células, o resultado da combinação por e lógico com 19 células aprovadas, e o resultado da soma ponderada mostrando gradação de aptidão.
Figura 1 Os mesmos três critérios, duas regras de combinação. A peneira aprova 19 células das 144 e nada diz sobre as outras 125. A soma ponderada não aprova ninguém e ordena todo mundo. A escolha entre as duas antecede qualquer conta.
Definição

Análise de adequação

Procedimento que combina várias camadas de critério para identificar onde um uso pretendido pode ou deve ocorrer. O produto é um mapa de aptidão. A parte técnica é a combinação; a parte que decide o resultado é a lista de critérios e os pesos, e nenhuma das duas está nos dados.

Pergunta norteadora

Se você trocar a ordem das camadas na peneira binária, o resultado muda?

Não. O e lógico é comutativo, e a peneira devolve o mesmo território em qualquer ordem. Mas isso vale para a operação, não para o processo. Se você define os pesos depois de olhar o primeiro mapa de aptidão, e ajusta até o resultado bater com o que a prefeitura espera, a conta continua correta e a análise deixa de valer. Nesse caso a ordem importa muito, só que a ordem em questão é a das decisões, não a das camadas.

Clip, interseção, diferença, união e dissolve

Tudo o que se faz em análise vetorial se reduz a poucas operações de geometria. O QGIS as reúne em Vector Geoprocessing Tools, e vale conhecer as diferenças, porque duas delas parecem a mesma coisa e devolvem tabelas de atributos incompatíveis.

Seis painéis com as mesmas três geometrias: dois polígonos A1 e A2 encostados formando A, e um polígono B que os atravessa. Cada painel destaca em vermelho o resultado de buffer, interseção, união, diferença, diferença simétrica e dissolve.
Figura 2 Sempre as mesmas geometrias. O que muda é a regra, e com ela o número de feições de saída, a área total e quais atributos sobrevivem. Repare que a união produz três feições, e não duas.
OperaçãoAlgoritmoO que sai na tabela de atributos
Buffernative:bufferUma feição por entrada, com os mesmos atributos. Se marcar Dissolve result, sai uma feição só, sem atributos úteis.
Interseçãonative:intersectionUma feição por par que se cruza, com os campos das duas camadas lado a lado.
Recortenative:clipGeometria igual à da interseção, mas só com os campos da camada de entrada. A camada de recorte é um molde, não uma fonte de dados.
Diferençanative:differenceO que sobra da entrada fora da sobreposição, com os campos da entrada.
Diferença simétricanative:symmetricaldifferenceAs duas exclusividades. Metade das feições tem os campos de uma camada preenchidos e os da outra nulos.
Dissolvenative:dissolveSem campo escolhido, uma feição multiparte só. Com campo escolhido, uma feição por valor distinto, mantendo o primeiro registro de cada grupo.
A união (native:union) é a sétima, e produz a partição completa: a parte só de A, a parte só de B e a parte comum, em três feições.
Erro comum

Interseção e recorte dão a mesma geometria e por isso muita gente usa qualquer uma das duas. A diferença aparece depois, quando você precisa do atributo que ficou na camada de recorte e ele não está lá. Se você vai precisar de campos das duas camadas, use interseção.

Buffer

Um buffer é a região do plano a menos de uma distância dada de uma feição. É a maneira mais direta de transformar a ideia de proximidade em um polígono que se pode medir. E carrega duas simplificações que ninguém declara.

A primeira é geométrica. O QGIS não desenha um círculo, porque um círculo não é um polígono. Ele desenha um polígono regular que aproxima o círculo, e o número de lados vem do parâmetro Segments, que por padrão vale 5. Cinco segmentos por quadrante dão vinte lados no total. Um icoságono de 600 metros de raio tem 111,2461 hectares; o círculo verdadeiro tem 113,0973. A diferença é de 1,64% para menos, em cada uma das 203 estações.

área do círculo    = π · r²             = 113,0973 ha
área do 20-gono    = 10 · r² · sen 18°  = 111,2461 ha   -- Segments = 5, o padrão do QGIS
área do 64-gono    = 32 · r² · sen 5,625° = 112,9157 ha -- Segments = 16, o que o roteiro usa

Na cadeia inteira desta aula, a diferença entre os dois valores de Segments vale 15,06 hectares de ZEIS, sobre um resultado de 946 hectares. É pouco para mudar a conclusão, mas vem de um parâmetro que quase nunca aparece em relatório. O roteiro fixa Segments = 16 e pede que você registre isso junto com o raio.

A segunda simplificação é conceitual, e é maior. O buffer mede distância em linha reta sobre o plano, e ninguém se desloca assim numa cidade. Entre uma estação e um terreno a 600 metros de distância euclidiana pode haver uma linha férrea sem passagem, um córrego canalizado, um muro de condomínio ou uma avenida de seis faixas. A distância a pé pode ser o dobro. Isso volta no tema 10, quando você vai calcular área de serviço sobre a rede viária e comparar com o círculo desta aula.

Pergunta norteadora

Se o buffer superestima o alcance real da estação, por que a legislação urbanística usa buffer?

Porque a lei precisa de um perímetro que possa ser desenhado, publicado e conferido por qualquer parte interessada. Uma área de serviço calculada sobre rede depende do grafo viário usado, da velocidade adotada e da data do levantamento, e muda quando a rede muda. Um círculo depende de um ponto e de um número. A legislação troca precisão por auditabilidade, e essa troca é defensável desde que esteja declarada.

Junção espacial e agregação por polígono

No tema 3 você juntou tabelas por um campo em comum. A junção espacial faz o mesmo sem campo em comum: o que liga os dois registros é a posição. Cada feição da camada de entrada recebe os atributos das feições da outra camada que satisfazem um predicado geométrico.

Definição

Predicado espacial

Relação topológica entre duas geometrias, avaliada como verdadeira ou falsa. O QGIS oferece intersect, contain, equal, touch, overlap, are within e cross. Dois deles são traiçoeiros: intersect é verdadeiro mesmo quando as feições só encostam pela borda, e touch é falso quando uma está dentro da outra.

Depois do predicado vem a segunda decisão, que é o método. Take attributes of the first matching feature only devolve uma linha por feição de entrada e ignora as demais correspondências. Create separate feature for each matching feature devolve uma linha por par. O primeiro método é rápido e mente quando há mais de uma correspondência, porque a escolha do primeiro depende da ordem de leitura do arquivo.

Agregar por polígono é o passo seguinte: somar, contar ou tirar a média dos valores de todas as feições que caem dentro de cada unidade. É como se produz a tabela final de quase toda análise territorial, e é onde entram os dois problemas da aula 4.

Pergunta norteadora

Você tem a densidade média do distrito, em habitantes por hectare, e quer estimar quanta gente mora dentro de um perímetro de ZEIS. Multiplicar a área da ZEIS pela densidade do distrito resolve?

Resolve no sentido de produzir um número. O número supõe que a população se distribui uniformemente dentro do distrito, o que é falso por construção: uma ZEIS 1 é justamente a porção do distrito onde a densidade é várias vezes a média, e uma ZEIS 3 costuma ser a porção vazia. A estimativa erra nos dois sentidos, e erra mais quanto maior for o distrito. É a falácia ecológica da aula 4 aparecendo dentro de uma operação de rotina.

Geometria inválida

A norma Simple Features, do Open Geospatial Consortium, define o que é um polígono legítimo: o anel externo fecha, não cruza a si mesmo, os buracos ficam dentro do anel externo e não se sobrepõem. Arquivos de portal público violam essas regras o tempo todo, porque foram digitalizados à mão, convertidos entre formatos ou generalizados por um algoritmo que não checou o resultado.

O caso de manual é o laço de gravata: o anel cruza a si mesmo e forma dois lóbulos com orientação oposta. O cálculo de área soma as duas contribuições com sinais contrários e devolve menos do que a soma dos lóbulos; quando eles têm o mesmo tamanho, devolve zero. Esse é o caso que aparece em exemplo de aula, e não é o que você vai encontrar no GeoSampa.

No arquivo de ZEIS deste tema, 11 dos 2.571 perímetros são inválidos pelo GEOS. Todos são ZEIS 1. Sete acusam Self-intersection, dois, Ring self-intersection, e dois, Too few points in geometry component, o aviso de anel degenerado. Some a coluna de área antes e depois de Fix Geometries e o total sai de 18.058,7046 para 18.058,7228 hectares: dezoito milésimos de hectare de diferença, concentrados em um único perímetro, o C091 do Sé, que passa de 0,4776 para 0,4958 ha. Se o seu critério para se preocupar com validade fosse a soma da coluna, você fecharia o arquivo tranquilo.

Três painéis: o laço de gravata de manual com área zero, o histograma da área dos onze perímetros inválidos do arquivo real, e um gráfico comparando o efeito da invalidez sobre a soma de área e sobre o resultado da interseção.
Figura 3 À esquerda, o defeito que os manuais mostram. No meio, os onze defeitos que o GeoSampa realmente entrega, do perímetro de 0,15 hectare ao de 245,64. À direita, os dois efeitos: sobre a soma da coluna de área a invalidez custa 0,0182 hectare, e sobre a interseção com o buffer ela custa uma feição inteira, porque o GEOS não consegue processar duas delas.
Erro comum

Confiar na coluna de área para detectar geometria inválida. Ela não denuncia nada. O que denuncia é a operação de sobreposição: dos onze perímetros defeituosos, dois fazem o GEOS levantar exceção durante a interseção, e o QGIS descarta a feição com um aviso no painel de log que ninguém lê. Neste arquivo o prejuízo é pequeno porque os dois que quebram são pequenos. Poderia ter sido o L086, de 245,64 hectares. Rodar Vector Geometry Tools Check Validity antes de qualquer sobreposição custa dez segundos e é a única forma de saber em qual dos dois casos você está.

O que a cadeia de operações faz com a precisão

A análise desta aula tem cinco etapas: posição da estação, raio, buffer, interseção com a ZEIS, densidade do distrito. Cada uma introduz uma incerteza, e nenhuma delas devolve barra de erro. O QGIS entrega o resultado final com duas casas decimais, e a autoridade dessas duas casas é tipográfica.

Cinco caixas em sequência representando as etapas da análise, cada uma com a fonte de imprecisão e uma barra mostrando o erro acumulado, que vai de 2,5 por cento na primeira etapa a 12,8 por cento na última.
Figura 4 O erro acumulado combina as etapas em quadratura, supondo independência. A etapa que mais pesa é a última, e ela não é geométrica: é a suposição de que a densidade do distrito vale dentro da ZEIS. O resultado de 114.220 habitantes tem um intervalo plausível de trinta mil pessoas.

A regra prática é simples e quase nunca seguida. Reporte o resultado com a precisão que a pior etapa da cadeia sustenta. Se a densidade entra com incerteza de 12%, escrever 114.220 habitantes é fingir uma exatidão de seis algarismos que a conta não tem. Escreva 114 mil, e diga por quê.

A cadeia também põe os defeitos em escala. A geometria inválida do passo 3 custa 0,15 hectare do resultado; o parâmetro Segments, 15; a troca do raio de 600 para 1000 metros, 1.744. O único desses erros que aparece em um aviso do software é o menor dos três.

O raio que vem da lei, e não dos dados

O Plano Diretor Estratégico de São Paulo, a Lei municipal 16.050 de 2014, organiza o adensamento da cidade em torno dos Eixos de Estruturação da Transformação Urbana. A lógica é explícita: onde há transporte coletivo de alta capacidade, permite-se construir mais, exige-se menos vaga de garagem e admite-se habitação de interesse social com parâmetros próprios. Onde não há, não.

Para que isso vire regra aplicável, a lei precisa dizer onde o eixo começa e onde termina. E aí aparece a distância: uma faixa a partir do eixo do corredor e um raio a partir do centro da estação. Os números constam do texto legal e dos mapas anexos, foram redesenhados na revisão intermediária de 2023 e são objeto de disputa em audiência pública desde a primeira minuta.

Nenhum desses números foi medido. Não existe experimento que mostre que a 600 metros a pessoa usa o metrô e a 620 não. Existe uma literatura de planejamento que trabalha com a faixa de 400 a 800 metros como distância caminhável, existem estudos de embarque por faixa de distância, e existe uma negociação política sobre quanto território o mercado imobiliário pode adensar. O valor final do raio sai dessa negociação, e cada metro a mais ou a menos redistribui potencial construtivo entre proprietários.

Três mapas do município de São Paulo com as mesmas estações e os mesmos perímetros de ZEIS, e o raio variando entre 400, 600 e 1000 metros. A área de ZEIS capturada passa de 377,57 para 946,19 e depois para 2.690,69 hectares.
Figura 5 A camada de ZEIS é idêntica nos três painéis, e a de estações também. Passar de 400 para 1000 metros multiplica por sete o território elegível, de 377,57 para 2.690,69 hectares. Um advogado que consiga ampliar o raio em 400 metros ganha mais terreno do que qualquer levantamento de campo produziria.
RaioZEIS dentro (ha)Do estoquePopulação estimadaLeitura
400 m377,572,09%45.401Distância caminhável estrita, cinco minutos
600 m946,195,24%114.220Faixa usada no desenho dos eixos
1000 m2.690,6914,90%320.931Doze a quinze minutos a pé, no plano
Medidos sobre o pacote desta aula em EPSG:31983, com Segments = 16, contra um estoque total de 18.058,72 hectares de ZEIS. Reproduza-os exatamente no roteiro.

Repare na terceira coluna antes de qualquer indignação. Mesmo com mil metros de raio, 85% do estoque de ZEIS da cidade continua fora do alcance do transporte de alta capacidade. O parâmetro decide quanto do estoque entra na política, e nenhum valor plausível dele faz o estoque caber perto do trilho.

Pergunta norteadora

Quem deveria ter a palavra final sobre esse número: o urbanista, o legislador ou o analista que roda o buffer?

O analista é o único dos três que não deveria decidir, e é justamente quem decide na prática, porque o valor entra na caixa de diálogo e ninguém pergunta de onde veio. A resposta profissional é registrar o parâmetro como premissa declarada, apresentar o resultado para mais de um valor, e deixar a escolha visível para quem tem mandato para fazê-la. As duas formações da turma se encontram neste ponto: o aluno de Direito descobre que um artigo de lei define um desenho no mapa, e o de Engenharia descobre que o desenho que ele calcula distribui valor imobiliário entre proprietários.

Escopo de prova · unidade teórica 05

Dada uma pergunta territorial, a prova pode pedir que você monte a cadeia de operações de sobreposição que a responde, na ordem correta, e que identifique qual parâmetro do procedimento é normativo e não técnico, dizendo quem tem competência para fixá-lo.

Parte 2 · roteiro

Quanta ZEIS cabe dentro do raio

45 min

Todos os números abaixo saem dos arquivos do pacote. Se o seu QGIS mostrar outro valor, algum passo saiu diferente, e vale voltar antes de seguir.

0

Baixar as camadas direto do GeoSampa

Os arquivos do pacote já vêm prontos. Este passo é para você saber de onde eles saíram e conseguir refazer o download sozinho, com a camada atualizada, sem depender do pacote. São dois caminhos: o serviço WFS, que é o que foi usado aqui, e a interface do mapa, para quando o WFS estiver fora do ar.

Caminho A · pelo WFS, que é um endereço de internet e devolve o arquivo direto

  1. Abra o navegador e cole o endereço abaixo, trocando NOME_DA_CAMADA pelo nome da camada que você quer. Ele devolve um Shapefile compactado, em EPSG:31983, com o texto em UTF-8.
https://wms.geosampa.prefeitura.sp.gov.br/geoserver/geoportal/wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=NOME_DA_CAMADA&outputFormat=SHAPE-ZIP
  1. Use estes nomes de camada, um por download, e salve cada zip em InfoGeo/tema05_sobreposicao/dados_brutos/:
    • geoportal:pde2014_v_zeis_04_map — ZEIS 1, Mapa 4 do Plano Diretor
    • geoportal:pde2014_v_zeis_04a_map — ZEIS 2, 3, 4 e 5, Mapa 4A
    • geoportal:estacao_metro — estações de metrô em operação
    • geoportal:estacao_trem — estações de trem metropolitano, CPTM
    • geoportal:distrito_municipal — os 96 distritos do município
    • geoportal:pde2014_v_eetr_03_map — Eixos de Estruturação da Transformação Urbana, Mapa 3
    • geoportal:perimetro_zona_lei_18177_24 — perímetros de zona da Lei 18.177/2024, Mapa 1
  2. Descompacte cada zip. Arraste o .shp para dentro do QGIS.
  3. Junte as duas camadas de ZEIS em uma só com Vector Data Management Tools Merge Vector Layers, e junte metrô e trem do mesmo jeito, acrescentando antes um campo modo em cada uma.
  4. Exporte cada resultado com Export Save Features As, formato GeoPackage, Encoding em UTF-8, CRS EPSG:31983, dentro de dados_tratados/.

Caminho B · pela interface do mapa, quando o WFS não responder

  1. Abra geosampa.prefeitura.sp.gov.br e entre em Mapa Digital da Cidade de São Paulo.
  2. Na barra de ferramentas da esquerda, clique no ícone de disquete, Download de Camadas. Abre uma janela nova; se o navegador bloquear pop-up, libere para este site.
  3. Na janela, escolha a Categoria e depois a Camada:
    • Categoria Legislação Urbana, camada ZEIS 1 (4) e camada ZEIS 2-3-4-5 (4A)
    • Categoria Transporte, camada Metrô - Estação e camada Trem Metropolitano - Estação
    • Categoria Limites Administrativos, camada Distrito Municipal
    • Categoria Legislação Urbana, camada Eixos de Estruturação da Transformação Urbana (3) e camada Perímetro de Zonas (Lei 18.177/24)
  4. Em Formato, escolha Shapefile. Em Sistema de coordenadas, deixe SIRGAS 2000 / UTM 23S, que é o EPSG:31983.
  5. Clique Baixar e salve em InfoGeo/tema05_sobreposicao/dados_brutos/, com o nome que o portal sugerir.
  6. O Shapefile do portal vem com o texto em Latin-1. Antes de exportar, abra Properties, aba Source, e troque Data source encoding para ISO-8859-1. Só então exporte para GeoPackage em UTF-8, como no caminho A.
Erro comum

Se você exportar para GeoPackage sem corrigir a codificação, Paraisópolis fica gravado com caracteres quebrados em definitivo. Confira sempre um nome com acento na tabela de atributos antes de salvar.

Os setores censitários não vêm do GeoSampa

O arquivo setores_sp_capital_2022.gpkg é o único do pacote que vem do IBGE, e você precisa dele no passo 8. Baixe a malha de setores do Censo 2022 pelo portal de geociências, filtre por CD_MUN = '3550308' e junte os agregados por setor pela chave CD_SETOR. Ele chega em EPSG:4674, não em 31983: reprojete antes de cruzar com qualquer coisa desta aula.

1

Criar o projeto e carregar as três camadas

  1. Abra o QGIS e vá em Project New. Salve como InfoGeo/tema05_sobreposicao/projeto.qgz.
  2. Arraste estacoes_alta_capacidade_sp.gpkg, zeis_sp.gpkg e distritos_sp.gpkg para dentro da janela.
  3. No painel Browser, em XYZ Tiles, dê duplo clique na conexão OpenStreetMap que você cadastrou no tema 1 e arraste a camada para o fundo da pilha. Se a conexão não aparecer, refaça o passo 5 do Encontro 1.
  4. Clique com o botão direito em zeis e escolha Zoom to Layer.
  5. Deixe a ordem assim, de cima para baixo: estações, ZEIS, distritos, mapa base.
Confira

Você deve estar olhando para o município inteiro, de Perus a Parelheiros. As estações desenham treze linhas de metrô e de trem, reconhecíveis pelo traçado. Os perímetros de ZEIS aparecem por toda a mancha urbana, miúdos e numerosos na periferia leste e sul, e concentrados em blocos grandes em Heliópolis, em Paraisópolis e ao longo do Tietê.

captura de tela · janela do QGIS com as três camadas carregadas sobre o OpenStreetMap, painel Layers visível à esquerda
2

Conferir o sistema de coordenadas e as contagens

Antes de medir qualquer coisa, sempre as mesmas duas perguntas: em que sistema está e quantas feições tem.

  1. Botão direito em cada camada, Properties, aba Information. As três devem estar em EPSG:31983 — SIRGAS 2000 / UTM zone 23S, com unidade em metros.
  2. Confirme no canto inferior direito que o CRS do projeto também é EPSG:31983. Se estiver em outro, clique ali e troque.
  3. Vá em Project Properties General e ponha o elipsoide em GRS 1980, as unidades de área em Hectares e as de distância em Meters.
  4. Abra a tabela de atributos de cada camada com F6 e anote o número de linhas.
Confira

203 estações, 2.571 perímetros de ZEIS, 96 distritos. Nas estações, os acentos devem aparecer corretos em , BRÁS, SANTA CECÍLIA e GUILHERMINA-ESPERANÇA. Nas ZEIS, confira o campo zona: são cinco valores, de ZEIS-1 a ZEIS-5, e a ZEIS 1 sozinha responde por 1.401 dos 2.571 perímetros.

O que muda quando o dado vem do GeoSampa

Os arquivos da interface do portal são Shapefile com texto em Latin-1. Ao carregar no QGIS sem declarar a codificação, o ó de Paraisópolis vira um caractere quebrado. A correção é abrir Properties, aba Source, e trocar Data source encoding para ISO-8859-1 antes de exportar para GeoPackage em UTF-8. Se você exportar sem corrigir, grava o defeito em definitivo.

3

Achar as geometrias inválidas e corrigir

  1. Com zeis selecionada, abra o Field Calculator e crie o campo area_ha, decimal com precisão 4, com a expressão abaixo.
area($geometry) / 10000   -- a camada já está em metros, então isto é seguro
  1. Salve as edições. Abra o painel View Panels Statistics, escolha a camada zeis e o campo area_ha. Anote a soma.
  2. Rode Vector Geometry Tools Check Validity sobre zeis, com Method em GEOS. Olhe a camada Invalid output e o campo _errors.
  3. Rode Vector Geometry Tools Fix Geometries sobre zeis. Salve o resultado como zeis_ok.gpkg.
  4. Recalcule area_ha na camada corrigida e leia a soma de novo.
Confira

Check Validity devolve 2.560 feições válidas e 11 inválidas. Sete trazem Self-intersection, duas, Ring self-intersection, e duas, Too few points in geometry component. Todas são ZEIS 1, e vão do perímetro C089, de 0,1533 hectare, ao L086, de 245,6351. A soma de área antes da correção é 18.058,7046 hectares e depois é 18.058,7228. A correção mexeu em 0,0182 hectare, em um perímetro só.

captura de tela · saída do Check Validity, com os onze pontos de erro em vermelho sobre os perímetros defeituosos
Por que isso vem primeiro, mesmo com a soma quase igual

A área quase não mudou e mesmo assim o passo é obrigatório, porque o estrago da geometria inválida não está na soma: está na sobreposição. Rode o passo 6 com zeis em vez de zeis_ok e o GEOS levanta exceção em dois perímetros, o C089 e o C091. O QGIS descarta os dois e registra o aviso no Log Messages; a saída vem com 450 feições e 946,0337 hectares em vez de 451 e 946,1870. São 0,1533 hectare de diferença porque os dois que quebraram são minúsculos. Se tivesse sido o L086, seriam duas ordens de grandeza a mais, e nada na tela avisaria.

4

Buffer de 600 metros nas estações

  1. Abra Processing Toolbox e procure por native:buffer, que aparece como Buffer.
  2. Preencha conforme abaixo.
Buffer
Input layer
estacoes_alta_capacidade
Distance
600 meters
Segments
16 (o padrão é 5; troque)
End cap style
Round
Join style
Round
Dissolve result
desmarcado
Buffered
dados_tratados/buffer600.gpkg
  1. Na camada resultante, crie area_ha com a mesma expressão do passo 3 e leia a soma no painel Statistics.
Confira

203 polígonos, soma de 22.921,8964 hectares. Cada um tem 112,9157 hectares, contra 113,0973 do círculo verdadeiro. Se você tivesse deixado Segments em 5, cada buffer teria 111,2461 hectares e a soma cairia para 22.582,9619, uma diferença de 338,93 hectares que ninguém percebe olhando o mapa.

5

Dissolver os buffers, e entender por quê

Estações vizinhas têm buffers que se sobrepõem. Se você usar a camada como está, cada pedaço de sobreposição entra duas vezes na conta.

  1. Rode native:dissolve, que aparece como Dissolve.
  2. Em Input layer, escolha buffer600. Deixe Dissolve field(s) vazio.
  3. Salve como dados_tratados/buffer600_dissolvido.gpkg.
  4. Calcule area_ha na camada nova.
Confira

Uma feição multiparte com 104 partes, somando 18.540,6005 hectares. A diferença para os 22.921,8964 do passo anterior é de 4.381,2958 hectares, ou 19,11% do total. Essa é a área que estava sendo contada duas vezes. Repare também nas 104 partes: 203 estações produzem apenas 104 manchas separadas, porque 124 delas têm outra estação a menos de 1.200 metros. A mediana da distância entre uma estação e a vizinha mais próxima é de 1.028 metros.

captura de tela · os 203 buffers antes e as 104 manchas depois do dissolve, lado a lado
6

Cruzar com as ZEIS

  1. Rode native:intersection, que aparece como Intersection.
Intersection
Input layer
zeis_ok
Overlay layer
buffer600_dissolvido
Input fields to keep
todos
Overlay fields to keep
nenhum
Intersection
dados_tratados/zeis_600.gpkg
  1. Calcule area_ha na camada de saída e leia a soma.
  2. Agora repita a interseção usando buffer600, o que não foi dissolvido, e compare.
Confira

Com o buffer dissolvido: 451 feições e 946,1870 hectares, que são 5,24% do estoque de 18.058,72. Sem dissolver: 731 feições e 1.231,2753 hectares. A versão errada infla o resultado em 285,0883 hectares, 30,13% a mais, e não há nada na tela que denuncie.

O que aconteceu

A dupla contagem não aparece no mapa

Os 731 fragmentos da versão sem dissolve se sobrepõem entre si. Desenhados na tela, formam exatamente a mesma mancha vermelha dos 451. A soma da coluna é que muda, porque a mesma quadra entra uma vez por estação que a alcança, e no centro há quadra alcançada por quatro. O erro cresce com o raio: em 400 metros ele é de 18,81%, em 600 metros de 30,13% e em 1000 metros de 50,21%.

7

A diferença: o que ficou de fora

A pergunta da prefeitura tem duas metades. Quanta ZEIS está servida, e quanta não está.

  1. Rode native:difference, que aparece como Difference.
  2. Input layer: zeis_ok. Overlay layer: buffer600_dissolvido.
  3. Salve como zeis_fora600.gpkg e calcule area_ha.
Confira

2.325 feições e 17.112,5358 hectares. Some com os 946,1870 do passo anterior: dá 18.058,7228, que é exatamente o total do arquivo corrigido. Se a soma não fechar, alguma coisa se perdeu na cadeia.

Um resultado que vale mais que o outro

Reparta o total por tipo de ZEIS e a leitura muda de assunto.

TipoEstoque (ha)Dentro de 600 m (ha)Dentro
ZEIS 1 · favelas e loteamentos irregulares14.473,04493,333,41%
ZEIS 2 · glebas vazias na periferia1.625,7776,214,69%
ZEIS 3 · imóveis subutilizados na área consolidada836,79257,0230,72%
ZEIS 4 · terrenos em área de proteção a manancial446,9322,995,14%
ZEIS 5 · lotes para promoção privada de HIS676,2096,6414,29%

As ZEIS 3, que são o imóvel subutilizado na área já servida, têm 30,72% do seu estoque dentro do raio. As ZEIS 1, que são onde a população mal alojada de fato mora, têm 3,41%. E o estoque de ZEIS 3 é dezessete vezes menor que o de ZEIS 1. O terreno bem servido de transporte é escasso, a população mal alojada está concentrada longe do trilho, e os dois conjuntos quase não se sobrepõem no mapa.

8

Junção espacial e estimativa de população

O arquivo de distritos do GeoSampa não traz densidade. Você vai produzi-la a partir dos setores censitários do IBGE, e o caminho é o do tema 3: junção por atributo, depois agregação.

  1. Arraste setores_sp_capital_2022.gpkg para o projeto. São 27.301 setores, em EPSG:4674. A variável v0001 é a população residente.
  2. Os dois últimos dígitos de CD_DIST são o código do distrito na malha do GeoSampa. Na camada de setores, crie o campo cd_dist, inteiro, com a expressão abaixo.
to_int(right("CD_DIST", 2))   -- 355030801 vira 1, que é o cd_distrito de Água Rasa
  1. Rode native:aggregate, que está em Processing Toolbox Vector geometry Aggregate, sobre os setores: em Group by expression use "cd_dist" e agregue v0001 por sum, com o nome pop.
  2. Rode native:joinattributestable para levar pop para a camada distritos, casando cd_distrito com cd_dist. Confirme que os 96 distritos receberam valor e que a soma de pop11.451.999, a população do município no Censo 2022.
  3. Na camada de distritos, crie dens_hab_ha, decimal com precisão 4:
"pop" / (area($geometry) / 10000)   -- habitantes por hectare
  1. Agora cruze as duas camadas com native:intersection: Input layer é zeis_600, Overlay layer é distritos, e em Overlay fields to keep deixe distrito e dens_hab_ha. A interseção parte os fragmentos que cruzam divisa de distrito, o que a junção por localização não faria.
  2. Recalcule area_ha na saída e crie o campo pop_pot, decimal com precisão 1:
"area_ha" * "dens_hab_ha"   -- hectares vezes habitantes por hectare
  1. Leia a soma de pop_pot no painel Statistics.
  2. Para a tabela por distrito, rode native:dissolve sobre essa camada usando Dissolve field(s) = distrito, e recalcule area_ha na saída. Como o dissolve funde geometria, a área continua correta.
Confira

Soma de pop_pot: 114.220 habitantes. O dissolve por distrito devolve 58 feições, ou seja, 58 dos 96 distritos têm ZEIS dentro do raio de 600 metros. A soma de area_ha depois da interseção com os distritos dá 946,1569, e não 946,1870: os 0,03 hectare que sumiram são lascas de perímetro que caem fora da malha de distritos, sobre a divisa do município.

DistritoZEIS em 600 m (ha)Densidade (hab/ha)População estimada
Sapopemba119,01195,6823.288
Brás72,15106,777.703
Jardim Helena70,50139,899.862
Grajaú67,5541,432.798
Jaraguá48,9275,283.682
Cidade Dutra38,7865,252.530
José Bonifácio37,8588,043.332
Ermelino Matarazzo36,86119,924.421
Campo Limpo29,03187,515.443
24,57108,652.669
Mooca22,72101,762.312
Pirituba22,32104,402.331
Bom Retiro19,3679,711.543
Itaquera19,05143,282.729
Santa Cecília17,97215,403.871
Os quinze primeiros dos 58 distritos alcançados. Grajaú tem o quarto maior estoque de terreno e a menor densidade da lista, um quinto da de Sapopemba. Santa Cecília tem um quarto do terreno de Grajaú e mais população estimada. As duas informações respondem a perguntas diferentes.
Repare em quem lidera a tabela

Sapopemba, Jardim Helena, Itaquera, Ermelino Matarazzo. A lista dos distritos com mais ZEIS perto de estação é uma lista de periferia leste, não de centro. Isso é efeito da linha 3-vermelha e dos ramais da CPTM, que atravessam justamente a área onde está o estoque de ZEIS 1. O Brás e a Sé aparecem, e aparecem com um sexto do terreno de Sapopemba.

captura de tela · tabela de atributos da camada final com as colunas area_ha, distrito, dens_hab_ha e pop_pot
9

A tabela dos três raios

Agora refaça a cadeia inteira com 400 metros. São quatro passos, e você já sabe todos.

  1. native:buffer com Distance = 400, Segments = 16.
  2. native:dissolve sem campo.
  3. native:intersection com zeis_ok.
  4. area_ha e soma no painel Statistics.
Confira

224 feições e 377,5714 hectares, 2,09% do estoque. O buffer dissolvido cai de 18.540,60 para 8.790,91 hectares, e o número de manchas separadas sobe de 104 para 150. Passar de 400 para 600 metros multiplica por 2,5 a área de ZEIS capturada, enquanto a área do buffer só dobra: o ganho é mais que proporcional porque as estações do centro e do leste estão cercadas de ZEIS que os primeiros 400 metros não alcançavam.

A conclusão do roteiro

Os nove passos são reprodutíveis; os parâmetros são escolhas

Qualquer pessoa com o mesmo pacote de dados chega em 946,1870 hectares seguindo estes nove passos, e é isso que faz o método valer alguma coisa. Mas 946,19 só existe porque alguém escolheu 600 metros, e a quarta casa decimal só existe porque alguém escolheu 16 segmentos. Um relatório que apresente o número sem os dois parâmetros impede o leitor de refazer ou contestar a conta, que é justamente o que o método deveria permitir.

Parte 3

Exercício

15 min
Faça sozinho15 minutos · sem consultar o colega

Refaça a cadeia dos passos 4 a 8 com raio de 1000 metros, sobre a mesma camada zeis_ok.

  1. Anote a área total de ZEIS dentro do raio, em hectares, e quantos hectares entraram a mais em relação aos 946,19 de 600 metros.
  2. Anote a população potencial e quantos distritos passaram a ter ZEIS dentro do raio.
  3. Escreva a diferença também em porcentagem do estoque total de ZEIS.

Agora a parte que vale mais que a conta. Escreva dois parágrafos de cinco linhas cada:

  1. Você é o advogado de uma incorporadora que quer ampliar o perímetro dos eixos para 1000 metros. Faça o melhor argumento possível a favor, usando os números que você acabou de produzir. Não invente dado.
  2. Você é o procurador do município e precisa responder. Faça o melhor argumento possível contra, usando os mesmos números.

Os dois parágrafos precisam citar pelo menos um valor que você mediu, e nenhum dos dois pode acusar o outro de estar errado na aritmética, porque nenhum estará.

Entrega Uma captura de tela do painel Statistics com a soma da área para 1000 metros, mais os dois parágrafos. Poste no fórum do tema no Blackboard antes do fim da aula.
Para o professor conferir com a turma

Com 1000 metros e Segments = 16 saem 814 feições e 2.690,6938 hectares, 14,90% do estoque, em 68 distritos, com 320.931 habitantes estimados. São 1.744,51 hectares a mais que em 600 metros, um aumento de 184%. O buffer dissolvido vai a 41.885,68 hectares em apenas 43 manchas, contra 63.671,93 antes de dissolver. Quem esquecer o dissolve nesse raio lê 4.041,65 hectares de ZEIS em vez de 2.690,69, um exagero de 1.350,96 hectares, ou 50,21%. Vale mostrar também que a proporção de ZEIS 3 alcançada passa de 30,72% para 58,61%, enquanto a de ZEIS 1 vai de 3,41% para 11,63%. O argumento da incorporadora tem base real na primeira linha; o do procurador está na segunda.

Parte 4

Fechamento

20 min
A resposta do tema

Cabem 946,19 hectares de ZEIS a menos de 600 metros de uma estação, com 114 mil moradores estimados. Com 1000 metros, cabem 2.690,69.

Os dois números são corretos e respondem à mesma pergunta com premissas diferentes. Os dois também são pequenos: mesmo o maior deles é 15% do estoque de ZEIS da cidade. A pergunta que sobra é de quem é a competência para fixar a premissa, e a resposta não está no QGIS. Quando você entrega o resultado, entregue o parâmetro junto, do mesmo jeito que no tema 2 você passou a entregar o CRS.

O que discutir com a turma

Três perguntas para os últimos minutos, com a resposta em aberto.

Discussão

Só 3,41% da área de ZEIS 1 está dentro do raio de 600 metros, contra 30,72% das ZEIS 3. O que uma política habitacional faz com essa assimetria?

Há pelo menos duas saídas, e elas custam coisas diferentes. Uma é levar gente para onde já há transporte, o que significa produzir moradia nas ZEIS 3 centrais e enfrentar o preço da terra. A outra é levar transporte para onde já há gente, o que significa obra de bilhões e prazo de década. A escolha entre as duas costuma ser apresentada como problema técnico e é orçamentária.

Discussão

Um parâmetro que muda o resultado em 184% deveria estar em lei ordinária, em decreto ou em norma técnica?

Quanto mais fácil de mudar, mais rápido o planejamento se adapta e mais exposto fica à captura por quem tem interesse direto no perímetro. Quanto mais difícil, mais estável e mais defasado. Vale perguntar à turma de Direito o que acontece quando um número desse peso migra de anexo de lei para portaria de secretaria.

Discussão

Se o buffer superestima o alcance real da estação, o resultado desta aula é otimista ou pessimista em relação ao acesso de fato?

O que esta aula não resolveu
  • A distância foi medida em linha reta sobre o plano. Um terreno separado da estação pela linha férrea entra na conta como se estivesse ao lado. A tema 10 refaz esse cálculo sobre a rede viária e mostra quanto do perímetro desaparece.
  • A população foi estimada aplicando a densidade do distrito inteiro sobre a área da ZEIS. É a hipótese mais frágil de toda a cadeia, e é a que mais pesa no erro final.
  • Não se discutiu capacidade da estação. Um terreno a 300 metros de uma estação que já opera acima da capacidade projetada conta como servido nesta análise, e na prática não está.
  • Todo perímetro de ZEIS foi tratado como igualmente disponível. Na prática há imóvel ocupado, litígio possessório, tombamento e contaminação de solo, e nada disso está na geometria.
  • As ZEIS usadas são as do Plano Diretor de 2014, com a revisão de 2023, e o zoneamento vigente é o da Lei 18.177/2024, que está no pacote e não foi cruzado com nada. Um perímetro de ZEIS que hoje esteja dentro de uma ZEU pode ter parâmetros construtivos diferentes dos que a conta desta aula supõe.
  • Só entraram estações em operação. As 203 do arquivo excluem obra em andamento, e a linha 6-laranja muda esse mapa quando abrir.
Leituras

Para depois da aula

Preparação
Luc Anselin, nota introdutória sobre autocorrelação espacial e a primeira lei de Tobler. Leitura dirigida de 15 minutos · antes do tema 6
Referência
Ian McHarg, Design with Nature, capítulo sobre o traçado da Richmond Parkway em Staten Island. 1969 · o método de sobreposição antes de existir computador
Oficial
São Paulo, Lei municipal 16.050/2014, seção sobre os Eixos de Estruturação da Transformação Urbana e capítulo sobre Zonas Especiais de Interesse Social. gestaourbana.prefeitura.sp.gov.br · leia os artigos, não o resumo
Aplicado
Manual do GeoSampa: como as camadas de zoneamento e ZEIS são organizadas, atualizadas e versionadas. geosampa.prefeitura.sp.gov.br · confira a data da camada antes de citar
Crítica
Ermínia Maricato, sobre o descompasso entre a lei urbanística e a cidade produzida fora dela. para a discussão sobre ZEIS 1 e ZEIS 3 do fechamento