Usando a opção Hillshade no ArcMap?

15

Aqui está uma bela foto da varredura que estou usando - sem efeitos aplicados - apenas a rampa de cores e o histograma ajustados para mostrar todo o relevo - embora de uma maneira muito 2D!

insira a descrição da imagem aqui

Eu tenho uma camada raster que eu quero exibir com colina como padrão. Eu posso fazer isso no código e, na verdade, é o mesmo que selecionar a opção Hillshade no ArcMap (veja abaixo):

insira a descrição da imagem aqui

Porém, quando você faz isso - parece decepcionante:

insira a descrição da imagem aqui

Especialmente se você aplicar zoom na varredura, verá todos os tipos de articulados de grade - o que não parece nada agradável!

insira a descrição da imagem aqui

No entanto, se eu criar uma camada adequada do Hillshade usando a varredura com o Spatial Analyst e a sobrepor com uma transparência de 85%, ela parecerá muito boa e muito diferente !:

insira a descrição da imagem aqui

  1. Como obter esse efeito no ArcMap e substituir a funcionalidade padrão da opção Hillshade (suponho que isso seja impossível, ou é alguma configuração que perdi que causou uma exibição ruim da varredura). Se é possível substituir ou selecionar as configurações corretas - é possível fazer isso no ArcObjects.
  2. Se a opção 1 não for possível, posso criar meu efeito com a criação de uma camada Hillshade (sem usar o Spatial Analyst) e efetivamente fundi-la com a varredura original - ou seja, não quero que as pessoas vejam duas camadas no sumário no ArcMap . Eu só quero uma camada, mas com uma renderização de colina padrão da minha escolha / configuração. Também preciso fazer isso programaticamente, ou seja, ArcObjects.

Uma coisa que aprendi é que você deve ter seu DEM nas unidades de referência e medição espaciais corretas ou a colina resultante parece muito preta e exagerada - confira este vídeo para saber mais - é uma explicação muito boa.

Então, acho que agora sei o que preciso fazer em relação à produção de sombreamento de alta qualidade, mas acho que será necessário algum código do ArcObjects para ajustes de baixo nível. Estou pensando que preciso criar minha própria renderização gráfica e conectá-la ao ArcMap (eu tenho uma dll que renderiza bitmaps de grades de uma maneira interessante). Acho que um bom lugar para mostrar isso seria substituir o evento Draw () em algo como o IRasterRenderer e inserir minha própria renderização de imagem. Claro que pode ficar um pouco complicado com reprojeções, etc.

Alguém já fez algum tipo de renderização gráfica de baixo nível no ArcMap?

Vidar
fonte
1
Nunca fiz isso, mas acredito que você pode usar o IRasterRenderer para personalizar como renderizar uma varredura específica. Se você tiver os dois conjuntos de dados (hill + regular), poderá usar um IRasterCursor para mesclar e desenhar cada pixel.
George Silva
5
Pelo que vale a pena, eu tentei a mesma coisa ontem no ArcMap e parece terrível também.
Chad Cooper
@ George, acho que um RasterCursor altera o valor CELL - embora eu queira alterar o valor da cor - ou seja, efetivamente alterando sua intensidade de cores com base em um valor de colina - você sabe como alterar valores RGB específicos pixel por pixel?
Vidar
1
Parece que o "efeito de colina" é calculado arredondando primeiro os valores de elevação, o que efetivamente transforma seu DEM em vários terraços abruptos e minúsculos. Se isso estiver correto, é improvável que você encontre uma solução: envie um relatório de bug. Você pode solucionar o problema de duas camadas agrupando a grade e a camada de colina. BTW, acredito que esta opção é nova na versão 10; ajudaria a atualizar as tags, indicando qual versão do ArcMap você está usando.
whuber
@Vidar the docs especifica que os cursores de varredura existem para "acesso otimizado à varredura". Eles devem ser capazes de ler também.
George Silva

Respostas:

20

Usar reamostragem de interpolação bilinear durante a exibição

Você pode melhorar um pouco a exibição alterando o método de reamostragem usado da Vizinha mais próxima padrão para Interpolação bilinear. Propriedades da camada -> Guia Tela -> Reamostrar durante a exibição usando: Interpolação bilinear.

Esse efeito funciona melhor com o DEM e a rampa de cores preto e branco padrão.

Você obterá um resultado muito melhor e muito mais controle sobre a tela ao usar 2 raster, como você já fez. Certifique-se de usar também o método de reamostragem da Interpolação bilinear durante a exibição.

Adicionar DEM:

insira a descrição da imagem aqui

Alterne "Usar efeito colina" em: insira a descrição da imagem aqui

Renderiza da seguinte forma na tela: insira a descrição da imagem aqui

Altere a reamostragem durante a exibição para Interpolação bilinear: insira a descrição da imagem aqui

Renderiza da seguinte forma na tela: insira a descrição da imagem aqui

