Noções básicas sobre configurações de simbologia de varredura

9

Estou tentando entender como usar as opções de simbologia para camadas raster no QGIS, particularmente as opções de reamostragem, mas a documentação oficial menciona apenas a configuração muito brevemente e não entra em detalhes sobre como elas funcionam.

Estou interessado em saber como usar as configurações para melhor visualizar imagens raster, como mapas topográficos ou cartas náuticas, por meio de serviços de mapa de conjunto de peças ou formatos estáticos offline, como o GeoTIFF. A maioria dos vídeos e tutoriais que posso encontrar parecem lidar com reamostragem para fins de manipulação de dados, e não para exibição.

EDIT: As respostas existentes sobre a reamostragem de Lanczos são bastante informativas e serão úteis à medida que vou um pouco mais longe. No entanto, minha pergunta não é realmente sobre diferentes métodos de interpolação, que eu entendo bastante bem, mas sobre o efeito que as configurações específicas no QGIS têm na renderização da camada raster.

Normalmente, eu investigava isso alterando as configurações e comparando visualmente o resultado, mas não vejo diferença quando as aplico (exceto a imagem que não é renderizada em determinadas configurações em determinados níveis de zoom). Em resumo, não entendo pelos nomes das configurações como devo esperar que elas afetem a imagem. Especificamente:

  • Quais são as configurações de "zoom in" e "zoom out" e que etapas devo executar para compará-las visualmente? Eles estão relacionados à ampliação e redução da amostragem, conforme descrito no artigo de Lanczos?
  • O que é "oversampling" e como isso afeta uma imagem visualmente?
  • Alguma das outras configurações de simbologia é relevante para a aparência visual de algo como um mapa topográfico?
Nathan
fonte
Leia gis.stackexchange.com/questions/10931/…, que tem algumas comparações muito interessantes entre métodos.
Michael Stimson
Possível duplicata de Para que a reamostragem de Lanczos é útil em um contexto espacial?
ahmadhanb 5/09
Obrigado; muito informativo! No entanto, minha pergunta é realmente um pouco mais rudimentar - editei a pergunta para explicar como.
Nathan

Respostas:

7

Resposta editada (11 / set / 2018)

As seguintes respostas e descrições são baseadas no QGIS 3.2. Eles não abordarão os métodos de interpolação, pois o questionador já está familiarizado com eles.

Suponho que a pergunta feita especificamente sobre as configurações em Propriedades da camada -> Simbologia -> Reamostragem (como na figura abaixo)

figura 1

Zoomed In - Vizinho mais próximo, Bilinear, Cubic

Geralmente, essa configuração é ativada quando o usuário "aumenta o zoom" (ou seja, em direção ao solo) após a resolução de pixel nativa da camada raster. Por favor, veja a figura abaixo para o efeito. (Certifique-se de manter o valor de Sobre - amostragem em 1.0 ou superior. O padrão é 2.0.)

Especificamente - essa configuração foi criada para ter efeito quando a resolução de pixel da visualização do mapa for maior que a resolução de pixel original da camada raster (ou seja, arquivo).

Figura 2

Menos zoom - vizinho mais próximo, média

Geralmente, essa configuração é ativada quando o usuário "diminui o zoom" (ou seja, longe do chão) após a resolução de pixel nativa da camada raster. Por favor, veja a figura abaixo para o efeito. (Certifique-se de manter o valor de Sobreamostragem acima de 1,0. O padrão é 2,0.)

Especificamente - essa configuração foi criada para ter efeito quando a resolução de pixel da visualização do mapa for menor que a resolução de pixel original da camada raster (ou seja, arquivo).

