Certo, ninguém forneceu uma resposta para essa pergunta, então pensei em participar. Suspeito que todos os GIS que fornecem suporte para o valor NoData o façam exatamente da mesma maneira. Cada operação matemática aplicada a uma imagem rasterizada procura o caso especial de células da grade que contêm valores NoData e, em seguida, executa um caminho que efetivamente ignora a operação e gera um valor NoData para a célula da grade correspondente na imagem de saída . Aqui está um exemplo retirado da ferramenta Adicionar no GIS de código-fonte aberto GIS Whitebox:
Aliás, esse é o código que também é executado se você adicionar duas imagens na Calculadora Raster do Whitebox. No Whitebox, cada varredura pode ter um valor NoData exclusivo, pois é especificado no arquivo de cabeçalho da varredura. Como tal, não é necessariamente o mesmo para as duas imagens sendo adicionadas e é por isso que você vê as variáveis noData1 e noData2 definidas no código acima. Importante, você verá que, à medida que o código passa por cada célula da grade na pilha de varredura, ele recupera os dois valores nas imagens de entrada correspondentes para uma célula (z1 e z2) e verifica se ambos não são iguais a NoData . Portanto, a adição ocorre apenas se os dois rasters contiverem um valor válido nas entradas. Se não for esse o caso, nada será inserido na célula da grade de saída. De fato, a imagem de saída foi criada e inicializada com seu próprio valor NoData, portanto, ao não inserir um valor agregado para uma célula da grade (porque pelo menos uma das entradas é NoData), a saída também terá o valor NoData. Operações semelhantes ocorrem para cada uma das operações matemáticas e, de fato, a maioria das ferramentas que envolvem conjuntos de dados rasterizados de entrada seguirá uma abordagem semelhante para tratar o caso especial dos valores NoData. Duas exceções comuns a esta regra de que as operações geram um valor NoData para entradas NoData são encontradas na maioria dos GIS no diretórioFerramentas Con e Set Null . A ferramenta Con do ArcGIS declara: "Se o NoData não satisfizer o, ele não recebe o valor do e permanece NoData". Portanto, se 'NoData' fizer parte da instrução condicional e uma célula da grade com esse valor reduzido para 'TRUE', um valor não NoData poderá ser gerado. Da mesma forma, a ferramenta Definir Nulo realmente produzirá um valor não NoData para células de entrada que contêm NoData.
Espero que ajude você a entender o funcionamento desse misterioso valor NoData. E lembre-se de que zero não é o mesmo que NoData! (A não ser, é claro, que zero tenha sido marcado como o valor NoData para uma determinada varredura).