Scene Viewer<\/A> <\/P>
<\/P>
<\/P>
Extração semi-automática de footprints de edifícios a partir de imagens<\/SPAN><\/P> <\/SPAN>
<\/SPAN><\/P>Anexo está a ferramenta para ArcGIS Pro 1.3 para Extrair Edifícios a partir de Imagens. Você precisará do 3D Analyst e Spatial Analyst para esta ferramenta. Ela usa imagens segmentadas com a ferramenta Segment Mean Shift e convertidas em vetores. Você então seleciona os vetores, executa a ferramenta. Ela usa um modelo para converter em edifícios corrigidos a partir dos vetores raster brutos e anexar a uma feature class. Abaixo está um exemplo de vetores de segmentação selecionados e depois processados pela ferramenta para obter footprints de edifícios. Sugiro selecionar múltiplos edifícios e então executar a ferramenta. A ferramenta está anexada no final como ExtractBuildingsFromImageryPro1_3v4.zip. Após descompactar os dados, certifique-se de usar definir projeção na featureclass de edifícios no output.gdb para coincidir com a projeção da sua imagem.<\/P><\/P><\/P>Houve um problema com os caminhos que não estavam sendo interpretados corretamente. Acredito que isso agora esteja corrigido pois o workspace está definido como in_memory. Se você receber um erro de caminho não encontrado, abra o modelo e altere os caminhos no modelo para C:\Users\student\Documents\ArcGIS\Projects\ImageryExtraction\ImageryExtraction.gdb\seg<\/SPAN> para in_memory\seg. Você terá que fazer isso para todos os arquivos temporários no modelo. Obrigado àqueles que reportaram este erro.<\/P><\/P>
<\/P>Baixe a ferramenta do meu blog.<\/LI>Descompacte a ferramenta.<\/LI>Obtenha imagens de alta resolução da área da qual deseja extrair edifícios (6 polegadas é o ideal).<\/LI>Abra o ArcGIS Pro (1.3 ou superior) Mapa<\/LI>Adicione sua imagem ao Mapa<\/LI>Na aba Inserir, use Adicionar Caixa de Ferramentas para adicionar a caixa de ferramentas ExtractBuildingsFromImageryPro1_3.tbx.<\/LI>Execute a ferramenta Imagery Segmentation to Vector contra sua imagem. Isso leva tempo (5 minutos para um arquivo de 349mg). Se for banda quádrupla, insira 4 2 1 nos Índices das Bandas.
<\/LI>Altere a simbologia da saída para vermelho e coloque sobre a imagem segment mean shift. Deve ficar assim:
<\/LI>Desative a imagem de Segmentação e com a imagem original por baixo, selecione polígonos das casas que deseja converter em polígonos de edifícios. 
Na primeira vez, execute Definir Projeção na featureclass dos edifícios para coincidir com sua imagem.
Abra a ferramenta Segmentation Vectors to feature e execute após configurar seus parâmetros.
Inspecione seus resultados :
< /OL> < P > < / P > < P > < / P > < P style = "text-align :center ;">Ferramenta Regularize Building Footprint - Limpeza das feições extraídas brutas extraídas do lidar ou imagens.< /SPAN >< / P > < P > < / P > < P >Edifícios extraídos brutos do Lidar e Raster precisam ser limpos e a ferramenta Regularize Building Footprint faz um bom trabalho, mas é difícil saber o que inserir nos parâmetros da ferramenta. e tenho trabalhado em modelos para isso e agora tenho< /SPAN > cadastrado um modelo para executar a ferramenta Regularize Building Footprint contra edifícios extraídos por raster chamado Clean Extracted Buildings Using Regularize Building Footprint Tool. < /SPAN >< / P > < P > < / P > < P >O Clean Extracted Buildings Using Regularize Building Footprint Tool requer ArcGIS ArcMap 10.4 com ArcGIS for Desktop Advanced e requer a extensão 3D Analyst.  Esta é a primeira versão lançada derivada dos processos abaixo.  A entrada para esta ferramenta pode ser edifício rasterizado auto extraído de imagens/mapas digitais/mapa escaneado em cópia física.  Eu usei processos similares para extrair os edifícios dos mapas OS, rasters lidar gerados e até imagens classificadas para edifícios.  Isso vai além da ferramenta acima na limpeza das feições usando o Regularize Building Ferramenta Footprint. <\/SPAN><\/P><\/P>Hora de executar ambas as operações (Aviso: A ferramenta usará a maior parte do poder computacional do seu sistema):<\/SPAN><\/P><\/P>Intel Core i7 - 4600 CPU @ 2.10 GHz 2.70 GHz U com 8GB de memória (64bit) - 25 minutos para 10.000 features<\/SPAN><\/P>Intel Xeon CPU E5 -1620 0 @ 3.60GHz 3.60GHz com 32GB de memória (64bit) - 8 minutos para 10.000 features<\/SPAN><\/P><\/P>Abaixo em branco estão os prédios extraídos originais do lidar bruto e Aqua Green são os CircleBuildings extraídos. O Vermelho são os prédios resultantes. Os prédios sob os circlebuildings precisarão ser deletados<\/SPAN><\/P>
<\/P>
<\/P>1. Para usar esta ferramenta, primeiro execute um Dissolve nas suas features com multipart desligado.<\/SPAN><\/P>
<\/P><\/P>2. Baixe e descompacte o arquivo anexo Clean Extracted Buildings Using Regularize Building Footprint Tool.zip<\/P>Execute a ferramenta "1. Regularize Building Footprints For Circle (Feet Projection)" primeiro. <\/P><\/P>3. Execute a ferramenta "2. Regularize Building Footprints All Non-Circle (Feet Projection)" em seguida.<\/P><\/P>4. Revise sua saída CircleBuildings primeiro, não deve haver muitos e você precisa verificar se eles são realmente<\/P>círculos. Se não, delete. Isso deve coletar tanques, prédios redondos, gazebos, etc. Se um prédio não for completamente redondo,<\/P>mas for como um hexágono ou algo semelhante, tente usar o botão generalizar na edição com um valor de 1, 2 ou 3 para deixar os lados<\/P>retos como um hexágono ou octógono. Adicione estruturas circulares adicionais que você vir, frequentemente elas estão próximas umas das outras.   ; Salve quando<\/P>terminar.<\/P><\/P>5 . Adicione sua featureclass Buildings e selecione por localização aqueles cujo centróide está nos CircleBuildlings, depois delete.<\ / P >< P style = " margin : text-align:left;text-indent:-1 .5 in ;"><\ / P >< P style = " margin : text-align:left;text-indent:-1 .5 in ;">6 . Revise seus prédios.   ; Se você tiver problemas gerais de extração, por favor verifique o tipo de prédio.   ; Entre na ferramenta "2.<\ / P >< P style = " margin : text-align:left;text-indent:-1 .5 in ;">Regularize Building Footprints All Non-Circle (Feet Projection)" e ajuste essas configurações usando a ajuda da ferramenta Regularize Building Footprint.<\ / P >< P style = " margin : text-align:left;text-indent:-1 .5 in ;"><\ / P >< P style = " margin : text-align:left;text-indent:-1 .5 in ;">Incluído alguns dados de amostra e a saída antes de ser revisada manualmente.   ; Você pode ver alguns degraus nas features aparecem.   ; Isso ocorre porque a ferramenta está configurada apenas para lidar com Ângulos Retos e Diagonais para tipos de prédios Grandes e Médios (Veja o campo chamado Type).   ; O campo TotalProcess na featureclass Buildings mostra os processos usados.   ; Exemplo: minor-fareast; mso-font-kerning: 12.0pt; language: en-US; mso-style-textfill-type: solid; mso-style-textfill-fill-color: white; mso-style-textfill-fill-alpha: 100.0%;">Tolerância 1.6 com os vetores brutos usando uma consulta de definição de Shape_Area <= 220 E Shape_Area > 175<\/SPAN><\/P>Tolerância 1.8 com os vetores brutos usando uma consulta de definição de Shape_Area <= 240 E Shape_Area > 220<\/SPAN><\/P>Tolerância 2 com os vetores brutos usando uma consulta de definição de Shape_Area <= 1400 E Shape_Area > 240<\/SPAN><\/P>Tolerância 4 com os vetores brutos usando uma consulta de definição de Shape_Area <= 2500 E Shape_Area > 1400<\/SPAN><\/P>Tolerância 5 com os vetores brutos usando uma consulta de definição de Shape_Area <= 3000 E Shape_Area > 2500<\/SPAN><\/P>Tolerância 6 com os vetores brutos usando uma consulta de definição de Shape_Area <=8000  E Shape_Area >3000<\/SPAN><\/P>Tolerância 8 com os vetores brutos usando uma consulta de definição de Shape_Area <=12000  E Shape_Area >8000<\/SPAN><\/P>Tolerância 12 com os vetores brutos usando uma consulta de definição de Shape_Area >12000<\/SPAN><\/SPAN><\/P> <\/SPAN><\/P>Mescle a saída para BuildingsCircle e então aplique uma consulta de definição STATUS = 0. . Isso deve funcionar para extrair círculos automaticamente.<\/SPAN><\/P>Sugiro revisar os círculos para garantir que estejam corretos, excluindo quaisquer que não estejam. <\/SPAN><\/P>Você vai querer começar a editar nos círculos mesclados, selecionar todos e usar o generalizar com um valor de entrada de 0,1 pé.<\/SPAN><\/P>
<\ / SPAN > <\ / P > < P style = " margin :-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 px ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;-15 p x ;text-align:left;text-indent:-2 in ;">Isso transforma os círculos perfeitos em outros com vértices que são usados como entrada para Local Government Scenes.<\ / span > <\ / span > <\ / P > < P style = " margin :-20 p x ;text-align:left;">Selecione os edifícios extraídos brutos que não são círculos usando Selecionar por Localização.& nbsp;. Execute um Dissolver com Criar feições multipartes desmarcado.& nbsp;. <\ / span > <\ / span > <\ / P > < P >
<\ / P > < P ><\ / P > < P ><\ / P > < P >Divida em três grupos por tamanho abaixo e execute Regularize Building Footprint com os valores abaixo:<\ / span > <\ / P > < P ><\ / P > < P style = " margin :-20 p x ;text-align:left;text-indent:-20 p x ;"> Pequeno:"<\ / span > sólido; mso-style-textfill-fill-color: white; mso-style-textfill-fill-alpha: 100.0%;">Shape_Area"< 5000 sq. pés
Right_ANGELS Tolerance2, Densification2, Precisão 0,25
•Médio:"Shape_Area" >≥ 5000 AND "Shape_Area" <≤ 2555Right_ANGLES_AND_DIAGONAL Tolerance3, Densification
Precisão 0,25, Penalidade Diagonal 1,5
Grande:"">= <\/SPAN><\/SPAN>25000 <\/SPAN>Right_ANGLES_AND_DIAGONAL<\/SPAN><\/SPAN>
Tolerncia 4, Densificao 4, <\/SPAN> Preciso 0,25, Penalidade Diagonal 1,5<\/SPAN><\/SPAN><\/P><\/P><\/P>
<\/SPAN><\/P><\/P>Apos executar esses grupos, mescle o resultado com BuildingsNonCircle e execute dissolve nas features.   Execute um Eliminate Polygon Part nas features com pelo menos 20 Pés Quadrados e elimine apenas a parte contida.   Isso serve para eliminar buracos internos nos poligonos limpos.   Execute um Simplify Buildings com Tolerancia de Simplificaçao 2 e depois novamente usando esse resultado como entrada com uma Tolerancia de Simplificaçao 4.<\/SPAN><\/SPAN><\/P><\/P>
<\/SPAN><\/P>
<\/P><\/P>Mescle seus edificios circulares e os BuildingsNonCirclesb4 para obter seus edificios finalizados.   Comece a revisar os edificios comparando com imagens lidar para encontrar erros (parece que sempre haverao erros).<\/P><\/P>Extraindo Edifícios e Árvores do Lidar<\/SPAN><\/P><\/P>Aqui tambem tem uma ferramenta para Identificaçao de Edificios e Arvores do Lidar desenvolvida por Joe McGlinchy e Roslyn Dunn.   E um trabalho em progresso e atualmente funciona apenas com ArcGIS Desktop 10.3.1.   Ela coleta footprints de edificios e arvores circulares que podem ser processadas pela Regularize Building Footprint Tool acima.<\/P><\/P>Outra ferramenta para extrair arvores que desenvolvi usando Lidar e imagens NAIP esta
Scene Viewer<\/A>)<\/STRONG><\/SPAN><\/P><\/P>
Adicionar cor aos telhados no ArcGIS Pro realmente faz as cenas parecerem mais realistas com Local Government Scenes.  Ha mais de um ano, desenvolvi um modelo para adicionar cores hexadecimais aos edificios como um campo para exibir no ArcGIS Pro.   Com o processo Local Government Scenes, voce pode usar um campo com uma Cor Hexadecimal para adicionar cores na exibicao no ArcGIS Pro usando suas camadas.   Eu frequentemente uso duas fontes de imagens de tempos diferentes e uso uma para o telhado, depois outra para a cor lateral (adicione outro campo chamado cor lateral).  Embora usar isso para a cor lateral seja ideal, e uma maneira facil de colorir edificios em massa.<\/P>
<\/P>
Instrucoes:<\/P>
<\/P>
1. Recorte a imagem leaf off de alta resolucao para a area onde voce tem edificios que deseja adicionar cor.<\/P>
2. Reamostre para cerca de 3ft, isso permitira que a ferramenta Segment Mean Shift rode muito mais rapido.<\/P>
3. Execute Segment Mean Shift na imagem leaf-off com parametros padrao.<\/P>
4. Execute Add Hex Color From Imagery to Roofs 10.4 ou ArcGIS Pro Add Hex Color to Roofs (anexado abaixo).<\/P>
5. Baixe os arquivos da camada Old Local Government Scenes (anexados abaixo compactados) e descompacte.<\/P>
6. Mova seus edificios para o cenario 3D no Pro e clique em propriedades para definir elevacao como absoluta.<\/P>
7. No Pro, execute Apply Symbology from Layer usando o LOD2BuildingShellsFloors_feet.lyrx ou LOD2BuildingShells_meters.lyrx no diretorio OldLocalGovernmentScenesLayerFiles que voce descompactou.   A nova versao do Local Government Scenes nao tem cor para telhados ou lados dos edificios, isso provavelmente sera alterado em versoes futuras.<\/P>
7.   Defina a cor do telhado para seu campo de cor hexadecimal na simbologia e aplique.<\/P>
<\/P>
Abaixo esta St Louis em 3D com cor adicionada aos edificios.   O Arco foi o unico elemento desenhado.   Todas as cores dos edificios foram aplicadas atraves das imagens usando o processo acima.  Arvores foram extraidas usando Trees From LIDAR (
Scene Viewer </ A > ). & nbsp ; Para as cores laterais dos edifícios , usei esta fórmula para calcular uma cor a partir das cores do telhado. As cores laterais não estão corretas, mas dão uma visão mais realista.<\/P><\/P>
"#" + hex(int(((int(!HexColor![1:3],16))-random.randrange(30)+20)*-1))[-2:] + hex(int(((int(!HexColor![3:5],16))-random.randrange(30))*-1)+20)[-2:]+ hex(int(((int(!HexColor![5:7],16))-random.randrange(30))*-1)+20)[-2:]<\/P>
<\/P>
Outra opção é usar a cor real dos lados dos prédios. Para fazer isso, comece com uma busca de imagem em um navegador para casas na área que você está trabalhando. Você pode então capturar as imagens, georreferenciá-las lado a lado no ArcMap e mosaicar elas juntas. Execute Segment Mean Shift na imagem mosaica e então crie uma featureclass para colocar prédios falsos sobre as áreas das quais você quer obter cores. Execute a ferramenta Add_Hex_Color_From_RGB_Imagery_to_Roofs_10.4 nesses prédios e depois exporte para uma tabela. Veja quantos registros há na tabela, adicione um campo aos prédios chamado join e calcule-o com um número aleatório igual ao número de registros na tabela (importe random no bloco de código, random.randint(1,100), 100 sendo o número de registros). Então adicione um campo ao seu prédio chamado side color e calcule-o após fazer um join com a tabela usando o objectid e o campo join. Use esse campo como entrada para a simbologia dos lados dos prédios. Um exemplo disso está abaixo para Fort Bend, TX, onde extraímos os footprints dos prédios do lidar, passamos eles pelo Local Government Scenes e então aplicamos cor aos telhados a partir da imagem e as cores laterais aleatoriamente.<\/P>
<\/P>
Condado de Fort Bend, TX, em 3D:<\/P>
Tipos de gêneros de árvores suportados013 ArcGIS Pro | ArcGIS for Desktop<\/A><\/P>Com as árvores, tendo isso guiado pelo Gênero significa que um Maple Prateado (Acer saccharinum) será mostrado no campo apenas como "Acer" para guiar a simbologia. Com o link acima, você pode ver que Acer será mostrado como uma árvore Maple Sugar. Geralmente é próximo o suficiente para dar uma boa representação do tipo de árvore.<\/P>
<\/P>
Olhando pela pesquisa, parece que obter a altura de uma árvore pelo DBH não funciona muito bem. Então, eu sugeriria usar o Lidar ou a altura se estiver no Inventário de Árvores. O único problema que encontrei foi com árvores recém-plantadas que o lidar não tinha ou eram menores quando o lidar foi feito.<\/P>
<\/P>
<\/P>
- Revise os pontos, provavelmente você vai querer reprojetar os pontos para o mesmo sistema do seu lidar. <\/SPAN><\/LI>O primeiro passo foi baixar o arquivo LAS da área
(formato lidar dos dados). <\/SPAN><\/LI>O segundo passo foi criar um dataset las com os arquivos las
<\/SPAN><\/LI>Em seguida usamos LAS Point as Statistics como Raster usando o método Z_Range
para obter um DEM das alturas das árvores.<\/SPAN><\/LI>Executei uma ferramenta Focal Statistics com Max de círculo 3 para
obter a propagação do ponto mais alto para que intersecte o ponto.<\/SPAN><\/LI>Execute Add Surface information para obter o Z do raster para os pontos do Inventário de Árvores, esta é a altura da árvore.<\/SPAN><\/LI>Adicione um campo chamado Genus e calcule o campo usando o nome Científico. O ArcGIS precisa de uma entrada apenas do Gênero, então usei este script vb no 10.4 para fazer isso a partir do nome Científico em python (ArcGIS Pro) !BOTANICAL!.split(' '<\/>),1)[0] ou <\/>vb script Split([BOTANICAL] , " ",2)(0) <\/>
- Abriu ArcGIS Pro Scene e adicionou as árvores como