O método Average é na verdade uma interpolação bilinear. Na maioria das situações, o valor padrão de Oversampling de 2.0 fornece o "melhor" resultado visual em relação ao desempenho. Para grandes rastos de ortofotografia, valores maiores de Sobredamostra podem fornecer melhores resultados visuais, especialmente se o raster tiver muitas manchas brancas (por exemplo, devido a reflexos de luz em carros, telhados, corpos d'água, produção de mapas de baixa qualidade, combinações dos itens acima mencionados etc.) ) Porém, valores maiores de Amostragem alta também aumentam a duração da renderização e podem não necessariamente produzir melhores resultados. Diferentes ortofotografias raster dão resultados visuais diferentes - assim como experimentos com diferentes valores de Oversampling .

Figura 3

O valor da sobreamostragem

A aplicação e o efeito reais da Oversampling podem ser explicados a partir dos códigos-fonte QGIS reduzidos / simplificados para as seguintes etapas:

let pixelRatio = map view's pixres / raster layer's pixres,
let toUseRatio = min(pixelRatio, Oversampling),

toUseRatio é o menor entre pixelRatio e Oversampling . Portanto, Oversampling é um nome impróprio e, apropriadamente, deve ser rotulado como "Proporção máxima de pixels" .

// Assuming Zoom_In and/or Zoom_Out is not Nearest_Neighbour.

if toUseRatio < 1.0 or toUseRatio near 1.0 then
    resamplerToUse = interpolation specified in Zoom_In
else if toUseRatio > 1.0 then
    resamplerToUse = interpolation specified in Zoom_Out
else 
    resamplerToUse = Nearest Neighbour

Em seguida, o QGIS decide entre (o método de interpolação especificado em) Mais zoom e Menos zoom usando a lógica acima. A "idiossincrasia" resultante é que o aumento do zoom pode ser escolhido sobre o menos zoom quando o usuário "diminuir o zoom" após a resolução de pixel nativa da camada.

let resWidth  = map view's width * toUseRatio,
let resHeight = map view's height * toUseRatio,

let InpImg = Block(raster layer, map view's extent, resWidth, resHeight),
let OutImg = scale InpImg to map view's width and height using resamplerToUse.

E por último - a operação de copiar / dimensionar imagens. Se toUseRatio for "grande", o mesmo será resWidth e resHeight , e isso resultará diretamente no InpImg com mais pixels em toda a parte. O InpImg é reduzido (ou para cima) para ajustar a largura e a altura da tela da visualização do mapa.

Se o InpImg tiver mais pixels (entre e para baixo) do que a visualização do mapa, ocorrerá uma redução e o resultado será "bom". Por outro lado, se o InpImg tiver menos pixels (entre e para baixo) do que a visualização do mapa, ocorrerá uma ampliação e o resultado será ruim. (Veja a figura abaixo.)

Figura 4

Ralph Tee
fonte
Obrigado, é exatamente isso que estou perguntando! Você poderia explicar um pouco mais sobre o que o Oversampling faz e também como essas configurações se aplicariam a camadas rasterizadas que contêm vários conjuntos de peças em um único serviço de mapa? Por exemplo, o serviço de mapas topográficos do USGS contém mapas diferentes para as escalas 1: 250k, 1: 100k e 1: 24k, e essas escalas diferentes são exibidas em diferentes níveis de zoom. Percebi que um valor mais alto de Sobreamostragem às vezes resulta nos mapas com um nível de zoom mais alto aparecendo, em vez daqueles que normalmente são renderizados para esse nível de zoom. Por que é isso?
Nathan
Para um serviço de mapa da web (por exemplo, WMTS), o QGIS "bloqueia" automaticamente a melhor camada, dependendo da escala ou resolução de pixels da visualização atual do mapa. O QGIS então "Aumenta o zoom" ou "Diminui o zoom" até que a visualização do mapa atinja a próxima melhor camada. E o processo se repete.
Ralph Tee
É a resolução atual (escala nominal) ou a pixel da visualização do mapa do usuário que determina qual camada de serviço de mapa da web que o QGIS carrega - e não qualquer valor na Oversampling.
Ralph Tee
O que explicaria a mudança, então? Por exemplo, em uma escala de 1: 125.000 e ampliação de 2x, com Oversampling definido como 2.0, o QGIS carrega a camada superior de 100k. Na mesma escala e ampliação, com Oversampling definido como 3.0, o QGIS exibe o topo de 24k (embora renderize primeiro a camada de 100k, que aparece brevemente em uma resolução melhorada até que a camada de 24k carregue em seu lugar).
Nathan
1
Posso sugerir que você crie uma nova entrada para suas perguntas (aparentemente relacionadas)? Isso é para conformidade com as diretrizes do fórum. Além disso, o comentário não é um ótimo lugar para colocar respostas.
Ralph Tee