Jakub Sisak GeoGraphics
fonte
Você está certo no que diz - isso de fato se livra dos artefatos de grade - mas o sombreamento ainda parece horrível. De certa forma, acho que os artefatos eram um tipo de problema secundário - pois é o sombreamento que realmente quero acertar. Mas obrigado pelo esforço em sua resposta!
Vidar
10

A colina em movimento do Arcmap, o método descrito, é rápida e suja e nunca foi criada para substituir o resultado da colina da Spatial Analyst e / ou 3D Analyst. Embora o mesmo termo seja usado para descrever os dois, eles não são os mesmos.

Para criar uma verdadeira colina sem o Spatial Analyst, você pode experimentar o gdaldem da GDAL :

gdaldem hillshade dem.tif shade.tif

O Tutorial de dados do Terrain TileMill tem uma boa visão geral de como usar o gdaldem para construir uma colina composta com tonalidade hipsométrica.
detalhe de colina e relevo composto hipsométrico

Se o utilitário não for direto o suficiente para o seu aplicativo, o código fonte do C ++ para gdaldem está aqui .

Matt Wilson
fonte
1
Coisa boa! Gosto especialmente da idéia de combinar os resultados e de usar o Hillshade e também a inclinação. Nunca pensei em combiná-los. Terá que tentar.
Jakub Sisak GeoGraphics
O gdaldem é definitivamente o caminho a seguir para algumas operações de GIS sobre o ArcGIS. Eu aprendi que o Hillshading é definitivamente uma dessas operações.
precisa saber é o seguinte
1
@jakub, se você gosta da ideia de uma colina combinada com inclinação e hipsometria, dê uma olhada no trabalho de Tom Patterson sobre matizes hipsométricos combinados e produzindo mapas de cores naturais com dados de cobertura de terra por satélite . As técnicas discutidas visam superar a limitação com tonalidade hipsométrica padrão da associação muitas vezes inapropriada de verduras ricas em baixa elevação com vegetação e alto-marrom-alto / vermelho com desertos ou terras áridas. Vale a pena ler e estudar.
Matt Wilkie
7

Se você está procurando uma colina bonita que leva algum tempo para criar, mas é ótima para projetos maiores, onde haverá muita exposição, experimente o método Swiss Hillshade - ela requer 3 camadas, mas pode ser exportada a uma taxa georreferenciada para economizar espaço e portabilidade. Esse método exige analista espacial, acredito, portanto não é uma resposta direta à pergunta do OP, mas pode ser útil para outras pessoas que analisam os métodos de colina no ArcGIS. O método também funciona em outros sistemas GIS, mas a caixa de ferramentas vinculada é para o ArcGIS.

Edit 11/2014: Esri lançou recentemente uma nova ferramenta para criar Hillshades. Parece realmente liso e deve se fundir com os fluxos de trabalho do Asker. Eles o apresentam aqui e você pode baixar o código e as instruções de instalação aqui

nicksan
fonte
Eu usei isso algumas vezes recentemente. Muito agradável. Adicionado ao meu saco de truques. Obrigado por compartilhar.
Kstoney
Não tem problema - fico feliz que você tenha achado útil. Ele definitivamente faz uma Hillshade mais agradável, e eu gosto que eu posso manter minhas camadas ao redor e apenas mudar a coloração na dem para enfatizar tudo um pouco diferente
nicksan
1
Obrigado por isso. Além disso, na versão 10.1, o Raster Shader ( blogs.esri.com/esri/apl/2013/05/02/… ) oferece muito mais controle sobre a exibição de varredura e permite criar cortinas agradáveis.
SoilSciGuy
4

Quando você diz no item 2 "posso criar o meu efeito com a criação de uma camada Hillshade (sem usar o Spatial Analyst)", você quer dizer aplicativos alternativos para criar uma sombra Hillside?

Se você deseja usar um aplicativo fora do Spatial Analyst, aprendi recentemente (mas nunca usei) a " extensão SEXTANTE para ArcGIS " ( gratuita ), que permite aos usuários consumir as ferramentas SEXTANTE no ArcMap. Se você assistir a este videoclipe , poderá ver que eles demonstram maneiras de criar uma sombra de colina.

RyanKDalton
fonte
Na verdade, não - eu só quero aplicar minhas próprias técnicas de sombreamento sem usar as ESRIs. Eu adicionei comentários extras no meu post de abertura.
Vidar
4

Sempre fui instruído a aumentar o exagero de z ao fazer uma colina.
Eu apenas tentei 100 no meu e parece um pouco extremo.
Também alterar o tipo de estiramento faz uma grande diferença na aparência da colina.
Como você está falando sobre a aparência, também deve consultar este item de ajuda. esir help
O que diz que o hillshading é aplicado na resolução do pixel da tela.
E para alterar o ângulo de iluminação
Esri ajuda
Também alterando a direção e o contraste

Brad Nesom
fonte