Quais são as regras aritméticas que governam os valores do Nodata? Independentemente de como esses valores nulos são definidos? Estou usando a Calculadora ArcMap Raster.
Estou pensando especificamente em operações como 1 * Nodata (ou 1 * nulo), 1 / Nodata, 1 + Nodata, 1 + Nodata, 1-Nodata, Nodata-1 etc ...
arcgis-desktop
python
arcgis-10.1
raster-calculator
user32882
fonte
fonte
Respostas:
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).
fonte
Cada um dos seus exemplos, a resposta é realmente NoData
1 * Nodata (ou 1 * nulo) = NoData
1 / Nodata = NoData
1 + Nodata = NoData
1-Nodata = NoData
Nodata-1 = NoData
Devo acrescentar que muitas operações oferecem a opção de "pular" o NoData em uma função.
fonte